代码之家  ›  专栏  ›  技术社区  ›  Ian Nelson

Reporting Services-确定矩阵中显示的列数

  •  4
  • Ian Nelson  · 技术社区  · 15 年前

    是否可以确定ReportingServices报表中显示的列数,并在单独文本框的可见性表达式中使用它?

    我面临以下情况:

    我的客户机有一个ReportingServices2005报告,其中包含一个矩阵,根据所选参数显示可变的列数。 有时,一些用户会生成包含大量列的报告。当他们随后尝试导出到Excel时,这会导致服务器错误,因为Excel97-2003格式限制为256列。

    因此,当矩阵中显示256列以上时,我希望在报告顶部显示一条消息,向用户建议此限制,并建议导出到csv的解决方案(如果有,请在Excel2007中查看)。

    3 回复  |  直到 15 年前
        1
  •  4
  •   Dustin Brooks    15 年前

    是否可以对数据集进行计数以获取列计数?

    Count(Fields!FieldUsedAsColumnGrouping.Value,"DatasetName")
    

    不知道你的数据和矩阵是如何设置的,我做了一些类似的事情,我必须知道列的数量,这样我才能画出一个适当的边界线。但我认为您应该能够依靠数据集或分组来获得所需的内容。(如果需要,我可以在周一粘贴一些代码。)

        2
  •  1
  •   keithwarren7    15 年前

    这是可以做到的,我刚刚创建了一个测试来证明我的理论;下面是一些基础知识。

    我在数据集中创建了一个简单值为1的计算列。我将此列添加到矩阵中最低的谷物列分组(层次结构中最低的一个)。然后,我在矩阵中添加了另一列,并使用数据集中的计算列对该列执行runningvalue。runningvalue可以采用scope参数,在这种情况下,scope是层次结构中最低级别分组的名称。这给了我一个等于矩阵中列数的值。

    也许有更好的方法来做这件事,我会为你调查,但这是第一个在我脑海中闪现的想法。

        3
  •  1
  •   cyclo    15 年前

    围绕这一点(大量列)的工作是在这么多列之后“包装”矩阵。通过检查数据源中的“指针”或分组号,可以将矩阵放在一个表或另一个矩阵中,外部表/矩阵控制包装。为了使这一点起作用,您还需要增加这个指针,它控制每n行数的分组,其中n是您希望在矩阵报告中显示的最大列数。

    转换为矩阵的数据源示例: [组指针]、[矩阵列维度]、[矩阵行维度]、[度量值/数据]

    每当[组指针]每断开一次,例如20[矩阵列维度],外部表/矩阵将包装内部矩阵。