本篇文章將介紹區(qū)域報(bào)表和頁(yè)面報(bào)表的常見(jiàn)使用場(chǎng)景、區(qū)別和選擇報(bào)表類(lèi)型的一些建議,兩種報(bào)表的模板設(shè)計(jì)、數(shù)據(jù)源(設(shè)計(jì)時(shí)和運(yùn)行時(shí))設(shè)置、和瀏覽報(bào)表的區(qū)別。
ActiveReports 報(bào)表控件官方中文入門(mén)教程 (1)-安裝、激活以及產(chǎn)品資源
ActiveReports 報(bào)表控件官方中文入門(mén)教程 (2)-創(chuàng)建、數(shù)據(jù)源、瀏覽以及發(fā)布
本篇文章包括以下部分:
1.區(qū)域報(bào)表和頁(yè)面報(bào)表的區(qū)別
- 兩種報(bào)表的具體應(yīng)用場(chǎng)景
- 區(qū)域報(bào)表和頁(yè)面報(bào)表的區(qū)別
- 項(xiàng)目中如何選擇報(bào)表類(lèi)型
-
2.區(qū)域報(bào)表和頁(yè)面報(bào)表數(shù)據(jù)源設(shè)置
- 運(yùn)行時(shí)
- 設(shè)計(jì)時(shí)
3.報(bào)表瀏覽器加載報(bào)表的區(qū)別
1.區(qū)域報(bào)表和頁(yè)面報(bào)表的區(qū)別
1.1首先我們來(lái)看一下兩種報(bào)表的具體應(yīng)用場(chǎng)景
固定頁(yè)面布局報(bào)表:ActiveReports 中首創(chuàng)的一種 .NET報(bào)表模型,運(yùn)行時(shí)的報(bào)表頁(yè)面與設(shè)計(jì)時(shí)完全保持一致,各控件的位置和大小都不會(huì)改變,非常適合創(chuàng)建傳統(tǒng)的紙質(zhì)報(bào)表格式,如用于設(shè)計(jì)財(cái)務(wù)單據(jù)、銀行帳票等格式要求嚴(yán)格的報(bào)表。 連續(xù)頁(yè)面布局報(bào)表:主要通過(guò)數(shù)據(jù)區(qū)域來(lái)控制報(bào)表的布局,能自動(dòng)實(shí)現(xiàn)數(shù)據(jù)分頁(yè)顯示,并提供最強(qiáng)大的報(bào)表交互能力,可輕松實(shí)現(xiàn)各種交互式報(bào)表。報(bào)表頁(yè)面的控件可以擴(kuò)大或縮小;通過(guò)參數(shù)報(bào)表實(shí)現(xiàn)數(shù)據(jù)過(guò)濾;支持設(shè)置交互式排序;您可以設(shè)置鉆取報(bào)表,在初始狀態(tài)下隱藏細(xì)節(jié),點(diǎn)擊按鈕后打開(kāi);您也可以添加指向其它報(bào)表的鉆取鏈接,以及指向報(bào)表內(nèi)其它區(qū)域的書(shū)簽鏈接等。
區(qū)域布局報(bào)表:ActiveReports產(chǎn)品的典型報(bào)表模型,區(qū)域布局中報(bào)表被分為不同的區(qū)域。缺省情況下的區(qū)域布局報(bào)表包含頁(yè)眉,明細(xì)和頁(yè)腳區(qū)域,可以進(jìn)一步插入報(bào)表頭/報(bào)表尾和分組頭/分組尾區(qū)域。這種布局方式也在Access和水晶報(bào)表中得到廣泛使用。您可以運(yùn)用已經(jīng)掌握的C#和VB.NET知識(shí),并結(jié)合區(qū)域布局報(bào)表模型提供的豐富API實(shí)現(xiàn)子報(bào)表、交叉報(bào)表、分組報(bào)表、分欄報(bào)表、主從報(bào)表等多種多樣的報(bào)表系統(tǒng)。
1.2區(qū)域報(bào)表和頁(yè)面報(bào)表的區(qū)別
區(qū)域報(bào)表和頁(yè)面報(bào)表最主要的區(qū)別是組成結(jié)構(gòu),區(qū)域報(bào)表顧名思義是有多個(gè)區(qū)域組成,區(qū)域報(bào)表最終由多個(gè)區(qū)域組合呈現(xiàn),包括表頭、詳細(xì)區(qū)域和表尾組成。
頁(yè)面報(bào)表最終呈現(xiàn)布局中只有一個(gè)單位就是-頁(yè)面,頁(yè)面報(bào)表最終呈現(xiàn)效果是由多個(gè)頁(yè)面組合,進(jìn)一步說(shuō),連續(xù)頁(yè)面布局最終頁(yè)數(shù)取決于需要展示的數(shù)據(jù)量。固定頁(yè)面報(bào)表主要強(qiáng)調(diào)的是預(yù)覽效果和打印效果完全一致。非常適合創(chuàng)建傳統(tǒng)的紙質(zhì)報(bào)表格式,如用于設(shè)計(jì)財(cái)務(wù)單據(jù)、銀行帳票等格式要求嚴(yán)格的報(bào)表。
1.3項(xiàng)目中如何選擇報(bào)表類(lèi)型
關(guān)于在實(shí)際項(xiàng)目中如何選擇報(bào)表,往往是主觀因素影響大一些,每個(gè)開(kāi)發(fā)人員關(guān)注的角度不同會(huì)影響選擇結(jié)果不同。例如,有些程序員會(huì)更加傾向把報(bào)表分割成規(guī)整的頁(yè)眉、數(shù)據(jù)區(qū)域和頁(yè)腳三個(gè)部分,這樣他就會(huì)認(rèn)為區(qū)域報(bào)表比較適應(yīng)項(xiàng)目需求而選擇區(qū)域報(bào)表。還有其他程序員需要使所有報(bào)表頁(yè)面基于一張報(bào)表模板,這個(gè)時(shí)候他們就會(huì)選擇連續(xù)頁(yè)面報(bào)表。再舉個(gè)例子,如果需要使用多個(gè)數(shù)據(jù)源,連續(xù)頁(yè)面報(bào)表也是很好的選擇。
如果報(bào)表中需要交互式報(bào)表分析(向下和貫穿鉆取、動(dòng)態(tài)的數(shù)據(jù)排序),另外迷你圖、數(shù)據(jù)條、地圖控件、多數(shù)據(jù)源等需求也需要使用頁(yè)面報(bào)表實(shí)現(xiàn)。
當(dāng)然,ActiveReports 提供產(chǎn)品文檔、隨機(jī)安裝示例和在線示例等多方面資源來(lái)為您選擇報(bào)表類(lèi)型提供大量的指導(dǎo),協(xié)助您選擇正確的報(bào)表模板,節(jié)省開(kāi)發(fā)時(shí)間。
2.區(qū)域報(bào)表和頁(yè)面報(bào)表數(shù)據(jù)源設(shè)置
2.1頁(yè)面報(bào)表設(shè)計(jì)時(shí)設(shè)計(jì)數(shù)據(jù)源步驟如下:
- 第一步: 在工程中創(chuàng)建一個(gè)名為 PageReport_DataSource_DesignTime.rdlx 的頁(yè)面報(bào)表
第二步: 創(chuàng)建完成之后,會(huì)自動(dòng)打開(kāi)報(bào)表設(shè)計(jì)界面,此時(shí)我們看到的是一個(gè)固定頁(yè)面報(bào)表(FPL),通過(guò)Visual Studio菜單欄中的“ 報(bào)表 ”->“ 轉(zhuǎn)換為連續(xù)頁(yè)面布局(CPL)報(bào)表 ”將報(bào)表轉(zhuǎn)換為CPL報(bào)表。
從Visual Studio菜單欄中的“ 視圖 ”->“ 其他窗口 ”->“ 報(bào)表資源管理器 V8 ”中打開(kāi)ActiveReports報(bào)表資源管理器,此時(shí),你可以看到“ 數(shù)據(jù)源 ”節(jié)點(diǎn),在該節(jié)點(diǎn)上鼠標(biāo)右鍵選擇“ 添加數(shù)據(jù)源 ”菜單項(xiàng),在彈出的“ 報(bào)表數(shù)據(jù)源 ”對(duì)話框中按照向?qū)Р襟E連接到一個(gè)Access數(shù)據(jù)庫(kù),如下圖:
點(diǎn)擊“ 確定 ”按鈕,完成數(shù)據(jù)源創(chuàng)建操作,此時(shí),在報(bào)表資源管理器窗口中的“ 數(shù)據(jù)源 ”節(jié)點(diǎn)下新增了一個(gè)名為“ DataSource1 ”的子節(jié)點(diǎn),在該節(jié)點(diǎn)上點(diǎn)擊鼠標(biāo)右鍵,選擇“ 添加數(shù)據(jù)集 ”菜單項(xiàng),在彈出對(duì)話框的“ 查詢 ”選項(xiàng)卡中寫(xiě)入以下SQL查詢語(yǔ)句 [Select * from 產(chǎn)品],然后點(diǎn)擊“ 確定 ”按鈕完成數(shù)據(jù)集創(chuàng)建操作。返回到報(bào)表資源管理窗口之后,點(diǎn)擊“ DataSet1 ”節(jié)點(diǎn),可以看到SQL查詢語(yǔ)句返回查詢結(jié)果的全部數(shù)據(jù)字段。
第三步: 在Visual Studio工具箱中的“ ActiveReports 8 頁(yè)面布局報(bào)表 ”分類(lèi)下將表格控件(Table)拖拽到報(bào)表設(shè)計(jì)界面,然后點(diǎn)擊表格 明細(xì)行 中的單元格,此時(shí),會(huì)自動(dòng)顯示DataSet1中數(shù)據(jù)集中的全部字段,然后,為每個(gè)單元格指定需要綁定的字段。
更多 設(shè)計(jì)時(shí)設(shè)置報(bào)表數(shù)據(jù)源內(nèi)容請(qǐng)參考:
http://blog.gcpowertools.com.cn/post/2014/08/01/ActiveReports_DataSource_DesignTime.aspx
2.1頁(yè)面報(bào)表運(yùn)行時(shí)設(shè)置數(shù)據(jù)源關(guān)鍵代碼如下:
private void 運(yùn)行時(shí)數(shù)據(jù)源頁(yè)面報(bào)表ToolStripMenuItem_Click(object sender, EventArgs e){GrapeCity.ActiveReports.PageReport pReport1 = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo("PageReport_DataSource_RunTime.rdlx"));viewer1.LoadDocument(pReport1.Document);}private void Form1_Load(object sender, EventArgs e){viewer1.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(viewer1_LocateDataSource);}void viewer1_LocateDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args){if (args.DataSourceName == "DataSource1"){if (args.DataSetName == "DataSet1"){args.Data = GetDataSource();}}}private DataTable GetDataSource(){DataTable dt = new DataTable();dt.Columns.Add("產(chǎn)品編號(hào)");dt.Columns.Add("產(chǎn)品名稱(chēng)");dt.Columns.Add("單價(jià)");dt.Columns.Add("庫(kù)存量");dt.Rows.Add("A10002", "蘋(píng)果", 20, 50);dt.Rows.Add("A15681", "香蕉", 20, 50);dt.Rows.Add("A15681", "菠蘿", 20, 50);return dt;}更多運(yùn)行時(shí)設(shè)置報(bào)表數(shù)據(jù)源信息請(qǐng)參考:
http://blog.gcpowertools.com.cn/post/2014/08/01/ActiveReports_DataSource_RunTime.aspx
3.報(bào)表瀏覽器加載報(bào)表的區(qū)別
頁(yè)面報(bào)表和區(qū)域報(bào)表在瀏覽方式上有差別,本節(jié)以WebViewer為例,來(lái)查看加載頁(yè)面報(bào)表和區(qū)域報(bào)表區(qū)別:
GrapeCity.ActiveReports.PageReport rpt = new GrapeCity.ActiveReports.PageReport();rpt.Load(new System.IO.FileInfo(Server.MapPath("")+"\\invoice.rdlx"));WebViewer1.Report = rpt;
WebViewer加載基于代碼的區(qū)域報(bào)表:
SecionReport rpt = new SecionReport();WebViewer1.Report = rpt;
WebViewer加載基于XML的區(qū)域報(bào)表:
SectionReport sr = new SectionReport();sr.LoadLayout(Server.MapPath("") + "\\Invoice.RPX);WebViewer1.Report = sr;
關(guān)于在WinForms、WPF、Silverlight等平臺(tái)更多詳細(xì)內(nèi)容請(qǐng)參考幫助文檔相關(guān)章節(jié): http://www.gcpowertools.com.cn/docs/ActiveReports/AR8Guide/#!Documents/_28.htm
以上就是ActiveReports報(bào)表控件入門(mén)教程的全部?jī)?nèi)容,這三篇文章是使用ActiveReports報(bào)表控件必須要了解的只是,希望通過(guò)閱讀本系列文章能讓您在ActiveReports報(bào)表控件使用上有一個(gè)概括性的了解,順利的完成實(shí)際開(kāi)發(fā)中的工作。
您在使用產(chǎn)品過(guò)程中有任何疑問(wèn),可以登錄官方產(chǎn)品技術(shù)社區(qū)和經(jīng)驗(yàn)豐富的技術(shù)工程師、ActiveReports開(kāi)發(fā)人員交流: 點(diǎn)擊交流
了解ActiveReports產(chǎn)品更多特性:
http://www.gcpowertools.com.cn/products/activereports_overview.htm
下載產(chǎn)品體驗(yàn)產(chǎn)品功能:
http://www.gcpowertools.com.cn/products/download.aspx?pid=16
ActiveReports 報(bào)表控件官方中文入門(mén)教程 (3)-如何選擇頁(yè)面報(bào)表和區(qū)域報(bào)表
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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