[Report Viewer] Problemi con inserimento Dati Intestazione e Corpo

giovedì 17 giugno 2010 - 12.48

Malkavian Profilo | Newbie

Ciao a tutti,
ho iniziato ad usare Report viewer su un applicazione in Vb.net 2005.
La mia intenzione e di creare un modella di Stampa Fattura.
Le prime difficoltà sono:

1: Non posso creare nell'intestazione del report i dati relativi alla fattura come NumeroDocumento,Data Documento e Cliente. perché i dati del Datasource posso essere inseriti solo nel Corpo.
2: se decido di mettere l'intestazione della Fattura nel Corpo del report non posso mettere il numero Pagina.

La domanda a questo punto è:
E proprio cosi QUADRATO! oppure ci sono dei modi per aggirare questi problemi che data l'inesperienza non conosco??

Grazie a tutti

freeteo Profilo | Guru

Ciao,
allora non è che è "rigido" il motore, è che bisno un attimo capire il senso della struttura che hanno dato
A differenza di altri report dove quello che vedi è già la struttura, come ad esempio Crystal dove quando apri il designer quello è già il risultato su carta di quello che puoi usare, quindi per fare dei gruppi ad esempio, devi aggiungere un gruppo su quella superficie e infatti vedi che ti aggiunge le sezioni sopra e sotto ai dettagli.

Il report di Sql Reporting invece ti permette di aggiungere varie tabelle, (tablix nell'ultima versione) liste o altro direttamente nel corpo, quindi tecnicamente anche una di fianco all'altra ed ognuna crescerà per i record suoi etc...quindi diciamo ti da una flessibilità maggiore.

Tutto questo per dire che se devi fare una struttura con testa->corpo->piede puoi fare tutto con un oggetto tabella e mettere i dati li, se hai più colonne puoi fare il merge delle celle (selezioni e fai tastoDX->merge cells) e poi magari puoi metterci dentro un rectangle (che ti da la possibilità di mettere in maniera più libera) i campi che compongono l'header...e cose di questo genere.
Valuta poi se devi fare raggruppamenti, salti di pagina etc..

Perdonami se nella spiegazione sono stato un po' contorto...

Ciao.

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

Malkavian Profilo | Newbie

Ciao, prima di tutto grazie per la spiegazione.
Dopo un paio di giorni di prove ed esperimento inizio a districarmi bene nel mondo di report viewer.
Solamente che non riesco a trovare un vero e proprio supporto guida ecc..ecc...
Quindi mi ritrovo a fare nuovamente una domanda...

Ora ho creato un modello fattura:
Testa: Logo della Ditta, Cliente ecc.ecc...
Corpo: Ho usato una tabella per gli articoli della fattura.
Teoricamente avrei anche finito ma mi rimane un ultimo grande problema...
La tabella creata su report contentendo gli articoli della fattura ha un numero di elementi variabili.... ma non ho trovato in nessun modo il sistema per portare la visualizzazione della tabella fino alla fine del corpo...
Qualche idea???

freeteo Profilo | Guru

Ciao,
a quanto ne so io non è possibile dire ad un oggetto che vada avanti alla fine del corpo purtroppo.
A mio avviso però potresti giocare aggiungendo record vuoti alla tabella (se sai quanti ce ne stanno per pagina), oppure provando con un oggetto linea che continui fino alla fine della pagina in modo che "simuli sia la tabella che si espande in basso"...

Ciao.

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

Malkavian Profilo | Newbie

Ok ce l'ho fatta. Ho aggiunto un rettangolo che contiene la tabella e ora il problema non sussiste più.
Pero giustamente risolto un problema ne esce fuori un altro...

Nell'intestazione di Pagina non posso mettere campi del dataset e invece ho necessita di ripetere per ogni pagina alcuni dati tipo Numero Documento,Cliente ecc.ecc..
Col tasto destro su un oggetto dice di trascinare per tutte le pagine ma poi non lo fa.....

freeteo Profilo | Guru

>Ok ce l'ho fatta. Ho aggiunto un rettangolo che contiene la tabella
>e ora il problema non sussiste più.
ok


>Nell'intestazione di Pagina non posso mettere campi del dataset
>e invece ho necessita di ripetere per ogni pagina alcuni dati
>tipo Numero Documento,Cliente ecc.ecc..
è vero, non è possibile farlo (almeno non facilmente) ma puoi lavorare con l'intestazione della tabella o dell'intestazione di un gruppo in essa, e dirgli di ripetertela ogni pagina...quindi far fare a quell'intestazione il lavoro del "pageHeader"...


Ciao.

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

Malkavian Profilo | Newbie

Hai per caso un esempio perché e mezza giornata che ci provo ma niente....

freeteo Profilo | Guru

ti ho postato un esempio semplice di cosa intendo, dove vedi che l'header della tabella viene ripetuta ad ogni pagina e funge da "pageheader".
Chiaramente è solo da prendere spunto, tu adattalo con campi e layout che ti serve...

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