FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Como hacer esto
Posts: 205
Joined: Wed Sep 02, 2009 03:11 AM
Como hacer esto
Posted: Wed Dec 15, 2010 10:42 PM

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[]

Posts: 158
Joined: Tue Oct 11, 2005 03:10 PM
Re: Como hacer esto
Posted: Thu Dec 16, 2010 02:43 AM
Intenta asi


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



Saludos
Posts: 189
Joined: Fri Oct 14, 2005 12:33 AM
Re: Como hacer esto
Posted: Thu Dec 16, 2010 03:38 AM

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
Posts: 205
Joined: Wed Sep 02, 2009 03:11 AM
Re: Como hacer esto
Posted: Fri Dec 17, 2010 03:26 AM

Gracias voy a probar...

Posts: 205
Joined: Wed Sep 02, 2009 03:11 AM
Re: Como hacer esto
Posted: Fri Dec 17, 2010 03:52 AM

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

Gracias de nuevo

Continue the discussion