la somma di due valori diversi set di dati utilizzando le ricerche in generatore report

Ho un rapporto che dovrebbe leggere i valori dal 2 dataset Valuta:

Dataset1: Production Total
Dataset2: Net Total

Ive ha provato ad utilizzare:

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

Questo restituisce solo il primo importo da set di dati 2.

Ho provato Lookupset funzione ma non la SOMMA recuperati valori.

Qualsiasi aiuto sarebbe apprezzato.

 

2 Replies
  1. 2

    Grazie Jamie per la risposta.
    Questo è quello che ho fatto e tutto ha funzionato perfettamente:
    Da Segnalare Proprietà–> Codice , scrivere il seguente funzione:

    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
    

    Quindi è possibile chiamare la funzione:

    code.SumLookup(LookupSet(Fields!Currency_Type.Value, Fields!Currency_Type1.Value,Fields!Gross_Premium_Amount.Value, "DataSet2"))
    
    • Questo funziona bene. Ma poi come si fa ad aggiungere un totale complessivo di questo? Sto cercando degli importi per il progetto, ma poi si desidera totale da parte del cliente…
  2. 1

    Sì, la Ricerca restituirà solo il primo valore corrispondente. Tre opzioni vengono in mente:

    1. Modificare la query, in modo che solo bisogno di ottenere un valore: utilizzare un GROUP BY e SUM(...) combinare le due righe della query. Se si utilizza questa query altri luoghi, e poi fare un copia e il cambiamento.
    2. C’è qualche differenza nelle righe? Come è per l’anno scorso e una quest’anno? Se è così, creare un artificiale chiave di ricerca e di ricerca i due valori separatamente:

      =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. Utilizzare il LookupSet funzione come accennato. Con questo si otterrà un insieme di valori, e quindi la necessità di aggiungere insieme. Il modo più semplice per farlo è con un codice incorporato nel report. Aggiungere questa funzione al rapporto codice:

      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
      

      Ora chiamata con:

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

    (Nota: questo codice non è stato testato. Ho appena composto in Stack Overflow finestra edit & io non sono un fan di VB. Ma dovrebbe dare una buona idea di cosa fare.)

    • Grazie a Jamie per la risposta .

Lascia un commento