获取报表中计算列(总计)的Max()值

时间:2016-06-09 16:24:29

标签: report rdlc

我正在尝试获取列Max的值,这是列ABC的最大值。行TGTotalGrand total(由于行组),我只需要它们的最大值:

-----------------------------
         A    B    C  | Max   
-----------------------------
      |  1    1    2  |      
-----------------------------
      |  2    1    3  |      
------+---------------+------
   T  |  3    2    5  |  5   
------+---------------+------
      |  2    5    1  |      
-----------------------------
      |  1    2    1  |      
------+---------------+------
   T  |  3    7    2  |  7   
------+---------------+------
   G  |  6    9    7  |  9   
-----------------------------

每当我尝试使用Max()函数时,我都会收到类似The expression of [...] uses an aggregate function on a report item. Aggregate functions can be used only on report items contained in the headers and footers.的错误。

在MS Excel中,我只会在MAX(A1:C1)列中执行Max。在rdlc中有没有解决方案?

我搜索了上面的错误并找到this answer,但第一个选项是不可能的,第二个选项..好吧,我真的不明白它,我认为它不适用于{{1} }。如果是,你能解释我应该在哪里放置变通方法吗?

我正在使用Visual Studio 2015和Microsoft.ReportViewer.WebForms v10.0.0.0。

1 个答案:

答案 0 :(得分:1)

它需要将此代码放在“T”和“G”行的“Max”字段中..它应该可以工作..我还没有尝试过;)

If Sum(Fields!A.Value) >= Sum(Fields!B.Value) And Sum(Fields!A.Value) >= Sum(Fields!C.Value) Then
    Sum(Fields!A.Value) 
Else if Sum(Fields!B.Value) >= Sum(Fields!A.Value) And Sum(Fields!B.Value) >=  Sum(Fields!C.Value) Then
    Sum(Fields!B.Value) 
Else
    Sum(Fields!C.Value) 
End If


  在KevinM的评论之后

更新

IIf ( 
      Sum(Fields!A.Value) >= Sum(Fields!B.Value) And Sum(Fields!A.Value) >= Sum(Fields!C.Value)
      , Sum(Fields!A.Value)
      , ( 
         IIf (Sum(Fields!B.Value) >= Sum(Fields!A.Value) And Sum(Fields!B.Value) >=  Sum(Fields!C.Value)
        ,    Sum(Fields!B.Value)
        , Sum(Fields!C.Value)
      ) 
    )