通過文件目錄,使用者可以非常清晰的檢視報表資料結構,並能方便地跳轉到指定的章節,最終還可以將報表匯出為PDF等格式的檔案。本文以2012年各月產品銷售分類彙總報表為例,演示如何在葡萄城ActiveReports報表控制元件實現文件目錄。
1、建立報表檔案
在應用程式中建立一個名為 rptMonthlySalesByCategory.cs 的 ActiveReports 報表檔案,ActiveReports 區域報表(基於程式碼)。
2、建立報表資料來源
點選該圖示以建立報表資料來源,我們使用的資料來源是原始碼工程中 Data 目錄下的 NWind_CHS.mdb,在開啟的報表資料來源對話方塊中,選擇”提供程式”選項卡,點選建立連線按鈕以開啟“資料連結屬性”對話方塊,並選擇 “Microsoft Jet 4.0 OLE DB Provider”資料提供器,點選“下一步”按鈕切換到 “連線”選項卡,點選“…”按鈕定位到 NWind_CHS.mdb 檔案,然後點選“確定”按鈕以完成建立據源的操作。
回到“OLE DB”選項卡之後在查詢區域輸入一下 SQL 語句:
SELECT
DATEPART("yyyy",訂單.訂購日期)
AS
訂購年, DATEPART("m",訂單.訂購日期)
AS
訂購月, 類別.類別名稱, 類別.說明, 產品.產品名稱, 訂單明細.數量, 訂單明細.單價, 訂單明細.折扣
FROM
(( 訂單
INNERJOIN
訂單明細
ON
訂單.訂單ID = 訂單明細.訂單ID)
INNERJOIN
產品
ON
訂單明細.產品ID = 產品.產品ID)
INNERJOIN
類別
ON
產品.類別ID = 類別.類別ID
WHERE
DATEDIFF("yyyy",訂單.訂購日期,'2012-01-01') = 0
ORDERBY
DATEPART("yyyy",訂單.訂購日期), DATEPART("m",訂單.訂購日期), 類別.類別ID, 訂單明細.產品ID
3、設計報表介面
3.1、在報表設計介面中點選滑鼠右鍵,並選擇插入->組頭/組尾,此報表中需要插入三級分組,然後設定以下屬性:
groupHeader1 | DataField=訂購月 GroupKeepTogether=FirstDetail RepeatStyle=OnPage |
groupHeader2 | DataField=類別名稱
GroupKeepTogether=FirstDetail RepeatStyle=OnPage |
groupHeader3 | DataField=產品名稱
GroupKeepTogether=FirstDetail RepeatStyle=OnPage |
3.2、在報表後臺程式碼中新增以下程式碼,用於設定報表目錄:
private void groupHeader1_Format(object sender, EventArgs e) { this.groupHeader1.AddBookmark(txt訂購月1.Text); }
private void groupHeader2_Format(object sender, EventArgs e) { this.groupHeader2.AddBookmark(txt訂購月1.Text + "\\" + txt類別1.Text); }
4、執行程式
線上演示及原始碼下載地址:
http://www.gcpowertools.com.cn/products/activereports_demo.htm
相關閱讀: