Page 1 of 1

Consulta tecnica sobre Reporte.

PostPosted: Tue Sep 20, 2022 12:50 pm
by remtec
Amigos.

Muy buen dia.

Necesito generar un reporte que tiene 27 columnas, hoy se realiza en forma manual en Excel, tomandodo la DBF, pero me han pedido que lo genere directo desde ell sistema, incluyendo la posbilidad de generar a pdf si lo requiere el usuario.

Mi pregunta es, cual es la opcion mas adecuada para poder generar este informe, ya sea con Print, Report u otro que desconozco?

Quedo atento a sus comentarios.

Muchos saludos

Antonio

Re: Consulta tecnica sobre Reporte.

PostPosted: Tue Sep 20, 2022 1:06 pm
by karinha
Buen día. Puedes hacer fácilmente ambas clases. Aunque, con TPRINTER.PRG, tendrás un DISPLAY() mucho mejor y su control es mucho más sencillo.

Gracias,

Regards, saludos.

Re: Consulta tecnica sobre Reporte.

PostPosted: Tue Sep 20, 2022 4:14 pm
by cmsoft
Si el objetivo es simplemente pasarlo a Excel, una buena opción sería mostrarlo en un Xbrowse y usar los métodos ToExcel y Report de xbrowse
Claro que tienes que configurar bien las columnas, pero es el camino más corto.
Code: Select all  Expand view

#include "FiveWin.ch"
function Main()
   local oDlg,  oBrw, oBtn
   use customer alias "customer"

   DEFINE DIALOG oDlg SIZE 980,400 PIXEL TITLE "REPORTE y EXPORTACION RAPIDA"
   oDlg:lHelpIcon := .f.
   @ 40,10 XBROWSE oBrw SIZE -10,-10 PIXEL OF oDlg ;
      ALIAS "customer" AUTOCOLS ;
      CELL LINES FOOTERS NOBORDER  
   WITH OBJECT oBrw
      :CreateFromCode()
   END
   
   @ 08,10 BTNBMP oBtn ;
      PROMPT "Exportar" RESOURCE "EXCE" SIZE 30,30;
      PIXEL OF oDlg FLAT TOP ;
      ACTION oBrw:ToExcel()

   @ 08,50 BTNBMP oBtn ;
      PROMPT "Report" RESOURCE "IMPR" SIZE 30,30;
      PIXEL OF oDlg FLAT TOP ;
      ACTION oBrw:Report("Reporte de Personas",.t.)

   @ 08,90 BTNBMP oBtn ;
      PROMPT "Salir" RESOURCE "SALE" SIZE 30,30;
      PIXEL OF oDlg FLAT TOP ;
      ACTION oDlg:End()      

   ACTIVATE DIALOG oDlg CENTERED
   

return nil
 

Re: Consulta tecnica sobre Reporte.

PostPosted: Tue Sep 20, 2022 8:16 pm
by remtec
karinha wrote:Buen día. Puedes hacer fácilmente ambas clases. Aunque, con TPRINTER.PRG, tendrás un DISPLAY() mucho mejor y su control es mucho más sencillo.

Gracias,

Regards, saludos.


Hola João

Muchas gracias por tu amabilidad.

Saludos

Antonio

Re: Consulta tecnica sobre Reporte.

PostPosted: Tue Sep 20, 2022 8:16 pm
by remtec
karinha wrote:Buen día. Puedes hacer fácilmente ambas clases. Aunque, con TPRINTER.PRG, tendrás un DISPLAY() mucho mejor y su control es mucho más sencillo.

Gracias,

Regards, saludos.


Hola João

Muchas gracias por tu amabilidad.

Saludos

Antonio

Re: Consulta tecnica sobre Reporte.

PostPosted: Tue Sep 20, 2022 8:23 pm
by remtec
cmsoft wrote:Si el objetivo es simplemente pasarlo a Excel, una buena opción sería mostrarlo en un Xbrowse y usar los métodos ToExcel y Report de xbrowse
Claro que tienes que configurar bien las columnas, pero es el camino más corto.
Code: Select all  Expand view

#include "FiveWin.ch"
function Main()
   local oDlg,  oBrw, oBtn
   use customer alias "customer"

   DEFINE DIALOG oDlg SIZE 980,400 PIXEL TITLE "REPORTE y EXPORTACION RAPIDA"
   oDlg:lHelpIcon := .f.
   @ 40,10 XBROWSE oBrw SIZE -10,-10 PIXEL OF oDlg ;
      ALIAS "customer" AUTOCOLS ;
      CELL LINES FOOTERS NOBORDER  
   WITH OBJECT oBrw
      :CreateFromCode()
   END
   
   @ 08,10 BTNBMP oBtn ;
      PROMPT "Exportar" RESOURCE "EXCE" SIZE 30,30;
      PIXEL OF oDlg FLAT TOP ;
      ACTION oBrw:ToExcel()

   @ 08,50 BTNBMP oBtn ;
      PROMPT "Report" RESOURCE "IMPR" SIZE 30,30;
      PIXEL OF oDlg FLAT TOP ;
      ACTION oBrw:Report("Reporte de Personas",.t.)

   @ 08,90 BTNBMP oBtn ;
      PROMPT "Salir" RESOURCE "SALE" SIZE 30,30;
      PIXEL OF oDlg FLAT TOP ;
      ACTION oDlg:End()      

   ACTIVATE DIALOG oDlg CENTERED
   

return nil
 


Hola Amigo Cesar.

Como estas?

Muchas gracias por tu ayuda.

Lo que se necesita es reemplazar el método actual y llevarlo a una opción que permita imprimir el informe, llevarlo a PDF o Excel, según sea el requerimiento de momento, mi complicación esta por la cantidad de columnas.

Considerando esta opción, tendría que crear una base especial, para poder grabar los datos necesarios y dejarlos listos para pasar la dbf a Xbrowse, la idea que pueda salir con los totales en las columnas que se requiera y se defina, pero creo que esto ya complicaría el Xbrowse!!

Muchas gracias y muchos saludos

Antonio

Re: Consulta tecnica sobre Reporte.

PostPosted: Wed Sep 21, 2022 11:28 am
by karinha
Antonio,

Buen día. Haga que el .DBF esté disponible en el Mega Upload y veré si puedo crear algo para usted.

Regards, saludos.

Re: Consulta tecnica sobre Reporte.

PostPosted: Wed Sep 21, 2022 7:41 pm
by remtec
karinha wrote:Antonio,

Buen día. Haga que el .DBF esté disponible en el Mega Upload y veré si puedo crear algo para usted.

Regards, saludos.


Hola João

Buenas tardes.

Muchas gracias y muy amable.

Te dejo un Link para bajar una Dbf.

Muchos Saludos
Antonio

https://drive.google.com/file/d/1SZ2Ntu ... sp=sharing

Re: Consulta tecnica sobre Reporte.

PostPosted: Thu Sep 22, 2022 12:05 pm
by karinha
Antonio, Se requiere permiso.

Use Mega Upload, és más simples:

https://mega.nz/

Regards, saludos.

Re: Consulta tecnica sobre Reporte.

PostPosted: Thu Sep 22, 2022 4:49 pm
by remtec
karinha wrote:Antonio, Se requiere permiso.

Use Mega Upload, és más simples:

https://mega.nz/

Regards, saludos.


Hola João

Muchas gracias por su preocupacion.

Libere el acceso al link, para bajar el archivo, es de pocos registros.

Muchos Saludos

Antonio.

Re: Consulta tecnica sobre Reporte.

PostPosted: Thu Sep 22, 2022 6:22 pm
by karinha
remtec wrote:
karinha wrote:Antonio, Se requiere permiso.

Use Mega Upload, és más simples:

https://mega.nz/

Regards, saludos.


Hola João

Muchas gracias por su preocupacion.

Libere el acceso al link, para bajar el archivo, es de pocos registros.

Muchos Saludos

Antonio.


Antonio, mira se ayuda. Usando REPORT.PRG

Dudas, pregunte.

link para download:

https://mega.nz/file/1dcU3brC#SmftI20Eq1EOZRt-AZmAYgLJu4XlH83JXZL8UBRzxW4

Regards, saludos.

Re: Consulta tecnica sobre Reporte.

