在使用表达式 s-s-rS 使用两个数据集进行计算时需要帮助

Posted

技术标签:

【中文标题】在使用表达式 s-s-rS 使用两个数据集进行计算时需要帮助【英文标题】:Need help in calculation using two Datasets using Expression s-s-rS 【发布时间】:2016-03-21 13:06:08 【问题描述】:

我正在创建一个 s-s-rS 报告,其中

在 Dataset15 中,我的值是 Jan - 100 和 Feb - 110

在 Dataset16 中,我的值是 Jan - 80 和 Feb - 100

现在我想在折线图中使用表达式计算相同的东西 - Jan - 80/100 应该是 80% & Feb - 100/110 - 91%

当我试图找出个人每月数字 100、110 时,我得到 210,这是两者的总和 - Sum(Fields!Total.Value, "DataSet15")

请帮助我如何获得个人号码。

【问题讨论】:

【参考方案1】:

您需要将数据集限制在所需的月份,然后对结果求和。

LookupSet 用于根据条件从另一个数据集中检索数据。

需要一个 VBA 函数 SumLookup 来添加 LookUp 的结果。此 VB 将进入报告的 CODE 部分(可以在“报告属性”下看到)。

Function SumLookup(ByVal items As Object()) As Decimal

If items Is Nothing Then Return Nothing

Dim suma As Decimal = New Decimal()
Dim ct as Integer = New Integer()

suma = 0
ct = 0

For Each item As Object In items

  suma += Convert.ToDecimal(item)
  ct += 1

Next

If (ct = 0) Then return 0 else return suma 

End Function 

然后您将在表达式中使用该函数,例如:

=Code.SumLookup(LookupSet(Fields!MONTH.Value, Fields!MONTH.Value, Fields!Total.Value,"Dataset16"))

如果您的字段是日期,那么您需要使用 FORMAT 将两者都转换为 MMyyyy 字段:

FORMAT(Fields!MONTH.Value, "MMyyyy")

【讨论】:

以上是关于在使用表达式 s-s-rS 使用两个数据集进行计算时需要帮助的主要内容,如果未能解决你的问题,请参考以下文章

s-s-rS2008 文本框中数据集字段求和的表达式

s-s-rS - 根据行数据的计算值对行集进行分组

s-s-rS 子报表之间的计算

s-s-rS:对表达式定义的静态行求和

从 s-s-rS 中的表达式将参数传递给数据集

s-s-rS/RDLC 计算表达式的小计