Nº Copias en Crystal Report

Tengo en Crystal Report un informe para imprimir facturas y quiero saber cómo puedo hacer para, según la factura que sea, imprimir una o varias copias. El número de copias a imprimir lo tendría guardado en una tabla.
(No me vale lo de poner en Visual CopiesToPrinter porque eso me lo cogería igual para todas las facturas y yo, según la factura que sea, quiero imprimir una o varias).
No se si me he explicado bien, pero espero que si y que alguien pueda ayudarme pronto.

1 respuesta

Respuesta
1
Espero que ya tengas resuelta tu inquietud, de cualquier forma creo que la solución es la siguiente:
Tu debes definir el número de copias por código de programa y no en las propiedades del objeto crystal, ya que eso si hace que te envíe siempre el mismo número de copias.
La idea es en el código antes de generar el reporte hagas esta:
1. Leer en la base de datos el número de copias a imprimir y guardarlo en una variable Nmro_Cpias
2. Definir la propiedad de crystal:
crystalreport1.CopiesToPrinter = Nmro_Cpias
Luego si generar tu reporte:
crystalreport1.action = 1
Bueno espero te sirva la solución, de cualquier forma me comentas para ver si era o no y poder darte más colaboración.
Gracias de nuevo, pero sigo encontrando un problema y es que yo primero saco las facturas por pantalla y no siempre las mando a imprimir, con lo cual, si tengo que imprimir 100 facturas, me saldría la pantalla del Crystal 100 veces, con lo cual, no me vale.
A lo mejor no es posible lo que yo quiero, no se, de todas formas muchas gracias.
Gracias, pero el problema es que yo no solo lanzo una factura, sino que puedo lanzar a lo mejor todas las de una fecha determinada, de las cuales unas llevaran una copia, otras dos, otras ninguna...
Espero haber podido ayudarte, si tu inquietud quedo resuelta podrías dar por finalizada la pregunta, si deseas más colaboración me comentas y no finalizas la pregunta.
Suerte.
Bueno, veremos a ver como lo hago. Replanteare mi formulario. Muchas gracias por todo
Bueno hay el problema digamos que continua, ya que si uno manda imprimir más de un documento de una sola crystal genera un único reporte y me imagino que cada factura va en una hoja y a crystal no se le puede definir para cada hoja cuantas copias, ¿me explico?. Como es un solo reporte de varias facturas el el enviará para todas la misma cantidad de copias.
Lo que se me ocurre es que lo hagas por medio de un ciclo. Si lo que se quiere mandar son las facturas, por ejemplo de la 140 a la 145, o todas las de determinada fecha, meter esto en un ciclo.
1. Haces un selecte de la información que vas a enviar, esto lo ejecutas por medio de un recordset.
2. Armas el ciclo de impresión.
do while not recordset.eof
crystalreport1.CopiesToPrinter = Nmro_Cpias
crystalreport1.selectionformula="{tabla.campo} = " & recordset!numero_fctra & " AND ......
crystalreport1.action = 1
recordset.movenext
loop
Bueno creo que esta sería la única forma de hacerlo, espero te funciones. De cualquier forma me cuantas como ta va.
Si tienes razón si lo haces de esa forma no es bueno aplicar lo que te comente.
Una cosa que podrías hacer es tener dos opciones en tu programa, una que sea vista preliminar (un botón), con esta lo que haces es enviar por pantalla todas la facturas que el usuario desea ver, y otra opción que sea imprimir, en esta le preguntarías al usuario cuales facturas desea imprimir y en este paso si aplicar lo que te comente.
Solo que le defines a crystal crsytalreport1.Destination=crptToPrinter
El enviará el reporte a la impresora que tenga el usuario definida por defecto.
No se me ocurre nada más, ya que lo que originalmente quieres no es posible, según me lo comento alguien de soporte de crystal.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas