1

グループ内の交互の色について投稿されたすべての表現を試しましたが、正しく機能しません。

レポートのデザインは次のようになります。 ここに画像の説明を入力

各グループ行の色を交互に並べ、各グループ内の詳細を交互に並べたいと思います。ただし、グループが交互になると、常にこれを取得します

ここに画像の説明を入力

私はこの表現を使用しています:

=IIF(RunningValue(Fields!AssignedUnit.Value,COUNT,NOTHING) MOD 2 = 0
,IIF(ROWNUMBER(NOTHING) MOD 2=0,"LIGHTBLUE","SILVER")
,IIF(ROWNUMBER(NOTHING) MOD 2=1,"SILVER","LIGHTBLUE"))

グループ塗りつぶしと詳細塗りつぶしのこの式:

= IIf(RowNumber(Nothing) Mod 2 = 0, "LIGHTBLUE", "SILVER")

ここに画像の説明を入力

外部グループが正しく交互になるように、何を変更する必要があるかを誰かが理解するのを手伝ってくれますか?

ありがとうございました。

4

1 に答える 1

3

関数を使用して背景色を制御します。SSRS で ROWNUMBER 関数を使用するよりも信頼性が高くなります。

これを VB コード セクションに追加します ([レポート プロパティ] --> [コード] タブ)。

Private bOddRow(10) As Boolean 

Function AlternateColor(ByVal OddColor As String, ByVal EvenColor As String, ByVal Toggle As Boolean, ByVal Type AS INTEGER) As String 

  If Toggle Then bOddRow(Type) = Not bOddRow(Type) 

  If bOddRow(Type) Then 
                Return OddColor 
  Else 
                Return EvenColor 
  End If 

End Function

次に、BackgroundColor値から関数を呼び出します。

=code.AlternateColor("AliceBlue", "White", 1, 1)

この関数は、bOddRow 変数をチェックして、bOddRow の値に応じて最初または 2 番目の色を返すだけです。

3 番目の引数はトグル値です。1 の場合、色が変わります。それ以外の場合は、同じ色が返されます。グループの最初の列はトグルしますが、他の列は 0 になるため、色は最初の列と同じになります。

4 番目の引数はグループ番号です。あなたのレポートでは、最後の数字を内側のグループ 1 に、外側のグループを 2 にします。

内部グループの最初の列の背景色:

=code.AlternateColor("AliceBlue", "White", 1, 1)

内部グループ その他の列の背景色 :

=code.AlternateColor("AliceBlue", "White", 0, 1)

外側のグループの最初の列の背景色:

=code.AlternateColor("MintCream", "WhiteSmoke", 1, 2)

外側のグループ その他の列の背景色 :

=code.AlternateColor("MintCream", "WhiteSmoke", 0, 2)

以前の投稿からの盗用: グループ内の値に対して SSRS で代替行の背景色を作成する方法

于 2016-12-29T21:06:20.777 に答える