Хорошо, теперь, когда я понимаю, почему данные отформатированы как есть, я нашел решение, которое должно работать для вас.В основном, чтобы это работало, вам нужно изменить запрос из набора данных следующим образом:
SELECT CAST(ISNULL(b.branch, 'None') as varchar)
FROM printers p
FULL JOIN branch b ON p.branchid = b.branchid WHERE p.printername IS NULL
ORDER BY b.branch
Это предоставит значения b.branch
таким образом, чтобы их можно было объединить в SSRS сформатирование шрифта между каждым значением.Он также учитывает значения NULL
с помощью функции ISNULL
, которая проверяет каждый ID
и выбирает значения NULL
как None
, когда возвращает значения.
Выражение должно начинаться со шрифтацвет установлен на синий.Далее вам нужно будет использовать две функции SSRS, LookupSet
вернет все значения Fields!ID.Value
в массиве, который мы можем поместить в одну строку с помощью Join
.Join
требует значений для объединения и разделителя, что в этом случае дает вам возможность правильно отформатировать цвет текста.Разделение на "</font><font color = 'black' size = 1>-</font><font color = 'blue' size = 1>"
закроет первый тег <font>
, который должен сделать первый ID
синим, вставит черную черту и откроет новый тег <font>
для следующего ID
, и так далее.Наконец, вы добавляете закрывающий тег </font>
, чтобы закончить закрашивать окончательный ID
синим цветом.
="<font color = 'blue' size = 1>"
& Join(LookupSet(1, 1, Fields!ID.Value, "DataSet2"), "</font><font color = 'black' size = 1>-</font><font color = 'blue' size = 1>") & "</font>"
Я проверил это, и похоже, что оно работает.Однако вам нужно быть уверенным, что вы используете это выражение в заполнителе с типом разметки, установленным на HTML, чтобы интерпретировать теги HTML как стили, чтобы это работало.
Вот пример того, как это выглядит при использованиивышеприведенное выражение с более светлым цветом для демонстрации: