Ir al contenido



Foto

Algún addon para exportar a PDF con LazReport?

lrcairoexport lazreport PDF

Mejor respuesta luk2009 , 03 enero 2017 - 05:53


delphi
  1. DataModule1.frReport1.LoadFromFile('C:\lazarus\FACTURAS.lrf');
  2. DataModule1.frReport1.ShowReport;
  3. if DataModule1.frReport1.PrepareReport then
  4. DataModule1.frReport1.ExportTo(TfrTNPDFExportFilter,'C:\LAZARUS\FACTURAR.PDF');

en la prueba lo hice asi y al abrir el preview puedes imprimirlo tambien, pero luego se genera el pdf directamente sin necesidad de hacer nada. solo hay que depurarlo para que grabe con el nombre , fecha o referencia que quieras.

 

pero funciona rapido y es bastante simple

Ir al mensaje completo


  • Por favor identifícate para responder
12 respuestas en este tema

#1 Gaston

Gaston

    Advanced Member

  • Miembros
  • PipPipPip
  • 72 mensajes

Escrito 13 diciembre 2016 - 03:07

Hola gente, necesito que los reportes generados con LazReport, además de mostrar el botón de imprimir muestre un botón de exportar o guardar como PDF. No sé si es esto posible. He instalado lrcairoexport pero no sé como hacerlo funcionar, lo tiro en el data module (donde tengo las conexiones y reportes) y veo que en propiedades y eventos tiene poco y nada. En resumen no le encuentro la vuelta, tal vez exista algo más simple y no lo encuentro.

 

Saludos.


  • 0

#2 Delphius

Delphius

    Advanced Member

  • Administrador
  • 5.992 mensajes
  • LocationArgentina

Escrito 13 diciembre 2016 - 04:30

Hola gente, necesito que los reportes generados con LazReport, además de mostrar el botón de imprimir muestre un botón de exportar o guardar como PDF. No sé si es esto posible. He instalado lrcairoexport pero no sé como hacerlo funcionar, lo tiro en el data module (donde tengo las conexiones y reportes) y veo que en propiedades y eventos tiene poco y nada. En resumen no le encuentro la vuelta, tal vez exista algo más simple y no lo encuentro.

 

Saludos.

 

De lo que entiendo de lo que leo en wiki, es que es posible exportar a pdf, via código usando el filter apropiado. Pero no que sea posible hacerlo de la forma en la que pides. El diseño de la GUI del sistema de reportes ya es así y tengo mis dudas de que uno pueda "personalizarlo" cambiando algunas propiedades o jugando con algunos eventos de los componentes.

 

Si efectivamente hay alguna forma de hacerlo (que no sea alterar el código de la suite, o mediante artilugios tipos "hacks") la desconozco. El tema de reportes de por si es para mi un mundo sin explorar. Meterse a cambiar la GUI de éstos... peor. Lo que podría sugerirte es que acudas a los foros de Lazarus y preguntes ahí si alguien puede asesorarte.

 

Saludos,


  • 1

#3 Gaston

Gaston

    Advanced Member

  • Miembros
  • PipPipPip
  • 72 mensajes

Escrito 13 diciembre 2016 - 10:48

Gracias estimado Delphius, el link es la respuesta que buscaba.

 

 

An export filter is added to your application by simply dragging one of these icons to a form or data module where TfrReport component exists, this is automatically registered and remains ready to use.

This can also be done manually by including the export filter unit name in the Uses clause of the unit where TfrReport is used.

LazReport export filters are invoked using one of two ways:

  1. Save the report in the preview window. Using this method (pressing the save button) when the Save As dialog is presented, the user can choose a format from the list of registered formats. The list is populated by all registered export filters.

 

Efectivamente no hay que hacen nada más que instalar lrcairoexport y tirar el componente en el formulario o data module y automáticamente estará disponible en todos los reportes la opción de guardar como PDF, claro que no es una opción visible, sino que al ver un reporte el usuario debe guardar y luego en formatos elegir PDF. Lo ideal sería un icono en el reporte pero con esto me alcanza.

 

Saludos.


  • 0

#4 Gaston

Gaston

    Advanced Member

  • Miembros
  • PipPipPip
  • 72 mensajes

Escrito 15 diciembre 2016 - 04:10

Perdón por reabrir el tema, pero cuando tuve que compilar el sistema para Windows, este componente lrcairoexport me arruinó el día, y la IDE Lazarus, me explico, lo instalé, se reconstruyó la IDE y no inició nunca más largando el error de que falta una dll, más precisamente libcairo-2.dll. Busqué y vi que no tiene solución para Windows XP que es lo que uso para compilar. Descargué la dll, renombré el lazarus.exe.old a lazarus.exe, y luego me tiró que faltaba otra dll más. En una palabra se rompió. A instalar todo de nuevo y olvidarme de lrcairoexport, por ende, necesito algún componente para exportar a PDF que funcione en Windows, o tal vez probar con CodeTyphon? alguien lo utiliza?

 

Saludos.


  • 0

#5 Delphius

Delphius

    Advanced Member

  • Administrador
  • 5.992 mensajes
  • LocationArgentina

Escrito 15 diciembre 2016 - 04:41

Perdón por reabrir el tema, pero cuando tuve que compilar el sistema para Windows, este componente lrcairoexport me arruinó el día, y la IDE Lazarus, me explico, lo instalé, se reconstruyó la IDE y no inició nunca más largando el error de que falta una dll, más precisamente libcairo-2.dll. Busqué y vi que no tiene solución para Windows XP que es lo que uso para compilar. Descargué la dll, renombré el lazarus.exe.old a lazarus.exe, y luego me tiró que faltaba otra dll más. En una palabra se rompió. A instalar todo de nuevo y olvidarme de lrcairoexport, por ende, necesito algún componente para exportar a PDF que funcione en Windows, o tal vez probar con CodeTyphon? alguien lo utiliza?

 

Saludos.

 

