FoxPro/Visual FoxPro - ayuda con filtrado de datos

 
Vista:
sin imagen de perfil

ayuda con filtrado de datos

Publicado por jose luis (2 intervenciones) el 11/02/2014 01:00:35
Que tal buen día

tengo un reporte que muestra los saldos por cobrar de las ventas realizadas global y por cierto periodo, todo va bien hasta cuando quiero que genere el reporte por ejemplo a un corte de mes cuando ya estamos a mediados del siguiente mes, el saldo de cada venta se va actualizando cada que se genera un deposito o pago mi tabla contiene los campos de saldo, valor de venta, fecha de venta, fecha de ultimo movimiento. El código que utilizo para filtrar los registros de los saldos por cobrar al dia es el siguiente:

y=0
fi=.fini.value
SELECT fiscal
GO top
SET FILTER TO sfiscal>0 .and. fultimov<=fi
SET ORDER TO cliente
SUM sfiscal TO y
ventas=y
fecha=fi
REPORT FORM d:\fitsacv\reports\saldosff.frx TO PRINT preview
SET FILTER TO

Esto me genera todos los saldos por cobrar que tengo hasta este momento.

Pero cuando quiero hacer el corte de un mes en donde por ejemplo se hicieron dos ventas una por 5000 y otra por 10000, las dos ventas se hicieron en el mes de enero, por la venta de 5000 se recibió un pago de 3000 en enero y la venta de 10000 fue pagada en su totalidad en el mes de febrero, el reporte me tiene que mostrar los saldos de 2000 restantes por la venta de 5000 y 10000 por la venta que se pago en febrero ya que en enero no se recibió ningún pago, si alguien me pudiera apoyar en como filtrar estos datos ya sea de la forma como lo estoy haciendo o alguna otra se los agradeceré mucho

mi tabla se llama fiscal
los campos son
sfiscal (saldo al dia)
vopera (monto de la venta)
fescrit (fecha en que se realizo la venta)
fultimov (fecha en la que se registro el ultimo pago)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

ayuda con filtrado de datos

Publicado por Saul (728 intervenciones) el 11/02/2014 06:49:24
Hola Jose Luis..

Se me hace que no es muy buen codigo, puesto que SET FILTER cuando hay muchos datos se pondra sumamente lento.

te recomiendo que leeas sobre SELECT

ahora si no pon bien tus columnas que quieras y tus tablas ralcionadas, porque mencionas ABONOS, SALDOS y todo eso, pero en tu talba no dice algo de abonar ?? se me hace que lo haces en otra tabla..


Claro con esos datos podremos ayudarte.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

ayuda con filtrado de datos

Publicado por jose luis (2 intervenciones) el 11/02/2014 19:26:06
Que tal Saul gracias por responder, te comento que todos los datos los almaceno en una sola tabla que se llama fiscal, en esta tabla registro de inicio el valor de venta como saldo por pagar, con forme se van realizando y capturando pagos el saldo se va actualizando descontando los pagos que se realicen hasta quedar en 0, a cada pago le asigno una fecha y una clave, estos son los campos de mi tabla:

cliente (es el id del cliente que tiene el adeudo)
casa y conjunto (indican la adquisición del cliente)
sfiscal (es de inicio el valor de operación de la venta)
los depósitos o pagos de la venta se pueden almacenar en uno o mas de estos campos
depacr
depcon
depsub
depfac
tdep (en este campo se acumula la suma de los pagos)
los campos de fecha de cada deposito: fdepacr, fdepcon, fdepsub, fdepfac
los campos de clave de cada deposito: cdepacr, cdepcon, cdepsub, cdepfac
vopera (monto de la venta)
fescrit (fecha en que se realizo la venta)
fultimov (fecha en que se registro el ultimo pago)

lo que muestro en mi reporte es la columna de cliente, casa, conjunto y saldo por x cobrar

lo que intento hacer es que mi reporte me muestre el saldo por cobrar de las ventas hechas a una fecha en especifico generando mi reporte cualquier día sin que tome en cuenta los pagos posteriores al a fecha que quiero el corte.

La condición que estoy manejando es que me muestre los registros que tengan un saldo mayor a cero y que la fecha de firma sea menor o igual a la fecha de corte que solicite, hasta ahí todo bien me muestra los saldos pero actuales, la lógica que creo es la que debe comprender la opción que deseo es que mi saldo por cobrar será el actual si se cumple la condición de que el saldo es mayor a cero y que la fecha del ultimo movimiento es menor o igual a la fecha de corte, en caso contrario si la fecha del ultimo movimiento es mayor a la del corte el saldo por cobrar seria el valor de operación ya que no se recibió ningún pago antes de la fecha de corte, esto es lo que quiero codificar, espero me puedan ayudar.

Saludos y nuevamente mil gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar