2009-04-09 6 views
0

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

つまり、私はレポート=>レポートのプロパティ=>コードを開き、カスタムコードを挿入しますが、以下の場合、別のフィールドの数値を除外するために以下のコードをどのように変更しますか?

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 
+0

次のコードを試しても、レポートは実行されますが、どちらの場合でも値は影響を受けません。なぜどんなアイデア? – Fet

答えて

4

私はあなたが同じ行のセルの文字列値が「その他」を含む合計から数値を除外したいと仮定しています、そしてあなたが与えてきた機能はグループとして使用されていることレポート内の表の基準。これが正しくない場合にはお詫び申し上げます。

2つ目のロジックを使用せずに、関数またはIifの条件を使用しないと、これを行うことはできません。私は、現時点ではこれをテストするために利用できる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番目のオプションを好むでしょう - カスタムコードはこの目的のために過度のようです。

+0

あなたは素晴らしいです! 100万人以上のエド!!!! – Fet

関連する問題