:( Cuanto lo lamento.

Yo no he probado con esos componentes; de hecho no he probado ningún sistema de reportes. No he tenido la oportunidad de utilizarlos.

No te sabría recomendar alguna alternativa.

Y creería (y es lo más probable) que sucediera lo mismo si utilizaras los mismos componentes en CodeTyphon.

 

En CodeTyphon 5.6 (el que utilizo) viene incluído otra suite de reportes llamada Fortes Reports. Creo que esta es la página oficial. Buscando como "report" esta suite y la por defecto (LazReports) no aparece otra más instalada. Si hay otras más, le desconozco el nombre.

 

La comunidad de Lazarus puede ayudarte mucho más que yo en esto. Se que hay otros compañeros que usan Lazarus y/o CodeTyphon, es posible que otros hayan tenido mejores experiencias en este tema y puedan asesorarte.

 

Saludos,


  • 1

#6 Gaston

Gaston

    Advanced Member

  • Miembros
  • PipPipPip
  • 72 mensajes

Escrito 15 diciembre 2016 - 05:28

Así es, una lástima, lo tenía que entregar mañana, de echo, por eso necesité compilar para Win, mala suerte, cosas que pasan. Me daré una vuelta por ese foro a ver si hay algo. Gracias Delphius, saludos.


  • 0

#7 luk2009

luk2009

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.005 mensajes
  • LocationSanto Domingo

Escrito 03 enero 2017 - 11:08

http://delphiaccess....rt/?hl=powerpdf

 

revisa este hilo, talvez te sirva de ayuda


  • 1

#8 Gaston

Gaston

    Advanced Member

  • Miembros
  • PipPipPip
  • 72 mensajes

Escrito 03 enero 2017 - 04:00

http://delphiaccess....rt/?hl=powerpdf

 

revisa este hilo, talvez te sirva de ayuda

 

Gracias, lo probaré en una VM por las dudas... Una pregunta, ví en el enlace que utilizas preparereport y luego export, en mi caso tengo todo hecho con loadfromfile y luego showreport. Con lrcairoexport no tenía problemas porque me añadía la extensión PDF en "guardar como" de la vista previa. En este caso tendría que poner en el form dos botones? uno para imprimir y otro para exportar a PDF?


  • 0

#9 luk2009

luk2009

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.005 mensajes
  • LocationSanto Domingo

Escrito 03 enero 2017 - 05:53   Mejor respuesta


delphi
  1. DataModule1.frReport1.LoadFromFile('C:\lazarus\FACTURAS.lrf');
  2. DataModule1.frReport1.ShowReport;
  3. if DataModule1.frReport1.PrepareReport then
  4. DataModule1.frReport1.ExportTo(TfrTNPDFExportFilter,'C:\LAZARUS\FACTURAR.PDF');

en la prueba lo hice asi y al abrir el preview puedes imprimirlo tambien, pero luego se genera el pdf directamente sin necesidad de hacer nada. solo hay que depurarlo para que grabe con el nombre , fecha o referencia que quieras.

 

pero funciona rapido y es bastante simple


  • 1

#10 Gaston

Gaston

    Advanced Member

  • Miembros
  • PipPipPip
  • 72 mensajes

Escrito 03 enero 2017 - 09:37


delphi
  1. DataModule1.frReport1.LoadFromFile('C:\lazarus\FACTURAS.lrf');
  2. DataModule1.frReport1.ShowReport;
  3. if DataModule1.frReport1.PrepareReport then
  4. DataModule1.frReport1.ExportTo(TfrTNPDFExportFilter,'C:\LAZARUS\FACTURAR.PDF');

en la prueba lo hice asi y al abrir el preview puedes imprimirlo tambien, pero luego se genera el pdf directamente sin necesidad de hacer nada. solo hay que depurarlo para que grabe con el nombre , fecha o referencia que quieras.

 

pero funciona rapido y es bastante simple

 

 

Eso de poder guardarlo sin que intervenga el usuario me viene como anillo al dedo ya que el sistema que tengo que reemplazar lo hace con Crystal Reports y los usuarios están acostumbrados. Para el nombre de archivo uso DecoDateTime y con eso armo nombres únicos.

Gran aporte, muchas gracias.

 

Por mi parte tema resuelto.


  • 0

#11 Gaston

Gaston

    Advanced Member

  • Miembros
  • PipPipPip
  • 72 mensajes

Escrito 09 febrero 2017 - 08:06

Hola luk2009 estoy implementando esto y me encuentro con un error, no se encuentra el identificador TfrTNPDFExportFilter

Si bien tiré el componente en el datamodule y en el mismo me agregó frTNPDFExport1: TfrTNPDFExport;

desde la unit donde genero el reporte y lo muestro cuando quiero invocarlo de la forma:


delphi
  1. if DataModule1.frReport1.PrepareReport then
  2. DataModule1.frReport1.ExportTo(TfrTNPDFExportFilter,'C:\LAZARUS\FACTURAR.PDF');

pasa eso, no encuentra el identificador.

Lo curioso, es que en la unidad del datamodule sí lo encuentra, es decir, comienzo a escribit TfrTN y autocompletar y sale.

No faltará algún paso? debería declarar el componente también en la unit además de en el datamodule?

 

Saludos.


  • 0

#12 Delphius

Delphius

    Advanced Member

  • Administrador
  • 5.992 mensajes
  • LocationArgentina

Escrito 09 febrero 2017 - 08:13

Hola luk2009 estoy implementando esto y me encuentro con un error, no se encuentra el identificador TfrTNPDFExportFilter

Si bien tiré el componente en el datamodule y en el mismo me agregó frTNPDFExport1: TfrTNPDFExport;

desde la unit donde genero el reporte y lo muestro cuando quiero invocarlo de la forma:


delphi
  1. if DataModule1.frReport1.PrepareReport then
  2. DataModule1.frReport1.ExportTo(TfrTNPDFExportFilter,'C:\LAZARUS\FACTURAR.PDF');

pasa eso, no encuentra el identificador.

Lo curioso, es que en la unidad del datamodule sí lo encuentra, es decir, comienzo a escribit TfrTN y autocompletar y sale.

No faltará algún paso? debería declarar el componente también en la unit además de en el datamodule?

 

Saludos.

 

Agrega en uses la unit donde está definido el filter.

 

Saludos,


  • 1

#13 Gaston

Gaston

    Advanced Member

  • Miembros
  • PipPipPip
  • 72 mensajes

Escrito 09 febrero 2017 - 10:54

 

Agrega en uses la unit donde está definido el filter.

 

Saludos,

 

Sí señor, muchísimas gracias. Funciona todo correctamente.

 

Saludos.


  • 0





Etiquetado también con una o más de estas palabras: lrcairoexport, lazreport, PDF