PostPosted: Thu Sep 22, 2022 9:23 pm
by remtec
karinha wrote:
remtec wrote:
karinha wrote:Antonio, Se requiere permiso.

Use Mega Upload, és más simples:

https://mega.nz/

Regards, saludos.


Hola João

Muchas gracias por su preocupacion.

Libere el acceso al link, para bajar el archivo, es de pocos registros.

Muchos Saludos

Antonio.


Antonio, mira se ayuda. Usando REPORT.PRG

Dudas, pregunte.

link para download:

https://mega.nz/file/1dcU3brC#SmftI20Eq1EOZRt-AZmAYgLJu4XlH83JXZL8UBRzxW4

Regards, saludos.


Hola João

Muchas gracias por tu ayuda y tiempo dedicado.

He visto tu código, la diferencia con lo que me están pidiendo, es reemplazar la planilla Excel manual, que tiene por cada código, 28 columnas y no puedo modificar el formato, de todas formas seguiré viendo si logo adaptarlo.

Muchos saludos

Antonio

Re: Consulta tecnica sobre Reporte.

PostPosted: Fri Sep 23, 2022 12:22 pm
by karinha
Antonio, mira se ayuda:

Code: Select all  Expand view

// C:\FWH\SAMPLES\EXCELREM.PRG - kapiabafwh@gmail.com - 23/09/2022

#Include "FiveWin.ch"

// Defines para o segundo parâmetro - Ejemplo by Rochinha. FiveWin Brasil.

#define xlCSV            6 //        CSV    *.csv
#define xlCSVMSDOS      24 //        MSDOS CSV    *.csv
#define xlCSVWindows    23 //        Windows CSV    *.csv
#define xlDBF3           8 //        Dbase 3 format    *.dbf
#define xlExcel8        56 //        Excel 97-2003 Workbook    *.xls
#define xlHtml          44 //        HTML format    *.htm; *.html
#define xlTextMSDOS     21 //        MSDOS Text    *.txt

FUNCTION Main()

   HB_GCALL( .F. )

   SET CENTURY ON
   SET DATE BRITISH
   SET TIME FORMAT TO "HH:MM:SS"
   SET EPOCH TO YEAR( DATE() ) - 30
   SET SOFTSEEK OFF
   SET WRAP ON
   SETCANCEL( .F. )
   SET CONFIRM OFF
   SET DELETED ON
   SET _3DLOOK ON
   SET UNIQUE OFF
   SET ESCAPE OFF
   SET EXACT ON  // CONTROLA O :=, = e ==
   SET EXCLUSIVE OFF
   SET MULTIPLE OFF

   MsgRun( "AGUARDE... ABRINDO OS BANCOS DE DADOS.   ",                      ;
           "Por Favor, Espere Abertura. Pode demorar.",                      ;
           { || WinExec( Excel_Remtec() ), 3 } )

   DbCommitAll()
   DbUnLockAll()
   DbCloseAll()
   FreeResources()
   Release All
   SysRefresh()
   HB_GCALL( .T. )

   CLEAR MEMORY

   PostQuitMessage( 0 )

   QUIT

RETURN NIL

FUNCTION Excel_Remtec()

   LOCAL oExcel, oWorkbook, oWorksheet

   TRY

      oExcel := TOleAuto():New( "Excel.Application" )

   CATCH

      TRY

         oExcel = CreateObject( "Excel.Application" )

      CATCH

         MsgInfo( "Excel is not installed on this PC. " + ;
                  "You need Excel to continue", "Ooooopppsss" )

         RETURN( .F. )

      END

   END

   oWorkbook := oExcel:WorkBooks

   // Apertura del *.DBF
   oWorkbook:Open( "c:\temp\REMTEC.DBF" )

   oExcel:DisplayAlerts := .F.
   oExcel:Visible       := .T.

   oWorksheet := oExcel:Get( "ActiveSheet" )

   // Graba
   oWorksheet:SaveAs( "c:\temp\tabela.CSV",  6 ) // Segundo parâmetro informa o tipo de saída
   oWorksheet:SaveAs( "c:\temp\tabela.XLS", 56 ) // Segundo parâmetro informa o tipo de saída

RETURN NIL
// FIN
 


Regards, saludos.