我有一个对象列表,其成员每个都有一个对象列表。例如,给定以下两个类:
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,因为报表上没有定义架构/网格。
答案 0 :(得分:0)
动态列可能很棘手 - 尤其是因为您对个人构成的手机数量没有限制。有很多方法 - 比如通过提供报告的应用程序生成/调整rdlc xml文件/流。可在此处找到更多此类参考文献Generate columns dynamically in RDLC
我建议改为使用电话号码右键加入员工,并使用层次结构(tablix),员工数据为“父”,电话数据为“子”。