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();