文章出處

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

1、創建報表文件

在應用程序中創建一個名為 rptOrderDetails.rdlx 的 ActiveReports 報表文件,使用的項目模板為 ActiveReports 頁面報表,創建完成之后從 VS 的報表菜單項中選擇轉換為連續頁面布局(CPL)報表,將固定頁面報表轉換為連續頁面報表。

2、打開報表資源管理器,在參數節點中添加以下三個報表參數

image

3、打開報表資源管理器,并按照以下信息創建報表數據源

image

4、 添加數據集

在新建的 NWind_CHS 數據源上鼠標右鍵并選擇添加數據集菜單項

4.1、添加數據集參數

image

說明:在添加參數設置值屬性時,可以點擊下拉列表,并選中 表達式 選項,然后在表達式編輯對話框中設置參數的值

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

4.2、設置數據集其他屬性

常規-名稱:Products

查詢-查詢:

SELECT 產品.*,類別.類別名稱,類別.說明 AS 類別說明,類別.圖片 AS 類別圖片, 供應商.公司名稱 AS 供應商,供應商.聯系人姓名,供應商.城市,供應商.地址

FROM (供應商 INNER JOIN 產品 ON 供應商.供應商ID = 產品.供應商ID) INNER JOIN 類別 ON 產品.類別ID = 類別.類別ID
ORDER BY 產品.類別ID;

設置Products數據集的目的是為用戶提供產品名稱的選擇,如最終運行圖的左上角所示,因此我們需要為最開始設置的報表參數中的參數1設置可選值,右鍵點擊報表參數1,修改,選擇可選值標簽,設置信息:

image

查詢-查詢:

SELECT

訂單.訂單ID, 訂單.客戶ID, 訂單.訂購日期, 產品.產品名稱,訂單明細.數量, 訂單明細.單價, 訂單明細.折扣

from

(( 訂單

innerjoin

訂單明細

on

訂單.訂單ID = 訂單明細.訂單ID )

innerjoin

產品

on

訂單明細.產品ID = 產品.產品ID )

where

(訂單明細.產品ID

in

(?)

or

-1

in

(?))

and

DateDiff("d",?,訂購日期) > 0

and

DateDiff("d",?,訂購日期) < 0

ORDERBY

訂單.訂單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


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()