Hwww.oocities.org/es/todosempus/codigo.htmlwww.oocities.org/es/todosempus/codigo.htmlelayedxrJmOKtext/htmlO0`b.HSat, 20 Oct 2007 23:04:02 GMT*Mozilla/4.5 (compatible; HTTrack 3.0x; Windows 98)en, *rJ Codigo crearemos a continuacion un proyecto partiendo desde cero para ir paso a paso y consolidar cualquier duda que pueda existir, lo primero sera crear un proyecto nuevo en el directorio c:\pjxsempus pero antes cambiar el directorio por defecto con el siguiente comando (ya tiene que estar creada la carpeta en la unidad c:)codigo: set default to c:\pjxsempus,una vez cambiado el directorio por defecto escribiremos el comando para crear el proyecto codigo:create project psempus,ahora que tenemos el proyecto creado como se muestra en la siguiente imagen


crearemos ahora la base de datos respecto a producto que fue lo que tu me pedistes y para no complicarnos la existencia lo haremos sencillo, para productos solo crearemos los campos mas necesarios que seria nombre,fecha,cantidad_entrante,precio_venta,idproducto y para ventas seran los campos,fecha_venta,producto,cantidad_vendida y solamente (ahorita solo para no alargar las cosas pero mas adelante podre ir agregando lo que me pidas)quedara algo asi



Ahora solo nos resta crear los formularios para manipular la base de datos,crearemos 3 uno para ingresar el producto,otro para ingresar las ventas u otro para realizar el inventario,esto de los formularios dependera mucho de como sea tu estilo y a mi aun me apena decir que yo aun no tengo la suficiente estetica para hacerlos de la mejor manera pero algo es algo,a continuacion te dejo las capturas

Este seria mi menu



Este seria el formulario de ingreso de productos





Aunque esto de los formularios lo pudiera omitir ya que lo que interesa es el codigo para hacer la benditas consultas,pero pondre el codigo que considero conveniente (espero no ir demasiado rapido) Comenzare ahora con el codigo,hay comandos que nos seran de utilidad no solo para este ejemplo sino tambien para programar cualquier tipo de consulta.los listare brevemente.
1)scan-endscan
2)reccount()
3)for-endfor
4)go
5)EOF() y BOF()
6)if-endif
7)skip
8)empty()
9)go top
10)go bottom
11)use
y muchos mas pero creo que con estos tenemos ya,ahora creare compras en la tabla ventas para hacer las consultas.
ventas en tabla ventas

Ahora segun la logica si queremos saber cuanto hemos vendido de x producto tenemos que hacer la consulta pero una consulta se abre en ventana y seria mejor que esta no se abre,para hacer esto hay dos formas pero a mi siempre me a gustado elegir la mas dificl porque asi pienso un proquito mas,ok? bien entonces antes que nada tienes que estar segura de tener abrir las tablas en el entorno de datos por si no sabes cual es dicho entorno te lo mostrare:
Primero en el formulario da click derecho,luego selecciona entorno de datos,luego selecciona las tablas que quieras o necesites esten abiertas en momento de ejecucion esto hace que evites usar el comando use() ya que este comando si bien es cierto sirve para abrir una tabla tambien cierra automaticamente la tabla que esta abierta en ese momento,entonces si usas mas tablas tendras problemas porque el comando use() te las ira cerrando,para probar lo que te digo despues de agregar las tablas al entorno de datos selecciona sesion de datos,luego corre el formulario con la sesion de datos abierta para que veas en que momento se abren las tablas,te dejo las capturas de pantalla acontinuacion:





Ahora que tenemos ya todo listo comenzaremos quizas con lo mas divertido,a meter codigo. En una consulta normal bastaria con:
select *,sum(cantidad);
from ventas;
where producto="producto1"

Que hace este codigo,pues simplemente suma el campo cantidad de la tabla llamada ventas donde producto sea igual a producto1,pero esto se abriria en ventana adicional cosa que no se mira etico ni profesional,ahora lo haremos de la forma que a mi me gusta mas:

cantidad=0
*solo declaramos la variable cantidad de tipo numerica para guardar aca la suma de lo vendido (puede llamarse como quieras)
totalventa=0
*declaramos una variable que guardara el numero de ventas realizadas de un producto

select ventas
*Seleccionamos la tabla ventas
x=reccount()
* asignamos a x el numero total de registro que exitan en la tabla ventas
i=0
*asignamos cero a la variable i, para usarla con un FOR()
FOR i=0 to x
*aqui decimos q desde que la variable i valga cero hasta el valor en numeros de registros en la tabla ventas que este caso en seria??,cabal 10

IF Eof ()=.t.
*pues aqui decimos que si hemos llegado al final de la tabla que no haga nada,porque? pues porque despues de esta linea de codigo usaremos un "SKIP 1" entonces cuando estemos ya en el registro 10 el valor de i valdra 11 y como un registro 11 no existe nos dara un error y se nos cerrara el programa por eso lo ponemos
else
If producto=variable
*esta variable sera el valor tomado de alguna manera refiriendose al producto de cual queremos saber cuanto se ha vendido,yo a la hora de hacer esto amarro un combox a la tabla producto y le asigno el valor del nombre de un producto,asi solo desplego el combobox en tiempo de ejecucion y elijo el prudcto que yo quiero,luego en el evento click del combobox le asigno el valor de su value a una variable,en este caso vendria siendo algo asi,variable=alltrim(thisform.combo1.value)
totalventa=totalventa+cantidad_vendida
*pues simplemente si el registro en el que nos encontramos su campo producto es igual a la variable del combobox que tenias es igual entonces el valor que tenga el campo cantidad_vendida se sume a las sumas anteriores que estan guardadas en la variable totalventa.
endif
endif
skip 1
endfor

Ahora ya tenemos todo lo que necesitamos saber,practicamente este es todo el codigo que necesitas para hacer un inventario lo unico que hace falta seria resptar de la cantidad entrante el valor que se encuentra en totalventa y la respuesta seria la exitencia actual para el sistema