你绝对可以绑定到DataTables。由于你可以手动创建DataTables,因此这是一种在没有数据库的情况下完成此操作的方法。
以下是一个示例,我们通过编程方式加载RDLC控件以渲染PDF,使用DataTables:
Dim Viewer As New ReportViewer
Viewer.LocalReport.ReportPath = "Physicians\Patients\OrderPlacement\DownloadRx\RxPdf.rdlc"
Me.LoadReport(orderID, Viewer)
Dim Renderer As New Code.Reporting.RenderToPDF
Renderer.Save(Viewer, FileFullPath)
这里是LoadReport的内容:
Private Sub LoadReport(ByVal orderID As Integer, ByVal viewer As ReportViewer)
viewer.LocalReport.DataSources.Clear()
viewer.LocalReport.EnableHyperlinks = True
Dim DocumentData As New RxDocumentData(orderID)
Me.SetupRxPdfDataSourceHeader(DocumentData, viewer)
Me.SetupRxPdfDataSourceMetrics(DocumentData, viewer)
Me.SetupRxPdfDataSourceOrderHeader(DocumentData, viewer)
Me.SetupRxPdfDataSourceOrderItems(DocumentData, viewer)
Me.SetupRxPdfDataSourceChainOfCustody(DocumentData, viewer)
Me.SetupRxPdfDataSourcePreTreatmentWorkupOrderTags(DocumentData, viewer)
Me.SetupRxPdfDataSourceTakeHomeMedicationsOrderTags(DocumentData, viewer)
viewer.LocalReport.Refresh()
End Sub
这里有一个小的配置方法:
Private Sub SetupRxPdfDataSourceHeader(ByVal data As RxDocumentData, ByVal viewer As ReportViewer)
Dim Dset_Header As New ReportDataSource("Dset_Header", data.HeaderDataTable)
viewer.LocalReport.DataSources.Add(Dset_Header)
End Sub
data.HeaderDataTable
是一个我们通过编程创建并手动添加数据的强类型 DataTable。
这个 DataTable 没有什么特别之处,但要让这段代码正常运行可能需要花费一个星期的时间。希望这能有所帮助。