2016-09-22 35 views
1

他のフィールドの値の最大値から最小値に基づいて、列の背景色(グラデーション)を設定したいとします。列の値に基づくグラデーションの塗りつぶし

以下の表を参照してください。

Gradient example

上記の表に示されるように、(代わりに、時間列の)機器名称欄の背景色は、依存光緑色に緑色暗い始まる設定されるべきです時間列の値。

これはどのようにSSRSで達成できますか?

答えて

1

特に、値フィールドが詳細行のものである場合は、これを設定するのは簡単です。ここ
は一例であり:

Gradient Example

塗りつぶしの色プロパティは、色の各RGB値のそれぞれに対応する2桁を有する形式#AABBCC、16進カラー文字列を取ることができます。式を設定してその文字列を生成することができます。塗りつぶし式はフィールドを名前で参照するため、適切なスコープ内の任意のTextBoxに使用できます。

何が起こっているのかを理解するためには、最も簡単に見える表現の簡単なバージョンが含まれています。 2番目の式は、0ではなく最小値から変化し、サンプルの特定の色を使用します。

簡易版:

="#" + Format(255 - CInt(200 * Fields!Target.Value/Max(Fields!Target.Value, "DataSet1")), "X2") + "FF" + Format(255 - CInt(200 * Fields!Target.Value/Max(Fields!Target.Value, "DataSet1")), "X2") 

最大値に0から線形色勾配を提供します。最大値は55赤、255緑、55青、0の値は白(255/255/255)になります。スタティックFFは255グリーンです。

最小値バージョン:

式は少し厄介取得しますが、まだ設定が容易である代わりに、最小値を使用して勾配を持つために。

="#" + Format(255 - CInt(155 * (Fields!Target.Value - Min(Fields!Target.Value, "DataSet1"))/(Max(Fields!Target.Value, "DataSet1") - Min(Fields!Target.Value, "DataSet1"))), "X2") + Format(255 - CInt(55 * (Fields!Target.Value - Min(Fields!Target.Value, "DataSet1"))/(Max(Fields!Target.Value, "DataSet1") - Min(Fields!Target.Value, "DataSet1"))), "X2") + Format(255 - CInt(135 * (Fields!Target.Value - Min(Fields!Target.Value, "DataSet1"))/(Max(Fields!Target.Value, "DataSet1") - Min(Fields!Target.Value, "DataSet1"))), "X2") 

変数バージョン:

あなたは色の値が変化しやすいようにしたい場合は、RGB値や、彼らが最大値に合わせて調整されなければならない金額を指定のレポート変数を設定することができます。その場合、式は次のようになります。

="#" + Format(CInt(Variables!MaxR.Value - Variables!AdjR.Value * (Fields!Target.Value - Min(Fields!Target.Value, "DataSet1"))/(Max(Fields!Target.Value, "DataSet1") - Min(Fields!Target.Value, "DataSet1"))), "X2") + Format(CInt(Variables!MaxG.Value - Variables!AdjG.Value * (Fields!Target.Value - Min(Fields!Target.Value, "DataSet1"))/(Max(Fields!Target.Value, "DataSet1") - Min(Fields!Target.Value, "DataSet1"))), "X2") + Format(CInt(Variables!MaxB.Value - Variables!AdjB.Value * (Fields!Target.Value - Min(Fields!Target.Value, "DataSet1"))/(Max(Fields!Target.Value, "DataSet1") - Min(Fields!Target.Value, "DataSet1"))), "X2") 

これらが第二式から勾配を生成するために使用されるレポート変数のようになります。

Color Variables

注:あなたの値フィールドが自身である場合集約するには、別のわずかな調整が必要です。値にはネストされた集計を使用する必要がありますが、SSRSではネストされた集計でデータセットスコープを使用することはできません。したがって、一定の値をグループ化する親グループを追加してから、データセットの参照に置き換えることができます。

+0

実際、Hours(Value列)の代わりにSysName列の色を付けたいと考えました。あなたのケースでは、Location列にする必要があります。 –

+0

私の在庫例イメージが不明瞭になった場合には謝罪しますが、実際に行内のセルの塗りつぶしのプロパティのいずれかまたはすべてでその式を使用することができます。 – bitnine

+0

ありがとうございました。しかし、私はどのように色を変えなければならないのか分かりません。現在、緑色を表示しています。 –

関連する問題