【问题标题】:SSRS tablix split report into two sets of columnsSSRS tablix 将报告拆分为两组列
【发布时间】:2013-10-04 12:46:29
【问题描述】:

我有一份报告列出了公司一年中所有(可能)52 周的一些基本数据。该报告采用 year 和 UptoWeek 的参数。因此,例如,我可以输入 2013 年和 31 年,它会吐出 2013 年到第 31 周的所有值。现在它看起来像:

 Week  Dollars   PY Dollars   Change
 1     5         4            1
 2     20        25           -5
 ...
 52

我想让它在中途分成两组列,所以左边是1-25,右边是26-52这样

 Week  Dollars   PY Dollars   Change    Week  Dollars   PY Dollars   Change 
 1     5         4            1         26
 2     20        25           -5        27
 ...                                    ...
 25                                     52

这在 tablix 中可行吗?

我当时在想的一件事就是将 tablix 复制到它自己旁边,并在左侧隐藏高于 25 的行,在右侧隐藏低于 26 的行。我只是不确定这是否是处理这个问题的最佳方法......

【问题讨论】:

    标签: reporting-services ssrs-tablix


    【解决方案1】:

    您可以根据以下表达式设置列组:

    =IIf(Fields!Week.Value <= 26, 1, 0)
    

    请注意,这是设置为 26,因为我认为 26 确实应该在左侧。

    您的行组表达式需要类似于:

    =(Fields!Week.Value - 1) Mod 26
    

    假设我有这样的数据:

    (截图)

    还有一个像这样的tablix,如上分组:

    通过上述分组,这对我有用:

    (截图)

    这会将您的数据根据​​周分为两组,因此将满足您的要求。由于您只对两个组感兴趣,并且在Week 中有一个现成的行号,您可以保持表达式简单。

    并排的 tablix 也很可能没问题,但众所周知,SSRS 对相邻对象的脾气暴躁。使用上述分组可将其作为设计人员级别的一项。

    【讨论】:

    • 我喜欢 1 项的想法,所以我尝试了你的建议。这仍然垂直列出所有 52 周,但将 >=26 行放在第二个列组中。
    • 抱歉,大脑不工作,我应该知道的更好。您需要根据表达式设置适当的行 列组。只是列分组会得到你描述的问题。我用更好的细节和一个例子改进了答案。
    • 好的,做到了。还有一件事我忘了提。我有一个总计行。现在我设置了您的解决方案,我的总数似乎计算不正确。我有 CY 的总和,PY 的总和,然后是根据这些总和计算的差异。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多