![]() |
Varias copias al imprimir muchas facturas
muy buenas.
tengo un problemilla al imprimir un monton de facturas, y es que en algunas, no todas, tengo que hacer varias copias, el decir, para que quede mas claro, tengo una tabla de facturas, con un campo que COPIAS_FACTURA, que generalmente es 1, pero en algunos es 2 o mas, al imprimir tengo que imprimir el numero de copias que viene en el campo. he probado a cambiar la propiedad "QRFacturas.PrinterSettings.Copies := ADOQFacturas.FieldByName('COPIAS_FACTURA').AsInteger" en tiempo de ejecucion, cocretamente en el evento "BeforePrint" del QReport, y pasa bastante de mi. alguien sabe como puedo hacerlo, o si de lo contrario no se puede, para no romperme mas la cabeza. Un saludo SALO |
Una pregunta
Las imprimes todas de golpe en el mismo listado o lanzas el listado por cada factura? Si es lo primero, olvídate de usar la propiedad Copies, ya que eso sólo sirve para TODO el listado. Si lanzas el listado para cada factura, lo de Copies debería de funcionarte. |
Suponiendo que lanzas un reporte por factura, yo creo que el evento BeforePrint no es el adecuado.
Supongamos que el código de QuickReport.Print es como sigue:
No funcionará cambiar copies en ese evento... en todo caso, en el ciclo que lanza la impresión, antes de llamar a print... alli si que debiera funcionar establecer el número de copias. Hasta luego. ;) |
Cita:
lo que me quieres decir es que no hay solucion, que lo tengo que hacer aparte?, por que si es eso me espera un tinglao de lo ostia, pero!!, esa es la vida del programador, el usuario manda y nosotros .... le decimos que eso no se puede, jejejejeje, no es serio, me tendre que comer la cabeza para sacarlo, de todos modos muchas gracias Un saludo SALO!! |
si tu base de datos es interbase/firebird... no está muy complidado hacer un stored procedure que te devuelva el número de registros requeridos para cada factura...
Hasta luego. ;) |
Una solución como ya apunta el amigo Cadetill sería, una vez obtenidas las facturas a imprimir, no enviarlas todas en un informe, sino con un bucle de tal manera que se harían tantas llamadas como facturas hubiese, sino funcionara la opción "copies", simplemente pones un If y la que tenga 2 copias llamas 2 veces a quickreport.
Un Saludo. |
Lo que dice jachguate parece buena idea, el problema es que nunca he creado un stored procedure y no se como se realiza. Investigare por ahi a ver si lo saco, de lo contrario tendre que hace lo que comenta marcoszorrilla, mandar las facturas en un bucle, aunque el problema es al visualizar e imprimirlas por ahi.
muchas gracias igualmente. saludos SALO |
Cita:
Aqui en los foros hay algunos ejemplos y mucha información para crear un stored procedure que devuelva un DataSet. La idea es anidar dos ciclos... un For Select con el query que ya tenes actualmente en tu Query actual... quizas con algunos parámetros... y dentro de este un ciclo que repita tantas veces como sea necesario cada factura. Las relaciones maestro/detalle para imprimir las líneas seguirán funcionando tan bien como hasta ahora!! En fin... ya te he dicho bastante. Hasta luego. ;) |
La franja horaria es GMT +2. Ahora son las 17:16:25. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi