2012-11-01 53 views
1

我有一個報告,應該由貨幣讀取2數據集中值的值:和兩位來自使用查找在報告生成不同的數據集

Dataset1: Production Total 
Dataset2: Net Total 

香港專業教育學院嘗試使用:

Lookup(Fields!Currency_Type.Value, 
     Fields!Currency_Type1.Value, 
     Fields!Gross_Premium_Amount.Value, 
     "DataSet2") 

這隻返回從數據集2的第一筆金額。

我試過Lookupset函數,但它並沒有SUM檢索到的值。

任何幫助,將不勝感激。

回答

2

謝謝傑米的答覆。 這就是我所做的和它完美: 從報表屬性 - >代碼,寫如下的功能:

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) 
Next 
If (ct = 0) Then return 0 else return suma 
End Function 

然後,你可以調用該函數:

code.SumLookup(LookupSet(Fields!Currency_Type.Value, Fields!Currency_Type1.Value,Fields!Gross_Premium_Amount.Value, "DataSet2")) 
+0

這很好。但是,您如何爲此添加總計?我正在查找每個項目的金額,但然後希望由客戶總計... – jhowe

1

是的,查找將只返回第一個匹配值。三個選項浮現在腦海中:

  1. 更改您的查詢,讓你只需要得到一個值:使用GROUP BYSUM(...)你兩行查詢相結合。如果您在其他地方使用此查詢,請複製並更改它。
  2. 行有差別嗎?如去年的一個,今年的一個?如果是這樣,創建一個人工查找鍵,並分別查找兩個值:

    =Lookup(Fields!Currency_Type.Value & "," 
        & YEAR(DATEADD(DateInterval.Year,-1,today())), 
        Fields!Currency_Type1.Value & "," 
        & Fields!Year.Value, 
        Fields!Gross_Premium_Amount.Value, 
        "DataSet2") 
    + 
    Lookup(Fields!Currency_Type.Value & "," 
        & YEAR(today()), 
        Fields!Currency_Type1.Value & "," 
        & Fields!Year.Value, 
        Fields!Gross_Premium_Amount.Value, 
        "DataSet2") 
    
  3. 用作提到LookupSet function。有了這個,你會得到一個值的集合,然後需要將它們加在一起。最簡單的方法是在報告中嵌入代碼。這個功能添加到報表的代碼:

    Function AddList(ByVal items As Object()) As Double 
        If items Is Nothing Then 
        Return 0 
        End If 
    
        Total = 0 
        For Each item As Object In items 
         Total = Total + CDbl(item) 
        Next 
    
        Return Total 
    End Function 
    

    立即致電與:

    =Code.AddList(LookupSet(Fields!Currency_Type.Value, 
        Fields!Currency_Type1.Value, 
        Fields!Gross_Premium_Amount.Value, 
        "DataSet2")) 
    

(注:這個代碼是沒有測試我只是由它在堆棧溢出的編輯窗口&我不是VB的粉絲,但它應該給你一個好主意該怎麼辦。)

+0

感謝傑米你答覆。 –

相關問題