reporting-services - 在 SSRS 中。我正在尝试创建一个 SSRS 报告,该报告为每行数据创建一个新页面,并为每个页面插入一个相同的模板
问题描述
在 SSRS 中。我正在尝试创建一个 SSRS 报告,该报告为共享数据集中查询的每一行数据创建一个新页面。然后它将在文本框下插入值。每个页面上的模板都相同。我将如何具体做到这一点?我的最终目标是生成 PDF 格式的报告,在每个标题/文本标题下的模板中插入数据,并为每个记录/数据行创建一个新页面/模板。
解决方案
您在这里有两个主要选择。
选项 1:行组 创建一个行组,该行组按使您的记录唯一的内容(可能是 ID 列或类似列)进行分组。
在该行组中添加尽可能多的行来放置所有文本框。
在行组 pproperties 上,将分页符设置为“每个实例之间”
选项 2:子报告 该方法有点冗长,但我发现它更易于维护。
创建一个接受标识单个记录的参数的报告。例如,如果每条记录都有一个唯一的 ID,例如
ID FirstName LastName
1 Dave Smith
2 Bob Jones
3 Mary Scary
然后创建一个接受 ID 作为参数的报告。
您的数据集查询将类似于
SELECT * FROM myTable WHERE ID = @ID
根据需要构建您的报告,以便为 1 条记录生成报告。
一旦测试并工作,创建一个新的“主”报告。
添加返回要报告的记录的数据集查询。在我们的简单示例中,这可能类似于
SELECT ID FROM myTable
将表添加到您的报表并将其数据集属性设置为您刚刚创建的数据集。接下来在第一个单元格中表格的详细信息行上,右键单击并选择“插入 => 子报表”。
右键单击子报表占位符并将子报表设置为指向我们之前创建的子报表。在子报表属性的参数选项卡上,单击“添加”并选择左侧的参数名称。在“值”下的右侧,从数据集中选择您的 ID 列。
您可以删除任何空白行/列,应该就是这样。
在详细信息行组上,将分页符设置为“每个实例之间”
当报表运行时,它将为每条记录生成一行,并且在每一行中,将为每条记录生成一个子报表的副本。
推荐阅读
- r - 添加了重复的行
- concurrency - Azure DataFactory 中的并发
- javascript - 不变违规:试图获取超出范围索引 NaN 的帧 - React Native
- python - Boto 3 DynamoDB 更新表 api 不提高表的配置?
- c - 程序不会对矩阵数组中的随机元素求和
- powershell - 如何在 PowerShell 并行循环内打印到控制台
- sql - 在多个条件下连接和分组三个表 - SQL
- mysql - 对于每个系列,如何获得一系列项目中的最小数字?
- c# - EF Core 与 Pomelo.EntityFramework.Core 3.1.1 - 慢查询
- apache-spark - 如何按列值分组处理pyspark数据框