Imprimir varios reportes de VB + crystal

Necesito imprimir unas facturas, las cuales genero con VB y luego las llevo a un informe de Crystal, y desde allí lo imprimo. El problema es que quiero que me imprima todo, y lo que he hecho es un bucle para que vaya generando todos los informes. El problema es que cuando llega al informe de Crystal, y le doy la instricción para que imprima, me sale la ventanita de confirmación para imprimir, y tengo que pulsar OK para que imprima, y si tengo 100 clientes y tengo que pulsar 100 veces,... Es un problema. ¿Hay alguna instrucción para que desaparezca esa ventanita?

2 respuestas

Respuesta
1
¿Qué ventanita de confirmación?
¿Cómo lanzas el informe?
Supongo que usaras un control crystal al que le asignas las propiedades:
Reportfilename
destination=crptToWindow
...
Para filtrar los registros usaras:
crp.Selectionformula="{Facturas.Num}=" & numFactura
Si deseas que salgan todas las facturas puedes filtrarlo asi:
s={Facturas.Num}=" & facturas(i)
for i=1 to contFacturas
s=s & " or {Facturas.Num}=" & facturas(i)
next i
crp.selectionformula=s
crp.printreport
's string con el filtro
'contFacturas integer con el nº de fcaturas
'facturas() un array con los numeros de factura a imprimir
Esto es más o menos lo que podrías hacer para que una sola llamada al informe te las imprima todas.
Debes tener diseñado el informe para que cada linea de detalle use una página, salto de página después de la sección.
Al final lo hice con otro método, poniendo el False detrás de del PrintOut:
rptInforme.PrintOut False, 1, False
Gracias de todas formas
Respuesta
No creo que se pueda quitar el mensaje, pero lo que si puedes es crear una tabla con todos los cliente, y enlazarla al crystal, así generarás solo un informe para todo, y te lo preguntará sólo una vez.
Lo que comentas era una solución que también había pensado, pero quería aprovechar lo que ya tenía hecho. Investigando he dado con la forma, que la siguiente:
rptInforme.PrintOut False, 1, False
El primer False se refiere a que aparezca dicha ventanita. Si se usa sólo 'rptInforme.PrintOut', el valor por defecto es true y por eso lo sacaba. Pero gracias de todos modos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas