c# - 以列表列表作为数据源的 RDLC 报告

标签 c# list rdlc

我有一个对象列表,每个对象的成员都有一个对象列表。例如,给定以下 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/

相关文章:

c# - SQL 表到 C#

python - 使用列表理解替换字符串

c# - 在 RDLC 中添加多个表

java - 逐行解析文本文件,跳过某些行

Python 如何仅接受用户输入的某些单词

visual-studio-2010 - Rdlc报表分组不重复数据

C# 报告 anchor 到底部

c# - 如何使用配置文件在运行时生成和初始化对象?

c# - 如何在不安装java运行时的情况下在asp.net中使用java applet?

C# LINQ 查询一个List<Dicitonary<string, object>>