Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-10-2010
rolandoj rolandoj is offline
Miembro
 
Registrado: abr 2007
Posts: 395
Poder: 18
rolandoj Va por buen camino
Question Solicito consejo para generar un documento totalmente dinámico

Hola a todos,

Agradezco me aconsejen como para resolver el siguiente problema:

Debo imprimir un documento totalmente dinámico, a partir de una lista de campos y de formatos introducidos por usuarios. Esto es esencialmente la misma idea de la generación de páginas Web dinámicas con TPageProducer; o sea:

Existe un registro con los valores actuales de n campos; pero, la posición y el orden en que se van a imprimir no es conocida de antemano. Para ello, el usuario haría modelos de documentos, parametrizados mediante marcadores con el nombre de un campo, indicando la posición de despliegue de cada campo. Estos modelos deben soportar un formateo básico (alineación justificada, centrada, etc; varios tipos de fuentes, y cosas similares).

El software debe hacer un parser de ese documento, encontrar las posiciones de los campos y reemplazarlos por los valores actuales. El resultado es el documento a imprimir.

La lógica es clara y facil de codificar; pero, al momento de imprimir, que técnología me brinda el mejor soporte ?

Mis dos opciones básicas son :

A. Que un componente Memo de un reporteador imprima el texto formateado. En ese caso necesito un componente de impresión de Memo que soporte un texto formateado con las especificaciones dadas. Normalmente uso QuickReport; pero el TQRMemo standard no soporta las características y el TQRRichText solo algunas, no produciría un documento de calidad. Alguién conoce componentes que lo hagan ?, quizás en otro reporteador ?

B. Generar directamente un archivo en PDF o Word, o algo similar, y mandar a imprimir el archivo. Que componente podría usar ?.

Nota 1: Descarten la automatización OLE. Serviría; pero, he detectado problemas de compatibilidad.

Nota 2: Debe funcionar con Delphi 2007, o con Delphi 4 (preferiblemente)
Responder Con Cita
  #2  
Antiguo 05-10-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.285
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Además de las opciones que comentas, creo que te has olvidado de la más "rapida" o al menos es la que primero se me ocurriría a mí. La de un componente que permita generar reportes en ejecución.
En el caso de QR, si no recuerdo mal, existía QRDesign; Aunque en su momento me suena haber leído sobre otros similares. Es un pequeño diseñador que pueden usar los usuarios finales. Con un poco de práctica se pueden generar y personalizar sus listados. Se trata de arrastrar los campos donde quieran, cambiar los tipos de letra y poco más.

La segunda opción, es utilizar por ejemplo Word o Writer (OpenOffice), generar la plantilla en Word/Writer (como para realizar una Combinación de Correspondencia o MailMerge) y luego desde programa generar los datos y realizar por código (automatización) esa combinación. Tienes que escribir más código, la automatización no es sencilla y puedes tener problemas de versiones (no con Delphi, sino con las versiones de Word -con Writer no lo he probado-).

Por último puedes trabajar directamente con TRichEdit (o similar), sin el Reporteador, puesto que TRichEdit ya posee el método de Imprimir (bastante básico, pero puedes probar si te es suficiente). Que el usuario "diseñe" el listado sobre el RichEdit con referencias a donde quieres los campos (tipo <<NOMBRE>>, <<DIRECCION>>,...) y luego tú por programa haces las sustituciones y lanzas la impresión.

Espero no haberte liado más de lo que estabas.

Un saludo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 05-10-2010
rolandoj rolandoj is offline
Miembro
 
Registrado: abr 2007
Posts: 395
Poder: 18
rolandoj Va por buen camino
Gracias. Comentarios

Hola Neftali,

Muchas gracias por el apoyo. Veo que entendistes perfectamente lo que estoy buscando. Te comento lo siguiente:

1. Respecto a lo que dices de problemas con las versiones de Word, etc, y no con Delphi, estoy totalmente de acuerdo. De hecho, cuando dije que descartaba la automatización OLE fué precisamente porque en un proyecto anterior implementé así un caso similar. Funcionó muy bien; pero después se armó un problema grave cuando salió la nueva versión de Office.

2. Lo que dices del TRichEdit, conceptualmente es exactamente lo que quiero; el problema es que le falta cierta capacidad de formateo y por ello los documentos no salen muy bien presentados.

3. El QRDesign que mencionas no es un componente standard de QuickReport. Voy a investigar sobre él
Responder Con Cita
  #4  
Antiguo 06-10-2010
Jab Jab is offline
Miembro
 
