Anteprima di più piu report CRYSTAL REPORTS VB.NET

martedì 31 marzo 2009 - 12.14

argento01 Profilo | Newbie

Salve ho un applicazione che deve mandare in stampa diversi report che tiro fuori tramite crystal reports
ESEMPIO:
Dim rpt As New Report
For Each riga As DataGridViewRow In DataGridView1.Rows
ds.Clear()
ds = query
rpt.SetDataSource(ds.Tables(0))
rpt.PrintToPrinter(1,False,1,1)
Next

Vorrei fare un anteprima di tutti questi file in un unico file.

Non so se mi sono spiegato in modo chiaro, grazie

luxsor Profilo | Guru

Ciao Mario,
se voi creare diverse anteprime per diversi report, l'unico modo creati una Form e inserisci tanti crystalreportview quanti sono i report che devi visualizzare.
Invece se vuoi creare un solo report che raggruppa diversi report lo puoi fare "anche se grezzo" con i subreport.

Fammi sapere

argento01 Profilo | Newbie

Grazie per l'interessamento,
il problema è che io non so a priori quanti report ci sono se 1,10 o 100,
quindi credo che nemmeno la soluzione dei sottoreport vada bene.
Altre Idee?

luxsor Profilo | Guru

>il problema è che io non so a priori quanti report ci sono se 1,10 o 100
Ma che applicazione stai sviluppando?

Poi creare dinamicamente il controllo crystalreportview

argento01 Profilo | Newbie

è un applicazione per gestire un piccolo laboratorio di analisi cliniche,
il problema è sulla stampa dei referti, quindi in base ai pazienti avrò tante stampe.

Il lab. vuole inviare in stampa tutti i referti pronti dalla data alla data con un solo clic, però con l'opzione di scegliere di vedere o meno l'anteprima di quello che stamperà.

R3GM4ST3R Profilo | Junior Member

Non mi è ben chiara la richiesta...
che senso ha stampare il tutto con un click se poi li devo visualizzare uno ad uno per stamparli?
Dal punto di vista del funzionamento, non capisco che utilità possa avere...
Un conto è una cosa del tipo
ho una lista di 100 referti, ne devo valutare 2, li apro, li valuto ed eventualmente li levo dalla lista di stampa, dopodichè stampo tutti e 100 o 98 i report in una botta sola...
Ma visualizzarli tutti e 100 per poi stamparli non ha molto senso...anche perchè prova ad aprire 100 file in pdf e guarda com'è contento un normale pc da ufficio con un giga di RAM...
Ad ogni modo, come giustamente diceva luxsor, puoi pure creare a runtime i crystal report viewer necessari alla visualizzazione, o meglio, ti conviene usare una finestra con all'interno un controllo "TabControl", crei dalla progettazione la tua singola TAB con dentro il CRViewer, dopodichè via codice ti salvi il tab[0] in una variabile di tipo TabPage, e la aggiungi via codice N volte al controllo "TabControl" impostando al relativo controllo aggiunto il report corrente...
Così facendo crei N tab con all'interno il crystal report viewer. (non sono del tutto certo che il sistema sia felice)

Altrimenti, cosa più sensata, fai un report multiplo raggruppando i risultati della query (all'interno del crystal report) ad esempio per id_paziente, o id_referto, così facendo crei un solo report di N pagine, dove N è il numero dei referti da stampare...

Altrimenti fai così, crei tutti i report con il tuo bel ciclo for e li infili tutti in una lista dinamica, o meglio in una collection di "crystal report document".
Una volta creata la lista dei documenti, crei un form con dentro 3 bottoni (Indietro, Elimina, Avanti) ed il crystal report viewer, e tramite i pulsanti (avanti,indietro) scorri la collection impostando l'item corrente come documento da visualizzare del crystal report viewer, nel caso in cui il documento corrente non sia corretto, lo elimini dalla collection, e mandi in stampa tutto il resto...

Altre idee non mi vengono...

Ciao!


Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (Albert Einstein)

argento01 Profilo | Newbie

Mi hai salvato la vita con l'ultima soluzione che mi hai dato ovvero:
Una volta creata la lista dei documenti, crei un form con dentro 3 bottoni (Indietro, Elimina, Avanti) ed il crystal report viewer, e tramite i pulsanti (avanti,indietro) scorri la collection impostando l'item corrente come documento da visualizzare del crystal report viewer, nel caso in cui il documento corrente non sia corretto, lo elimini dalla collection, e mandi in stampa tutto il resto

GRAZIE MILLE

R3GM4ST3R Profilo | Junior Member

Prego!
Fanno 1000 euri, grazie!




Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (Albert Einstein)
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