表中的列值总和-Rdlc报告

Er *_*ank 2 .net c# vb.net rdlc winforms

我有一个带有6列和一个数据集的Rdlc报告中的表。一个dll被添加(引用)到报告中,名为RepHlpr.dll。该dll有一个共享函数GetPar,该函数可以从其他数据库计算和获取数据。列数量工作正常,并根据表达式As获取数据:

列的表达值

在获得HP的总和时,一切正常,因为这些列从数据集中获取值。
我在获取金额总和时遇到问题。我已经尝试过Expressions:

=Sum(Textbox44.Value)
=Sum(ReportItems!Textbox44.Value)
=Sum(Table1.Textbox44.Value)
Run Code Online (Sandbox Code Playgroud)

金额列总和


但是其显示的错误:Textbox48(上面的表达式已编码在其中)在报表项上使用了聚合函数。汇总功能只能用于页面页眉和页脚中包含的报表项。
有什么方法可以获取列金额总和?

Rez*_*aei 5

您可以将Sum应用于该文本框的公式,而不是尝试将其应用于文本框的值:

=Sum(Code.YourMethod(Fields!Filed1.Value, Fields!Filed2, otherParam), "YourDataSetName")
Run Code Online (Sandbox Code Playgroud)

例如,如果您的报告数据集的名称为 "DataSet1"

Sum(RepHlpr.RepHlpr.GetPar("Amt", Fields!hp.Value, Fields!make.Value), "DataSet1")
Run Code Online (Sandbox Code Playgroud)

我创建了一个Code函数:

Public Function Multiply(ByVal value As Integer, factor As Integer) As Integer
    Return value * factor
End Function
Run Code Online (Sandbox Code Playgroud)

然后,为没有数据绑定的额外列设置表达式:

=Code.Multiply(Fields!Price.Value, 2)
Run Code Online (Sandbox Code Playgroud)

然后我添加了一个,TextBoxSum根据我的自定义列表达式设置了其表达式:

=Sum(Code.Multiply(Fields!Price.Value, 2), "DataSet1")
Run Code Online (Sandbox Code Playgroud)

这是屏幕截图:

在此处输入图片说明

  • 我认为因为`Textbox44` 不是你的`DataSet1` 的成员,而且这些聚合函数可能只适用于你的数据集的字段。 (2认同)