[英]How to filter data in RDLC report?
我是 Visual Studio 2010 中 RDLC 報告的新手。
我在一個網站上工作,在這個網站上我使用了 VS2010 的報告功能。 我使用ReportViewer
來顯示Report1.rdlc
。 它完美地展示了它。 現在我的要求是在運行時過濾報表中的數據。 我經歷了這個問題,但無法理解它的答案。
因為Report1.rdlc
在后面的代碼中不可用。
現在,如何在運行時過濾報表數據?
當然,您將數據集分配給 rdlc 報告,並且在您的報告查看器的頁面中,您將使用封裝查詢的對象數據源(以及因此帶有數據表的 XSD 數據集)。
查詢自然有一個where子句,您可以在其中插入參數來過濾數據,例如:
WHERE (Table.Field = @Param OR @Param = A_Default_Value)
現在在調用報表(下拉列表、文本框等)之前將您喜歡的控件添加到頁面中,這些控件過濾對象數據源,該數據源映射到 rdlc 報表中的數據集,因此,報表將在單擊某個按鈕(例如Show Report )時進行過濾,以刷新對象數據源(對它們進行數據綁定)並在報告查看器中重新顯示報告。
您可以考慮將過濾控件的值分配給 rdlc 中的參數,以便您可以在生成報告時在其標題中顯示報告的參數:
Parameters!ParameterName.Value
希望對您有所幫助。
您如何從服務器等獲取數據。您是否綁定到數據表結果? 如果是這樣,您可以讓您的查詢在提取數據開始時應用過濾器,這樣您就不必在實際報告中做任何特別的事情。
根據您的反饋,如果您正在獲取 DataTable,那么應用過濾器應該很容易,例如
DataTable oDT = YourSQLCommandToGetData();
oDT.DefaultView.RowFilter = "SomeColumn = x and OtherColumn = y";
然后運行您的報告。 如果您想將其提升到另一個級別並確保您沒有任何不需要的記錄,您甚至可以執行類似的操作
DataTable oNewFilteredResult = oDT.DefaultView.ToTable();
然后,您可以分配 NEW 表來調用 RDLC。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.