SSRS仅显示一个表格行

3

我正在处理一个与数据集相关的问题,需要仅显示例如数据集中的第五个元素。因此,我确保数据集已正确排序(按标题字母顺序),然后使用以下代码为每一行分配递增编号。

public counter As Integer = 0

Function SetNumber()
 counter = counter + 1
 return counter
end Function

所以数据看起来会像这样:
1 | Africa
2 | America
3 | Antarctica
4 | Asia
5 | Europe
6 | Oceania

接着,我进入详细行的“行可见性”选项,并选择根据表达式隐藏/显示该行。我目前使用的表达式是:

=iif(Fields!Increment.Value = 5, False, True)

使用此表达式将隐藏所有的表格行。如果我将“False”和“True”的值交换,如下所示:
=iif(Fields!Increment.Value = 5, True, False)

只有第五行被隐藏,其他所有行都可见。

有人知道为什么我的表达式不起作用或者如何使这个功能起作用吗?

编辑“获取数据的查询”:

<RSSharePointList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ListName>Continents</ListName>
  <ViewFields>
    <FieldRef Name="Title" />
  </ViewFields>
  <Query>
    <OrderBy>
      <FieldRef Name="Title" Ascending="True"/>
    </OrderBy>
  </Query>
</RSSharePointList>

对于这个查询,我添加了一个名为“Increment”的计算字段,使用以下表达式:
=Code.SetNumber()

1
最简单的方法是在您的查询/数据库上完成此操作。这可能吗?您能展示一下我们的查询吗? - user2900970
@user2900970 我从SharePoint列表中获取数据,但我马上会把它放上去。 - Gravinco
2个回答

2

您希望隐藏增量值大于5的行。因此,请使用以下方法:

=IIf(Fields!Increment.Value <= 5, False, True)

更简单的方法是删除计算字段,改用RowNumber()函数。
=IIf(RowNumber(Nothing) <= 5, False, True)

1
这是比我目前拥有的更好的解决方案,但我想要一个只提供第五个项目的表达式。这显示了前五个项目,而不仅仅是第五个。顺便说一句:感谢“行号”提示 :) - Gravinco
完美。谢谢! - PseudoToad

1

好的,我找到了解决方案。感谢用户2900970,我意识到我不应该尝试显示一个项目并隐藏所有其他项目。

因此,使用这个表达式,我只获取了我想要的1个项目:

=IIf(RowNumber(Nothing) <> 5, True, False)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接