一、前言
AgileEAS.NET SOA 中間件平台是一款基於基於敏捷並行開發思想和Microsoft .Net構件(組件)開發技術而構建的一個快速開發應用平台。用於幫助中小型軟件企業建立一條適合市場快速變化的開發團隊,以達到節省開發成本、縮短開發時間,快速適應市場變化的目的。
AgileEAS.NET SOA中間件平台提供了敏捷快速開發軟件工程的最佳實踐,通過提供大量的基礎支撐功能如IOC、ORM、SOA、分布式體系及敏捷並發開發方法所支撐的插件開發體系,以及提供了大量的實體、數據模型設計生成工具、代碼生成工具,用於幫助中小軟件開發商快速成長。
AgileEAS.NET平台充分把握目前軟件行業快速發展的新趨勢,基於敏捷並行開發、快速適應市場這樣淳朴的軟件工程實踐,采用業界廣泛使用的Microsoft .Net構件(組件)開發技術實踐了這種開發思想,幫助軟件企業實現“敏捷變化、快速適合”的目標,從而幫助軟件企業在激烈的市場競爭中贏得先機並獲得更高的回報。
二、關於動態報表系統
在之前的犀利的報表系統,AgileEAS.NET SOA中間件平台GReport使用指南一文之中我們為大家介紹和實例演示了如何使用AgleEAS.NET SOA中間件平台的GReport報表系統。
但是,在之前提供的報表系統之中,不管是fyireporting報表系統還是GReport報表系統,都是預定義報表系統,即需要在程序開發過程之中進行預定義,雖然留給項目實施人員和維護人員極大的自定義功能,但是必竟是有所限制的,比如不能修改報表的ReportID,不能變更報表依賴的ORM實體對象。
而在現實項目之中,特別是偏重於數據查詢、統計分析的MIS類系統,項目后期需要大量的統計分析報表,而在項目開發過程之中,畢竟不可能把所有的報表都開發出來,因為其需求並不是在開發階段所提供的,而是在系統運行過程之中,隨着對系統應用的深入會有越來越多的報表需求,那么在這個時間,再由開發人員重新定義報表,顯然有些不能接受,一是項目的成果會明細的提高,二是因為開發人員的流動和其他一些因素,比如開發企業的售后服務響應周期較長,不能及時的響應這種需求。
為解決此問題,AgileEAS.NET SOA中是件平台創新的提出了動態報表的思路,即我們系統的報表進行了大致的划分,開發前提能明確確定的業務票據和業務報表由開發人員在開發過程之中實現,而對於因為不同的企業、用戶的不同管理需求而導致變化的那些可變化報表系統,則交由項目實施人員或者系統應用者的維護人員進行實現。
這樣做,可以為開發企業和系統使用者都能提出更大的便利,對於開發企業來講,把一部分報表后置交由實施人員根據客戶的具體情況在項目實施周期之內完成,一是可以節省前提開發成本,減少返工帶來的高成本,二是可以把產品做成穩定的基礎部分+動態定義的報表系統,便於對軟件系統的定型和維護,而對於系統使用者也是也極大的便利,比如一些急需的或者特別的報表系統,則可以直接由自己的實施人員搞定,並且隨便可以增加和修改,減少需要的實現周期。
AgileEAS.NET SOA中間件平台的動態報表系統其本質是定義一個依賴於一個動態SQL查詢的數據報表以及對這個報表的模塊轉換發布兩個功能實現。
AgileEAS.NET SOA中間件平台沒有為“動態報表”提供單獨的定義和管理功能,其管理功能集成於“GR報表”和“報表管理”兩個模塊之中。
和犀利的報表系統,AgileEAS.NET SOA中間件平台GReport使用指南一文之中定義普通報表不一樣的地方是,動態報表在定義過程之中必須要選中“報表模塊、把報表做為獨立模塊發布”復選框,並且必須要填寫報表的“查詢語句”,如果“查詢語句”是一個帶參數的動態查詢語言,則必須要定義“查詢參數”。
以下對幾個重要參數做一下說明:
“報表模塊、把報表做為獨立模塊發布”:動態報表必須要中此項,選中本選項之后,系統會自動把這個報表發布為一個“報表模塊”,即讓報表充當系統之中的模塊插件,一個報表即為一個模塊插件,可以對於進行權限和導航部署,系統之中對此報表具體權限的賬號登錄系統之中就會以普通模塊一樣的方式打開報表並且使用。
“查詢語句”:動態報表的查詢語句是報表工作過程之中抓取報表數據的動態查詢語句,報表的綁定數據來自於本查詢語句與查詢參數動態組合而成的目標查詢結果:
查詢語句之中以$符號起始的單詞即為動態查詢參數,此查詢條件會根據最終用戶的輸入進行替換,如果查詢語句之中定義了動態查動態查詢參數,則必須定義報表的“查詢參數”。
“查詢參數”:查詢參數用於詳細定義解釋報表動態查詢語句之中的動態參數,比如參數的顯示標題、參數數據類型、參數默認值,參數是否與某輸入字典相關聯等,下圖的查詢參數與上圖你動態查詢語句相匹配:
數據類型,目前支持“字符”、“日期”、“日期時間”、“整數”、“小數”。
查詢參數被用於在打開報表自動生成的查詢UI界面上輸入預值的參數值,以便於動態生成報表數據。
三、動態報表實踐
開發動態報表不需要進行C#或者VB.NET編程,但是需要掌握系統的數據庫結構、會設計、制作報表和熟練的使用AgileEAS.NET SOA中間件平台的系統管理功能,符合這種條件的人員主要是系統實施人員和系統維護人員。
下面我們就是GReport動態報表一步一步的學習和演示一下處理過程。
首先,我們需要打開平台的“GR報表”模塊,並且增加一個新的報表:
必須選中“報表模塊、把報表做為獨立模塊發布”,然后切換到“查詢語句”Tab頁並且寫入如下SQL語句:
這個SQL語句之中帶了兩個動態參數:$StartTime和$EndTime兩個參數,我們的目標是統計LMTIME在這兩個參數區間的模塊,並且以程序集為分組匯總條件。
然后我們切換到“查詢語句”Tab頁,我們可以看到:
系統自動的從“查詢語句”之中提取StartTime和EndTime,但是顯示標題、數據類型、迷人值還需要我們手動修改和填寫,填寫完成如下圖:
這樣就完成了“查詢參數”的定義,點“確定”按鈕這后保存報表。
接下來雙擊剛添加的動態報表,系統會打開設計界面,自動加載初始樣式:
請根據情況自己修改報表,最后保存,我們修改為以下樣式:
這樣報表的設計工作就完成了,接下來我們為動態報表進行使用者授權和導航分組部署,首先我們打開“角色管理”並且選中一個角色(我們選擇“平台演示”角色),然后雙擊打開:
雙擊“添加”按鈕,打開“模塊選擇界面”:
選擇“搜索報表”復選框,輸入檢索條件,點“搜索”按鈕之后選中剛才加載的模塊,點擊確定,返回“角色”屬性設定界面。
點擊“確定”完成對動態報表的訪問授權。
接下來我們設置導航分組的部署,打開“導航分組”選擇要部署動態報表的分組,如果沒有分組請添加一個新的分組,有關於如何添加 一個新的導航分組的使用說明請參考《AgileEAS.NET SOA中間件系統管理使用教程 V5.0》。
選中一個分組,然后后右邊空白區域右鍵打開快捷菜單,選擇“添加”打開“模塊選擇窗口”:
選擇動態報表然后單擊“確定”按鈕,完成對動態報表的導航分組部署。
四、執行驗證
我們編譯並且啟動DrugShop.Main.exe,使用0001密碼sa登錄,我們就會在“統計報表”分組之中看到模塊“模塊程序集統計報表”:
打開這個模塊:
設置開始時間和結束時間,點擊“提取數據”按鈕:
OK,動態報表演示完成。
DrugShop案例之中同步提供了本例子的報表定義和導航、權限配置,請大家通過AgileEAS.NET SOA中間件官方網站的最新下載欄目進行下載。
五、聯系我們
為完善、改進和推廣AgileEAS.NET而成立了敏捷軟件工程實驗室,是一家研究、推廣和發展新技術,並致力於提供具有自主知識產權的業務基礎平台軟件,以及基於業務基礎平台開發的管理軟件的專業軟件提供商。主要業務是為客戶提供軟件企業研發管理解決方案、企業管理軟件開發,以及相關的技術支持,管理及技術咨詢與培訓業務。
AgileEAS.NET SOA中間件平台自2004年秋呱呱落地一來,我就一直在逐步完善和改進,也被應用於保險、醫療、電子商務、房地產、鐵路、教育等多個應用,但一直都是以我個人在推廣,2010年因為我辭職休息,我就想到把AgileEAS.NET推向市場,讓更多的人使用。
我的技術團隊成員都是合作多年的老朋友,因為這個平台是免費的,所以也沒有什么收入,都是由程序員的那種理想與信念堅持,在此我感謝一起奮斗的朋友。
AgileEAS.NET網站:http://www.agileeas.net
官方博客:http://eastjade.cnblogs.com
github:https://github.com/agilelab/eas
QQ:47920381,AgileEAS.NET
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。