【问题标题】:How to hide SubTotal Column if the month is not full solar Month in a range of dates如果月份在一系列日期中不是完整的太阳月,如何隐藏小计列
【发布时间】:2020-09-27 17:24:55
【问题描述】:

在现金流报告中,我创建了一个带有 TransactionDate 列的 tablix,该列填充了一系列 @stardate 和 @enddate 参数。如果用户选择例如:

@stardate='2020-01-01' @enddate='2020-03-02'

我需要动态创建月份小计,但前提是该月份是所选范围内的完整太阳月(从 1 到 31 的天数)。在图像样本中,1 月和 2 月的小计必须可见,3 月的小计必须隐藏。 有什么建议吗?

谢谢 哈瓦

sample image

【问题讨论】:

  • 如果开始日期是“2020 年 1 月 15 日”(1 月 15 日),那么您是否也不显示该月?是否可以安全地假设如果开始日期不是月初且结束日期不是月底,则不应显示月份小计?
  • 如果@startdate-@enddate 范围不是一个完整的太阳月,则必须隐藏小计列。是的,如果星号为“2020-01-15”,则必须隐藏小计列,1 月和 1 月 15 日至 1 月 31 日的所有列必须可见。谢谢你的回答。
  • 几个问题。 1:你有日期表可以用吗? 2. 您能否更改您的数据集查询?
  • 1.不; 2.是的。我试图创建一个数据集,但如果月份不在结果集的列表中,我不知道如何隐藏,可能是我在属性列可见性中使用了错误的表达式。谢谢。哈瓦

标签: reporting-services


【解决方案1】:

我要做的第一件事是创建一个包含日期的表。有很多关于如何做到这一点的例子,比如这个

https://www.mssqltips.com/sqlservertip/4054/creating-a-date-dimension-or-calendar-table-in-sql-server/

假设您现在有一个日期表,其中至少有以下可用数据

TheDate    TheMonth    TheYear
2020-01-01        1       2020
2020-01-02        1       2020
...
2020-01-31        1       2020
2020-02-01        2       2020
...
2020-12-31       12       2020
...

等等……

您现在可以得到当月最后日期的简单列表

CREATE VIEW LastMonthDates AS
SELECT TheYear, TheMonth, MAX(TheDate) AS LastDate
FROM myDatesTable
GROUP BY TheYear, TheMonth

这会给我们

TheYear    TheMonth    LastDate
2020              1  2020-01-31
2020              2  2020-02-29
...

等等。

如果您将此加入您的主数据并将LastDate 列添加到您的数据集查询结果中,那么结果类似于

Cluster1    Cluster2    TransDate    Amount    LastDate
Ins         ROW1        2020-02-28   221.35    2020-02-29

您最顶层的列组隐藏属性将类似于

=MAX(Fields!TransDate.Value, "MonthColumGroup") <> FIRST(Fields!LastDate.Value, "MonthColumGroup")

因此,如果月份组中的最高日期与同一月份组中的最后日期列不同,则隐藏将是 True

将"MonthColumGroup" 更改为外部月份组的实际名称,它必须用引号括起来并且区分大小写。

如果您在执行此操作时遇到问题(分组可能会导致问题),您可以在数据集查询中执行相同的操作,方法是将其扩展为具有执行相同类型测试的列,并根据具体情况将其设置为 1 或 0该月是否完整。

【讨论】:

    猜你喜欢
    • 2019-07-23
    • 2020-05-29
    • 2019-11-09
    • 2017-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-06
    相关资源
    最近更新 更多