У меня есть поле в моем отчете SSRS, которое содержит строку чисел, разделенных запятыми (из выбора объединения в SQL). Это выглядит как 12, 91, 160, 171, 223. Я хотел бы изменить цвет текста только ОДНОГО конкретного значения (например, 160) в поле, ЕСЛИ значение также находится в другом поле отчета.

У меня уже есть это выражение для Font свойств поля.

=iif(Fields!Store_Number.Value.ToString().Contains (Fields!DMHomeStore.Value)= True,"Red","Black")

Это изменяет цвет текста всего поля, а не только этого ОДНОГО значения в строке.

В принципе, если DMHomeStore = 160, а Store_Number имеет 160 в своей строке, тогда сделайте только 160 Red в строке Store_Number.

3
Emo 24 Июл 2010 в 00:24

2 ответа

Лучший ответ

Это, безусловно, можно сделать, и это несложно.

  1. Начните с пустой ячейки таблицы.
  2. Дважды щелкните ячейку -> Щелкните правой кнопкой мыши -> Создать заполнитель
  3. На вкладке Общие выберите Значение -> выберите поле, которое будет содержать строку чисел.
  4. На той же вкладке "Общие" выберите "HTML, интерпретировать HTML-теги как стили.
  5. Нажмите ОК

Это первый шаг. Теперь все, что нам нужно сделать, это настроить выражение, которое найдет нужную строку и затем заменит ее кодом HTML, чтобы она стала красной.

  1. Щелкните правой кнопкой мыши ячейку -> Выбрать выражение
  2. Введите следующее выражение:
=Replace(Fields!Store_Number.Value.ToString(),Fields!DMHomeStore.Value," `<span style='color:red'>` " & Fields!DMHomeStore.Value & "`</span>`")

Запустите свой отчет, и только соответствующая строка будет красной, а весь остальной текст в ячейке будет черным. Если соответствующая строка не найдена, весь остальной текст будет черным.

7
animuson 1 Фев 2012 в 04:44
Я не уверен, что мне что-то здесь не хватает, но я все равно получаю всю строку красной, а не только значение 160. Я полностью очистил камеру и начал с нуля. Создал заполнитель и в заполнителе выбрал поле Store_Number. Затем выбрал «HTML, интерпретировать HTML-теги как стили». Я также убедился, что свойства Placeholder «Font» по-прежнему имеют выражение = iif (Fields! Store_Number.Value.ToString (). Contains (Fields! DMHomeStore.Value) = True, «Red», «Black»). второй шаг - добавление выражения = Replace, которое вы мне дали.
 – 
Emo
3 Авг 2010 в 23:39
Уберите выражение из свойства font. Вы не хотите устанавливать цвет в двух местах.
 – 
NakedBrunch
3 Авг 2010 в 23:41
Хорошо, попробовал, но теперь вся строка становится черной. Что должно делать текст красным без этого выражения iif? Извини ... Я никогда не умел использовать выражения.
 – 
Emo
3 Авг 2010 в 23:51
Я тоже должен добавлять HTML-код? Если да, то где? Спасибо еще раз!
 – 
Emo
4 Авг 2010 в 00:21
Ты прав. Я только что заметил, что мой HTML-код не отображается. Это было в моем решении, но сайт не отображал мои HTML-теги в отображаемом ответе. Я поставил несколько пустых пробелов, и теперь теги отображаются правильно. Просто не забудьте очистить теги, и все будет в порядке.
 – 
NakedBrunch
4 Авг 2010 в 00:26

SSRS не будет отображать все теги html, например, стили будут удалены из тегов span. Вот хорошая ссылка http://dinesql.blogspot.com /2010/05/reporting-services-2008-showing-html.html

1
BobC 6 Июн 2013 в 00:22