簡體   English   中英

如何過濾 RDLC 報告中的數據?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM