reporting-services - SSRS:需要组页脚位于页面底部
问题描述
我最近将旧的 Crystal 报表转换为 SSRS。我差不多完成了,但还有一个问题。在 Crystal 中,组页脚似乎都锚定在页面底部,而在 SSRS 中,它们直接位于细节下方,在组页脚下方留下一堆空白。
我在谷歌上搜索了很多次,发现很少有涉及组页脚的文章,它总是页面或报告页脚。我想要的是使用所有剩余空间的详细信息部分。我试过让它更大,但是当我在细节中有多行时,它后面有一堆空白。我尝试增加各种组页脚的高度(我在本报告中有 3 个组),但它似乎缩小到内容。我已经检查了组属性、报告属性、我能找到的每个属性页面,但我似乎找不到将它们锚定到底部的东西。我可以将一个元素的垂直对齐设置为底部,但我需要所有 3 个组页脚都位于底部。
我附上了两份报告的图片,SSRS 一份显示了我需要固定在底部的内容,而 Crystal 一份显示了它应该是什么样子。我觉得这应该是一件容易的事。我见过的唯一解决方案是将高度设置为公式的占位符,其中包含 6 个值,以尝试计算它应该占据多少高度。这似乎是一个荒谬的解决方案。
我不确定这是否重要,但我将这些报告保存为 rdlc 格式,因为它们是由 API 提供的。我在 rdl 中编辑它们,然后将它们复制过来并重命名扩展名。
我尝试包含 XML,但它超出了问题的字符限制(200k+ 个字符)。如果有人需要,我将不得不想办法发送它。
解决方案
SSRS 不擅长做这种间距。
但是,我们可以通过执行以下操作来欺骗它。
首先..创建一个子报表 - 我们称之为
“插入空行”
我喜欢为我的数据源使用存储过程 -
所以这是我的报告代码:
ALTER PROCEDURE [dbo].[report_getblankrows](@N AS INT)
AS
BEGIN
DECLARE @Numbers TABLE
(
Number INT IDENTITY(1,1) PRIMARY KEY CLUSTERED
)
WHILE COALESCE(SCOPE_IDENTITY(), 0) < @N
BEGIN
INSERT @Numbers DEFAULT VALUES
END
SELECT * FROM @Numbers
END
它所做的几乎所有事情都是返回作为参数提供的数字的行。
现在在您的插入空白行报告中。使用它作为数据源并将数字字段放在详细信息行组中。
报告本身不需要很大......填充空间并将字体颜色设置为白色,因此它不可见。
现在在您的主报告中.. 假设您有一个名为“发票”的数据集(用于所有发票详细信息)。您显然有一个详细信息行..紧接在详细信息组之后,并且在您的“页脚”摘要之前(您需要向下推的位);将所有字段合并到一行中,然后在该行中插入一个子报表并将其指向“插入空白行”子报表。(如下图)
现在转到子报表属性-> 参数并添加参数..
姓名 N
值 = 10 - countrows("发票")
这是试错部分。第一个数字 (10) 只是一个猜测开始.. 运行您的报告,看看发票摘要被向下推了多远.. 需要一些试验和错误才能获得正确的数字..空白行不够,增加第一个数字(10)...太多,减少它..以适应。
如果发票有足够的行来填充页面..返回的数字是负数..因此子报表不会填充任何行并且不会创建空格。
这是我能想到的最好的,并且已经使用了多年。祝你好运!
推荐阅读
- visual-studio-code - Visual Studio Code:如何禁用“找不到 .NET Core SDK”
- python - 安装 Python 的 Mageck 包时无法修复 C 编译环境错误
- css - Bootstrap NavDropdown ClassName active 不存在,如何知道何时选择了下拉元素?
- python - 有没有办法在 Kivy 中创建 2D 难以处理的网格?
- iis - 应用程序托管在托管术语中的 w3wp.exe(进程内)或 application.exe/dotnet.exe(进程外)中的含义
- python - CSV 文件未正确写入 ByteString
- python - 规范化数据集以查找季节性和平均 python pandas
- html - mvc 视图选择下拉 ui 改进
- reactjs - 你可以使用 gatsby-source-mongodb 来发布数据吗?
- python - / 不支持的操作数类型:“方法”和“方法”,Django