0

Report Builder 3.0 でカスタム関数を作成しようとしています。この関数は基本的に複数値パラメーター (1、2、または 3) の値をチェックし、"Bronze" (1)、"Silver" ( 2) または "ゴールド" (3) 各行の最高値に応じて。そう...

Public Function BronzeSilverGold() As String
    Dim bronzeFlag As Integer = 0
    Dim silverFlag As Integer = 0
    Dim goldFlag As Integer = 0
    Dim numPledges As Integer = Report.Parameters!PledgeValues.Count()

    For index As Integer = 1 To numPledges
        If Report.Parameters!PledgeValues.Value(index) = 1 Then
            bronzeFlag += 1
        ElseIf Report.Parameters!PledgeValues.Value(index) = 2 Then
        bronzeFlag += 1
            silverFlag += 1
        ElseIf Report.Parameters!PledgeValues.Value(index) = 3 Then
            bronzeFlag += 1
            silverFlag  += 1
            goldFlag += 1
        End If
    Next index

    If goldFlag = numPledges Then
        Return "Gold"
    ElseIf silverFlag = numPledges Then
        Return "Silver"
    ElseIf bronzeFlag = numPledges Then
        Return "Bronze"
    End If
End Function

私を悩ませているのは、レポートを実行するとセルが #Error を返すことです。問題は、具体的には「Report.Parameters!PledgeValues.Value(index)」にあるようです。これを実行すると:

Public Function BronzeSilverGold() As String
    Dim bronzeFlag As Integer = 0
    Dim numPledges As Integer = Report.Parameters!PledgeValues.Count()
    Dim index as Integer = 0

    For index = 1 To numPledges
        If (Report.Parameters!PledgeValues.Value(1) = 2) Then
            bronzeFlag += 1
        End If
    Next index

    return bronzeFlag

End Function

その後、正常に値 8 が返されます (パラメーターの最初の値が 2 であるため)。7 行目を Report.Parameters!PledgeValues.Value(1) から Report.Parameters!PledgeValues.Value(index) に変更すると、レポートのセルは #Error を返します

私が何を間違っているのかわかりません-誰かが何か考えを持っているなら、彼らは大歓迎です。

4

1 に答える 1