在 Previous 函数中指定范围
Specify a scope in the Previous function
我想创建一个规则,仅当某列与一组中的最后一行不同时,才在该列中显示某些内容。它们都是订单的行,但我希望为订单中的每个新项目重新启动规则。
我目前正在使用:
=IIF(Fields!REL_NO.Value = Previous(Fields!REL_NO.Value), Nothing, Fields!REL_NO.Value)
REL_NO 是我要隐藏的字段,如果与最后一行相同。附件是我的数据集的图片,显示 rel_no 变化。
所以我遇到的问题是我希望它显示在每个项目的第一行,但前一个子句只查看所有项目的前一行。我尝试添加范围(我有一个 "LINE_NO" 组),但这没有用。 REL_NO 全部显示。
显示所有数据
试图隐藏
如果您需要更多上下文,请告诉我。
如果您没有另一列来对具有相同 "Line No" 的行进行排序,以下快速而肮脏的查询将生成伪查询和 return 所需的结果。
WITH a (rn, ln, delno)
AS
(
select row_number() over( order by "Line No") rn, "Line No" ln, "Del No" delno
from test
)
select
rn,
ln,
case when delno = (select top 1 delno from a b where b.ln <= a.ln and b.rn < a.rn )
then cast( null as integer)
else delno
end
from a
我会以稍微不同的方式处理这个问题。
假设我有与您相似的数据:
以及基于此数据的简单报告:
请注意,有一个基于 LINE_NO
的组,尽管该组没有 header 行。
我会通过使用 REL_NO
文本框的 HideDuplicates 属性 来达到你想要的结果:
你可以设置一个特定的范围;我在这里使用了 DataSet1,即考虑数据集中的所有行,而不仅仅是 LINE_NO
组的范围。
这似乎按预期工作:
我想创建一个规则,仅当某列与一组中的最后一行不同时,才在该列中显示某些内容。它们都是订单的行,但我希望为订单中的每个新项目重新启动规则。
我目前正在使用:
=IIF(Fields!REL_NO.Value = Previous(Fields!REL_NO.Value), Nothing, Fields!REL_NO.Value)
REL_NO 是我要隐藏的字段,如果与最后一行相同。附件是我的数据集的图片,显示 rel_no 变化。
所以我遇到的问题是我希望它显示在每个项目的第一行,但前一个子句只查看所有项目的前一行。我尝试添加范围(我有一个 "LINE_NO" 组),但这没有用。 REL_NO 全部显示。
显示所有数据
试图隐藏
如果您需要更多上下文,请告诉我。
如果您没有另一列来对具有相同 "Line No" 的行进行排序,以下快速而肮脏的查询将生成伪查询和 return 所需的结果。
WITH a (rn, ln, delno)
AS
(
select row_number() over( order by "Line No") rn, "Line No" ln, "Del No" delno
from test
)
select
rn,
ln,
case when delno = (select top 1 delno from a b where b.ln <= a.ln and b.rn < a.rn )
then cast( null as integer)
else delno
end
from a
我会以稍微不同的方式处理这个问题。
假设我有与您相似的数据:
以及基于此数据的简单报告:
请注意,有一个基于 LINE_NO
的组,尽管该组没有 header 行。
我会通过使用 REL_NO
文本框的 HideDuplicates 属性 来达到你想要的结果:
你可以设置一个特定的范围;我在这里使用了 DataSet1,即考虑数据集中的所有行,而不仅仅是 LINE_NO
组的范围。
这似乎按预期工作: