Reporting services 如何将SSRS中的列可见性表达式与当前年份和当前月份联系起来?

Reporting services 如何将SSRS中的列可见性表达式与当前年份和当前月份联系起来?,reporting-services,ssrs-2012,ssrs-2008-r2,ssrs-tablix,boolean-expression,Reporting Services,Ssrs 2012,Ssrs 2008 R2,Ssrs Tablix,Boolean Expression,我有一份SSRS报告,其中列有所有12个月,还有一列称为“年”。我已经设置了一个条件集,该条件集采用报表运行日期的当前月份,并且仅显示已过去的月份。例如,对于March=IIF(Month(today())

我有一份SSRS报告,其中列有所有12个月,还有一列称为“年”。我已经设置了一个条件集,该条件集采用报表运行日期的当前月份,并且仅显示已过去的月份。例如,对于March=IIF(Month(today())<3,True,False),表达式如下所示

现在我还要把它和年专栏联系起来。条件是-如果“年份”列的年份早于当前年份,则上述条件不应适用。因此,如果我今天运行2020年数据,所有12个月的列都应该出现。如果我运行的是2021年的数据,我应该只看到1月份的列。谁能帮我一下吗?是的,“年份”栏中只有一年。这些数据将永远不会超过一年。 多谢各位

编辑1:

如果报告针对2020年运行,则报告中的数据应如下所示。


如果为2021年运行,则只应显示年份和一月列。从今年2月开始,应显示年份、1月和2月。

由于您的数据集未正常化,您将必须在每个列上设置列可见性,就像您已经做的那样

尝试使用以下表达式。(使用March作为exmaple)


然后,您可以简单地使用一个矩阵而不是一个表,并按月创建一个列组。无需设置任何内容的可见性,因为数据根本不存在,因此在没有数据的月份不会呈现任何列。

您可以编辑问题并共享数据集输出的示例吗。也分享你的报告设计。如果您的数据是标准化的,那么您可以使用矩阵而不是表,并且您不需要任何条件来隐藏列,因为数据将不可用。请检查我的编辑这是数据集查询中直接显示的数据还是报告输出中的布局,或者两者都是?这是查询数据集中的数据。嗨,Alan,当我运行数据时,比如说去年-条件是1So,我将其更改为=(Month(today())<3)和MAX(Fields!year.Value,“dataset”)=year(today())。这似乎奏效了。谢谢你。啊,是的,当我急急忙忙不考试的时候就会发生这种情况!:)我将编辑答案,使其适合未来用户。
=(Month(today()) < 3 AND MAX(Fields!Year.Value, "DataSet1") = YEAR(Today())
Year  Month    Amount
2021  1        10
2021  2        15