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 ....