我有一个对象列表,每个对象的成员都有一个对象列表。例如,给定以下 2 个类:
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
FirstName LastName Phone.Number-1 Phone.Number-2 ... Phone.Number-n
FirstName LastName Phone.Number-1 Phone.Number-2 ... Phone.Number-n
FirstName LastName Phone.Number-1 Phone.Number-2 ... Phone.Number-n
我不知道将从数据库中返回多少电话(在此示例中)。
请注意,Phone.Number 列上方的标题也来自
List<Phone>
虽然这些也来自数据库,但它们在
的所有成员中都是相同的List<Employee>.List<Phone>
(即 Employee1-Phone1、Employee2-Phone1 和 Employee3-Phone1 都具有相同的 Phone1 header )。
我可以使用
创建 RDLC 报告List<Employee>
作为它的数据源,但一直无法找到一种方法来合并
List<Employee>.List<Phone>
与其父员工在同一行。
这在 RDLC 矩阵中可行吗?或者是否有可以利用的“自动生成列”类型的功能?
感谢您提供的任何帮助/指导/建议。
附录: 我应该提一下,从数据库返回的数据集正是我需要的格式。但是,由于我不知道将返回多少“电话”列,因此我没有可定义的架构,因此无法在设计器中创建报告。出于同样的原因,我无法以编程方式将数据源设置为数据集,因为报表上没有定义架构/网格。
最佳答案
动态列可能很棘手 - 特别是因为您没有限制可以单独摆出多少个手机。有一些方法可以解决这个问题——比如通过为报告提供服务的应用程序动态生成/调整 rdlc xml 文件/流。可以在此处找到更多此类引用资料 Generate columns dynamically in RDLC
我建议改用电话号码右联员工,并使用层次结构 (tablix),员工数据是“父”,电话数据是“子”。
关于c# - 以列表列表作为数据源的 RDLC 报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43208639/