Cambio Stampante in crystal report

giovedì 20 luglio 2006 - 10.32

sandrito Profilo | Newbie

Salve a tutti.
Ho un problema.Da Vb6 lancio stampe con crystal Report 9 ma non riesco a selezionare la stampante al momento che il report viene visualizzato.
La stampante utilizzata è sempre quella di default.
Qualcuno sa come fare?
Grazie mille

freeteo Profilo | Guru

ciao,
hai gia provato ad usare il metodo "SelectPrinter" dove gli specifichi la stampante e poi stampare con il metodo "PrintOut"?
Qualcosa del tipo:

Dim miaApplication As CRAXDRT.Application Dim mioReport As CRAXDRT.report Set miaApplication = New CRAXDRT.Application Set mioReport = miaApplication.OpenReport("c:\windows\.....\file.rpt") mioReport.SelectPrinter [DriverName] , [DeviceName] , [Port] mioReport.PrintOut false
ciao.

Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo

lorenzo.zonzin Profilo | Newbie

Salve, a proposito di questo argomento: dove e come posso rialire al driver della stampante, alla porta?
Se avessi un gestionale che usa due o tre stampanti diverse dedicate, che non siano quella di default del sistema windows, come posso al momento del lancio della stampata assegnare la stampante corretta?

Tramite "System.Drawing.Printing.PrinterSettings.InstalledPrinters" risalgo all'elenco delle stampanti del sistema e da qualche parte salvo il nome della stampante.
Ma come faccio ad imputare al mio report la stampante che mi interessa?

Grazie intanto, Lorenzo.

freeteo Profilo | Guru

Ciao Lorenzo,
in questo thread (di ben 4 anni fa ) non si parla di .net ma del codice vb6 per farlo.

Cmq il concetto è simile, ma il codice è un po' diverso, guarda l'esempio di codice che ho appena postato qui:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=34407

come vedi si lavora con l'oggetto ReportDocument al quale viene impostato le proprietà "PrintOptions" e poi lanciato il metodo per la stampa diretta (PrintToPrinter)...



Ciao.

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

lorenzo.zonzin Profilo | Newbie

Ciao Matteo, grazie per la tempestività.
Ho tralasciato di scrivere che uso la famosa "craxdrt.dll" e, mi pare, che non ci sia un simil metodo come il "printoption".

Posto il codice

"
Crxreport.FormulaSyntax = CRAXDRT.CRFormulaSyntax.crCrystalSyntaxFormula
Crxreport.RecordSelectionFormula = sFormula
Crxreport.PrinterDuplex = CRAXDRT.CRPrinterDuplexType.crPRDPDefault
' ora c'è questa linea di codice qui sopra ma è qui che vorrei assegnare una delle stampanti che ho definito nel setup e salvata in un file ".ini"
Crxreport.PrintOut(False)
"

Grazie ancora, Lorenzo.

freeteo Profilo | Guru

Ciao,
come vedi nel codice vb6 vecchio, nella Craxdrt ci dovrebbe essere la funzione "SelectPrinter", non c'è?
Un codice come vedi dal post precedenti, dove apri il report con Craxapplication e poi hai un oggetto report in memoria che ha alcune funzioni, tra le quali anche quella di selezione di stampante...almeno nella versione XI che avevo visto in passato c'erano...

Ciao.

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

lorenzo.zonzin Profilo | Newbie

Ciao,
il metodo c'è ma richiede anche il driver e la porta della stampante:
non è possibile dare un valore tipo "default" a queste altre due varaibili?
Se ometto il dato mi da errore...

Oppure devo, inizialmente, salvare da qualche parte, oltre alla stampante, anche il driver e la porta relativi?

Ciao e grazie, Lorenzo.

freeteo Profilo | Guru

>Se ometto il dato mi da errore...
anche se metti nothing?

Ciao.

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

lorenzo.zonzin Profilo | Newbie

Yessssssssssssss...
Mi sono perso in un bicchiere d'acqua: sorry!!!

Grazie Matteo.

freeteo Profilo | Guru

>Yessssssssssssss...
>Mi sono perso in un bicchiere d'acqua: sorry!!!
succede


>Grazie Matteo.
di nulla figurati, siamo qui per questo.
Accetta una risposta così chiudiamo il thread. Grazie.

Ciao.

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

lorenzo.zonzin Profilo | Newbie

Ciao,
non posso, in teoria, accettare la risposta perchè non ho aperto io la questione.

Dimmi tu..

freeteo Profilo | Guru

>Ciao non posso, in teoria, accettare la risposta perchè non ho aperto
>io la questione. Dimmi tu..
nessun problema, dimenticavo che avevi postato un messaggio in questo thread vecchio...

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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5