FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
QRComposite de QRComposites
Buenas, tengo un dilema.
Tengo una lista de animales, digamos: a1, a2, a3, ... an Cada uno de esos animales tiene una serie de informes particulares, tienen un informe de pesajes, otro de vacunas, otro de enfermedades. Todos ellos en QReport's diferentes. En un momento dado tengo que mostrar una lista con "el informe completo" (historia clínica completa) que consiste en la unión de los informes particulares. Hasta aquí la cosa va bien. El informe combinado lo hago con un QRComposite. Muestro la vista previa e imprimo sin problemas. Resulta que ahora necesito que me salga (aquí quiero hacer una vista previa también) una unión de los informes completos de una sola vez, esto es: a1 (pesajes, vacunas, enfermedades), a continuación a2 (pesajes, vacunas, enfermedades), a continuación a3 (pesajes, vacunas, enfermedades), ... . En la vista previa debo ver un solo informe con estos informes uno abajo del otro y que tengan la numeración de hojas de manera continua. Esto es particularmente importante puesto que la cantidad de animales es muy elevada y no es operativo imprimir la "historia clínica completa" de a una por vez. Lo primero que se me ocurre es hacer una composición de composiciones o como se lo llame, pero no he dado con la forma correcta. ¿Cómo puede resolverse este tema? Espero que se haya entendido, gracias. Santiago.
__________________
Uno es responsable de lo que hace y de lo que omite hacer. |
#2
|
||||
|
||||
Si no es posible hacerlo con una composición de QRComposite's. ¿Alguna otra opción?
__________________
Uno es responsable de lo que hace y de lo que omite hacer. |
#3
|
||||
|
||||
Con algo de tozudez he podido avanzar algo, lo cuento:
Pude mandar cada "historia clínica" seleccionada a un archivo .qrp, eso lo he logrado de la siguiente manera:
Con esto puedo guardar masivamente todas las "historias", lo que no he podido hacer ha sido levantarlas y mostrarlas en el preview, que es la última línea del código. En el OnAdd de qrcmpstrprtJuegosCompletos:
El código anterior no me da error pero al aparecer la ventana de vista previa no se ve nada, aparece vacía. Para colmo si lo intento nuevamente me dice que el "último .qrp está siendo usado por otro procedimiento y no se puede tocar" Los avances han sido buenos pero me falta la frutilla del postre que sería poder levantar los .qrp y armar el informe completo. ¿Alguien tiene sugerencias? Gracias.
__________________
Uno es responsable de lo que hace y de lo que omite hacer. |
#4
|
||||
|
||||
Después de tanto luchar, ¡llegamos a buen puerto!
Encontré la manera de hacerlo, lo cuento: 1) Generamos los .qrp, uno por cada informe independiente que tengo 2) Los guardamos en disco, cada uno con nombre. reporte0.qrp, reporte1.qrp, ... reporteN.qrp 3) Los levantamos y juntamos en un solo .qrp 4) Lo mostramos usando TQRPHandler de la unit QRExtra ¿Cómo hacemos el paso 3? Resulta que hace algún tiempo la gente de qusoft armó una pequeña unidad llamada "QRQRP", que no es mas que un .pas común y lo puso en un archivo llamado QR3RNGD4.ZIP, lo podemos encontrar en: http://www.quickreport.co.uk/webinfo...?WebInfoID=620 Este .zip tiene, entre otras cosas, un .pas (qrqrp.pas) donde encontramos un procedimiento llamado "combineQRP" que hace el trabajo. De igual manera, analizando un poco el procedimiento no lo hace de la manera convencional, usa TStream y otras cositas... pero eso es tema de debate posterior. Para facilitar la cosa, subí a este post el .zip: QR3RNGD4.ZIP En definitiva, el código quedaría así:
Con esto resolví el dilema, mi cliente contento y las vaquitas preocupadas porque las probabilidades de ir al asador aumentan. Saludos.
__________________
Uno es responsable de lo que hace y de lo que omite hacer. |
#5
|
||||
|
||||
Cita:
No siempre se tiene la fortuna de que algún colega esté en el lugar indicado, en el momento indicado y con la respuesta indicada para ayudar a otro. Y es cuando toca esforzar la investigación hasta llegar a un buen puerto. Pero darse tiempo de compartir la solución encontrada con el resto de la comunidad es algo que pocas veces ocurre, y por ello mi agradecimiento. Has puesto un gran ejemplo. Saludos. |
#6
|
||||
|
||||
Por favor, gracias a todos Uds. y al foro, que tantas veces me ha ayudado.
Santiago.
__________________
Uno es responsable de lo que hace y de lo que omite hacer. |
#7
|
||||
|
||||
Podrían hacerse muchas sugerencias para tu código, pero creo que una de las más importantes sería no olvidarse de destruir los objetos que creas. Y hacer esto usando bloques Try..Finally (con el Create justo antes del Try y el Free dentro de Finally).
Saludos. Al. |
#8
|
||||
|
||||
Cita:
Gracias Al por las recomendaciones. Santiago.
__________________
Uno es responsable de lo que hace y de lo que omite hacer. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Como detectar si se imprime un documento con QuickReport y QRComposite?? | smacli | Impresión | 0 | 30-01-2006 21:35:54 |
|