2016-09-22 4 views
1

Я хочу установить цвет фона (градиент) столбца на основе значения другого поля от наибольшего значения до наименьшего.Градиентное заполнение на основе значения столбца

Обратитесь к следующей таблице:

Gradient example

Как показано в таблице выше, должны быть установлены цвет фона столбца SysName (вместо колонки часов), начиная с темно-зеленый до светло-зеленого в зависимости от значение столбца «Часы».

Как это можно достичь в SSRS?

ответ

1

Существует довольно простой способ установить это, особенно если ваши поля значений находятся из рядов деталей.
Вот пример:

Gradient Example

Цвет заливки свойство может принимать шестнадцатеричный цвет строки в формате #AABBCC, который имеет две цифры, соответствующие каждому из соответствующих значений RGB цветовом в. Выражение может быть настроено для создания этой строки. Обратите внимание, что выражение fill ссылается на поле по имени, поэтому его можно использовать для любого TextBox в соответствующей области.

Входит в состав простой версии выражения, поскольку его проще всего понять, что происходит. Второе выражение масштабируется от минимального значения вместо 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") 

Variable Версия:

Если вы хотите, чтобы значения цвета будет легче изменить, вы можете настроить переменный отчет, задающие значения 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

На самом деле, я хотел покрасить столбец SysName вместо часов (столбец значений). Поэтому в вашем случае это должен быть столбец местоположения. –

+0

Приносим извинения, если мое изображение с изображением на складе сделало его неясным, но вы действительно можете использовать это выражение для любого или всех свойств заливки Fill Color в строке. – bitnine

+0

Спасибо большое. Хотя, я просто не понимаю, как изменить цвет? В настоящее время он показывает зеленый цвет. –

Смежные вопросы