ActiveReports 報表應用教程 (15)---報表換膚

在 ActiveReports 中,可以設置報表中不同控件的樣式,然後把這些樣式保存到一個外部的XML文件當中,供其他報表使用。如果用戶希望同一份報表以不用的外觀分發,只需要簡單地修改樣式表單,無需逐個改變每個報表中的單個控件的字體、顏色、尺寸等。

本文中演示的是爲年度銷量統計表設置不同的皮膚樣式,我們供準備了三個皮膚樣式,以下是詳細操作步驟:

1、創建報表文件

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

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

名稱:NWind_CHS
類型:Micorsoft OleDb Provider
OLE DB 提供程序:Microsoft.Jet.OLEDB.4.0
服務器或文件名稱:Data\NWind_CHS.mdb

3、 添加數據集

在新建的 NWind_CHS 數據源上鼠標右鍵並選擇添加數據集菜單項,添加以下兩個數據集:

常規-名稱:Sales

查詢-查詢:

SELECT

類別.類別名稱,訂單.貨主地區,

SUM

(訂單明細.數量) 

AS

銷售量 

FROM

(( 訂單 

INNERJOIN

訂單明細 

ON

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

INNERJOIN

產品 

ON

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

INNERJOIN

類別 

ON

產品.類別ID = 類別.類別ID 

WHERE

DATEDIFF("yyyy",訂單.訂購日期,'2011-01-01') = 0

GROUPBY

類別.類別名稱,訂單.貨主地區 

ORDERBY

類別.類別名稱,訂單.貨主地區

 

常規-名稱:SaleDetails

查詢-查詢:

SELECT

DATEPART("m",訂單.訂購日期)

AS

訂購月,類別.類別名稱,

SUM

(訂單明細.數量) 

AS

銷售量 

FROM

(( 訂單 

INNERJOIN

訂單明細 

ON

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

INNERJOIN

產品 

ON

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

INNERJOIN

類別 

ON

產品.類別ID = 類別.類別ID 

WHERE

DATEDIFF("yyyy",訂單.訂購日期,'2011-01-01') = 0

GROUPBY

DATEPART("m",訂單.訂購日期),類別.類別ID, 類別.類別名稱

ORDERBY

DATEPART("m",訂單.訂購日期),類別.類別ID, 類別.類別名稱

 

4、設計報表界面

4.1、在 GrapeCity ActiveReports 主題編輯器中創建三個主題樣式

Style1.rdlx-theme

ActiveReports 報表功能展示 主題皮膚

 

Style2.rdlx-theme

ActiveReports 報表功能展示 主題皮膚

 

Style3.rdlx-theme

ActiveReports 報表功能展示 主題皮膚

創建完成以上主題樣式之後,爲報表指定一個主題,我們在設計時指定的主題樣式爲 Style1

ActiveReports 報表功能展示 主題皮膚

4.2、創建年度各地區銷量統計表

從 Visual Studio 工具箱中將 Chart 控件添加到報表設計界面,按照以下列表設置 Chart 控件的屬性

圖表數據屬性對話框:

常規-數據集名稱:Sales
系列值-值:=Sum([銷售量])
類別分組:名稱:Chart1_CategoryGroup1
分組-表達式:=[類別名稱] 
標籤:=[類別名稱]
系列分組:名稱:Chart1_SeriesGroup1
分組-表達式:=[貨主地區] 
標籤:=[貨主地區]

 

圖表外觀屬性對話框:

類型:圖表類型:折線圖
子類型:平滑 
標題:2011年度各地區銷售量統計表 
調色板: 
=Theme.Colors.Accent1 
=Theme.Colors.Accent2 
=Theme.Colors.Accent3 
=Theme.Colors.Accent4 
=Theme.Colors.Accent5

 

4.3、創建各地區銷量圖

從 Visual Studio 工具箱中將 Chart 控件添加到報表設計界面,按照以下列表設置 Chart 控件的屬性

圖表數據屬性對話框:

圖表屬性名稱屬性值
東北地區銷量圖常規:數據集名稱:Sales
系列值:值:=Sum([銷售量])
類別分組:名稱:Chart2_CategoryGroup1
表達式:=[類別名稱] 
標籤:=[類別名稱]
過濾:表達式:=[貨主地區]
運算符:Equal 
值:東北

 

圖表外觀屬性對話框:

類型:圖表類型:分高圖表
調色板:=Theme.Colors.Accent1
=Theme.Colors.Accent2 
=Theme.Colors.Accent3 
=Theme.Colors.Accent4 
=Theme.Colors.Accent5 
=Theme.Colors.Accent6 
=Theme.Colors.Hyperlink 
=Theme.Colors.HyperlinkFollowed

 

4.4、重複4.3操作,創建華北、華東、華南、西南四個地區的銷量圖,圖表區域在於過濾條件的值不同。

最終的設計結構如下圖:

ActiveReports 報表功能展示 主題皮膚

5、在後臺代碼中動態加載用戶指定的主題樣式

GrapeCity.ActiveReports.PageReport report =new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath("../Reports/" + reportname + ".rdlx"))); report.Report.DataSources[0].DataSourceReference = ""; report.Report.DataSources[0].ConnectionProperties.DataProvider = "OLEDB"; report.Report.DataSources[0].ConnectionProperties.ConnectString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};", Server.MapPath("../Data/NWind_CHS.mdb")); report.Report.Themes.Clear(); report.Report.Themes.Add(Server.MapPath(string.Format("../Theme/Style{0}.rdlx-theme", themeid))); WebViewer1.Report = report;

 

6、運行程序

ActiveReports 報表功能展示 切換主題皮膚

在線演示及源碼下載地址:


http://www.gcpowertools.com.cn/products/activereports_demo.htm
ActiveReports 報表功能展示

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章