0

別のフィールドの値に基づいて、グループ合計から 1 つの値を除外するにはどうすればよいですか?

つまり、Report=>Report Properties=>Code を開き、カスタム コードを挿入しますが、以下のコードを変更して、以下のケースで別のフィールドの数値を除外するにはどうすればよいですか?

Public Function ChangeWord(ByVal s As String) As String
   Dim strBuilder As New System.Text.StringBuilder(s)
   If s.Contains("Others") Then
      strBuilder.Replace("Others", "Other NOT INCL")
      Return strBuilder.ToString()
      Else : Return s
   End If
End Function
4

1 に答える 1

4

同じ行のセルの文字列値に「その他」が含まれる合計から数値を除外したいと考えており、指定した関数がレポートのテーブルのグループ化基準として使用されているとします。 . これが正しくない場合はお詫び申し上げます。

Iif関数または条件のいずれかの 2 番目のロジックを使用せずにこれを行うことはできません。現時点ではこれをテストするための SSRS はありませんが、(値の列が整数であると仮定すると、コードは次のようになります。

Public Function ExcludeOthers(rowDesc As String, rowVal as integer)
    if ChangeWord(rowDesc) = "Other NOT INCL"
        Return 0
    else
        Return rowVal
    end if
End Function

次に、条件付き合計を表示するセルで次のようにします。

=Sum(ExcludeOthers(Fields!desc.Value,Fields!val.Value))

Iifまたは、条件付き合計が表示されるセルでを使用して、関数を使用せずにこれを行うこともできます。

=Sum(Iif(ChangeWord(Fields!desc.Value) = "Other NOT INCL",0,Fields!desc.Value))

ソース データの性質によっては、計算列をレポートのソース クエリに追加することで、これを行うこともできます。

私は 2 番目または 3 番目のオプションを好みます。カスタム コードは、この目的にはやり過ぎのようです。

于 2009-04-09T07:51:49.847 に答える