我看到這個表達式需要更加註意的兩件事。
- 參數WLH.Value = CBool函數(「假」):平等測試的假側需要被轉換成布爾類型與CBool函數(CONVER到布爾值)的功能。
- ReportItems!craft.Value.IndexOf(「laborer」)> = 0:SSRS在表達式中不支持LIKE,但我們可以用這種方式測試子串的存在。這樣做是在字段值中查找索引(字符串「labourr」開始的位置)並檢查大於0的值。這將意味着找到「勞工」,而正整數以外的值意味着沒有找到字符串「labourr」。
我沒有在這臺機器上安裝SSRS仔細檢查,所以發表評論,如果你仍然需要幫助。另請注意,IndexOf區分大小寫,如果您想與「Laborer」匹配,則必須在IndexOf之前進行大小寫轉換。
充分體現:
=IIF(Parameters!WLH.Value = CBool("false") AND ReportItems!craft.Value.IndexOf("laborer") >= 0, 0, ---main calculation for the else statement---)
編輯:爲了應對區分大小寫 使用「用Ucase()」你的字段轉換爲大寫字母,然後測試只針對「民工」。
=IIF(Parameters!WLH.Value = CBool("false") AND UCase(ReportItems!craft.Value).IndexOf("LABORER") >=0, 0, ---main calculation for the else statement---)
好吧,我不知道SSRS不像TSQL那樣支持LIKE過濾器,但是你的新表達式看起來好像可以工作。然而,只有一個小問題。就像這個詞用在什麼情況下並不重要,但是用你的新表達方式,它可能無法一直工作,因爲有時工藝可以是勞動者,勞動者或勞動者。索引中的案例是否真的必須準確?或者有沒有辦法讓它查找所有3個變量? –