基于上面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。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
