FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Treport de Tabla SQL con FWH nativo ( parte 2 ) resuelto
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Treport de Tabla SQL con FWH nativo ( parte 2 ) resuelto
Posted: Fri Mar 18, 2022 03:37 PM
Hola queridos compañeros del foro.

Descargo de un WS y guardo los datos en una tabla mysql con la clase nativa de FWH
Tiro un browse y veo los datos del recordset maravillosamente.

Con esta función, intento generar un reporte en pdf de dichos dat
Code (fw): Select all Collapse
FUNCTION InfDesoaPdf( oRs, wfecha, wHorainic, wHorafin, lpdf )
     LOCAL oReport, oBmp, oPrn, whora
     whora:= Time()
     whora:= Substr(whora, 1, 2) + Substr(whora, 4, 2)
                                                                 
     lpdf:=.f.   //pasar a .t.
     oRs:Gotop()
     
     DEFINE FONT oFont1 NAME "Arial" SIZE 0,-10
     IF lPdf:=.t.
          PRINT oPrn FILE ".\PDFS\" + wfecha + "-" + whora + ".pdf"
          
          REPORT oReport ;
               TITLE  "*** Informe de Entrada al Desosado ***",;
                    wfecha + " de las " + wHorainic + " hasta las " + wHoraFin ;
               HEADER "Fecha: " + dtoc(date()),;
                    "Hora:  " + time() ;
                    RIGHT ;
                    FOOTER "Página: " + str(oReport:nPage,4) ;
                    CENTERED ;
                    TO DEVICE oPrn 
     ELSE
          REPORT oReport ;
          TITLE  "*** Informe de Entrada al Desosado ***",;
               wfecha + " de las " + wHorainic + " hasta las " + wHoraFin ;
          HEADER "Fecha: " + dtoc(date()), ;
               "Hora:  " + time() ;
               RIGHT ;
               FOOTER "Página: " + str(oReport:nPage,4) ;
               PREVIEW ;
               CENTERED          
     ENDIF

     COLUMN TITLE "Hora"     ;
          DATA oRs:Hora      ;
          PICTURE "XXXXXXXX" ;
          SIZE 14            ;
          FONT 1

     COLUMN TITLE "Cantidad" ;
          DATA oRs:Cantidad  ;
          PICTURE "999"      ;
          SIZE 14            ;
          FONT 1

     COLUMN TITLE "P. Neto"  ;   
          DATA oRs:PesoNeto  ;
          PICTURE "999.99"   ;
          SIZE 14            ;           
          TOTAL

          
     COLUMN TITLE "Hora"  ;   
          DATA oRs:PesoNeto  ;
          PICTURE "XXXXXXXX"   ;
          SIZE 14            ;

          
     GROUP ON oRs:ProductoId ;
          HEADER "Producto: " + oRs:ProductoId
     
     END REPORT
     
     oReport:bInit := {|| oRs:Gotop()}
     oReport:bSkip := {|| oRs:Skip()}
     
     ACTIVATE REPORT oReport ON STARTGROUP oReport:NewLine()  ;
                             ON STARTPAGE StartPage()

RETURN NIL


