一、前言
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推向市場,讓更多的人使用。
我的技術團隊成員都是合作多年的老朋友,因為這個平臺是免費的,所以也沒有什麼收入,都是由程式設計師的那種理想與信念堅持,在此我感謝一起奮鬥的朋友。
團隊網站:http://www.agilelab.cn,
AgileEAS.NET網站:http://www.smarteas.net
官方部落格:http://eastjade.cnblogs.com
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。