我正在尝试获取列Max
的值,这是列A
,B
,C
的最大值。行T
和G
是Total
和Grand 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。
答案 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)
)
)