Fam*_* th 5 rdlc rdl reporting-services dynamic-rdlc-generation
我有两个Tablix(表格)和一个数据集.它们与此数据集绑定
Serial No. | Name
______________|________________
SN0003 | Beckham
SN0005 | Henry
SN0012 | Rooney
SN0119 | Ji Sung
SN0200 | Gerrard
Run Code Online (Sandbox Code Playgroud)
在我的报告中,我需要拆分两个tablix它将显示如下...
(在"Up to Buttom"之前它是"从左到右")
Serial No. | Name || Serial No. | Name
______________|________________ || _______________|______________
SN0003 | Beckham || SN0005 | Henry
SN0012 | Rooney || SN0119 | Ji Sung
SN0200 | Gerrard || |
Run Code Online (Sandbox Code Playgroud)
左表是Tablix1,右表是Tablix2
我想对每个tablix使用这个FilterExpression.
= RowNumber(Nothing) mod 2 = 0
Run Code Online (Sandbox Code Playgroud)
for Tablix1(左表)
= RowNumber(Nothing) mod 2 = 1
Run Code Online (Sandbox Code Playgroud)
对于Tablix2(右表)
但这个消息是错误的......
"A FilterExpression for tablix ‘Tablix1’ uses the RowNumber function.
RowNumber cannot be used in filters."
Run Code Online (Sandbox Code Playgroud)
它不能在Filter中使用Rownumber.我该怎么办?如果我不编辑数据集,是否可能.
您是否有可能首先编辑您正在恢复的数据集?您可以使用添加ROW_NUMBER字段
SELECT
...,
ROW_NUMBER() OVER(ORDER BY SerialNo ASC) AS RowNum,
...
Run Code Online (Sandbox Code Playgroud)
然后你的返回数据集看起来像
Serial No. | Name | RowNum
______________|________________|__________
SN0003 | Beckham | 1
SN0005 | Henry | 2
SN0012 | Rooney | 3
SN0119 | Ji Sung | 4
SN0200 | Gerrard | 5
Run Code Online (Sandbox Code Playgroud)
然后你可以进行过滤 RowNum mod 2 = 0
编辑
或者,如果您无法更改基础数据集,则可以使用RunningValue和CountDistinct更聪明.
CountDistinct 将为每行提供数据集中匹配的行数(因此,假设序列号是唯一的,通常为1)
RunningValue 将在表中的每一行中为您提供越来越多的值...并且可以将所有这些"CountDistincts"相加.
将表的行可见性设置为类似
对于Tablix1
=(RunningValue(CountDistinct(Fields!SerialNo.Value), Sum, "DataSetName") mod 2) = 0
Run Code Online (Sandbox Code Playgroud)
对于Tablix2
=(RunningValue(CountDistinct(Fields!SerialNo.Value), Sum, "DataSetName") mod 2) = 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1260 次 |
| 最近记录: |