簡體   English   中英

SSRS 中表達式中的粗體特定值

[英]Bold Specific Values in Expression in SSRS

當值包含“x”時,我試圖在表達式中使多個值“粗體”。 Html 占位符屬性不符合我的需要,我正在努力讓它與以下內容一起使用,因為我的表達式中有多個語句:

=(IIF(Fields.Test1,Value="x", "Bold". "Normal") OR (Fields,Test2,Value="x", "Bold", "Normal") 等等

我想我需要創建一個自定義代碼 function 然后在表達式中需要的地方調用 function 但我不知道從哪里開始。 任何幫助將不勝感激。

更新:

Switch 正在工作,但將整個表達式加粗,而不僅僅是表達式的占位符屬性中指定的值。 我相信這是因為我的主要表達式連接了創建一個長字符串的字段。

占位符 exp

結果

價值經驗

+-----------+------------+-----------+------------------+------------------+-----------+-----------+------------+-----------+-------------------+---------+--------------+-----------+----------------+-------------------------------+-----------------+---------------+--------------+----------+------------------+------------------+------------------+------------------+------------+---+------------+-----------+-------------------+-----------+--------------+-----------+----------------+---------+----------+-------------------+----------------------+---------------+----------------+---------+
| id_number | first_name | last_name | pref_address_ind | h_addr_type_code | h_care_of | h_street1 | h_street2  | h_street3 | h_foreign_cityzip | h_city  | h_state_code | h_zipcode | h_country_code |        h_email_address        | p_email_address |    h_phone    |              | hc_phone | b_company_name_1 | b_company_name_2 | b_business_title | fld_of_work_code | b_street1  |   | b_street2  | b_street3 | b_foreign_cityzip |  b_city   | b_state_code | b_zipcode | b_country_code | b_phone | bc_phone |  b_email_address  |                      | full_business | pref_email_ind | Main_ID |
+-----------+------------+-----------+------------------+------------------+-----------+-----------+------------+-----------+-------------------+---------+--------------+-----------+----------------+-------------------------------+-----------------+---------------+--------------+----------+------------------+------------------+------------------+------------------+------------+---+------------+-----------+-------------------+-----------+--------------+-----------+----------------+---------+----------+-------------------+----------------------+---------------+----------------+---------+
|    165815 | Test       | Test1     | NULL             |                  | NULL      | NULL      | x Apt #09  | NULL      | NULL              | NULL    | NULL         | NULL      | x USA          | NULL                          | NULL            | DELETED       |              | DELETED  | NULL             | ~                | NULL             | NULL             | NULL       |   | NULL       | NULL      | NULL              | NULL      | NULL         | NULL      | NULL           | NULL    | NULL     | NULL              |                      | NULL          | NULL           |  165815 |
|    165816 | Test       | Test2     | NULL             |                  | NULL      | Street    | x Street 1 | x Street2 | NULL              | Houston | NULL         | NULL      | NULL           | x Home Email:testing@test.com | NULL            | x Home Phone: | 111-111-1111 | NULL     | NULL             | ~                | NULL             | NULL             | x Business | 1 | x Street 2 | NULL      | NULL              | x Houston | x TX         | x 77777   | NULL           | NULL    | NULL     | x Business Email: | btesting@testing.com | NULL          | NULL           |  165816 |
+-----------+------------+-----------+------------------+------------------+-----------+-----------+------------+-----------+-------------------+---------+--------------+-----------+----------------+-------------------------------+-----------------+---------------+--------------+----------+------------------+------------------+------------------+------------------+------------+---+------------+-----------+-------------------+-----------+--------------+-----------+----------------+---------+----------+-------------------+----------------------+---------------+----------------+---------+

應該不需要自定義代碼,但根據規則的復雜程度,您可能需要考慮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”就像一個 else。 SWITCH如果比嵌套的IIF更容易閱讀,但如果規則簡單, 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 列,分別用於HomeAddrFormattedP1first_namelast_name

我所做的只是右鍵單擊HomeAddrFormattedP1占位符並將其屬性設置為 Markup Type = HTML

這給出了以下最終結果。

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM