【问题标题】:Sum of Column Values in Table - Rdlc report表中的列值总和 - Rdlc 报告
【发布时间】:2015-10-17 15:05:48
【问题描述】:

我在 Rdlc 报告中有一个包含 6 列和一个数据集的表格。将一个 dll 添加(引用)到报告中,名为 RepHlpr.dll。这个 dll 有一个共享函数 GetPar,它计算并从其他数据库获取数据。 Amount 列工作正常,并根据表达式获取数据,如:

在获取 CopperHP 的总和时,一切正常,因为这些列从数据集中获取值。
我在获取 Amount 的值总和时遇到问题。我试过表达式:

=Sum(Textbox44.Value)
=Sum(ReportItems!Textbox44.Value)
=Sum(Table1.Textbox44.Value)


但它显示错误:Textbox48(上面的表达式被编码)在报告项上使用聚合函数。聚合函数只能用于页眉和页脚中包含的报表项。
有什么方法可以得到列金额的总和?

【问题讨论】:

  • 你需要 =Sum(Fields!Amount.Value, "DataSet1") 吗?
  • 没有字段名AMOUNT
  • 金额列根据 HP 和制造商获取 3 相电机的值。我没有 RepHlpr.dll 的编码

标签: c# .net vb.net winforms rdlc


【解决方案1】:

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

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

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

Sum(RepHlpr.RepHlpr.GetPar("Amt", Fields!hp.Value, Fields!make.Value), "DataSet1")

示例

我创建了一个Code 函数:

Public Function Multiply(ByVal value As Integer, factor As Integer) As Integer
    Return value * factor
End Function

然后我为未绑定数据的额外列设置表达式:

=Code.Multiply(Fields!Price.Value, 2)

然后我添加了一个TextBox 并根据我的自定义列表达式设置它的Sum 表达式:

=Sum(Code.Multiply(Fields!Price.Value, 2), "DataSet1")

这是截图:

【讨论】:

  • 为什么我们不能做这样的事情 =Sum(ReportItems!Textbox44.Value) ?
  • 我认为因为Textbox44 不是您的DataSet1 的成员,并且可能这些聚合函数仅适用于您数据集的字段。
【解决方案2】:

右键单击表格单击插入行->外部组-下方 右键单击要取和的列转到表达式。 在类别中选择常用函数->聚合然后双击项目中的总和,现在双击选择字段(数据集1)在值中双击您想要求和的列。现在在顶部。 =Sum(cdec(Fields!salary.Value)) 其中salary 是数据库中的列名。但是 cdec 手动添加。

【讨论】:

    猜你喜欢
    • 2016-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-17
    相关资源
    最近更新 更多