venerdì 27 maggio 2011

Telerik - Assegnare un DataSource ad un subReport

C# 4.0

In un report generato con un controllo Telerik (Reporting Q3 2010), oltre alla testata c’è il dettaglio in quale è “binding” ad un oggetto .NET. Si deve quindi passare il valore di tale oggetto a run-time prima del rendering del report.
Il report principale si chiama “Invoice” ed il dettaglio è costituito dal subReport “InvoiceDetail” il quale ha come DataSource l’ObjectDataSource: DocumentDetail.
DocumentDetail è quindi un oggetto le cui proprietà vanno a definire il dettaglio del report per esempio il controllo TextBox con il codice del prodotto ha il seguente Value:  “ =Fields.ItemCode”

Resta quindi da assegnare il DataSource al sub Report:

DocumentViewer documentViewer = new DocumentViewer(); // Visualizzatore del report

Invoice invoice = new Invoice {DataSource = DocHeader}; // Report principale con il suo DataSource

SubReport subReportInvoiceDetail = (SubReport)invoice.Items[0].Items[0]; // Elemento del report principale contenente il sub report con il dettaglio
 
subReportInvoiceDetail.ReportSource.DataSource = DocumentDetails; // Oggetto con i dettagli del documento, assegnato al data source del sub report.

documentViewer.rptInvoice.Report = invoice;
documentViewer.Show();