Не должно быть необходимости в пользовательском коде, хотя в зависимости от сложности правил, которые вы можете рассмотреть SWITCH
.
На основе вашего простого примера вы можете сделать любой из этих
=IIF(
Fields!Test1.Value = "x" OR Fields!Test2.Value = "x",
"Bold",
Nothing)
или для более сложной ситуации
= SWITCH (
Fields!Test1l.Value = "x" OR Fields!Test2.Value="x", "Bold",
Feilds!Test3.Value = "Z" AND Fields!Test4.Value >10, "SemiBold",
True, Nothing)
SWITCH
Оценивает каждую пару выражение / результат и останавливается, когда она достигает первой, которая становится True
. Финал «True, Nothing» действует как остальное. SWITCH
если легче читать, чем вложенные IIF
s, но IIF
может быть проще, если правила просты.
ОБНОВЛЕНИЕ:
Следующее показывает, как это с использованием HTML, сгенерированного в запросе набора данных. Я почти ничего не знаю о HTML, это может быть исправлено, но вот куда я попал ....
На основе вашей таблицы-примера я создал новый столбец с HTML версией адреса, используя </p>
для создания разрывов строк.
Он также подавляет пустые строки.
sql выглядит примерно так:
SELECT
HomeAddrFormattedP1 = '<p>Home Address: </p>'
+ IIF( ISNULL(h_street1,'')='', '', IIF( LEFT(h_street1,1) = 'x', '<b>' + h_street1 + '</b></p>', h_street1 + '</p>') )
+ IIF( ISNULL(h_street2,'')='', '', IIF( LEFT(h_street2,1) = 'x', '<b>' + h_street2 + '</b></p>', h_street2 + '</p>') )
+ IIF( ISNULL(h_street3,'')='', '', IIF( LEFT(h_street3,1) = 'x', '<b>' + h_street3 + '</b></p>', h_street3 + '</p>') )
+ IIF( ISNULL(h_foreign_cityzip,'')='', '', IIF( LEFT(h_foreign_cityzip,1) = 'x', '<b>' + h_foreign_cityzip + '</b></p>', h_foreign_cityzip + '</p>') )
+ IIF( ISNULL(h_city,'')='', '', IIF( LEFT(h_city,1) = 'x', '<b>' + h_city + '</b></p>', h_city + '</p>') )
+ IIF( ISNULL(h_state_code,'')='', '', IIF( LEFT(h_state_code,1) = 'x', '<b>' + h_state_code + '</b></p>', h_state_code + '</p>') )
+ IIF( ISNULL(h_zipcode,'')='', '', IIF( LEFT(h_zipcode,1) = 'x', '<b>' + h_zipcode + '</b></p>', h_zipcode + '</p>') )
+ IIF( ISNULL(h_country_code,'')='', '', IIF( LEFT(h_country_code,1) = 'x', '<b>' + h_country_code + '</b></p>', h_country_code + '</p>') )
,
*
FROM myTable
Использование этого в качестве запроса набора данных моего отчета Затем я добавил простую таблицу с 3 столбцами, один для HomeAddrFormattedP1
, first_name
и last_name
Затем все, что я сделал, это щелкнул правой кнопкой мыши заполнитель HomeAddrFormattedP1
и установил для его свойств значение Markup Type = HTML
Это дало следующий конечный результат.
![enter image description here](https://i.stack.imgur.com/UNCDz.png)