私のレポートには以下のケースがあります。
売掛金:RunningValue(Fields!Receivable.Value,SUM,Nothing)
製造:code.SumLookup(LookupSet(Fields!Currency_Type.Value, Fields!Currency_Type1.Value,Fields!Gross_Premium_Amount.Value, "DataSet2"))
Rec/Prod: 売掛金/生産。
Public 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
問題は Rec/Prod にあります。prod = 0 の場合、エラーが発生します。
私は以下の条件を入れようとしました:
IIF(code.SumLookup(LookupSet(Fields!Currency_Type.Value, Fields!Currency_Type1.Value,Fields!Gross_Premium_Amount.Value, "DataSet2"))=0,0,RunningValue(Fields!Receivable.Value,SUM,Nothing)/(code.SumLookup(LookupSet(Fields!Currency_Type.Value, Fields!Currency_Type1.Value,Fields!Gross_Premium_Amount.Value, "DataSet2"))))
しかし、偽の状態では、生産のために0を再取得する際に値を取得するためにcode.SumLookupを再呼び出ししているため、Rec / Prodのエラーが発生します。
時間だけ code.sumlookup を呼び出し、その値を変数に保存して、値を確認する必要があるたびに呼び出す必要がないようにするにはどうすればよいですか。
または他の解決策があればアドバイスしてください。