RDLC报告,列表列表作为其数据源

时间:2017-04-04 13:27:28

标签: c# list rdlc

我有一个对象列表,其成员每个都有一个对象列表。例如,给定以下两个类:

Class Phone
 string AreaCode
 string Description
 string Number

Class Employee
 string FirstName
 string LastName
 List<Phone> Phones

然后我有多个员工,每个员工都有多个电话:

List<Employee> Employees

我的任务是创建一个RDLC报告来列出数据。格式类似于:

名字姓氏Phone.Description-1 Phone.Description-2 ... Phone.Description-n
名姓Phone.Number-1 Phone.Number-2 ... Phone.Number-N
名姓Phone.Number-1 Phone.Number-2 ... Phone.Number-N
名姓Phone.Number-1 Phone.Number-2 ... Phone.Number正

我不知道将从数据库中返回多少个电话(在此示例中)。

请注意,Phone.Number列上方的标题也来自

List<Phone>

虽然这些来自数据库,但它们在

的所有成员中都是相同的
List<Employee>.List<Phone>

(即Employee1-Phone1,Employee2-Phone1和Employee3-Phone1都将拥有相同的Phone1标题)。

我可以使用

创建RDLC报告
List<Employee> 

作为其数据源,但一直无法找到合并

的方法
List<Employee>.List<Phone>

与其父Employee在同一行。

这在RDLC矩阵中是否可行?或者是否有可以使用的“自动生成列”类型的功能?

感谢您提供的任何帮助/指示/建议。

附录: 我应该提到从数据库返回的DataSet正是我需要的格式。但是,由于我不知道将返回多少“Phone”列,因此我没有可定义的架构,因此,我无法在设计器中创建报表。出于同样的原因,我无法以编程方式将数据源设置为DataSet,因为报表上没有定义架构/网格。

1 个答案:

答案 0 :(得分:0)

动态列可能很棘手 - 尤其是因为您对个人构成的手机数量没有限制。有很多方法 - 比如通过提供报告的应用程序生成/调整rdlc xml文件/流。可在此处找到更多此类参考文献Generate columns dynamically in RDLC

我建议改为使用电话号码右键加入员工,并使用层次结构(tablix),员工数据为“父”,电话数据为“子”。