Registrado: feb 2008
Posts: 83
Poder: 0
Jab cantidad desconocida en este momento
¿Por qué no usas el FreeReport? Funciona para Delphi 4 y pueden configurar sus propios informes y documentos.
Permite exportar a Word para luego su manipulación.

Para PDF sino encuentras componente (el Quickreport permite exportar a PDF pero a partir de las versión 4) puedes usar el PDFCreator, aplicación gratuita que te instala una impresora PDF que pueden usar.

Esto son alternativas.

El QRDesign es como el FreeReport, pero mientras que el primero debes pagar por usarlo, el FreeReport es gratuito y te permite modificar el código fuente para mejorarlo o eliminar lo que no necesites.

Hay traducciones en varios idiomas.
Saludos.
Responder Con Cita
  #5  
Antiguo 06-10-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.285
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por rolandoj Ver Mensaje
2. Lo que dices del TRichEdit, conceptualmente es exactamente lo que quiero; el problema es que le falta cierta capacidad de formateo y por ello los documentos no salen muy bien presentados.

3. El QRDesign que mencionas no es un componente standard de QuickReport. Voy a investigar sobre él
Sé que hay algun componente de RichEdit que permite más cosas que el Estandard, sería cuestión de ver si encuentras uno que se ajuste a lo que necesitas.

El QRDesign es aparte; lo que ya no se si hay alguno más similar.

Otra opción, tal y como dice Jab, es buscar otro generador de reportes que posea ese módulo para que el usuario pueda crearse los suyos propios, sin necesidad de añadidos.
En mi caso no conozco ninguno, pero si FreeReport lo posee, deberías revisarlo.

Ya dirás cómo te va y que opción has escogido finalmente.

Un saludo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 06-10-2010
rolandoj rolandoj is offline
Miembro
 
Registrado: abr 2007
Posts: 395
Poder: 18
rolandoj Va por buen camino
Gracias por la información

Hola,

Gracias a todos por la información.

El QRdesign es un componente pago, así que debo investigarlo con cuidado antes de proceder a una compra.

El PDFCreator lo usamos actualmente para generar la salida en PDF; pero, eso asume que la salida ya está formateada. No conozco si también pued facilitar armar un documento PDF, ponerle marcadores para campo y reemplazarlos a tiempo de ejecución. Investigaré eso.

El freereport no lo conozco; pero, por la descripción parece una opción interesante; especialmente porque me permite seguir con Delphi 4 y honestamente no quisiera sacrificar Delphi 4 porque su IDE es mucho mejor que el del 2007. También lo miraré.

La opción que más me llama la atención es la posibilidad de un TRichEdit extendido; ya que el standard tiene casi todo lo que se necesita y la codificación es facil. Pienso que, de conseguir uno mejorado, el esfuerzo de implementación sería mucho menor en comparación a las otras alternativas.

El día lo tengo complicado; pero, trataré de investigar hoy mismo.

De todas formas, estaré pendiente del fory y de antemano agradezco igualmente cualquier sugerencia adicional.
Responder Con Cita
  #7  
Antiguo 06-10-2010
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Hola,

Solo para reforzar la idea del free-report. es muy bueno para conseguir no solo lo que quieres sino para hacer casi que la mayoria de reportes que usamos constantemente.

Aquí te puedes descargar el demo (con el designer incluido): http://www.fast-report.com/pbc_download/fr233demo.zip

si tienes presupuesto valdria la pena mirar fast-report que además de tener el reporteador también te permite la autimatización de los reportes con PascalScript y conexiones a datos desde el mismo reporte.... Imaginate pasandole solo el ID de la factura al reporte y el reporte se encargue de hacer las consultas necesarias y mostrarlas deacuerdo a la programación hecha en el script.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #8  
Antiguo 06-10-2010
rolandoj rolandoj is offline
Miembro
 
Registrado: abr 2007
Posts: 395
Poder: 18
rolandoj Va por buen camino
FreeReport y/o RichEdit para D4 no soportan alineación justificada ?

Hola,

Estuve investigando por el lado de FreeReport, ya que también hablaba de un RichText extendido; pero, me encontré con el mismo handicap del RichText de Delphi.

El componente para RichText de FreeReport pide la librería Rx (versión 2.6 o superior). Instalé Rx Library 2.75, la que trabaja con Rich Edit 2.0 y tiene un interesante demo de RichEdit , con básicamente la misma funcionalidad que yo implementé en un proyecto anterior usando el TRichEdit standard y que se ilustró en otras respuestas de esta nota. Sin embargo, tiene la misma limitante de no soportar la alineación justificada. Para este proyecto en particular, eso es fundamental; ya que sin alineación justificada la calidad de impresión de los documentos no es satisfactoria.

Parecía un buen camino. Antes de abandonarlo, alguién puede aportar algo ?. Por ejemplo, en lugar de Rich Text tiene algún mecanismo similar ?

Muchas gracias
Responder Con Cita
  #9  
Antiguo 06-10-2010
rolandoj rolandoj is offline
Miembro
 
Registrado: abr 2007
Posts: 395
Poder: 18
rolandoj Va por buen camino
El TRichView. Parece excelente; pero ...

Hola,

Para retroalimentarlos les comento lo siguiente:

El componente TRichView de http://www.trichview.com parece ser una excelente opción. En lugar de marcadores soporta la colocación incluso de controles.

Infortunadamente es un componente pago demasiado costoso. Aclaro : demasiado costoso para lo que necesito; el precio me parece muy razonable considerando todas las capacidades que le he podido observar.

Aparte de eso, a primera vista, no me parece facil de usar. Creo que más bien es para quienes necesiten un nivel de sofisticación muy alto en sus impresiones y dispongan del tiempo necesario para trabajar con un producto tan elaborado.

Bueno, a seguir investigando
Responder Con Cita
  #10  
Antiguo 07-10-2010
rolandoj rolandoj is offline
Miembro
 
Registrado: abr 2007
Posts: 395
Poder: 18
rolandoj Va por buen camino
Unhappy No se pudo

Hola a todos,

Les cuento que se agotó el tiempo que podía dedicarle a buscar una solución y no pude hallar ninguna satisfactoria. Las únicas que, según la publicidad con que se presentan, parece que funcionarían son demasiado costosas.

La opción de PDF Creator la estuve mirando; pero, su archivo de ayudas dice que es la aplicación la que ya debe tener el documento generado. PDF Creator tan solo la convierte a PDF; por tanto, no arregla el problema del texto justificado. En otras palabras, solo sirve para lo que hemos venido usándola.

Lamentablemente, toca resignarse a sacar un documento sin la calidad del caso.

De todas formas, dejaré abierto el hilo por si alguién encuentra alguna solución.
Responder Con Cita
  #11  
Antiguo 08-10-2010
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Hola Rolando.

He leído este hilo desde hace varios días, pero me queda la duda (y estoy seguro de que no soy el único) sobre:

Cita:
Empezado por rolandoj Ver Mensaje
[...] cuando dije que descartaba la automatización OLE fué precisamente porque en un proyecto anterior implementé así un caso similar. Funcionó muy bien; pero después se armó un problema grave cuando salió la nueva versión de Office.
¿En qué consistió ese problema? ¿De qué versión de Office hablas? ¿Podrías explayar al respecto? Gracias.

Al González.
Responder Con Cita
  #12  
Antiguo 08-10-2010
rolandoj rolandoj is offline
Miembro
 
Registrado: abr 2007
Posts: 395
Poder: 18
rolandoj Va por buen camino
Fué con Office 2007

Hola,

Gracias por interesarte.

Se trataba de una aplicación hecha con Delphi 5. La automatización la habíamos hecho con Excel para generar un reporte, que por cierto era bastante complejo. Funcionó bien con versiones de Office 97 hasta Office 2003

El caso fué cuando la empresa cliente pasó a Office 2007. La conexión OLÉ fallaba desde el arranqué. Investigamos un tiempo y, según lo que leímos en el propio sitio de Microsoft, el problema era que había que inicializar una variable a la cual Office accedía vía .NET; pero, no encontramos manera de acceder desde Delphi 5. En ese entonces buscamos algún componente que lo hiciera; pero, no hallamos nada.

Se planteó actualizar Delphi y/o recodificar en específico para Office 2007, ya que ni siquiera encontramos un componente que nos permtiera escribir un archivo Excel sin usar OLE.

Sin embargo, esa funcionalidad se perdió porque la empresa consideró que las alternativas no justificaban el esfuerzo y el costo. Al usuario principal le tocó hacer períodicamente el reporte a partir de un copy & paste desde nuestro aplicativo
Responder Con Cita
  #13  
Antiguo 10-11-2010
rolandoj rolandoj is offline
Miembro
 
Registrado: abr 2007
Posts: 395
Poder: 18
rolandoj Va por buen camino
Unhappy Nuevo intento. Preguntas y retroalimentación

Hola a todos,

