0

MS Reporting 提供了两种类型的表(对不起,我不记得是什么属性负责这个)

第一个:(原样)

╔══════╦══════╦══════╗
║ Col1 ║ Col2 ║ Col3 ║
╠══════╬══════╬══════╣
║    1 ║ abc  ║  321 ║
║    2 ║ abc  ║  643 ║
║    3 ║ abc  ║  643 ║
║    4 ║ def  ║  643 ║
║    5 ║ def  ║  529 ║
║    6 ║ def  ║  529 ║
║    7 ║ ghi  ║  529 ║
║    8 ║ ghi  ║  529 ║
║    9 ║ ghi  ║  529 ║
╚══════╩══════╩══════╝

第二个:(不重复重复)

╔══════╦══════╦══════╗
║ Col1 ║ Col2 ║ Col3 ║
╠══════╬══════╬══════╣
║    1 ║ abc  ║  321 ║
║    2 ║      ║  643 ║
║    3 ║      ║      ║
║    4 ║ def  ║      ║
║    5 ║      ║  529 ║
║    6 ║      ║      ║
║    7 ║ ghi  ║      ║
║    8 ║      ║      ║
║    9 ║      ║      ║
╚══════╩══════╩══════╝

如果有很多行,第二个是更优选的。但对于我的客户来说,这看起来很奇怪。他说:“这个表包含空值!”

我对社区的问题:我可以使用非空字符串,例如“-||-”,我该怎么办?它看起来像这样:

╔══════╦══════╦══════╗
║ Col1 ║ Col2 ║ Col3 ║
╠══════╬══════╬══════╣
║    1 ║ abc  ║  321 ║
║    2 ║ -||- ║  643 ║
║    3 ║ -||- ║ -||- ║
║    4 ║ def  ║ -||- ║
║    5 ║ -||- ║  529 ║
║    6 ║ -||- ║ -||- ║
║    7 ║ ghi  ║ -||- ║
║    8 ║ -||- ║ -||- ║
║    9 ║ -||- ║ -||- ║
╚══════╩══════╩══════╝
4

1 回答 1

0

您可以使用Previous函数检查重复值,并使用文本框中的表达式基于此应用占位符值。

例如,将重复的Col2值替换为-||-

=IIF(Previous(Fields!Col2.Value) <> Fields!Col2.Value
  , Fields!Col2.Value
  , "-||-")

评论后编辑

由于报表是在提取/加载数据后呈现的,因此无法确定代码中何时发生了分页符。

但是,如果您有固定的行高并且可以预测页面上将显示多少行,那么您可以考虑使用行号来提供帮助。

假设您知道每页将获得 20 行,您可以使用以下内容:

=IIF(Previous(Fields!Col2.Value) <> Fields!Col2.Value
    or RowNumber(Nothing) Mod 20 = 1
  , Fields!Col2.Value
  , "-||-")

所以对于第 1 行、第 21 行等,它总是显示值。

于 2013-08-20T12:52:55.260 回答