ActiveReports 9實戰教程(3): 圖文並茂的報表形式,activereports
基於上面2節內容,我們搭建了AR9的開發環境,配置好了資料來源。在本節,我們以官方提供的3個中文圖文並茂的報表來展示AR9的功能,並通過實戰的方式一一分享。
以往做報表相關的工作時,最害怕的是報表的UI設計工作,當遇到一個布局非常複雜的報表,往往會花上兩、三時間才能完成報表的UI設計工作。造成這一問題的原因除了報表本身比較複雜之外,其中一個主要原因就是報表設計師沒有提供足夠多的功能來輔助報表的UI設計工作。
ActiveReports 是一個非常容易使用控制項,可有一些功能卻經常被遺忘---例如AR報表的配置菜單。
當我們開啟ActiveReports報表設計畫面時(如雙擊*.rdl、*.rpx、*.rdlx),我們最關心的可能是工具箱和屬性視窗,而沒有注意到VS功能表列上面的 報表菜單選項,報表菜單總共有6個功能表項目,儲存報表、報表報表到伺服器、載入報表、從伺服器載入報表、資料來源、設定等。接下來就主要談一談設定功能表項目。
1、可選的尺規單位
ActiveReports提供了Inches(英寸)和Centimeters(厘米)兩種尺規單位,我們可以根據自己的需要來選擇適合於自己的尺規單位,從而省去了繁瑣的長度換算工作。(備忘:預設單位是英寸)
2、可選的對齊
ActiveReports 提供了SnapLines(按邊線對齊)和Snap to Grid(按表格對齊)兩種對齊。當選擇SnapLines時,可以根據對齊輔助線來判斷控制項之間的相對位置關係;當選擇Snap to Grid時,通過滑鼠行動控制項的最小單位是一個儲存格的距離,而且可以根據儲存格的數量來判斷控制項的正確位置。
3、可選的網格間距
當選擇Show Grid(顯示網格)時,在報表的設計檢視中會顯示網格,而且網格數量是可以調整的。選擇合適的尺規單位和網格數量能為我們判斷空間的位置帶來便利,比如:尺規單位選擇Centimeters(厘米),網格數量設定為10*10,此時相鄰網格之間的距離恰好是1mm。
瞭解報表布局後,下面我們通過3個官方提供的demo進行實戰操練。
報表實戰1:常規報表--資料清單--客戶清單
本執行個體,通過組合使用AR報表的Lable、TextBox控制項,來實現表格展現客戶資料。
Step 1: 建立一個 rptCustomerList.rpx 報表檔案
Step 2: 建立資料來源
Step 3:設計PageHeader(報表頭)
依次拖入AR9的Label控制項,修改顯示的文字、並調整背景色。
在Pageheader左上方,添加TextBox,按照下面修改匯總演算法--可實現對當前頁面使用者資訊進行匯總。
Step 4 設計Detail(報資料表資料區域)
設計Detail地區,可通過Step 3的辦法,從AR9工具箱拖入TextBox控制項,修改DataField欄位內容。
這裡我們使用一個AR報表設計的小技巧:直接從報表資源管理員中選擇欄位拖入Detail地區。
Step 5 設計PageFooter地區
至此,我們通過上面的實戰步驟,完成了客戶清單報表。
小技巧:通過報表設計師下面的設計器、指令碼、預覽可方便的實現報表設計、預覽效果,效率非常高。
快速驗證一下效果吧:
怎麼和官網的不一樣呢?
呵呵,請在指令碼中添加如下指令碼,用於修改行變色:
int RowNo = 0;public void detail_Format(){ if ((RowNo % 2) == 1) { this.detail.BackColor = Color.Gainsboro; } else { this.detail.BackColor = Color.Transparent; } RowNo++;}public void ActiveReport_ReportStart(){ rpt.Document.Printer.PrinterName = "";}
報表實戰2:常規報表--圖表報表--常規圖表
本執行個體中,通過用報表控制項Chart展示圖表資料,更直觀。
Step 1:建立rptSalesByRegion.rdlx報表
Step 2:建立資料來源
Step 3:添加Chart報表控制項
選擇顯示為直條圖--堆積圖,通過選中Chart後再單擊屬性對話方塊。
Step 4: 填充Chart資料
還可以通過選擇Chart後,單擊圖表資料進行修改:序列(系列)、類別分組、序列分組資料填充操作。
在這個例子中,我們分別按照如下資料進行操作:
- 拖動“銷售量”到序列資料區域
- 拖動“類別名稱”到X軸資料區域
- 拖動“貨主地區”到序列分組地區
Step 5: 預覽運行效果
報表實戰3:常規報表--條碼--國航機票
在這個執行個體中,我們通過條碼和AR9新出的圓角設計進行一個類似國航機票的報表實戰。
Step 1:建立 rptFlightBarcode.rdlx 報表和資料來源
添加報表、資料來源,請參加本文的第1個例子,用到的資料來源SQL:
select 航班資訊.* from 航班資訊 order by ID;
Step 2:設計報表的背景圖
添加一個嵌入式的映像
添加Image報表控制項,並設定國航機票的背景圖片。
Step 3:添加條碼
上面添加了Image控制項後,我們來添加條碼控制項。
配置條碼屬性
- LayerName:設定為Layer1。我們為了方便管理,資料控制項統一放在Layer1層。
- Symbology:設定為Ansi39類型條碼。
- Value: 設定條碼資料,可指定當前機票的ID號。
備忘: ActiveReports 提供的Barcode控制項支援37種條碼格式,其中包括:Code39碼、Code25碼、ITF25碼、Matrix25碼、UPC-A碼、UPC-E碼、EAN-13碼、EAN-8碼等一維條碼和PDF417等二維條碼。
Step 4:添加資料區域
添加完背景圖片、條碼後,開始拖動資料欄位填充乘客、出發點等資料資訊。
有時候設計報表,在多個層之間控制非常不方便,明明選中了,但是報表就是無法編輯資料。
這裡給大家分享一個AR9新增的小技巧:在AR報表中,多個圖層直接切換可見度、是否選中,請通過在VS工具列空白處單擊右鍵,選擇ActiveReports 9:
然後啟用圖層管理---層列表 V9:
Step 5: 運行完整的demo效果:
官方提供的完整demo和中文資料庫檔案:
為了方便共用和交流,還可通過Git@OSC進行Watch。