犀利的報表系統,發票據與報表開發的快速利器,AgileEAS.NET SOA中間件GReport使用指南

1、前言

     AgileEAS.NET SOA 中間件平臺是一款基於基於敏捷並行開發思想和Microsoft .Net構件(組件)開發技術而構建的一個快速開發應用平臺。用於幫助中小型軟件企業創建一條適合市場快速變化的開發團隊,以達到節省開發成本、縮短開發時間,快速適應市場變化的目的。git

     AgileEAS.NET SOA中間件平臺提供了敏捷快速開發軟件工程的最佳實踐,經過提供大量的基礎支撐功能如IOC、ORM、SOA、分佈式體系及敏捷併發開發方法所支撐的插件開發體系,以及提供了大量的實體、數據模型設計生成工具、代碼生成工具,用於幫助中小軟件開發商快速成長。程序員

     AgileEAS.NET平臺充分把握目前軟件行業快速發展的新趨勢,基於敏捷並行開發、快速適應市場這樣淳樸的軟件工程實踐,採用業界普遍使用的Microsoft .Net構件(組件)開發技術實踐了這種開發思想,幫助軟件企業實現「敏捷變化、快速適合」的目標,從而幫助軟件企業在激烈的市場競爭中贏得先機並得到更高的回報。github

2、關於GReport、Grid++報表系統

     AgileEAS.NET SOA中間件平臺目前集成兩套優秀的報表系統,一套是開源的fyireporting報表系統3.96版本,其始於2007年AgileEAS.NET SOA中間件平臺3.0版本之時就集成入平臺的一套報表系統,其快速方便的條帶式報表很是適合用於MIS系統的報表展現,咱們在fyireporting基礎上作了大是的漢化、改動而且與AgileEAS.NET SOA中間件平臺進行緊密的集成。數據庫

     可是對於市場在國內的大多數軟件企業都會遇到客戶的不少近似於變態的報表需求,fyireporting有也其不足的地方,其在處理中國式的票據、和一個特殊報表時無能無爲,以後咱們考慮集成一套更好的中國式報表系統,在和幾家行業醫療供應商合做的兩個年頭之中,咱們集成廣州銳浪的Grid++報表系統並與AgileEAS.NET SOA中間件進行融合,稱之爲GReport。緩存

     AgileEAS.NET SOA中間件平臺的報表管理體系並設計爲集中式的報表管理、設計與報表瀏覽、打印相協調的可集中管理的報表體系,極大的簡化和方便報表的開發、部署和管理。併發

     在AgileEAS.NET中間件平臺之中提供了一個用於管理、和設計GRport的功能模塊「GR報表」:app

@RP2A}5YU~LW~2[~EKH}ZG3

     系統之中的全部報表都是可管理的,當在系統的任何一個客戶端修改了報表定義以後,不須要從新部署程序,便可讓報表的修改經過全部的使用者。即時生效。分佈式

     在GR報表模塊之中,直接雙擊選中的報表便可進行報表設計界面,進行報表的設計:工具

image

     GR報表的設計器界面是基於Grid++報表所提供的設計器控件實現的,其使用方法同Grid++原始的報表設計工做,具體的使用方法請參考Grid++官方幫助。學習

     本設計器與官方的原生設計器之間的差異主要是新建報表與原生不一樣,原生的報表系統只能基於數據庫鏈接和SQL語句建立報表,而本設計器提供了除經過書寫SQL建立報表(不用提供鏈接信息,以當前鏈接爲準)以外還提供了基於AgileEAS.NET SOA中間件平臺的ORM實體建立報表:

