Mostrar diálogo de impresión con Crystal Report

Espero puedas ayudarme con lo siguiente: saco informes en crystal report 6 desde una aplicación en visual basic 5 y me preguntaba si sería posible que al imprimir el listado saliera alguna opción parecida a la que sale cuando imprimes desde Word, es decir que te permita elegir en ese momento la impresora, la bandeja, etc. Si se te ocurre algo

5 Respuestas

Respuesta
1
Hay un método que se aplica por código a todos los reportes que se llama PrintReport y entre los argumentos de ese método se encuentra la opción ShowDialog. Si colocas esa opción como True te mostrará el cuadro de diálogo que te permite escoger el tipo de impresora y sus correspondientes opciones.
Perdona que te moleste otra vez y sobre todo gracias por contestar, pero he de decirte que no tengo insertado ningún objeto crystal report, sino que a través de código lo creo tal y como sigue:
'--Declaración de variables
Public LaAplic As CRPEAuto.Application
Public ElReport As CRPEAuto.Report Public LaBase As CRPEAuto.Database, Tablas As CRPEAuto.DatabaseTables
'---
Set LaAplic = CreateObject("Crystal.CRPE.Application")
Set ElReport = LaAplic.OpenReport(Trim(Actual.CaminoLi) & "\" & NomLis & ".rpt")
Set LaBase = ElReport.Database
Set Tablas = LaBase.Tables
ElReport.RecordSelectionFormula = RepFormula 'donde RepFormula contiene la selección de registros según un criterio (o no --> RepFormula="")
'--Muestro el Listado
ElReport.Preview , , , , , 16777216 + 524288 + 131074 + 65536 'por pantalla
ElReport.PrintOut False 'directamente a la impresora
No sé si te aclaro algo más mi duda.
De todas formas, si pudieras pasarme el código necesario para hacerlo como tú me indicas te lo agradecería.
Saludos
Lamento que no tenga ningún código de Crystal, pero me parece que si buscas en los métodos y propiedades que se aplican a la instancia del objeto Crystal (ElReport) puede que encuentres el cuadro de dialogo de impresión.
Respuesta
1
Yo tengo Crystal Reports 7.0
Y en el control CrystalReport al darle clic derecho e ir a propiedades, luego en la Cejilla de Preview window hay un check box que se llama Printer Selector, si lo marcas el usuario podrá seleccionar la impresora.
Intentalo.
PD:
Respuesta
1
Posible es casi todo. Puede ser más o menos complicado.
Yo lo que tengo es un formulario donde seleccionas las impresoras. Tengo un commondDialog para cambiar las propiedades. Lo que pasa es que cambia las propiedes por defecto de la impresora.
En este formulario muevo los datos a control del crystal, como .PrinterName PrinterDriver PrinterPort, etc,
Realmente no he encontrado nada que sea sencillo, me lo he currado, creando un control donde doy la opción de seleccionar la mayor parte de las propiedades que tiene en crystal.
Por otro lado tienes la si estableces control.WindowShowPrintSetupBtn = True , te sandra en en informe por pantalla en boton para seleccionar las propiedades de impresora.
Muchas gracias por todo. Ya había dado con la solución, pero como no podía anular esta consulta... La verdad es que al final me ha quedado bastante bien, porque mi 'problema' era que esta aplicación tiene muchas pantallas y en todas se da la opción a imprimir algún listado, con lo que insertar un control crystal report en cada una de ellas era bastante rollo. Yo tengo una función común, que me crea el objeto crystal y así me evito programar nada de forma individual. Me costó, pero al final conseguí que en el listado salgan dos iconos de impresora: uno con la impresora predeterminada (no te da opción a nada más que imprimir y nº copias), y otro con el que puedes cambiar de impresora, así como la bandeja, orientación, etc.
Si te interesa me escribes a:
[email protected] (en el asunto pon algo referente a todoexpertos, please).
Gracias y saludos
Respuesta
1
Lo que tienes que hacer es agregar el control COMMON DIALOG a tu formulario y utilizar el siguiente comando:
CMDialog1.Action = 5
Fíjate si te sirve.
Respuesta
1
Lo único que haces es antes de llamar al reporte invocas a un commondialog para la opción Impresoras y luego simplemente asiganas las variables del commonddialog al reporte y luego lo invocas para que imprima
Ya probé con eso y no funcionaba bien. Hacía bien lo de elegir la impresora, pero a la hora de elegir bandeja y orientación por ejemplo no me hacía caso. De todas formas ya he descubierto cómo hacerlo, así que muchas gracias por todo y disculpa las molestias.
Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas