ActiveReports 報表應用教程 (8)---互動式報表之動態過濾

葡萄城技術團隊發表於2013-07-03

使用者可以使用葡萄城ActiveReports報表引數 (Parameters)集合把資料提供給報表中的文字框或圖表,也可以選擇資料的一個子集顯示到報表的特定區域,或者是把資料從主報表象子報表傳遞。使用者可以通過三種方式獲取資料的值:提示使用者輸入;從主報表取值並傳遞給子報表;從Windows form或者Web form上取值。

1、建立報表檔案

在應用程式中建立一個名為 rptOrderDetails.rdlx 的 ActiveReports 報表檔案,使用的專案模板為 ActiveReports 頁面報表,建立完成之後從 VS 的報表選單項中選擇轉換為連續頁面佈局(CPL)報表,將固定頁面報表轉換為連續頁面報表。

2、開啟報表資源管理器,在引數節點中新增以下三個報表引數

引數1: 名稱:ProductID
資料型別:Integer
提示使用者輸入值顯示的問題:產品名稱:
多值:True
引數2: 名稱:StartDate
資料型別:DateTime
提示使用者輸入值顯示的問題:起始日期:
引數3: 名稱:EndDate
資料型別:DateTime
提示使用者輸入值顯示的問題:截止日期:

 

3、開啟報表資源管理器,並按照以下資訊建立報表資料來源

名稱: NWind_CHS
型別: Micorsoft OleDb Provider
OLE DB 提供程式: Microsoft.Jet.OLEDB.4.0
伺服器或檔名稱: Data\NWind_CHS.mdb

 

4、 新增資料集

在新建的 NWind_CHS 資料來源上滑鼠右鍵並選擇新增資料集選單項

4.1、新增資料集引數

引數1: 名稱:Param1
值:=[@ProductID]
引數2: 名稱:Param2
值:=[@ProductID]
引數3: 名稱:Param3
值:=[@StartDate]
引數4: 名稱:Param1
值:=[@EndDate]

說明:在新增引數設定值屬性時,可以點選下拉選單,並選中 表示式 選項,然後在表示式編輯對話方塊中設定引數的值

ActiveReports 報表功能展示 表示式編輯器

4.2、設定資料集其他屬性

常規-名稱:OrderDetails

查詢-查詢:


SELECT 訂單.訂單ID, 訂單.客戶ID, 訂單.訂購日期, 產品.產品名稱,訂單明細.數量, 訂單明細.單價, 訂單明細.折扣  from (( 訂單
inner join 訂單明細 on 訂單.訂單ID = 訂單明細.訂單ID )
inner join 產品 on 訂單明細.產品ID = 產品.產品ID )
where (訂單明細.產品ID in (?) or -1 in (?)) and DateDiff("d",?,訂購日期) > 0 and DateDiff("d",?,訂購日期) < 0
ORDER BY 訂單.訂單ID; 

說明:在以上查詢語句 Where 條件中使用了引數查詢,引數使用的是 ? 佔位,? 的出現順序需要與資料集引數中定義的引數順序一致。同時, ? 是 Access 中的查詢引數設定方式, SQL Server 中需要使用以 @ 開始的字串作為引數。

5、設計報表介面

從 Visual Studio 工具箱中將 Table 控制元件新增到報表設計介面,並將 OrderDetails 資料集中的欄位拖拽到 Table 的相應列中,得到的設計介面如下:

ActiveReports 報表功能展示 頁面報表

6、執行程式

通過 F5 鍵執行程式,在引數皮膚中輸入值之後,點選檢視報表按鈕,將得到以下結果:

ActiveReports 報表功能展示 報表引數

7、自定義報表引數皮膚

 

 

ActiveReports 報表處理支援內建的報表引數皮膚,您還可以提供獨立於報表Viewer控制元件的自定義報表引數皮膚,類似的實現效果如下:

ActiveReports 自定義報表引數皮膚 

然後在“執行報表”按鈕的Click事件中實現報表引數的設定並執行報表:

    protected void btnRun_Click(object sender, EventArgs e)
    {
        GrapeCity.ActiveReports.PageReport report1 = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath("PageReport1.rdlx")));
        report1.Report.ReportParameters[0].DefaultValue.Values.Add(txtParam.Text);
    
        WebViewer1.Report = report1;
    }

原始碼下載地址:


http://www.gcpowertools.com.cn/products/activereports_demo.htm

相關閱讀:

【報表福利大放送】100餘套報表模板免費下載 

 矩表 - 現代資料分析中必不可少的報表工具

 

相關文章