【问题标题】:How can add I rownumbers for each group on a RDLC Report?如何在 RDLC 报告中为每个组添加行号?
【发布时间】:2012-03-19 13:05:59
【问题描述】:

我怎样才能像这样添加行号:

第 1 组

RowNumber ID 名称年龄

1            231     test     43
2            324     test2    45
3            354     test3    34

第 2 组

RowNumber ID 名称年龄

1          657     test4    43
2          534     test5    45
3          678     test6    34

我想像这个例子一样做行号。对于每个组,我的行号将重置并从 1 开始到组行数。我的组(组 1,组 2,...)来自 db动态的!我有多少组不清楚! here 是我找到了一些解决方案,但我认为这些解决方案适用于我们知道的多少组!

【问题讨论】:

    标签: c# winforms report reportviewer rdlc


    【解决方案1】:

    RDLC 有一个RowNumber("ScopeName") 函数。这将返回给定范围内记录的行号。

    您可以在设计器下方的“行组”和“列组”标题下查看报表的现有组。选择分组内您想要行号的列并查看行列,默认名称为:

    [(Group1)
     ≡(Details1)
    

    将行号列的表达式设置为

    =RowNumber("Group1")
    

    【讨论】:

    • 不过,您的解决方案可以挽救我们的一天! :)
    【解决方案2】:

    右键单击您的报告属性,然后转到代码,然后粘贴下面的代码

       Dim private count as integer = 0
       Dim private iniRow as integer = 0
       Dim private iniGrp as Object = ""
       Public function MatrixRow(Byval rowNum as integer,Byval rowGrp as Object) as integer
    
       if iniGrp = "" then
          iniGrp = rowGrp 
       end if
    
      if rowGrp <> iniGrp then
          iniRow = 0 
          count = 0 
          iniGrp = rowGrp 
      end if
    
      if iniRow = 0 then
          iniRow = rowNum
      end if
    
      if rowNum = iniRow then
         count = 0
      end if
    
       count = count + 1
       Return count
      End function
    

    然后像这样使用这个函数

       =Code.MatrixRow(RowNumber(Nothing),(YourgroupfiledNameFromDataest))
    

    【讨论】:

    • 这是有效的,除了计数器重置的每一页,它都会显示 1, 2 .. 以此类推。
    • 这让我走上了正确的道路,但我真的希望我的表格行被编号而不管数据或组或其他任何东西,所以我只是删除了对 iniGrprowGrp 和两个if..then。包括代码中的语句,以及函数调用中的第二个参数,它工作得很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多