3

我正在尝试使用 ReportViewer 将两个 DataTables 添加到我的报告中的表(tablix)中。

数据表

  • dtPrograms (名称、描述)
  • dtImprovements (改进)

我会有一个程序列表和每个程序的改进列表。

这是我正在寻找的示例:

ReportViewer 目标:改进的程序

我不确定如何设计我的 ReportViewer。使用表格(tablix)是一种好方法还是有更简单的方法?也许使用矩阵?您将如何设计包含两个数据表的报表?

4

2 回答 2

8

详细解决方案

我手动创建了一个 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")

1. 将 Tablix 添加到报告中

新标签


2. 删除除 1 列之外的所有列。保留将重复的列

就我而言,我在此处添加了改进列

添加改进列


3.将父组添加到改进列

我右键单击改进单元格并添加组>父组(在行组下)

添加行组


4. 按名称分组

按名称分组


5. 将子组添加到您的姓名列

这是我添加描述的地方

将子组添加到名称列


6.添加说明

添加说明

7.删除标题

删除标题


结果

这是设计:

设计

这是最终结果: 结果

于 2013-09-13T19:54:57.723 回答
2

在报表设计器中,报表项可能只有一个数据集与之相连。所以说你的名为“Tablix1”的 Tablix 可能只有一个数据集连接到它。但是,如果您有来自 2 个数据库表的数据并希望在一个 tablix 中显示,请说“Tablix1”,您只需创建一个 DataSet(.xsd) 文件,在其中创建一个 TableAdapter 并使用查询来加入将您想要的两个所需表放入一个 DataSet 对象中,然后为报表设计器提供该 DataSet 并将“Tablix1”连接到它。这将允许您(基本上)为 1 个表拥有 2 个数据集。

矩阵和表格之间的区别是微乎其微的。如果我没记错的话,矩阵适用于您想要列和行标题的情况,而表格仅适用于一般列标题。但是,当涉及到 .rdlc 报告时,表格和矩阵都是“Tablix”。所以两者之间没有什么大的不同,一个只是更容易在行标题上做。

于 2013-09-13T16:01:24.780 回答