【问题标题】:Sum Lookup field from a different dataset来自不同数据集的 Sum Lookup 字段
【发布时间】:2022-07-14 22:28:03
【问题描述】:

我有 2 个数据集需要填充一个表。数据集 1 包含数据集 2 可能不包含的值。数据集 2 包含我需要获取总和的多个值。数据集 2 将始终具有包含在数据集 1 中的匹配值 (Division_Code)。

我需要 DataSet1 中的完整数据列表,即使 Dataset2 中不存在数据。

数据集 1 字段: Division_Code, 长名

数据集 2 字段: Division_Code, 总计费, 日期

即数据集 1:

Division_Code Long_Name
01 Health
02 Safety
03 Finance
04 Tax

即数据集 2:

Division_Code TotalBillable Date
01 $200 06/01/2022
01 $100 06/08/2022
01 $200 06/12/2022
02 $800 06/01/2022
04 $100 06/05/2022

我需要这样的结果:

Division_Code Long_Name Sum(TotalBillable)
01 Health $500
02 Safety $800
03 Finance 0
04 Tax $100

我尝试了各种查找和 SumLookup 表达式,但都导致错误。任何人都可以提供有关如何编写可以完成我需要的表达式的指导吗?提前致谢。

【问题讨论】:

  • 假设您不能直接在数据集查询中执行此操作(迄今为止最简单的方法),请查看此博客文章 salvoz.com/posts/…
  • 如果您使用像 stackoverflow.com/questions/36131860/… 这样的 SumLookup,您的表达式将是 =Code.SumLookup(LookupSet(Fields!Division_Code.Value, Fields!Division_Code.Value, Fields!TotalBillable.Value,"Dataset2"))。您的 TotalBillable 不是带有美元符号的文本字段,是吗?
  • @AlanSchofield 我还没有找到直接在我的数据集中执行此操作的方法,因为 dataset2 不包含 Division_code 字段的完整列表,因为并非所有 Division_code 都有计费金额。无论我们的帐单表中是否存在数据,我都需要完整的 Division_code 列表
  • @HannoverFist 这是我最初尝试的。 TotalBillable 是一个没有美元符号的 INT 字段(我将按这种方式格式化单元格)。但是,当我使用此表达式时,TotalBillable 字段出现错误“报表项表达式只能引用当前数据集范围内的字段,或者,如果在聚合内,则为指定的数据集范围”
  • 该错误似乎表明字段或数据集名称不正确。你确定它们都是正确的吗?

标签: reporting-services reportbuilder


【解决方案1】:

在报表生成器属性中使用此自定义代码:

Function SumLookup(ByVal items As Object()) As Decimal  
If items Is Nothing Then  
Return Nothing  
End If  
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![LookupDataset1FieldName].Value, Fields![LookupDataset2FieldName].Value, Fields![ResultField] strong>.Value, "DataSet2"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-02
    相关资源
    最近更新 更多