Page 1 of 1
necesito una ayuda
Posted: Tue Aug 26, 2014 8:16 am
by mastintin
he realizado un reporte simple para ir cazando bugs ... una dbf con clientes , 2 areas , una de ellas titulo , otra que se repite para cada nombre de cliente.
¿ como se hace para que el reporte cree mas de una hoja ? , esiste algo que tengo que cliquear o es un bug ?
Saludos a todos.
Re: necesito una ayuda
Posted: Tue Aug 26, 2014 8:52 am
by Antonio Linares
Manuel,
Si se trata de un reporte estandard de FWH, lo más sencillo es que construyas samples\FiveDBU.prg y que abras una DBF y la imprimas.
Aqui tienes el FiveDBU ya construido:
https://bitbucket.org/fivetech/fivewin- ... 140730.zip
Re: necesito una ayuda
Posted: Tue Aug 26, 2014 9:02 am
by mastintin
Me explicado mal , yo creo el informe con easyreport y le doy a imprimir , y me sale solo una hoja ... ¿ que tengo que hacer ahora ? , se que me tienen que salir un monton de hojas ( por lo menos 5 ) , pero solo imprime una con 5 clientes ( la dbf tiene por lo menos 200 )
-------------- editado ------------------------
Me respondo en parte ... colocando en el codigo LAutobreak := .t. ya me salen multiples paginas . Ahora , ¿ donde podemos asignar si el reporte es autobreak ?
Re: necesito una ayuda
Posted: Tue Aug 26, 2014 12:00 pm
by lucasdebeltran
Manuel,
Cuando en el código se van asignando los ITEMIDS e ITEMVALUES, el flujo se controla así:
//Nueva Página
IF oVRD:nNextRow > oVRD:nPageBreak
PAGEBREAK oVRD
PRINTAREA 1 OF oVRD ;
ITEMIDS { 500,501 ,;....
ENDIF
Y un simple report:
Code: Select all
// EasyReport: Simple report
FUNCTION PrintReport( lPreview )
LOCAL oVRD, oItem, nOldCol
DEFAULT lPreview := .T.
//Open report
oVRD := VRD():New( ".\examples\EasyReportExample3.vrd", lPreview,, oWnd, ;
,,,,, IIF( lPreview, .F., .T. ) )
IF oVRD:lDialogCancel = .T.
RETURN( .F. )
ENDIF
USE .\EXAMPLES\EXAMPLE3
oVRD:AreaStart( 1 )
oVRD:PrintArea( 1 )
DO WHILE .NOT. EOF()
//Change item color
oItem := VRDItem():New( NIL, oVRD, 2, 110 )
nOldCol := oItem:nColFill
oItem:nColFill := 1
oItem:Set()
oVRD:AreaStart( 2 )
oVRD:PrintArea( 2 )
//Set old item color
oItem:nColFill := nOldCol
oItem:Set()
EXAMPLE3->(DBSKIP())
//New Page
IF oVRD:nNextRow > oVRD:nPageBreak
oVRD:PageBreak()
//Print header
oVRD:AreaStart( 1 )
oVRD:PrintArea( 1 )
ENDIF
ENDDO
//Print footer
oVRD:AreaStart( 3 )
oVRD:PrintArea( 3 )
EXAMPLE3->(DBCLOSEAREA())
//End the printout
oVRD:End()
RETURN (.T.)
Re: necesito una ayuda
Posted: Tue Aug 26, 2014 3:24 pm
by mastintin
Lucas , entiendo entonces que desde el diseñador no podremos previsualizar un reporte completamente terminado según está pues le faltan opciones de configuración que tendremos que colocar en nuestro programa "a mano " .
Gracias por la ayuda.
Re: necesito una ayuda
Posted: Tue Aug 26, 2014 9:23 pm
by cnavarro
Manuel, prueba lo siguiente
Una vez hayas creado el area y definido _, sitúa el mouse sobre la cabecera del área y pulsa boton derecho
Selecciona: Area properties ( o en lugar de estos dos pasos pulsa Ctrl+A)
En el diálogo de propiedades del area, en la opcion: Print area for each record of:
Selecciona la base de datos a la que pertenece el registro _ tienes definidos en esa area
Et voilà
Imprime todos los registros
Re: necesito una ayuda
Posted: Wed Aug 27, 2014 5:48 am
by mastintin
cnavarro wrote:Manuel, prueba lo siguiente
Una vez hayas creado el area y definido _, sitúa el mouse sobre la cabecera del área y pulsa boton derecho
Selecciona: Area properties ( o en lugar de estos dos pasos pulsa Ctrl+A)
En el diálogo de propiedades del area, en la opcion: Print area for each record of:
Selecciona la base de datos a la que pertenece el registro _ tienes definidos en esa area
Et voilà
Imprime todos los registros
Efectivamante así lo estaba haciendo pero previo he tenido que poner el lautobreak a .T. .
Otra... el area de titulo quiero que aparezca en cada una de las hojas , puedo escoger entre que aparezca después del break y entonces aparece en todas menos en la primera pagina o que aparezca en la primera pagina y entonces no aparece en las demás ....