Treport de Tabla SQL con FWH nativo ( parte 2 ) resuelto

Treport de Tabla SQL con FWH nativo ( parte 2 ) resuelto

Postby jose_murugosa » Fri Mar 18, 2022 3: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: Select all  Expand view  RUN

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.
Last edited by jose_murugosa on Mon Mar 21, 2022 11:55 am, edited 1 time in total.
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
User avatar
jose_murugosa
 
Posts: 1180
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: Treport de Tabla SQL con FWH nativo ( parte 2 )

Postby artu01 » Fri Mar 18, 2022 4:20 pm

prueba asi:
Code: Select all  Expand view  RUN

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
artu01
 
Posts: 400
Joined: Fri May 11, 2007 8:20 pm
Location: Lima

Re: Treport de Tabla SQL con FWH nativo ( parte 2 )

Postby jose_murugosa » Fri Mar 18, 2022 4:46 pm

artu01 wrote:prueba asi:
Code: Select all  Expand view  RUN

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 y el teclado y la IA!!"
User avatar
jose_murugosa
 
Posts: 1180
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: Treport de Tabla SQL con FWH nativo ( parte 2 )

Postby artu01 » Fri Mar 18, 2022 5:02 pm

fwh 17.12, harbour 3.2.0, pelles C, bcc7, Ms-Sql
artu01
 
Posts: 400
Joined: Fri May 11, 2007 8:20 pm
Location: Lima

Re: Treport de Tabla SQL con FWH nativo ( parte 2 )

Postby jose_murugosa » Fri Mar 18, 2022 5: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 y el teclado y la IA!!"
User avatar
jose_murugosa
 
Posts: 1180
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: Treport de Tabla SQL con FWH nativo ( parte 2 )

Postby cmsoft » Fri Mar 18, 2022 7:09 pm

Pruba asi
Code: Select all  Expand view  RUN
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
User avatar
cmsoft
 
Posts: 1291
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Treport de Tabla SQL con FWH nativo ( parte 2 )

Postby artu01 » Fri Mar 18, 2022 11:51 pm

Cambia la definicion de la columna
Code: Select all  Expand view  RUN

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
artu01
 
Posts: 400
Joined: Fri May 11, 2007 8:20 pm
Location: Lima

Re: Treport de Tabla SQL con FWH nativo ( parte 2 ) RESUELTO

Postby jose_murugosa » 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 y el teclado y la IA!!"
User avatar
jose_murugosa
 
Posts: 1180
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: Treport de Tabla SQL con FWH nativo ( parte 2 ) resuelto

Postby nageswaragunupudi » Tue Mar 22, 2022 10:34 am

This sample works perfectly.
Code: Select all  Expand view  RUN
  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
User avatar
nageswaragunupudi
 
Posts: 10646
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Treport de Tabla SQL con FWH nativo ( parte 2 ) resuelto

Postby jose_murugosa » Wed Mar 23, 2022 2:31 pm

Muchas gracias Maestro Rao
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
User avatar
jose_murugosa
 
Posts: 1180
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: D.Fernandez, Google [Bot], Lailton, sysctrl2 and 43 guests