基於DotNet構件技術的企業級敏捷式軟體開發 (Agile Software Development)平台 – AgileEAS.NET平台開發指南 – 處理報表

來源:互聯網
上載者:User
報表系統介紹

         我們都知道,在資訊系統開發過程中,報表佔據著很重要的位置,業務運營資料最後給領導的反應就是那麼幾張綜合的業務資料報表,在如何選擇一個合適的報表系統也讓很多開發員糾結,AgileEAS.NET平台採用了基於RDL語言的開源報表系統fyireporting,最早基於其2.X版本進行了中文化並和AgileEAS.NET進行整合,到目前為止AgileEAS.NET平台中整合的是3.96版本,下面展示一下報表在AgileEAS.NET中的一個呈現:

         AgileEAS.NET平台對於fyireporting開源項目,只採用了其中的RdlEngine,RdlViewer和ReportDesigner三個項目,對報表設計師和引擎做了如下修改:

         1.修改了Excel匯出的問題,因為在應用中有大量的需求需要匯出報表並要求和列印樣式匹配:

         2.修改了PDF檔案匯出中文的問題。

         3.中文化。

         4.列印的走紙控制,在公司專屬應用程式中,特別是視窗服務應用的同一印表機打多咱票據的列印走紙控制。

         同時,我對fyireporting報表與AgileEAS.NET進行了整合,增加了報表設計師可以根據ORM實體物件建立報表的設計極報表轉譯與ORM實體的資料繫結。

製作報表

         AgileEAS.NET平台設計器提供一個非常方便的可以化報表設計師,fyireporting原版本的報表設計師只提供了基於資料庫連接的報表設計師,我增加了一個方法,基於AgileEAS.NET平台的ORM資料對象進行報表設計,整合了ORM與報表,下面看看建立一個與資料庫相關的報表:

         首先設定串連:

         選擇資料庫表或者編寫報表的查詢語句:

         確定之後使用報表設計師設計報表:

         預覽報表:

         AgileEAS.NET平台同時提供了一個不需要資料庫連接而是基於AgileEAS.NET平台中的ORM對象設計報表的方法,我們來看一下設計過程:

         首先選擇ORM對象的組件及ORM表對象:

         確定之後使用報表設計師設計報表:

報表整合

         AgileEAS.NET平台在報表的部署上採用了整合部署的思路,即設計好的報表定義儲存在資料庫中,用戶端在使用中讀報表定義並緩衝在用戶端,平台中增加了一個報表管理的應用外掛程式報表管理:用於管理系統中的所有報表。

         開發人員可以使用獨立的報表設計師設計好報表,然後在報表管理中建立一個報表並且匯入報表定義。

         建立報表:

         匯入報表定義,可以根據設計好的報表定義檔案匯入,也可以直接從報表設計師Copy報表定義源碼:

         開發員人也可以直接使用整合的報表設計師進行報表設計:

         報表管理模組整合的報表設計師是一個相獨立的報表設計師相比更加簡潔,這個報表設計師不像獨立的報表設計,最後把結果儲存到報表定義檔案,而是直接儲存到AgileEAS.NET的報表定義資料庫中。

程式中使用報表

         AgileEAS.NET平台提供了一個報表列印/預覽處理常式與報表列印/預覽視窗,開發人員可以根據需要情況彈出的列印表單還是使用可以嵌入在應用介面中的列印控制項。

         因為報表定義是在資料庫中,所以在報表列印前需要賦予報表列印控制項報表定義和報表的資料來源,我們在平台的報表管理中定義了一個IRportEx介面,用於儲存報表定義,下面示範一個使用彈出表單的報表列印例子:

             //報表對象

             IReportEx report = DALHelper.DALManager.CreateReportEx();

             report.Session = ContextHelper.Session;

             report.Name = "診療項目列表";

             report.Refresh();

             //綁定到報表的資料對象(ORM表對象)

             IItemInfoPrintList pl = this.itemList.GetPrintList();

             //列印對話方塊

             RDLViewDialog printForm = new RDLViewDialog();

             //綁定報表定義

                 printForm.Report = this.Report; 

             //綁定列印資料

             printForm.DataObject = pl;

             //預覽列印

             printForm.PrintPreview();

以上代碼效果如:

             使用AgileEAS.NET平台提供的報表列印控制項的使用方法同彈出式列印視窗,代碼如下:

             //報表對象

             IReportEx report = DALHelper.DALManager.CreateReportEx();

             report.Session = ContextHelper.Session;

              report.Name = "示範報表";

             report.Refresh();

             //綁定到報表的資料對象(ORM表對象)

             IIteminfoList dataList =

             EAS.Exam.DAL.Interface.DALHelper.DALManager.CreateIteminfoList();

             dataList.Session = ContextHelper.Session;

             dataList.GetIteminfoList(string.Empty, this.tbName.Text);

             //綁定報表定義

             this.reportViewer.Report = this.Report; 

             //綁定列印資料

             this.reportViewer.DataObject = pl;

             以上代碼執行效果如:

             在AgileEAS.NET平台的應用項目開發中,我們建設使用這種模式的報表開發,簡單、直觀,在我們的開發實踐中,我們也可以使用這種方式代替資料查詢模組。

 

 

連結

     AgileEAS.NET平台開發指南-系列目錄

     AgileEAS.NET應用開發平台介紹-文章索引

     AgileEAS.NET官方網站

     敏捷軟體工程實驗室

 

QQ群:116773358,15118502(已滿員)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.