2

次の状況があります。

グループ列の値が 1 か 2 かに関係なく、ネストされたグループでレポートします。次の子グループには、親グループごとに 2 つのグループがあるため、親グループ 1 には 2 つの子グループ (1-1 と 1-3) があり、親グループにもあります。 2 私は 2 つの子グループ (2-2 と 2-4) を持っています。

私の質問は、WhiteSmoke1-1 の行に色を設定Whiteし、1-3 の行に色を設定しWhiteSmoke、2-2 とWhite2-4 に色を設定する方法です。

1、2、3、...のような順序がある場合、Mod演算子を使用すると簡単ですが、私の順序は1、3、2、4であり、色を交互にするアルゴリズムが見つかりません

編集済み

ここに画像の説明を入力

4

5 に答える 5

1

これが順序であると仮定すると、1,3,2,4,5,7,6,8...色のみを付けたい3,4,7,8..

次に、式は次のようになります。

=iif(RowNumber(Nothing) Mod 4 <> 0 AND
 ((RowNumber(Nothing)+1) Mod 4 <> 0), "White", "WhiteSmoke")

ここに画像の説明を入力

于 2013-02-13T14:36:43.233 に答える
1

私が正しく理解していれば、「グループ変更」で色を交互にしたいでしょう。もしそうなら、これは解決策です:

IIf(RowNumber("TheNameOfYourGroup") Mod 2 = 0, "White", "WhiteSmoke")

それはあなたがあなたのBackground Color財産に使う表現です。

于 2013-02-13T15:42:25.613 に答える
1

私はあなたの目標を達成するためにカスタムコードを使用することを余儀なくされました.これが私の解決策です:

カスタム コード セクション

Public Shared ReverseLookup = True
Public Function GetColor(ByVal currentValue As Integer, ByVal previosValue As Integer) As String
    If ReverseLookup = True
        If currentValue = previosValue Then
                GetColor = "Gray"
        Else
                GetColor = "Green"
                ReverseLookup = False
        End If
    Else
        If currentValue = previosValue Then
                GetColor = "Green"
        Else
                GetColor = "Gray"
                ReverseLookup = True
        End If
    End If
End Function

そして、BackgroundColor プロパティで:

=Code.GetColor(Fields!secondid.Value, Previous(Fields!secondid.Value)) 

入力パラメーターは、現在の secondid 値 (詳細の親グループからの値) と以前の secondid 値です。

そしてここに私の結果:それはまさにあなたが必要としているものだと思います:)

ここに画像の説明を入力

于 2013-02-14T12:21:08.823 に答える