Como hacer esto

Post Reply
JoseGS
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am

Como hacer esto

Post by JoseGS »

Hola amigos del foro
La funcion que incluyo la utilizo para imprimir una lista de transacciones contables comprendidas entre una fecha de inicio y una final. Pero antes de iniciar la impresion quiero que en la primera linea del informe me aparezca el saldo de la cuenta hasta la fecha de inicio... Todo funciona bien siempre que en el periodo comprendido entre las fechas existan transacciones, en caso contrario, el programa me presenta el saldo hasta la fecha de inicio pero al no tener transacciones para imprimir, las lineas finales del informe salen escritas sobre el valor que intento presentar... He intentado utilizar oReport:NewLine() para que haya una separacion entre la cifra y las lineas pero no sucede nada...

La pregunta es como puede hacer para insertar una linea en blanco entre la linea del HEADER y las lineas de totales...
Espero haberme hecho entender.

Gracias por sus sugerencias

FUNC REPCTA(dF1,dF2)
LOCAL R:=TRANSAC->(RECNO()),nSAL:=0
SELE TRANSAC
DBGOTOP()
DO WHILE !EOF()
IF FIELD->FECHA<dF1
nSAL+=FIELD->DEBITO-FIELD->CREDITO
ENDIF
SKIP
ENDDO
DBGOTOP()
REPORT oReport TITLE aConfig[5],'Listado de cuenta contable #'+ALLTRIM(CODIFIC->COD_CUENT)+' '+ALLTRIM(CODIFIC->NOM_CUENT),'Desde :'+DTOC(dF1)+' Hasta: '+DTOC(dF2) PREVIEW FONT oFont8,oFont10,oFont12,oFont14 PEN oPen1 HEADER "Pagina No. "+STR(oReport:nPage,3) RIGHT CAPTION 'Cuenta contable' FOOTER WHO()
COLUMN TITLE "#DOCUMENTO" DATA FIELD->NUMDOCU FONT 1
COLUMN TITLE "FECHA" DATA FIELD->FECHA FONT 1 CENTER
COLUMN TITLE "DEBITOS" DATA FIELD->DEBITO FONT 1 TOTAL PICTURE "99999,999.99"
COLUMN TITLE "CREDITOS" DATA FIELD->CREDITO FONT 1 TOTAL PICTURE "99999,999.99"
COLUMN TITLE "SALDO" DATA FIELD->SALDO FONT 1 PICTURE "99999,999.99"
COLUMN TITLE "COMENTARIO" DATA MEMOLINE(FIELD->COMENTARIO,50,1) FONT 1
GROUP ON .T. HEADER "Saldo inicial al "+DTOC(dF1)
IF(lCUADRIC,oReport:CellView(),)
END REPORT
oReport:lPageTotal:=.F.
ACTIVATE REPORT oReport FOR FIELD->FECHA>=dF1 .AND. FIELD->FECHA<=dF2 ON INIT (oReport:Say(5,TRANSFORM(nSal,'99999,999.99'),2,2))
TRANSAC->(DBGOTO(R))
RETU[]
ricardog
Posts: 149
Joined: Tue Oct 11, 2005 3:10 pm

Re: Como hacer esto

Post by ricardog »

Intenta asi

Code: Select all

 Activate Report oRep WHILE ... ;
                ON STARTGROUP (oRep:NewLine(),;
                               oRep:EndLine(),;
                               oRep:Say(0,"Cliente: "+cCliente,2,,oRep:nRow))

Saludos
User avatar
jllinas
Posts: 189
Joined: Fri Oct 14, 2005 12:33 am
Location: Santo Domingo, Dominican Republic
Contact:

Re: Como hacer esto

Post by jllinas »

Amigo,

El truco está en incluir la instrucción oReport:EndLine(). Probablemente deba estar después del SAY en GROUP. Prueba varios escenarios.

Suerte,
Julio Llinás
Visita mi Blog en http://mangucybernetico.blogspot.com/
xHarbour 1.1.0 + FWH810 + Borland 5.5.1
JoseGS
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am

Re: Como hacer esto

Post by JoseGS »

Gracias voy a probar...
JoseGS
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am

Re: Como hacer esto

Post by JoseGS »

En efecto, funciono con EndLine() despues del SAY y por medio del ON INIT

Gracias de nuevo
Post Reply