2014-02-19 22 views
0

我有一個按任務名稱分組並具有名爲StartDate的列的報告。對於其中一些任務,即使StartDate爲空,我也需要顯示所有行。但是,在一個任務中,如果StartDate爲空,我需要隱藏這些行。針對一個條件的條件可見性

本質上,我需要一個條件子句,指出任務名稱是否等於abc,StartDate是否爲空,隱藏該行。我無法弄清楚如何在沒有完全刪除所有其他行的情況下將其實現爲可見性表達式,因爲它們不符合條件。任何幫助,將不勝感激!

+0

在這種情況下只需添加到where子句排除' (任務<>'abc'和StartDate爲空)' – 2014-02-19 19:09:34

+0

這將完全刪除任務等於'abc'的所有實例。如果我添加如下內容:'WHERE TaskName ='abc'和StarDate IS NOT NULL',所有其他任務將不會顯示。 @SaUce – PicoDeGallo

+0

我仍然困惑你究竟在問什麼。 – 2014-02-19 19:28:52

回答

1

您可以設置行可見性來實現此目的。

說我有數據:

enter image description here

和一個簡單的表格在此基礎上:只有

enter image description here

如果我想顯示任務ABC行與NULL開始日期,所有其他任務僅限於非NULL開始日期,我們可以設置行可見性 - >隱藏表達爲:

=IIf((Fields!TaskName.Value = "ABC" and Not IsNothing(Fields!StartDate.Value)) 
    or (Fields!TaskName.Value <> "ABC" and IsNothing(Fields!StartDate.Value)) 
    , true 
    , false) 

看起來與此OK:評論後

enter image description here

編輯

如果你想只考慮ABC隱藏某些行,只是改變了行可見性 - >隱藏表達總是S顯示所有非ABC行:

=IIf((Fields!TaskName.Value = "ABC" and IsNothing(Fields!StartDate.Value)) 
    or Fields!TaskName.Value <> "ABC" 
    , false 
    , true) 

enter image description here

+0

BIDS正在拋出以下錯誤: '... Tablix'Tablix1'的Visibility.Hidden表達式包含一個錯誤:[BC30455]參數'FalsePart'沒有爲'Public Function IIf(Expression作爲布爾值,TruePart As Object,FalsePart As Object ...)' 我想這是因爲你指定了一個OR參數。另外,如果TaskName不是ABC,我需要它顯示兩個結果(如果StartDate爲null或非null),這是我遇到問題的地方。 我感謝您的幫助! – PicoDeGallo

+0

我添加了一個稍微改變的表達式,它顯示了一些稍微不同的功能。您得到的錯誤是由於您編寫了特定表達式的方式 - 您可以根據需要嵌套'和'和'或'語句。這很可能是一個缺失或額外括號的情況。我可以確認答案中的表達式是否正確 - 我的答案中的屏幕截圖直接來自BIDS預覽,報告項目使用這些精確的表達式。 –

+0

完美,現在所有工作都按預期工作。非常感謝您的幫助! – PicoDeGallo

0

添加此條件,您Where子句將篩選出任務:

where TaskName <> "ABC" or StartDate is null