En este tema ya nos habíamos resignado a que no se puede; pero, en la empresa me pidieron que hiciera un nuevo intento.

He estado investigando y desarrollando código propio. Algo avanzamos; pero, seguimos estancados. Por si le sirve a alguién, o puedo aportar algo, comento mis intentos con Delphi 4:

Hay 4 versiones principales de RTF : La 1.0, la 2.0, la 3.0 y la 4.1

La implementación de TRichEdit en Delphi 4 y Delphi 2007 directamente usa solo la versión 1.0 de RTF, la cual no soporta la alineación justificada. Ahora bien, al parecer, a nivel del propio Windows, cuando están instaladas las versiones 2 o 3, una llamada a la 1, es redirigida para usar la versión 2 o 3. Alguién podría confirmarlo ?. Es una deducción mía basada en ciertos indicios; no una certeza.

Uno de ellos es el hecho de que si se envía al control TRichEdit el mensaje de alineación justificada (propio de las versiones más nuevas), Windows lo procesa aparentemente bien. Se visualiza inmediatamente la alineación y cuando se guarda, el archivo lo guarda correctamente. El mismo comportamiento correcto ocurre si se pega al control un texto que se ha justificado en Word u otro producto similar.

Sin embargo, hasta ahí llegan las buenas noticias. Si se trata de visualizar de nuevo el archivo, cargandolo al control RichEdit, se pierde la alineación justificada.

Alguién puede preguntar aquí como sé entonces que el archivo se guardó bien. La respuesta es porque si se abre desde Word o desde Open Office, ahí sí se visualiza correctamente.

Sin embargo, si se abre con WordPad, presenta el mismo problema que en Delphi : Adios a la alineación justificada.

Lo anterior indica que lo más probable es que exista un error, a nivel del propio control RichEdit de Windows, cuando se esté cargando información al control. Si es así, creo que ya no hay más nada que podamos hacer para arreglar el problema por ese lado. Alguién puede confirmar esto ?.

La solución que quedaría sería usar la versión 4.1. Hay dos diferencias importantes con las anteriores : El nombre de la librería y el nombre de la clase. Probé redefinir CreateParams para que usara la librería y la clase de la versión 4.1; pero, en algún momento posterior empiezan a aparecer errores. Supongo que hay algunas otras cosas que deben ajustarse; pero, no he encontrado nada al respecto. Alguién puede aportar algo ?
Responder Con Cita
  #14  
Antiguo 11-11-2010
rolandoj rolandoj is offline
Miembro
 
Registrado: abr 2007
Posts: 395
Poder: 18
rolandoj Va por buen camino
Cool Solucionado

Hola a todos,

Logré solucionarlo. Me falta optimizar dicha solución, y detalles menores; pero, el problema básico está solucionado. Todo ello con QuickReport y Delphi 4.

Más tarde daré detalles. Les adelanto algo:

Básicamente me puse a estudiar los comando RTF generados en los archivos "malo", contra los archivos "buenos" generados por otra herramienta. A prueba y error encontré que, por alguna razón, hay un par de comandos que hay que agregar al que genera el componente en su forma normal.
Responder Con Cita
  #15  
Antiguo 14-12-2010
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
He leido el hilo desde el principio y me he quedado como el que ve una peli de suspenso jajaja, esperemos que el amigo rolandoj se anime a detallarnos su ingeniosa solución.

Saludos
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
  #16  
Antiguo 24-12-2010
martinartaza martinartaza is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 77
Poder: 14
martinartaza Va por buen camino
ja

yo también me trague todo el hilo y me quede en suspenso.
Responder Con Cita
  #17  
Antiguo 22-01-2011
martinartaza martinartaza is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 77
Poder: 14
martinartaza Va por buen camino
Algun tutorial de crear reporte con FastReport?

Hola estoy tratando de hacer un reporte con fastReport y no logro que me ande la banda detalle, alguien tiene algún tuto en español?.
Desde ya muchas gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Solicito que me enseñen Delphi para PHP maravert PHP 7 02-02-2010 17:29:38
Solicito Informacion para MyDac vroa74 MySQL 0 11-02-2007 20:44:03
Generar un documento XML (miro en el google pero na) papulo PHP 6 02-10-2006 17:19:45
Como generar informe, y convertirlo en un documento de word. Crazyro Impresión 0 21-06-2005 11:08:36
Solicito consejo JorgeBec Varios 7 07-01-2004 18:25:41


La franja horaria es GMT +2. Ahora son las 16:32:22.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi