PDA

Ver la Versión Completa : Impresión de varios QuickRep


cardanver
09-02-2012, 17:21:11
Hola a todos, antes que nada agradezco a los integrantes del foro por darme muchas soluciones.
Yo programo en c++ builder pero como tuve problemas para que Qreport imprimiera cheques me pase a Delphi5, y como se imaginaran soy mas que nuevo en este lenguaje.
Paso a explicar mi inconveniente, tengo una aplicación que imprime cheques, es decir autocompleta los campos de un cheque. Ya logre la impresión del cheque en sus lineas de manera vertical y demás; pero el tema es que solo imprime de a uno por vez los cheques. El usuario carga los datos fechas, monto, persona que cobra, presiona un botón imprimir que llama a un form determinado el que contiene un QuickRep con un QRBand con QRLabel, y a su vez invoco al preview para hacer la impresión. Existe alguna forma de que cargue los datos de por ejemplo 5 cheques y luego pueda imprimirlos todos juntos.
Espero que se entienda. Desde ya muchas gracias.
Saludos.

amezeta32
09-02-2012, 18:59:50
no recuero mucho del tema, pero creo que los composite report de quickreport te pueden servir
saludos

kapcomx
09-02-2012, 19:14:04
se me ocurre que hagas una consulta que te traiga los cheques que quieras imprimir
luego ligues la propiedad dataset del quickreport a esa consulta
despues en la banda del quick report donde ingresas la info de los campos ubiques la propiedad force new page en true.

con eso te imprimira una hoja por cada registro de la consulta.

saludos...:cool:

cardanver
10-02-2012, 12:38:53
Muchas gracias kapcomx y amezeta32.
Veré lo del composite, y kapcomx no entiendo lo de la consulta (me suena a base de datos) me podrías explicar mejor, te lo agradecería mucho.

ecfisa
10-02-2012, 15:25:52
Hola cardanver.

Si no entendí mal lo que buscas, basta con que agregues un TQRSubDetail y en su propiedad DataSet asignes el TDataSet correspondiente a los cheques. De ese modo imprimirá los datos de los cheques que se hayan incluido en la banda y se encuentren en la selección del DataSet o consulta relacionada.

Aclaración: No es lo mismo un TQRBand con su propiedad BandType igual a rbSubDetail.

Saludos.

cardanver
10-02-2012, 15:41:22
Hola ecfisa.

Estuve leyendo tu comentario, y me surgieron un par de dudas.
Yo tengo Form1 que tiene los botones, los labels, maskedit, etc. cuando presiono el boton imprimir del form1, a traves de una serie de if verifico que tipo de cheque se selecciono por ejemplo: al dia o diferido del banco xx o zz, y ahi llamo al form correspondiente del cheque que contiene QuickRep y QRBand con los QRLabel que toman los datos que el usuario cargo en el form1; esto en tiempo de ejecucion no se ve es decir cuando el usuario presiona el boton imprimir muestra directamente el print preview. Todo esto sin usar bases de datos.
La pregunta es debo agregar lo que me indicas en cada form con sus respectivo QRband o generar un nuevo form con estas caracteristicas.
Desde ya muchas gracias.

kapcomx
10-02-2012, 18:02:13
ke tal Cardanver, efectivamente la solución que te planteo es con una base de datos. De momento te recomendaria que trabajaras con una base de datos donde puedas almacenar los datos de los cheques.

tal vez tu programa es muy especifico y te lo pidieron asi, (sinceramente no concibo la idea de un prog sin base de datos), pero si seria bueno que adoptaras una base de datos para tu programa.

asi podrian hacer consultas posteriores de los cheques impresos, por cliente, fecha, montos, etc etc etc.... y obvio les cobrarias mas por eso jaja...

Saludos...:cool:

cardanver
10-02-2012, 18:13:38
Hola Kapcomx

La verdad que tienes toda la razón en decir que no se puede plantear un programa sin un bd. Lo que estaba pensando para no generar una bd con tan pocos datos, es hacer que todos los QRLAbel que complete el usuario se guarden en un excel, jamas hice algo asi, es por esta razon que tambien estoy lidiando con eso.
Si no te molesta, te pido me explique tu idea, porque en casi un 90% me inclino por hacer una bd.
Saludos, y desde ya muchas gracias.

ecfisa
10-02-2012, 18:22:44
Hola ecfisa.
Estuve leyendo tu comentario, y me surgieron un par de dudas.
Yo tengo Form1 que tiene los botones, los labels, maskedit, etc. cuando presiono el boton imprimir del form1, a traves de una serie de if verifico que tipo de cheque se selecciono por ejemplo: al dia o diferido del banco xx o zz, y ahi llamo al form correspondiente del cheque que contiene QuickRep y QRBand con los QRLabel que toman los datos que el usuario cargo en el form1; esto en tiempo de ejecucion no se ve es decir cuando el usuario presiona el boton imprimir muestra directamente el print preview. Todo esto sin usar bases de datos.
La pregunta es debo agregar lo que me indicas en cada form con sus respectivo QRband o generar un nuevo form con estas caracteristicas.
Desde ya muchas gracias.
Hola cardanver.

Si, lo que te sugerí fué pensando que usabas alguna bd.
En cuanto a tu segunda consulta creo que podés crear una unidad con el TQuickRep, el TQRSubDetail, los TQRDBText, etc, etc, que correspondan a la impresión de los cheques y luego incluir esa unidad donde necesites usarla (para evitar repetirlo en cada form). Lógicamente, si esto fuera viable, acorde a la organización de tu código.

Saludos.

cardanver
17-02-2012, 13:44:49
Muchas gracias a todos, por sus sugerencias. Por el momento dada la urgencia del proyecto solo imprime de a uno. Pero ya estoy con la versión siguiente que integra la bd y ademas en el print preview la imagen del cheque; que por el momento no puedo evitar que lo imprima no logro quitar la imagen al momento de imprimir.
Si alguno sabe de algún hilo que hable del tema pasemelo por favor.
Ni bien tenga solucionado todo comento como quedo.
Saludos

ecfisa
17-02-2012, 13:59:00
Hola cardanver.
... que por el momento no puedo evitar que lo imprima no logro quitar la imagen al momento de imprimir.

No entiendo bién cuál es el problema que tenes, ¿ Podrías explicarlo más detalladamente ?

Un saludo.

cardanver
17-02-2012, 14:17:30
Hola ecfisa.
El tema es asi: yo en el quickrep pongo detras de los QRlabel la imagen del cheque para que se vea como va a salir la impresion. En tiempo de ejecucion cuando el usuario presiona imprimir que llama al print preview ve la imagen del cheque con los datos en sus respectivos lugares, pero esa imagen no se tiene que imprimir xq es solo demostrativa, es decir, al imprimir no debe salir la imagen solo los datos.
No se si me explique mejor
Saludos.

ecfisa
17-02-2012, 14:42:21
Hola cardanver.

Ahora te entendí, probá si esto te funciona:


procedure TForm1.QRBand1BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean);
begin
QRImage1.Picture:= nil;
end;

En el ejemplo, QRBand1 sería la banda donde estarían ubicados los componentes y QRImage1 sería la imágen del cheque.

Saludos.

cardanver
28-02-2012, 16:31:59
ecfisa te debo mas que una, funciono de diez el codigo que me pasaste.
Disculpa la tardanza de mi respuesta.
Gracias a todos los que me dieron una mano con esto.
Saludos.