Me hace el reporte pero en blanco, y no me doy cuenta dónde está mal.
Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 400
Joined: Fri May 11, 2007 08:20 PM
Re: Treport de Tabla SQL con FWH nativo ( parte 2 )
Posted: Fri Mar 18, 2022 04:20 PM
prueba asi:
Code (fw): Select all Collapse
FUNCTION InfDesoaPdf( oRs, wfecha, wHorainic, wHorafin, lpdf )
     LOCAL oReport, oBmp, oPrn, whora
     whora:= Time()
     whora:= Substr(whora, 1, 2) + Substr(whora, 4, 2)
                                                                 
     lpdf:=.f.   //pasar a .t.
     oRs:movefirst()
     
     DEFINE FONT oFont1 NAME "Arial" SIZE 0,-10
     IF lPdf:=.t.
          PRINT oPrn FILE ".\PDFS\" + wfecha + "-" + whora + ".pdf"
         
          REPORT oReport ;
               TITLE  "*** Informe de Entrada al Desosado ***",;
                    wfecha + " de las " + wHorainic + " hasta las " + wHoraFin ;
               HEADER "Fecha: " + dtoc(date()),;
                    "Hora:  " + time() ;
                    RIGHT ;
                    FOOTER "Página: " + str(oReport:nPage,4) ;
                    CENTERED ;
                    TO DEVICE oPrn
     ELSE
          REPORT oReport ;
          TITLE  "*** Informe de Entrada al Desosado ***",;
               wfecha + " de las " + wHorainic + " hasta las " + wHoraFin ;
          HEADER "Fecha: " + dtoc(date()), ;
               "Hora:  " + time() ;
               RIGHT ;
               FOOTER "Página: " + str(oReport:nPage,4) ;
               PREVIEW ;
               CENTERED          
     ENDIF

     COLUMN TITLE "Hora"     ;
          DATA oRs:Hora      ;
          PICTURE "XXXXXXXX" ;
          SIZE 14            ;
          FONT 1

     COLUMN TITLE "Cantidad" ;
          DATA oRs:Cantidad  ;
          PICTURE "999"      ;
          SIZE 14            ;
          FONT 1

     COLUMN TITLE "P. Neto"  ;  
          DATA oRs:PesoNeto  ;
          PICTURE "999.99"   ;
          SIZE 14            ;          
          TOTAL

         
     COLUMN TITLE "Hora"  ;  
          DATA oRs:PesoNeto  ;
          PICTURE "XXXXXXXX"   ;
          SIZE 14            ;

         
     GROUP ON oRs:ProductoId ;
          HEADER "Producto: " + oRs:ProductoId
     
     END REPORT
     
     oReport:bInit := {|| oRs:movefirst()}
     oReport:bSkip := {|| oRs:movenext()}
     
     ACTIVATE REPORT oReport ON STARTGROUP oReport:NewLine()  ;
                             ON STARTPAGE StartPage()

RETURN NIL
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Re: Treport de Tabla SQL con FWH nativo ( parte 2 )
Posted: Fri Mar 18, 2022 04:46 PM
artu01 wrote:prueba asi:
Code (fw): Select all Collapse
FUNCTION InfDesoaPdf( oRs, wfecha, wHorainic, wHorafin, lpdf )
     LOCAL oReport, oBmp, oPrn, whora
     whora:= Time()
     whora:= Substr(whora, 1, 2) + Substr(whora, 4, 2)
                                                                 
     lpdf:=.f.   //pasar a .t.
     oRs:movefirst()
     
     DEFINE FONT oFont1 NAME "Arial" SIZE 0,-10
     IF lPdf:=.t.
          PRINT oPrn FILE ".\PDFS\" + wfecha + "-" + whora + ".pdf"
         
          REPORT oReport ;
               TITLE  "*** Informe de Entrada al Desosado ***",;
                    wfecha + " de las " + wHorainic + " hasta las " + wHoraFin ;
               HEADER "Fecha: " + dtoc(date()),;
                    "Hora:  " + time() ;
                    RIGHT ;
                    FOOTER "Página: " + str(oReport:nPage,4) ;
                    CENTERED ;
                    TO DEVICE oPrn
     ELSE
          REPORT oReport ;
          TITLE  "*** Informe de Entrada al Desosado ***",;
               wfecha + " de las " + wHorainic + " hasta las " + wHoraFin ;
          HEADER "Fecha: " + dtoc(date()), ;
               "Hora:  " + time() ;
               RIGHT ;
               FOOTER "Página: " + str(oReport:nPage,4) ;
               PREVIEW ;
               CENTERED          
     ENDIF

     COLUMN TITLE "Hora"     ;
          DATA oRs:Hora      ;
          PICTURE "XXXXXXXX" ;
          SIZE 14            ;
          FONT 1

     COLUMN TITLE "Cantidad" ;
          DATA oRs:Cantidad  ;
          PICTURE "999"      ;
          SIZE 14            ;
          FONT 1

     COLUMN TITLE "P. Neto"  ;  
          DATA oRs:PesoNeto  ;
          PICTURE "999.99"   ;
          SIZE 14            ;          
          TOTAL

         
     COLUMN TITLE "Hora"  ;  
          DATA oRs:PesoNeto  ;
          PICTURE "XXXXXXXX"   ;
          SIZE 14            ;

         
     GROUP ON oRs:ProductoId ;
          HEADER "Producto: " + oRs:ProductoId
     
     END REPORT
     
     oReport:bInit := {|| oRs:movefirst()}
     oReport:bSkip := {|| oRs:movenext()}
     
     ACTIVATE REPORT oReport ON STARTGROUP oReport:NewLine()  ;
                             ON STARTPAGE StartPage()

RETURN NIL


Muchas gracias por tu sugerencia artu01, lo probé y el resultado es el mismo.

Lo curioso es que si hago un xbrowse(oRs) despues del primer xbrowse:movefirst (antes del reporte) me muestra todos los registros, pero en el listado no salen.

Alguna otra sugerencia?
Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 400
Joined: Fri May 11, 2007 08:20 PM
Re: Treport de Tabla SQL con FWH nativo ( parte 2 )
Posted: Fri Mar 18, 2022 05:02 PM
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Re: Treport de Tabla SQL con FWH nativo ( parte 2 )
Posted: Fri Mar 18, 2022 05:35 PM

Gracias Artu01 nuevamente por tu mensaje.

El problema de pdf se resolvió ya, puedo generar el pdf y la previsualización e imprimir el reporte.

El tema es que el reporte sale sin líneas, cabezal titulos del detalle y nada más

https://ibb.co/C9SRSrt

Sin embargo la tabla tiene 2000 registros mas o menos

Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: Treport de Tabla SQL con FWH nativo ( parte 2 )
Posted: Fri Mar 18, 2022 07:09 PM
Pruba asi
Code (fw): Select all Collapse
FUNCTION InfDesoaPdf( oRs, wfecha, wHorainic, wHorafin, lpdf )
     LOCAL oReport, oBmp, oPrn, whora
     whora:= Time()
     whora:= Substr(whora, 1, 2) + Substr(whora, 4, 2)
                                                                 
     lpdf:=.f.   //pasar a .t.
     oRs:movefirst()
     
     DEFINE FONT oFont1 NAME "Arial" SIZE 0,-10
     IF lPdf:=.t.
          PRINT oPrn FILE ".\PDFS\" + wfecha + "-" + whora + ".pdf"
         
          REPORT oReport ;
               TITLE  "*** Informe de Entrada al Desosado ***",;
                    wfecha + " de las " + wHorainic + " hasta las " + wHoraFin ;
               HEADER "Fecha: " + dtoc(date()),;
                    "Hora:  " + time() ;
                    RIGHT ;
                    FOOTER "Página: " + str(oReport:nPage,4) ;
                    CENTERED ;
                    TO DEVICE oPrn
     ELSE
          REPORT oReport ;
          TITLE  "*** Informe de Entrada al Desosado ***",;
               wfecha + " de las " + wHorainic + " hasta las " + wHoraFin ;
          HEADER "Fecha: " + dtoc(date()), ;
               "Hora:  " + time() ;
               RIGHT ;
               FOOTER "Página: " + str(oReport:nPage,4) ;
               PREVIEW ;
               CENTERED          
     ENDIF

     COLUMN TITLE "Hora"     ;
          DATA oRs:Hora      ;
          PICTURE "XXXXXXXX" ;
          SIZE 14            ;
          FONT 1

     COLUMN TITLE "Cantidad" ;
          DATA oRs:Cantidad  ;
          PICTURE "999"      ;
          SIZE 14            ;
          FONT 1

     COLUMN TITLE "P. Neto"  ;  
          DATA oRs:PesoNeto  ;
          PICTURE "999.99"   ;
          SIZE 14            ;          
          TOTAL

         
     COLUMN TITLE "Hora"  ;  
          DATA oRs:PesoNeto  ;
          PICTURE "XXXXXXXX"   ;
          SIZE 14            ;

         
     GROUP ON oRs:ProductoId ;
          HEADER "Producto: " + oRs:ProductoId
     
     END REPORT
     
     oReport:bInit := {|| oRs:movefirst()}
     oReport:bSkip := {|| oRs:movenext()}
     
     ACTIVATE REPORT oReport WHILE !oRs:Eof() // Esta linea
    //ACTIVATE REPORT oReport ON STARTGROUP oReport:NewLine()  ON STARTPAGE StartPage() No tienes grupos definidos, y creo que no hace falta el StartPage()
  