F(E7P){_[NF(6WTTD@B)1PG

 

     數據報表即爲基於SQL語句建立報表,對象報表基於ORM實體對象建立報表:

8NUSVAY(29PZU~AAKOJ@146

     當基於實體建立報表時肯定報表對應的實體對象以後,系統會自動的從ORM定義信息之中讀出實體的屬性定義信息而且自動的轉換爲報表的數據列。

3、GReport組件

     AgileEAS.NET SOA中間件平臺爲開發人員提供了三個有關於GReport報表的控件,包括打印預覽對話框、報表數據顯示控件、報表打印控件,這三個控件都由EAS.GReport.Controls.dll程序集承載,使用這三個組件以前都須要先引用EAS.GReport.Controls.dll程序集或者把這三個組件加載到Visual Studio的工具箱之中。

     打印預覽對話框: EAS.GReport.Controls.PrintViewDialog,用於打開一個新的窗口而且預覽打印報表。

~5RFB__%JI4I4FXJ$1REV}K

     報表查詢顯示控件: EAS.GReport.Controls.GDisplayViewer,以查詢模式顯示報表及報表數據的一個控件。

image

     報表預覽顯示控件: EAS.GReport.Controls.GPrintViewer,以打印模式顯示報表及報表數據的一個控件。

     以上三個控件都提供相同的報表API:

   1: //
   2: // 摘要:
   3: //     報表ID。
   4: [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
   5: [Browsable(false)]
   6: public Guid ReportID { get; set; }

     屬性ReportID:其意思爲報表ID,其取值爲GR報表模塊之中設計好的報表ID號,用於實現與系統報表管理的綁定。

   1: //
   2: // 摘要:
   3: //     數據源對象。
   4: [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
   5: [Browsable(false)]
   6: public object DataObject { get; set; }

     屬性DataObject:其意義爲報表的數據對象,即控件要顯示或者打印的數據源,DataObject的值必須爲DataTable或者爲ORM實體的List<T>集合。

     程序之中調用報表的流程即爲設計這兩個屬性便可,首先設計ReportID爲要顯示、打印的報表ID,而後向控件設置報表的顯示數據源DataObject便可完成對報表系統的調用。

4、報表開發實例

     咱們下面以DrugShop案例之中的藥品字典模塊的字打印實例如何進行GReport報表開發:

     首先咱們須要在GR報表模塊之中增長一個名稱爲「藥品字典明細報表」的報表項目。

QNQE3EJ3D1G%ER%V3R%S)V8

     報表名稱必需要填寫而且不能重名,別名能夠選擇填寫,緩存間隔默認爲15分種,最小1分種,自由設定,原則上在系統開發測試階段設小一些,在穩定運行階段設大一些。

     其餘參數,如「報表模塊,把報表作爲獨立模塊發佈」、查詢語句、查詢參數能夠不去理會,這些參數爲動態報表提供,關於動態報表咱們會在後面的文章之中進行專門的介紹。

     而後咱們點「肯定」按鈕保存報表進行下一步的報表設計工做。

     雙擊咱們剛纔添加的「藥品字典明細報表」進入報表設計界面,咱們能夠看到這是一個空報表:

88I12(%}$S{N$KB{D8M(DGE

     選擇「文件」菜單之中的「新建」=》「對象報表」:

VI52_]YB485Y]6UBRV~O5Y8

 

     切換到數據定義Tab頁,進行實體類型的選擇:

F`GRI(N4Y(DAQYAGLQL(FJE

     咱們瀏覽選擇程序集DrugShop.Entitties.dll,而後在對象下拉列表框中選擇DrugShop.Entitties.PIn,即藥品入庫ORM對象,咱們基於DrugShop.Entitties.PIn建立報表,點擊「肯定」完成報表的新建。

image

     系統會自動的更具新建導向生成一個初始報表,若是須要對報表的顯示、格式進行調用,請參考Grid++設計手冊進行學習。

     修改完成以後,點擊「保存」圖標、或者「文件=》保存」菜單項保存報表的格式定義,這樣就完成了報表的定義。

     接下來咱們須要把剛纔定義、設計好的報表掛在程序之中,使用Visual Studio 打開DrugShop解決方案,打開DrugShop.WinUI項目之中的藥品字典模塊DrugDictList.cs:

image

     雙擊「打印」按鈕寫如下打印代碼:

   1: private void tsbPrint_Click(object sender, EventArgs e)
   2: {
   3:     if (this.dictList != null)
   4:     {
   5:         EAS.GReport.Controls.PrintViewDialog ViewDialog = new EAS.GReport.Controls.PrintViewDialog();
   6:         ViewDialog.ReportID = new Guid("F29C4C91-0791-4116-BE26-3A2A88F30A2A");
   7:         ViewDialog.DataObject = this.dictList;
   8:         ViewDialog.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
   9:         ViewDialog.WindowState = System.Windows.Forms.FormWindowState.Maximized;
  10:         ViewDialog.ShowDialog();
  11:     }
  12: }

     這樣咱們就完成了對報表的調用,另外,在DrugShop案例之中,藥品入庫查詢和藥品銷售查詢兩個模塊之中分別使用了GReport報表,請你們在開發過程之中參考。

5、執行驗證

     咱們編譯而且啓動DrugShop.Main.exe,使用0001密碼sa登陸,打開藥品字典功能,來試一下是報表是否正常:

image

     OK,使用正常,沒有任何問題。

     DrugShop案例之中同步提供了本例子的報表定義和使用代碼,請你們經過AgileEAS.NET SOA中間件官方網站最新下載欄目進行下載。

6、聯繫咱們

     爲完善、改進和推廣AgileEAS.NET而成立了敏捷軟件工程實驗室,是一家研究、推廣和發展新技術,並致力於提供具備自主知識產權的業務基礎平臺軟件,以及基於業務基礎平臺開發的管理軟件的專業軟件提供商。主要業務是爲客戶提供軟件企業研發管理解決方案、企業管理軟件開發,以及相關的技術支持,管理及技術諮詢與培訓業務。

     AgileEAS.NET SOA中間件平臺自2004年秋呱呱落地一來,我就一直在逐步完善和改進,也被應用於保險、醫療、電子商務、房地產、鐵路、教育等多個應用,但一直都是以我我的在推廣,2010年由於我辭職休息,我就想到把AgileEAS.NET推向市場,讓更多的人使用。

     個人技術團隊成員都是合做多年的老朋友,由於這個平臺是免費的,因此也沒有什麼收入,都是由程序員的那種理想與信念堅持,在此我感謝一塊兒奮鬥的朋友。

團隊網站:http://www.agilelab.cn

AgileEAS.NET網站:http://www.agileeas.net

官方博客:http://eastjade.cnblogs.com

github:https://github.com/agilelab/eas

QQ:47920381

QQ羣:113723486(AgileEAS SOA 平臺)/上限1000人

199463175(AgileEAS SOA 交流)/上限1000人

212867943(AgileEAS.NET研究)/上限500人

147168308(AgileEAS.NET應用)/上限500人

172060626(深度AgileEAS.NET平臺)/上限500人

116773358(AgileEAS.NET 平臺)/上限500人

125643764(AgileEAS.NET探討)/上限500人

193486983(AgileEAS.NET 平臺)/上限500人

郵件:james@agilelab.cn,mail.james@qq.com,

電話:18629261335。

相關文章
相關標籤/搜索