PDA

Ver la Versión Completa : Como imprimir directo con ReportBuilder


MarioATamborini
02-09-2006, 01:25:08
Hola a todos, necesito imprimir directamente sin mostrar el dialogo de impresion una hoja determinada (por ejemplo la Hoja 1 y la 3) y tambien imprimir varias copias. Esto es lo que estoy haciendo para el caso de las copias pero no me funciona. Y el tema de las hojas no se como hacerlo.

ppReportInformes.DeviceType := 'Printer';
ppReportInformes.ShowCancelDialog := False;
ppReportInformes.ShowPrintDialog := False;
ppReportInformes.PrinterSetup.PrinterName := 'Default';
ppReportInformes.PrinterSetup.Copies := 2;
ppReportInformes.PrinterSetup.DocumentName := 'Libro Diario';
ppReportInformes.Print;

Alguien tiene idea de como hacerlo.

Desde ya muchas gracias.
Saludos a todos.

MarioATamborini
07-09-2006, 23:14:29
Alguien puede ayudarme?

Casimiro Notevi
08-09-2006, 00:18:19
Hola a todos, necesito imprimir directamente sin mostrar el dialogo de impresion una hoja determinada (por ejemplo la Hoja 1 y la 3) y tambien imprimir varias copias. Esto es lo que estoy haciendo para el caso de las copias pero no me funciona. Y el tema de las hojas no se como hacerlo.

ppReportInformes.DeviceType := 'Printer';
ppReportInformes.ShowCancelDialog := False;
ppReportInformes.ShowPrintDialog := False;
ppReportInformes.PrinterSetup.PrinterName := 'Default';
ppReportInformes.PrinterSetup.Copies := 2;
ppReportInformes.PrinterSetup.DocumentName := 'Libro Diario';
ppReportInformes.Print;

Alguien tiene idea de como hacerlo.

Desde ya muchas gracias.
Saludos a todos.

En teoría, con eso es suficiente.

MarioATamborini
08-09-2006, 02:40:33
Pero como hago para imprimir solamente la 1º Hoja del reporte??? sin mostrar el diálogo de Impresión???

Este es el problema que no encuentro como resolverlo.

saludos

Casimiro Notevi
08-09-2006, 13:44:05
Pero como hago para imprimir solamente la 1º Hoja del reporte??? sin mostrar el diálogo de Impresión???

Este es el problema que no encuentro como resolverlo.

saludos
Para imprimir una página, por ejemplo:

ppReportInformes.PrintPage( iNumPage );
Para imprimir una lista de páginas, le pasas un TStrings:

ppReportInformes.PrintPageList( cListaPages );
Sin mostrar el diálogo de impresión, ya lo contesté antes:

ppReportInformes.ShowPrintDialog := false;

MarioATamborini
08-09-2006, 15:34:26
Casimiro he probado hacer como me dices y no logro imprimir la pagina que deseo. Probe antes y despues del Print. Es como si no hiciera nada. que es lo que me puede estar faltando.

ppReportInformes.PrintPage(1);
ppReportInformes.Print;
ppReportInformes.PrintPage(1);

en el TStrings lo paso asi: 1-2, 4

gracias
saludos

Casimiro Notevi
08-09-2006, 20:27:30
Casimiro he probado hacer como me dices y no logro imprimir la pagina que deseo. Probe antes y despues del Print. Es como si no hiciera nada. que es lo que me puede estar faltando.

ppReportInformes.PrintPage(1);
ppReportInformes.Print;
ppReportInformes.PrintPage(1);

en el TStrings lo paso asi: 1-2, 4

gracias
saludos

¿como si no hiciera nada?, pues si no das más pistas... :confused:

Yo lo hago así y funciona.

Mira en la página web del fabricante, en la sección de documentación hay una cantidad enorme de información, ayudas, faqs, pdfs... a ver si encuentras ahí la solución a tu problema.
Suerte.

MarioATamborini
11-09-2006, 15:01:51
Lo que quiero decir Casimiro es que imprime todo el documento y no pa 1º pagina. Perdón si me exprese mal. Por las dudas Uso Delphi 5 y ReportBuilder 4.24 con RAP.

Ahora me voy a fijar en la pagina del fabricante a que encuentro.

saludos

huichobeto
12-03-2008, 18:16:48
Antes que nada, perdon por revivir este hilo, pero ahora estoy diseñando una aplicación en la que requiero mandar a imprimir en un ppReport una serie de hojas, configurando los intervalos a través de los settings de la impresora. Es decir, lo mismo que se esta preguntando en este hilo, pero me sucede los mismo que a MarioATamborini, al mandar a imprimir me imprime todo el documento y no los valores que le mando en la propiedad PrintPageList con una variable TStrings, uso Delphi 5 y ReportBuilder 5.53, alguien pudo solucionar este problema? Será porque se trata de Windos XP??

Gracias de antemano, es que ya busque por todo el foro. :)

huichobeto
13-03-2008, 21:50:18
Pues despues de darle varias vueltas, y romperme la cabeza, pues por fin encontré la luz al final del camino, jajajaja. Bueno les cuento, me fui a la documentación y pues me di cuenta que la propiedad que decían Casimiro Notevi, tal como la usaba, estaba descontinuada desde la versión del 3.0 del Report Builder, partiendo de ahi me informe que esta había sido sustituida por la propiedad RequestPage, investigando en la pagina del fabricante, pues me encontre con la misma pregunta, solo que pues escrita en inglés se me dificultaba entenderla :mad: pero al final pude resolver el problema de la siguente manera



Procedure TRelacionPetic.ppRelPeticionesBeforePrint(Sender: TObject);
begin
ppRelPeticiones.PrinterDevice.PageRequest.PageSetting:=psPageList;
ppRelPeticiones.PrinterDevice.PageRequest.PageList.Add('5');
end;






Pues en primera instancia hay que poner la propiedad PageSettings en psPageSetting (tambien hay otras, pero la que me sirve es esa), colocar en la propiedad PageList los números de paginas que deseemos imprimir, como ejemplo puse '5'. Esto es en el evento BeforePrint del ppReport. Y listo, tan sencillo como eso y mandar a imprimir como muestro en el siguiente codigo:



with ppRelPeticiones do
begin
DeviceType:= dtPrinter;
PrinterSetup.PrinterName:='PrimoPDF';
PrinterSetup.DocumentName := 'Reporte a PDF';
ShowCancelDialog:=False;
ShowPrintDialog:=False;
Print;
end;






yo lo tengo colocado dentro de un botón, y pues agradecer a toda la gente de este Club, pues me ha ayudamo muchisimo más de lo que creerían :eek:. Hasta luego y pues espero poder ayudar mas adelante.

cybergerman
12-02-2010, 20:22:19
Ojo, que en mi caso, la propiedad PrinterDevice siempre apuntaba a nil, por lo que me ocasionaba AccessViolation.

Yo use una variable de Tipo "TppPrinterDevice" y luego la creo en memoria.

Device:=TppPrinterDevice.Create(nil);

De aca en mas siempre hago referencia a las propiedades de Device y al ultimo
llamo a Reporte.PrintToDevices;