2011-06-22 48 views

回答

23

您不想使用Hidden屬性,您實際上想要選擇該列,請右鍵單擊並選擇Column Visibility。一旦在這裏你可以使用表達式來設置基於參數的知名度,是這樣的:

= iif(Parameters!column_visible.Value = 1, false, true) 

Hidden不會在這種情況下工作,因爲你沒有真正把它應用到一個對象想你是當你選擇像文本框這樣的東西時。

+0

我使用布爾變量,它不工作 – Asif

+0

如果您使用隱藏的屬性表達式,你在正確的有更多的列,空的空間將保持在之間。謝謝@MrEdmundo! –

0

選擇一列。在屬性你有Hidden。屬性。然後你可以設置一個條件,例如=Parameters!IsColumnHidden.Value

如果你想從C#代碼做到這一點,我會發送一個參數(如上)到報告中,說明是否應該隱藏列。

12

以下是隱藏的列

1)將用名column_visible一個布爾值參數在報表

2)右鍵單擊所需的列,選擇欄的可見性的步驟。

3)選擇選項「顯示或隱藏基於表達式」

4)添加下述式

= iif(Parameters!column_visible.Value = "True", false,true) 

5)添加以下代碼在你在哪裏到上面添加指派值c#文件參數

ReportParameter[] parameters = new ReportParameter[1]; 
if (condition) 
{ 
    parameters[0] = new ReportParameter("column_visible", "True"); 
} 
else 
{ 
parameters[0] = new ReportParameter("column_visible", "False"); 
}   
this.reportViewer1.LocalReport.SetParameters(parameters); 
+1

爲什麼使用字符串,爲什麼不只比較iif語句中的布爾值?沒有辦法,你應該在這裏需要c#。 – MrEdmundo