Stampa di diversi Report

martedì 23 febbraio 2010 - 13.59

alsatan Profilo | Newbie

Ciao a tutti! Scivo per la prima volta sul forum, anche se lo stesso è stato fonte di studio per lungo tempo e mi ha aiutato a risolvere tantissimi problemi.

Veniamo al dunque.

Mi sto dilettando nella creazione di un software in VB.Net che mi compila dei moduli, per far ciò utilizzo dei report di Crystal, più esattamente ho 1 report diverso per ciascun modulo, in quanto ciascun modulo presenta caratteristiche molto diverse, prima fra tutte l'orientamento della pagina, e cmq da codice ogni volta lo stesso dipo di Documento può essere composto da report diversi (es Documento1: Report1,Report2,Report4 - Documento2: Report2, Report5, Report6)

In una Form ho quindi emulato il modello di CrystalReportView creando io i vari bottoni Pagina Avanti, Pagina Indietro , Ultima Pagina etc etc, in quanto utilizzando i suoi naturalmente per ogni report mi dava 1pagina su 1.
Ok fino a qua tutto bene.
Il problema è che ora voglio emulare il PrintDialog manualmente, ovvero visto che il software girerà su una chiavetta e verrà utilizzato in diversi posti, non posso decidere da codice quale sia la stamante predefinita etc etc e lanciare la stampa diretta da un pulsante creato ad hoc come descritto qui: http://msdn.microsoft.com/it-it/library/ms227723.aspx


Esiste un metodo per gestire il PrintDialog di Crystal esternamente al CrystalReportView?
Cosicchè appaiano tutte le stamanti installate etc etc
E poi vorrei anche poter gestire i vari report che visualizzo nel form come fossero diverse pagine da stampare, ovvero ciò che già faccio in fase di visualizzazione(in fondo alla pagina scrivo "pagina 1 / 6" etc etc) ?

Grazie in anticipo

freeteo Profilo | Guru

Ciao,
secondo me devi pensare a farti una pagina che preceda la stampa, usando però un bottone tuo perchè se usi il CrystalReportViewer non hai l'evento "button_Click" della toolbar purtroppo per capire quando viene premuta la stampa.

In questa maschera usi il Framework .net per recuperare le stampanti (PrinterSettings.InstalledPrinters) e poi fai un codice di questo tipo:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=34407
dove appunto imposti le PrintOption dell'oggetto Report e poi lanci in stampa tramite il metodo "PrintToPrinter"...

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

alsatan Profilo | Newbie

Come immaginavo... Infatti nella form dove visualizzo i vari report con bottoni Avanti e Indietro creati da me, già ho implementato la visualizzazione delle stampanti e la stampa. Volevo pero avere quella "tipo Windows" con tutte le varie opzioni.. A sto punto la ricreo interamente a mano :)

grazie

freeteo Profilo | Guru

>report con bottoni Avanti e Indietro creati da me, già ho implementato
> Volevo pero avere quella "tipo Windows" con tutte le varie opzioni.. A sto punto
>la ricreo interamente a mano :)
eh si non hai alternative al momento...non è necessario che ti faccia tutto a mano, puoi usare la classe PrintDialog del framework che ti fa proprio quella finestra di windows, solo che dopo quello che ti torna devi per forza passarlo al report da codice...


>grazie
di nulla figurati, siamo qui per questo.

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5