s-s-rS 仅在每个新页面的第一行显示文本框值

Posted

技术标签:

【中文标题】s-s-rS 仅在每个新页面的第一行显示文本框值【英文标题】:s-s-rS show text box value only in first row of every new page 【发布时间】:2018-10-18 11:03:45 【问题描述】:

我有一个s-s-rS 报告,我已按区域分组父组,然后按代码分组子组,并删除了这两个组的“仅列”。 我还设置了区域父组在每个组实例之间有分页符。

我希望代码在每一行中都可用。仅在每页的第一行加上区域名称。

第 1 页:

╔═════════════╤════════╤════════╗
║ Area & Code │ Street │ Orders ║
╠═════════════╪════════╪════════╣
║ 12 - US     │ AZ     │ 2      ║
╟─────────────┼────────┼────────╢
║ 13          │ AQ     │ 1      ║
╟─────────────┼────────┼────────╢
║ 14          │ AW     │ 5      ║
╟─────────────┼────────┼────────╢
║ 17          │ AE     │ 6      ║
╚═════════════╧════════╧════════╝

第 2 页:

╔═════════════╤════════╤════════╗
║ Area & Code │ Street │ Orders ║
╠═════════════╪════════╪════════╣  // As you can see here US is missing.                                          
║ 18          │ AG     │ 10     ║  // I want US to appear here like 18 - US
╟─────────────┼────────┼────────╢
║ 19          │ BQ     │ 13     ║
╟─────────────┼────────┼────────╢
║ 21          │ CW     │ 53     ║
╟─────────────┼────────┼────────╢
║ 22          │ DE     │ 72     ║
╚═════════════╧════════╧════════╝

第 3 页:

╔═════════════╤════════╤════════╗
║ Area & Code │ Street │ Orders ║
╠═════════════╪════════╪════════╣
║ 18 - AU     │ AG     │ 10     ║
╟─────────────┼────────┼────────╢
║ 19          │ BQ     │ 13     ║
╟─────────────┼────────┼────────╢
║ 21          │ CW     │ 53     ║
╟─────────────┼────────┼────────╢
║ 22          │ DE     │ 72     ║
╚═════════════╧════════╧════════╝

第 2 页中的预期结果:美国应该在第一行输入代码。

╔═════════════╤════════╤════════╗
║ Area & Code │ Street │ Orders ║
╠═════════════╪════════╪════════╣
║ 23 - US     │ AG     │ 10     ║
╟─────────────┼────────┼────────╢
║ 24          │ BQ     │ 13     ║
╟─────────────┼────────┼────────╢
║ 25          │ CW     │ 53     ║
╟─────────────┼────────┼────────╢
║ 26          │ DE     │ 72     ║
╚═════════════╧════════╧════════╝

下面的表达式在区域和代码文本框中,但它只在页面开头显示新区域。

=Fields!AreaCode.Value + IIF(Previous(Fields!AreaName.Value)=Fields!AreaName.Value,"",

 IIF(Fields!AreaName.Value="","", "- "+ Fields!AreaName.Value))

我该如何解决这个问题,有没有办法确定当前页面是否并写在下面的表达式?

=Fields!AreaCode.Value + if current page is new page then show the Area Name in first row 
of page else hide it ?

任何帮助将不胜感激。

【问题讨论】:

这有帮助吗? sqlchick.com/entries/2011/8/20/… @MiguelH,谢谢,我很快就看到了这篇文章,它对不同的值进行了分组,但是正如您在我的区域组中看到的那样,当组行填充下一页时,尽管我们的值相同应该在每一页的第一行看到。 只有当区域发生变化或区域可以跨页时才会出现分页符? @AlanSchofield ,两者,我的意思是当新区域发生变化时,它将显示在第一行,当同一区域在下一页有更多行时,然后在第二页的第一行中显示该区域名称。 【参考方案1】:

早上好,

解决方案可能是在数据集中创建一个新列以使用主“mainGroup”。表达式应该类似于 =Ceiling(RowNumber(Nothing)/4)(如果您希望每页 4 行,则为 4)

然后,在单元格中,使用如下表达式:

=IIF(RowNumber("mainGroup")=1, Fields!AreaCode.Value + "- "+ Fields!AreaName.Value, Fields!AreaName.Value)

最后,使用“mainGroup”对您的 s-s-rS 进行分页。

我没有尝试,但它应该可以工作。

【讨论】:

感谢您的想法,我应该在Tablix 还是dataset 中创建新列?如果每页的行数不受限制怎么办? 我也没有空间在Tablix中添加新列

以上是关于s-s-rS 仅在每个新页面的第一行显示文本框值的主要内容,如果未能解决你的问题,请参考以下文章

如何在表达式中引用文本框值? s-s-rS

s-s-rS - 在每个新页面上打印 tablix 行标题

清除文本框值 onclick 并显示 onblur

s-s-rs 在页脚中求和许多文本框值

SSRS中的第一个函数/显示每个页面的第一行

s-s-rS - 当第二行溢出到第二页时重复详细信息组中的第一行