我有大约20个DataTables,我想使用RDLC报告为每个DataTable打印报告。问题是,我必须为每个DataTable创建一个报告。是否可以动态地将DataTable中的列分配给RDLC报告(这样我将只使用一个rdlc报告来处理所有数据表,只更改数据源)
答案 0 :(得分:0)
根据评论,您的内容完全不同。我的意思是一个查找表,你可能有10个查找表,并且都有通用的“ID”,“描述”列,但对于基于医疗的应用程序(听起来像),每个都是如此广泛的不同,我不会建议动态创建报告。输出的数据宽度不同,格式化等。我会为每个相应的内容创建一个报告。
现在,如果您的目的是让一个报告根据内容生成不同格式的数据,例如有关特定患者的所有详细信息,那么您可以查看SUBREPORTS以获取RDLC。这方面的基本前提是您有一个主报表,其中包含最顶层组件的数据。在这种情况下,可能是患者或实际检查......您的选择。
然后,在详细级别,您将SUBREPORT添加到主报表。现在,子报告实际上只是另一个RDLC报告,它被拉入主报告,其数据源可以从主报告中获得以显示其内容(它可以有自己的多行/组,例如多种药物上市)。或者只是一行(患者信息/或检查)。
我在各种报告中执行此操作,并使用DataSet加载数据。这样,一个DataSet可以在其中包含多个DataTable作为参考,并且每个DataTable可以具有可用的DataRows。此类报告的基本布局可能是
MainReportByPatient.rdlc
Patient name, birth, id, etc
address, phone, email, etc...
+------------
| SubReportMeds.rdlc
| +------------
| | Medication Dose Purpose
| | details... details details
| | details... details details
| | details... details details
| +-------------
| ExamHistory.rdlc
| +------------
| | Exam Date Reason blah...
| | details... details... blah..
| | details... details... blah..
| | details... details... blah..
| | ExamDetail.rdlc
| | +-------------
| | | additional nested level per exam to show details... just example
| | +-------------
| |
| +------------
|
+-------------
这是否与您的报告有关?