我正在尝试使用 ReportViewer 将两个 DataTables 添加到我的报告中的表(tablix)中。
数据表
- dtPrograms (名称、描述)
- dtImprovements (改进)
我会有一个程序列表和每个程序的改进列表。
这是我正在寻找的示例:
我不确定如何设计我的 ReportViewer。使用表格(tablix)是一种好方法还是有更简单的方法?也许使用矩阵?您将如何设计包含两个数据表的报表?
我正在尝试使用 ReportViewer 将两个 DataTables 添加到我的报告中的表(tablix)中。
数据表
我会有一个程序列表和每个程序的改进列表。
这是我正在寻找的示例:
我不确定如何设计我的 ReportViewer。使用表格(tablix)是一种好方法还是有更简单的方法?也许使用矩阵?您将如何设计包含两个数据表的报表?
我手动创建了一个 DataSet ( ds
)、一个 DataTable ( dtTest
) 并用信息手动填充它。例如:
ds.dtTest.Rows.Add("Test1", "Description 1", "Improvement 1 for Test1")
ds.dtTest.Rows.Add("Test1", "Description 1", "Improvement 2 for Test1")
ds.dtTest.Rows.Add("Test1", "Description 1", "Improvement 3 for Test1")
ds.dtTest.Rows.Add("Test1", "Description 1", "Improvement 4 for Test1")
ds.dtTest.Rows.Add("Test2", "Description 2", "Improvement 1 for Test2")
ds.dtTest.Rows.Add("Test2", "Description 2", "Improvement 2 for Test2")
ds.dtTest.Rows.Add("Test3", "Description 3", "Improvement 1 for Test3")
ds.dtTest.Rows.Add("Test3", "Description 3", "Improvement 2 for Test3")
ds.dtTest.Rows.Add("Test3", "Description 3", "Improvement 3 for Test3")
ds.dtTest.Rows.Add("Test3", "Description 3", "Improvement 4 for Test3")
ds.dtTest.Rows.Add("Test4", "Description 4", "Improvement 1 for Test4")
就我而言,我在此处添加了改进列
我右键单击改进单元格并添加组>父组(在行组下)
这是我添加描述的地方
这是设计:
这是最终结果:
在报表设计器中,报表项可能只有一个数据集与之相连。所以说你的名为“Tablix1”的 Tablix 可能只有一个数据集连接到它。但是,如果您有来自 2 个数据库表的数据并希望在一个 tablix 中显示,请说“Tablix1”,您只需创建一个 DataSet(.xsd) 文件,在其中创建一个 TableAdapter 并使用查询来加入将您想要的两个所需表放入一个 DataSet 对象中,然后为报表设计器提供该 DataSet 并将“Tablix1”连接到它。这将允许您(基本上)为 1 个表拥有 2 个数据集。
矩阵和表格之间的区别是微乎其微的。如果我没记错的话,矩阵适用于您想要列和行标题的情况,而表格仅适用于一般列标题。但是,当涉及到 .rdlc 报告时,表格和矩阵都是“Tablix”。所以两者之间没有什么大的不同,一个只是更容易在行标题上做。