[ReportViewer] Inserire un field nell'header

martedì 06 maggio 2008 - 08.09

lukepet Profilo | Junior Member

Ho un problema nella definizione di un report con ReportViewer.

Il report carica diverse informazioni prese da differenti dataset; alcune di queste informazioni riguardano un particolare cliente.

Ho la necessità di stampare tali informazioni nell'header del report, in modo che vengano ripetute ad ogni pagina. Inizialmente per risolvere il problema avevo definito dei ReportParameters i cui valori associati venivano caricati nelle textbox inserire nell'header, però questa soluzione prevede che si agisca nel codebehind per impostare i parametri...e questa cosa per una serie di motivi preferirei evitarla.

Così ho provato ad inserire nelle textbox dell'header un riferimento indiretto ai field caricati nelle textbox del body (nascondendo quest'ultime). In pratica nelle textbox dell'header ho inserito istruzioni del tipo "=ReportItems!textbox2.value".
Il problema con questo tipo di soluzione è che l'informazione viene caricata solamente sulla prima pagina del report, probabilmente questo perchè l'hidden textbox da cui pesca il valore non è ripetuta ad ogni pagina ma risiede solo sulla prima.

Come faccio ad ovviare a questo inconveniente? E' possibile ripetere l'hidden textbox su ogni pagina del report?

O in alternativa avete altri tipi di soluzioni da suggerire per risolvere il problema?

Grazie in anticipo per ogni risposta.

freeteo Profilo | Guru

ciao,
io ti consiglierei di "modificare" 1po il tuo approccio al report, senza cercare di mettere cose nell'header, ma usando invece della "list" per ripetere i valori, una Table.

Usando la tabella infatti, puoi fare dei raggruppamenti, e mettere dei campi negli header dei raggruppamenti e dargli la proprietà "Repeat on new page", in modo da fare da "intestazione", lasciando stare gli header.

Lavorando così dovresti riuscire ad ottenere lo stesso comportamento che stai cercando...

ps: le celle le puoi anche "unire" e magari lavorare negli header con campi testo disposti come vuoi, indiependentemente da come visualizzi i dettagli...

ciao.

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

lukepet Profilo | Junior Member

Ho provato questa soluzione ma ci sono dei problemi a livello di Layout grafico...non riesco ad ottenere l'effetto grafico originale a causa di alcune righe che vanno a capo creando dei riporti...non so se mi sono ben spiegato ma più o meno il problema è questo. Se ci fosse il modo di unire più celle verticalmente e non solo orizzontalmente forse sarebbe possibile risolvere questo inconveniente, ma non mi sembra che ReportViewer consenta l'unione verticale delle celle.

Non esiste un modo per assegnare ad un parametro il valore filtrato di un field del dataset? In sostanza dovrei riuscire a creare una sorta di costante cui far riferimento ad ogni pagina del report.

freeteo Profilo | Guru

ciao,
i parametri puoi passarli al report con:
... List<ReportParameter> parametri = new List<ReportParameter>(); parametri.Add(new ReportParameter("par", "False")); report.SetParameters(parametri); ...
dove "par" è il nome del parametro definito nel disegnare il report dentro a visual studio.

ma non puoi aggiungere un'altra riga sotto di intesazione? senza che sia un nuovo gruppo, ma una sola riga....(tastoDX->Insert row Below)
cmq verticalmente non puoi unirle, devi lavorare con dentro un campo box, e mettere dentro 2 textbox...

ciao.

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

lukepet Profilo | Junior Member

Ma uno modo per settare i parametri senza agire dal codice? è possibile?

freeteo Profilo | Guru

nel ReportViewer delle windowsForm, ovvero i file RDLC (RDL + C=client-side) non c'è niente di automatico.
Se i tuoi report girano in un ReportServer allora si arrangia il viewer a visualizzarti le combo con i parametri richiesti...

ciao.

Matteo Raumer
[MCAD .net]
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