2012-03-24 47 views
0

我是Visual Studio 2010中RDLC報告的新手。
我在網站上工作,在此我使用了VS2010的報告功能。我用ReportViewer來顯示Report1.rdlc。它完美地展示了它。現在我的要求是在運行時過濾報表中的數據。我通過this問題,但無法理解它的答案。
因爲Report1.rdlc在後面的代碼中不可用。
如何過濾RDLC報告中的數據?

現在,我該如何在運行時過濾報表數據?

回答

0

你是如何從服務器等獲得數據?你是否綁定到可數據結果?如果是這樣,您可以在提取數據開始時應用過濾器,因此您不必在實際報告中執行任何特殊操作。

根據您的反饋,如果你得到一個數據表,然後應用過濾器應該很容易像

DataTable oDT = YourSQLCommandToGetData(); 
oDT.DefaultView.RowFilter = "SomeColumn = x and OtherColumn = y"; 

然後運行報告。如果你想要把它帶到另一個層次,並確保你沒有任何不需要的記錄,你甚至可以做這樣的事情

DataTable oNewFilteredResult = oDT.DefaultView.ToTable(); 

然後,您可以指定新表調用RDLC。

+0

是的我綁定到一個數據表,但嚮導沒有給任何查詢選項。它只是詢問表名。我正在使用SQL Server。 – jams 2012-03-24 20:48:09

+0

@jams,看修改後的答案 – DRapp 2012-03-24 23:46:45

0

當然,您將數據集分配給rdlc報表,並在報表查看器的頁面中,您將使用封裝查詢的對象數據源(以及用於包含數據表的XSD數據集)。

查詢自然有其中條款,在其中插入您的參數作爲篩選依據的數據,如:

WHERE (Table.Field = @Param OR @Param = A_Default_Value) 

調用報告之前現在,添加你喜歡的頁面控件(降),這些控件過濾映射到rdlc報告中的數據集的Object數據源,因此,報告將在點擊某個按鈕時被過濾,例如顯示報告,刷新對象數據源(數據綁定)並在報告查看器中重新顯示報告。

您可以考慮在RDLC assiging過濾控件的值參數,這樣你就可以在生成它顯示在其標題中報告的參數:

Parameters!ParameterName.Value 

希望幫助你。