Clipper/FiveWin - rutina para subtotales

 
Vista:

rutina para subtotales

Publicado por maritza jorquera (10 intervenciones) el 19/10/2005 14:24:24
Estimados Amigos:

Gracias por seguir programando en clipper, he aprendido un poco de clipper para ayudarme en mi trabajo, por lo cual he hecho algunos programitas solo para mi ayuda.
tengo un monton de dudas. favor si pueden ayudarme

quisiera saber como hacer una rutina para listar los clientes pendientes por codigo y arroje subtotales por cada uno y al final el total general ojala con una separacion en cada cliente.

yo en este momento uso una rutina que hace eso pero por cada cliente y ya son muchos, osea le pongo si el cod1, si el codigo es 2, si el codigo es 3 ..........etc.

ademas tengo problemas con las fechas que grabo en la tabla dbf.
al hacer otro programa para sacar lo facturado en el mes no considera las fechas que si estan grabadas en la tabla dbf, debo ingresar a la tabla y repasar las fechas manualmente
y hay recien las considera
programo en clipper 5.2

Es la primera vez que escribo, espero estar haciendo bien

gracias y saludos
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

RE:rutina para subtotales

Publicado por Armando Estrada Bucio (168 intervenciones) el 19/10/2005 20:51:00
Maritza:

Para hacer tu reporte de clientes primero debes seleccionar, por algun campo, aquellos clientes que son pendientes (no se de que) y ordenarlos por código para que todos los que sean iguales queden juntos, despues en el reporte ir comparando el código del cliente leido contra el código del registro anterior si son iguales sumas los importes e imprimes el renglon, ahora si son diferentes imprimes los totales, limpias los acumulados y mueves el código leido como codigo anterior, sumas los importes e imprimes el renglón, espero no haberte enredado, :-)

En cuanto al problema de las fechas no me queda claro cual es el problema, mi CPU es un 286 :-), podrías explicarlo nuevamente ?

Saludos, Armando
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

RE:rutina para subtotales

Publicado por maritza (10 intervenciones) el 20/10/2005 14:55:25
Gracias Armando por tu pronta respuesta, pero me enrede un poco

Mira lo que yo hago es lo siguiente:

use clientes index age

go top
set device to printer
set printer om

do while.not.eof()

locate for codigo=1.and.saldo!=0
do while.not.eof()
@ lin,1 say codigo
@ lin,10 say nombre
@ lin,30 say factura
@ lin,50 say saldo
if lin=55
eject

aa=aa+saldo
lin=lin+1
skip
locate rest for codigo.=1.and.saldo!=0
enddo

if aa=0
clear
else
@ lin,124 say aa
lin=lin+1
endif

y estas misma rutina la vuelvo a repetir por el codigo 2..3...4...........

y ya tengo muchos codigos no puedo compilarlo

despues de ingresar todos los cogidos

enddo

hago una nueva variable en que ingreso cada uno de los subtotales para sacar un total general

me dijeron que debia hacerlo con un arreglo

Espero haberme esplicado y si alguien me puede ayudar muy agradecida
les saludo
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

RE:rutina para subtotales

Publicado por Armando Estrada Bucio (168 intervenciones) el 20/10/2005 17:08:40
Maritza:

Efectivamente te estas llenado de mucho código, jeje.

Te puedes apoyar en un FILTRO o en un SCOPE que te seleccione solo los códigos que deseas imprimir y de esa forma solo tendras un DO WHILE ! EOF()... ENDDO sin importar cuantos clientes necesites imprimir.

Comunícate a mi correo para darte mas detalle y no distraer al foro .

Saludos, Armando
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

RE:rutina para subtotales

Publicado por JOSE (79 intervenciones) el 20/10/2005 21:05:04
Hola amiga ahi va un ejemplo para que lo veas cualquier cosa me avisas
Saludos Jose

//este programa te impreme x cliente mas saldo
cls
Do While .T.
@ 10,10 Get codi
Read
If Lastkey()#27 //Si le day Esc sale del propgrama
Do Imp_Cliente With cod
Else
Exit
Endif
EndDo
Close Database
Return

PROCEDURE Imp_Cliente
Parameters cod
use clientes index age //tienes que indexarlo por codigo
go top
total=0
set device to printer
set printer om
Seek cod
do while.not.eof() .And. cod=CLIENTE->codigo
@ lin,1 say codigo
@ lin,10 say nombre
@ lin,30 say factura
@ lin,50 say saldo
total=total+saldo
lin++
if lin=55
eject
Endif
skip
Enddo
If total=0
cls
Else
@ lin,50 say total
Endif
Return
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