基于上面2節(jié)內(nèi)容,我們搭建了AR9的開發(fā)環(huán)境,配置好了數(shù)據(jù)源。在本節(jié),我們以官方提供的3個中文圖文并茂的報表來展示AR9的功能,并通過實(shí)戰(zhàn)的方式一一分享。
溫縣網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站開發(fā)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)公司從2013年成立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
以往做報表相關(guān)的工作時,最害怕的是報表的UI設(shè)計工作,當(dāng)遇到一個布局非常復(fù)雜的報表,往往會花上兩、三時間才能完成報表的UI設(shè)計工作。造成這一問題的原因除了報表本身比較復(fù)雜之外,其中一個主要原因就是報表設(shè)計器沒有提供足夠多的功能來輔助報表的UI設(shè)計工作。
ActiveReports 是一個非常容易使用控件,可有一些功能卻經(jīng)常被遺忘---例如AR報表的配置菜單。
當(dāng)我們打開ActiveReports報表設(shè)計畫面時(如雙擊*.rdl、*.rpx、*.rdlx),我們最關(guān)心的可能是工具箱和屬性窗口,而沒有注意到VS菜單欄上面的 報表菜單選項(xiàng),報表菜單總共有6個菜單項(xiàng),保存報表、報表報表到服務(wù)器、加載報表、從服務(wù)器加載報表、數(shù)據(jù)源、設(shè)置等。接下來就主要談一談設(shè)置菜單項(xiàng)。
ActiveReports提供了Inches(英寸)和Centimeters(厘米)兩種標(biāo)尺單位,我們可以根據(jù)自己的需要來選擇適合于自己的標(biāo)尺單位,從而省去了繁瑣的長度換算工作。(備注:默認(rèn)單位是英寸)
ActiveReports 提供了SnapLines(按邊線對齊)和Snap to Grid(按表格對齊)兩種對齊方式。當(dāng)選擇SnapLines時,可以根據(jù)對齊輔助線來判斷控件之間的相對位置關(guān)系;當(dāng)選擇Snap to Grid時,通過鼠標(biāo)移動控件的最小單位是一個單元格的距離,而且可以根據(jù)單元格的數(shù)量來判斷控件的正確位置。
當(dāng)選擇Show Grid(顯示網(wǎng)格)時,在報表的設(shè)計視圖中會顯示網(wǎng)格,而且網(wǎng)格數(shù)量是可以調(diào)整的。選擇合適的標(biāo)尺單位和網(wǎng)格數(shù)量能為我們判斷空間的位置帶來便利,比如:標(biāo)尺單位選擇Centimeters(厘米),網(wǎng)格數(shù)量設(shè)置為10*10,此時相鄰網(wǎng)格之間的距離恰好是1mm。
了解報表布局后,下面我們通過3個官方提供的demo進(jìn)行實(shí)戰(zhàn)操練。
本實(shí)例,通過組合使用AR報表的Lable、TextBox控件,來實(shí)現(xiàn)表格展現(xiàn)客戶數(shù)據(jù)。
依次拖入AR9的Label控件,修改顯示的文字、并調(diào)整背景色。
在Pageheader左上角,添加TextBox,按照下面截圖修改匯總算法--可實(shí)現(xiàn)對當(dāng)前頁面用戶信息進(jìn)行匯總。
設(shè)計Detail區(qū)域,可通過Step 3的辦法,從AR9工具箱拖入TextBox控件,修改DataField字段內(nèi)容。
這里我們使用一個AR報表設(shè)計的小技巧:直接從報表資源管理器中選擇字段拖入Detail區(qū)域。
至此,我們通過上面的實(shí)戰(zhàn)步驟,完成了客戶清單報表。
小技巧:通過報表設(shè)計器下面的設(shè)計器、腳本、預(yù)覽可方便的實(shí)現(xiàn)報表設(shè)計、預(yù)覽效果,效率非常高。
快速驗(yàn)證一下效果吧:
怎么和官網(wǎng)的不一樣呢?
呵呵,請在腳本中添加如下腳本,用于修改行變色:
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 = ""; }
本實(shí)例中,通過用報表控件Chart展示圖表數(shù)據(jù),更直觀。
選擇顯示為柱形圖--堆積圖,通過選中Chart后再單擊屬性對話框。
還可以通過選擇Chart后,單擊圖表數(shù)據(jù)進(jìn)行修改:序列(系列)、類別分組、序列分組數(shù)據(jù)填充操作。
在這個例子中,我們分別按照如下數(shù)據(jù)進(jìn)行操作:
拖動“銷售量”到序列數(shù)據(jù)區(qū)域
拖動“類別名稱”到X軸數(shù)據(jù)區(qū)域
拖動“貨主地區(qū)”到序列分組區(qū)域
在這個實(shí)例中,我們通過條形碼和AR9新出的圓角設(shè)計進(jìn)行一個類似國航機(jī)票的報表實(shí)戰(zhàn)。
添加報表、數(shù)據(jù)源,請參加本文的第1個例子,用到的數(shù)據(jù)源SQL:
select 航班信息.* from 航班信息 order by ID;
添加一個嵌入式的圖像
添加Image報表控件,并設(shè)置國航機(jī)票的背景圖片。
上面添加了Image控件后,我們來添加條形碼控件。
配置條形碼屬性
LayerName:設(shè)置為Layer1。我們?yōu)榱朔奖愎芾?,?shù)據(jù)控件統(tǒng)一放在Layer1層。
Symbology:設(shè)置為Ansi39類型條形碼。
Value: 設(shè)置條形碼數(shù)據(jù),可指定當(dāng)前機(jī)票的ID號。
備注: ActiveReports 提供的Barcode控件支持37種條碼格式,其中包括:Code39碼、Code25碼、ITF25碼、Matrix25碼、UPC-A碼、UPC-E碼、EAN-13碼、EAN-8碼等一維條碼和PDF417等二維條碼。
添加完背景圖片、條形碼后,開始拖動數(shù)據(jù)字段填充乘客、出發(fā)點(diǎn)等數(shù)據(jù)信息。
有時候設(shè)計報表,在多個層之間控制非常不方便,明明選中了,但是報表就是無法編輯數(shù)據(jù)。
這里給大家分享一個AR9新增的小技巧:在AR報表中,多個圖層直接切換可見性、是否選中,請通過在VS工具欄空白處單擊右鍵,選擇ActiveReports 9:
然后激活圖層管理---層列表 V9:
官方提供的完整demo和中文數(shù)據(jù)庫文件下載地址:
為了方便共享和交流,還可通過Git@OSC進(jìn)行Watch。