none
如何添加矩阵的列分页符? RRS feed

  • 常规讨论

  • 解决方案
    这里有一些变通的方法,适用于报表服务 2005 和2008 版本:
    方法1
    将一个矩阵的列数扩展成多个矩阵。您可以先复制一个矩阵,从而粘贴几个您所需要的。然后为每一个列组设置一个筛选器,确保一个矩阵列的总长度正好适合页面的宽度。

    方法2
    另一种方法是用自定义代码.
    1. 请复制下面的代码到自定义代码区域:
      Dim FlagTable As System.Collections.Hashtable
      Dim Flag AS Integer
      Function MyFunc(ByVal NewValue As Object) As Integer
      If (FlagTable Is Nothing) Then
      FlagTable = New System.Collections.Hashtable
      End If
      If (NewValue Is Nothing) Then
      NewValue = "-"
      End If
      If (Not FlagTable .Contains(NewValue )) Then
      Flag =Flag + 1
      FlagTable.Add(NewValue, nothing)
      End If
      MyFunc = Flag
      End Function
    2. 在报表中创建一个列表
        想象这个矩阵的列组是以’Coulmn_Group’字段分组的,然后用下面的表达式来设    置列表的详细信息组:
        =Ceiling(Code.MyFunc(Fields!Coulmn_Group.Value)/5)
        注意:完成第3步后,这意味着这个矩阵的最大列数是5.
    3. 用Column group字段进行数据集的排序, 然后把矩阵拽入列表中。 点击预览。

    方法3
    与第二种方法有些类似,您需要修改数据集。
    1. 在您的数据集中,为列组创建一个ID列。
        例如:有一个数据集用下面的查询:
        SELECT * FROM Table
        这个列组是以”Group1”字段进行分组的。然后,像这样修改查询:
        SELECT *, Dense_Rank()  OVER(order by Group1)  AS  ID  FROM  Table
    2. 在您的报表中创建一个列表,用下面的表达式来设置列表的详细信息组:
        =Ceiling(Fields!ID.Value)
       注意: 完成第3步后,这就意味着这个矩阵的最大列数是5.
    3. 用Column group字段进行数据集的排序, 然后把矩阵拽入列表中。 点击预览。
    2011年10月12日 1:09
    版主