RETURN NIL
Posts: 400
Joined: Fri May 11, 2007 08:20 PM
Re: Treport de Tabla SQL con FWH nativo ( parte 2 )
Posted: Fri Mar 18, 2022 11:51 PM
Cambia la definicion de la columna
Code (fw): Select all Collapse
FUNCTION InfDesoaPdf( oRs, wfecha, wHorainic, wHorafin, lpdf )
     LOCAL oReport, oBmp, oPrn, whora
     whora:= Time()
     whora:= Substr(whora, 1, 2) + Substr(whora, 4, 2)
                                                                 
     lpdf:=.f.   //pasar a .t.
     oRs:movefirst()
     
     DEFINE FONT oFont1 NAME "Arial" SIZE 0,-10
     IF lPdf:=.t.
          PRINT oPrn FILE ".\PDFS\" + wfecha + "-" + whora + ".pdf"
         
          REPORT oReport ;
               TITLE  "*** Informe de Entrada al Desosado ***",;
                    wfecha + " de las " + wHorainic + " hasta las " + wHoraFin ;
               HEADER "Fecha: " + dtoc(date()),;
                    "Hora:  " + time() ;
                    RIGHT ;
                    FOOTER "Página: " + str(oReport:nPage,4) ;
                    CENTERED ;
                    TO DEVICE oPrn
     ELSE
          REPORT oReport ;
          TITLE  "*** Informe de Entrada al Desosado ***",;
               wfecha + " de las " + wHorainic + " hasta las " + wHoraFin ;
          HEADER "Fecha: " + dtoc(date()), ;
               "Hora:  " + time() ;
               RIGHT ;
               FOOTER "Página: " + str(oReport:nPage,4) ;
               PREVIEW ;
               CENTERED          
     ENDIF

     COLUMN TITLE "Hora"     ;
          DATA oRs:Fields("Hora"):value      ;
          PICTURE "XXXXXXXX" ;
          SIZE 14            ;
          FONT 1

     COLUMN TITLE "Cantidad" ;
          DATA oRs:fields("Cantidad"):value  ;
          PICTURE "999"      ;
          SIZE 14            ;
          FONT 1

     COLUMN TITLE "P. Neto"  ;  
          DATA oRs:fields("PesoNeto"):value  ;
          PICTURE "999.99"   ;
          SIZE 14            ;          
          TOTAL

         
     COLUMN TITLE "Hora"  ;  
          DATA oRs:fields("PesoNeto"):value  ;
          PICTURE "XXXXXXXX"   ;
          SIZE 14            ;

         
     GROUP ON oRs:ProductoId ;
          HEADER "Producto: " + oRs:fields("ProductoId"):value
     
     END REPORT
     
     oReport:bInit := {|| oRs:movefirst()}
     oReport:bSkip := {|| oRs:movenext()}
     
     ACTIVATE REPORT oReport WHILE !oRs:Eof() // Esta linea
    //ACTIVATE REPORT oReport ON STARTGROUP oReport:NewLine()  ON STARTPAGE StartPage() No tienes grupos definidos, y creo que no hace falta el StartPage()
 

RETURN NIL
fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Re: Treport de Tabla SQL con FWH nativo ( parte 2 ) RESUELTO
Posted: Mon Mar 21, 2022 11:54 AM

artu01, César:

Muuuuchas gracias, finalmente quedó funcionando, efectivamente el While !oRs:Eof resolvió el problema.

Aprecio enormemente la ayuda que me han dado y la orientación, no dejo de admirar la disposición a ayudar de este hermoso grupo del foro.

Nuevamente MUCHISIMAS GRACIAS.

Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Treport de Tabla SQL con FWH nativo ( parte 2 ) resuelto
Posted: Tue Mar 22, 2022 10:34 AM
This sample works perfectly.
Code (fw): Select all Collapse
   local oRs, oRep, oFont, cPdf, lPdf

   oRs   := oCn:States

   cPdf  := "states.pdf"

   lPdf  := MsgYesNo( "Save to PDF?" )

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-10
   REPORT oRep PREVIEW TO FILE ( If( lPdf, cPdf, nil ) ) FONT oFont

   COLUMN DATA oRs:Code TITLE "CODE" SIZE 6 FONT 1
   COLUMN DATA oRs:Name TITLE "NAME" SIZE 30 FONT 1

   oRep:bInit  := { || oRs:GoTop() }
   oRep:bSkip  := { || oRs:Skip( 1 ) }

   ENDREPORT

   ACTIVATE REPORT oRep WHILE !oRs:Eof()

   oRs:GoTop()
Regards



G. N. Rao.

Hyderabad, India
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Re: Treport de Tabla SQL con FWH nativo ( parte 2 ) resuelto
Posted: Wed Mar 23, 2022 02:31 PM

Muchas gracias Maestro Rao

Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"

Continue the discussion