Stampa client side con Crystal report 10

martedì 20 novembre 2007 - 12.03

fabrizio. Profilo | Newbie

Ciao.

Ho un applicazione web VBnet 2005 che utilizza il crystalviewer per visualizzare un report.
All'interno dell'applicazione ho la necessità di selezionare un report e mandarlo in stampa in maniera automatica, senza far visualizzare nè il report nè la finestra delle opzioni di stampa.
Sto utilizzando il metodo PrintMode.ActiveX che mostra la finestra di dialogo dove seleziono la stampante e setto i vari parametri (num. pagine, orientazione foglio, ...).
Devo rendere automatico il processo facendo in modo che la stampante che verrà utilizzata in automatico sia la stampante predefinita sul quel client e impostando lato codice le opzioni di stampa (es: PaperOrientation, ecc..).

Qualcuno sa come si fa?

grazie
fabrizio

freeteo Profilo | Guru

ciao,
credo proprio che non sia possibile farlo,almeno usando il viewer di Crystal e basta.
Questo perche' quando esegui del codice lato server, cosa che con un'applicazione web succede sempre dato che il codice è eseguito proprio dal runtime di quel pc dove c'e' IIS, le stampanti che "vedresti" sono quelle del server e non quelle del client.

Hai provato a creare un report, dando come stampante predefinita sul tuop pc dove l'hai sviluppato, con le stesse impostazioni che ti interessano? Dovrebbero essere impostate di default ogni volta che apri la stampa del report nei vari client...


Altrimenti l'unica cosa che puoi provare (e che io non conosco bene perche' non l'ho mai usato) potrebbe essere usare un ocx tuo (quindi che poi venga registrato sul client al momento dell'apertura della pagina web la prima volta, e che faccia il codice che ti serve per stampare.

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

fabrizio. Profilo | Newbie

Ciao e grazie dell'intervento.
Che tu sappia, esiste qualche alternativa per far stampare automaticamente lato client un report?
Se il viewer di Crystal non va bene, non c'è qualche metodo che gestisce questa situazione?


Creando il report con le impostazioni che mi interessano e poi utilizzando il "window.print" sul client per mandare automaticamente in stampa il report, a quanto leggo in rete, ha come controindicazione il fatto che è il browser che gestisce i page break e ciò rovina l'impaginazione originale del report.
Non ho ancora fatto questa prova, tu hai potuto verificare?

ciao
fabrizio

freeteo Profilo | Guru

>Ciao e grazie dell'intervento.
di niente, siamo qui per questo


>Che tu sappia, esiste qualche alternativa per far stampare automaticamente
>lato client un report?
>Se il viewer di Crystal non va bene, non c'è qualche metodo che
>gestisce questa situazione?
sinceramente ankio ho fatto solo tramite Crystal e mi sono trovato bene, pero' non avevo necessita' particolari...Hai provato a vedere se puoi impostare qualcosa di quell'ocx, tramite codice vbscript magari o tramite qualche tag nel codice html?
Prova a cercare anche nel supporto tecnico delle businessobject: http://technicalsupport.businessobjects.com


>Creando il report con le impostazioni che mi interessano e poi
>utilizzando il "window.print" sul client per mandare automaticamente
>in stampa il report, a quanto leggo in rete, ha come controindicazione
>il fatto che è il browser che gestisce i page break e ciò rovina
>l'impaginazione originale del report.
>Non ho ancora fatto questa prova, tu hai potuto verificare?
Il comando "window.print" è l'equivalente di premere il pulsante stampa della toolbar, quindi lasciare a ie il fatto di mandare in stampa il contenuto della pagina web che stai visualizzando.
Quando mandi in stampa pero', il foglio di stile associato puo' essere modificato rispetto a quello che si vede nel browser, (tipicamente infatti si nascondono i menu ed altre parti grafiche che non interessano), usando questo codice nella pagina:
<html> <head> <LINK media="print" href="print.css" type="text/css" rel="stylesheet" /> ...

(il path del file poi è sempre relativo alla root del sito, puoi metterlo dove vuoi)
Prova a vedere se lavorando con lo stile impostato nel file "print.css" riesci a personalizzare come ti interessa (magari metti un bel po' di margine al div che ti interessa, in modo da forzare il salto del foglio A4).


ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

fabrizio. Profilo | Newbie

La cosa più facile sarebbe utilizzare il window.print direttamente, ma visto il rischio di trovarmi con l'impaginazione alterata rispetto al report originale sto cercando 1 alternativa.
Per rispettare l'impaginazione sto realizzando il pdf del report per poi inviarlo al client.
Ho trovato il modo di inviare il report in formato pdf in una finestra del browser come un output stream, ma non riesco a mandarlo in stampa in maniera automatica.
Il problema è che una volta inviato il pdf al browser non è più IE che lo gestisce ma Acrobat Reader, per cui il window.print non sortisce nessun effetto, e non trovo il modo per gestire il bottone di print della toolbar di Acrobat Reader.
Come fare?

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