FoxPro/Visual FoxPro - Impresion

   
Vista:

Impresion

Publicado por Jim (2 intervenciones) el 16/12/2008 21:10:30
Buenas tardes, quciera q me auden con lo siguiente tengo una tabla en donde tengo registrado varias cuentas contables por ejm 10101001, 10101002, etc y tengo otra tabla en donde estan registrados todas las cuentas estas dos tablas los relaciono por un campo comun, lo q quiero es imprimir una cuenta por cada hoja por ejm la cuenta 101001 en una hoja sumo el total de la cuenta y salto a la siguiente hoja e imporimo la siguiente cuenta con su total, lo q no puedo hacer es q si la cuenta abarca en mas de una hoja me tiene q salir van y en la siguiente hoja vienen para la misma cuenta y de ahi q siga imprimiendo las demas cuentas estuve haciendo este prg me sale la impresion en una hoja por cada cuenta pero no me sle cuando la cuenta abraca en mas de una hoja. Espero me ayuden.

set console off
set century off
set device to printer
set printer to name solotexto
linea=1
cPlan = "h: utadbf"
Use (cPlan) SHARED AGAIN &&EXCLUSIVE
Index On ccta TO (cPlan) FOR LEN(ALLTRIM(ccta))=8

SELECT 1
USE (cPlan) INDEX(cPlan) ALIAS p1 SHARED

SELECT 2
USE h: utatmp SHARED ALIAS temp

SELECT("Temp") && Archivo temporal
go top

store 0 to pag,sum_debe, sum_haber, d, h
SUM debe TO d
SUM haber TO h
scan all
if linea=1
=Cabecera()
ENDIF
=imprimeLinea()
ENDSCAN

if linea#60
do totales
endif
CLOSE DATABASES

set printer to defa
********************
PROCEDURE cabecera
********************
"TITULOS"
........
=q_cuenta()
......
......
inea=linea+19
return
*
********************
PROCEDURE cabecera1
********************
"TITULOS"
.......
......
=q_cuenta()
.......
.......
linea=linea+20
return

***********************
procedure imprimeLinea
************************
linea=linea+1
IF temp.lcta#cuenta &&Aqui me imprime por cuenta y salta a la pag sgte pero me falta hacer cuando la cuenta abarque en mas de una hoja.
=t_cuenta()
EJECT
=cabecera()
ENDIF
??? SPACE(5)+fec_ope+SPACE(8)+padr(n_asiento,3)+space(8)+padr(nom_glosa,85)+;
space(6)+transform(debe,'###,###,###.##')+SPACE(5)+transform(haber,'###,###,###.##')+chr(13)+chr(10) &&+padr(cod_cta,10)+space(2)+padr(denom,31)+; &&+padr(tipo_doc,20)
sum_debe=sum_debe+debe
sum_haber=sum_haber+haber
return

******************
Procedure totales
******************
saldo_ant_debe=nGSLdAntDebe-d &&sum_debe
saldo_ant_haber=nGSLdAntHaber-h &&sum_haber
=t_cuenta()
??? ' '+chr(13)+chr(10)
??? space(4)+replicate('=',150)+chr(13)+chr(10)
??? space(90)+' SALDO TOTAL MAYOR'+SPACE(15)+transform(d,'###,###,###.##')+SPACE(5)+transform(h,'###,###,###.##')+chr(13)+chr(10)
??? space(90)+' SALDO ANTERIOR'+space(15)+transform(saldo_ant_debe,'###,###,###.##')+SPACE(5)+transform(saldo_ant_haber,'###,###,###.##')+chr(13)+chr(10)
??? space(90)+' TOTAL GENERAL'+space(15)+transform(nGSLdAntDebe,'###,###,###.##')+SPACE(5)+transform(nGSLdAntHaber,'###,###,###.##')+chr(13)+chr(10)
??? space(4)+replicate('=',150)+chr(13)+chr(10)
return

*******************
PROCEDURE q_cuenta
*******************
STORE 0 TO sum_debe, sum_haber
cuenta=temp.lcta && guarda codigo de cuenta
nomcta=IIF( Seek(cuenta,"p1"), Subst(Alltrim(p1.desc),1,40), "No hay Cuenta")
??? SPACE(4)+"CUENTA:"+" "+ALLTRIM(cuenta)+" - "+UPPER(nomcta)+chr(13)+chr(10)
RETURN

*******************
PROCEDURE t_cuenta
*******************
??? ' '+chr(13)+chr(10)
??? SPACE(70)+"TOTAL"+" "+UPPER(PADR(nomcta,40))+SPACE(7)+TRANSFORM(sum_debe,'###,###,###.##')+SPACE(5)+TRANSFORM(sum_haber,'###,###,###.##')+chr(13)+chr(10)
RETURN
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
Imágen de perfil de Mauricio

Impresion

Publicado por Mauricio (1368 intervenciones) el 17/12/2008 03:18:17
Porque no usas un SELECT? Te saldria mas practico y facil!!!!
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:Impresion

Publicado por jim (2 intervenciones) el 17/12/2008 15:20:09
Hola gracias x contestar, a q te refieres con select puedes acoplar un ejemplo?
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