-gMIS更新:数据透视和hasId等

 

接續上月對 -gMIS 的更新,繼續完善和豐富 -gMIS 的相關功能與特色。這次主要更新包括實現一種聯機分析處理(OLAP)的數據分析透視功能,另外還有實現了對hasId的擴展,以及其他一些細節完善。

按慣例先關心環保,北京的天氣依然是霧霾重重,而且漸次嚴重,2016Dec17,北京霧霾紅色預警,汽車單雙號限行,中小學停課,預計此次空氣污染將持續5天左右。

1. 數據透視及統計分析,pivot table

聯機分析處理(OLAP, Online Analaytical )是與OLTP對應的一種術語。它與數據分析、數據統計密切相關的應用程序或系統。通常情況下,管理信息系統(MIS)關注的更多的是OLTP(聯機處理程序)如作業的流轉、目標系統的管控等。OLAP本身有專業的數據分析及處理程序來做,比如SPSS,Tableau等,也能夠在通用軟件入 Microsoft Office Excel中看到透視表的功能(Pivot table)。

此前,我們在操作中曾經遇到過需要處理100萬條數據的複雜統計分析,這種數量級,在Excel中就比較吃力,甚至在Windows的作業環境下,文本文件處理程序如 NotePad, Notepad++等,打開這樣的文件也有困難。-Ufqi-dev 曾經列過類似軟件開發計劃。

 

本次更新中,我們在 -gMIS 中增加了依托書庫查詢的數據分組查詢與透視功能。可以實現簡易的分組聚合,排序等數據分析的基本功能。能夠替代多數數據統計系統,實現部分OLAP的功能,與業務支撐系統相集合,可以提供更加簡便的決策支持。

gMIS的透視統計分析設計原型參考了Microsoft Office Excel中的 Pivot table,實現效果類似如下圖。

 

在 gMIS 部署實例中的透視功能截圖。

 

遵循 Microsoft Office Excel中關於透視表的相關設置,減少用戶學習成本,同時進一步的減少了列項設置,變寬表為長表,降低了調用的複雜度,用戶使用時更容易入手。

對比Excel的四個步驟,gMIS透視減縮為兩步三塊的設計:1)在pagenavi中根據高級檢索功能,篩選出結果集,然後在結果集頁面上,點擊“透視”;2)在透視界面上,選擇分組項,求值項和排序項,然後遞交可形成長表。兩步是先篩選,后分組。

2. hasId擴展

hasId 是 -gMIS中 的一個全局變量,用於標識某個被管理的數據表/數據對象是否有全局唯一字段/鍵值。 按良好的設計規範,數據表應該有全局唯一的字段或鍵值。然而世界不總是“良好”的,有些時候gMIS接管的項目,不是從一開始,所以需要面臨沒有良好設計的數據對象。

比如一個常見的流水表,如果有唯一Id號,可以輕易地獲取某條就的詳細信息,或者修改、打印、刪除等操作,而如果沒有唯一Id號,事情就變得有些災難,如果設置了唯一鍵值,比如多個字段的組合,可以依照這些組合條件檢索到目標記錄;而如果沒有唯一鍵值,要找到目標記錄,幾乎需要用到所有字段作爲約束條件,即便是這樣,也很難保證就是目標要命中的記錄(考慮到有重複的情況)。

hasId模塊儅檢測到目標數據表沒有Id時,此前無法進行針對單條記錄進行操作的清空,取而代之的是報告一項錯誤,請管理員、開發人員增加一個id字段,或者通過xml配置文件,指定某一個字段履行唯一id字段的職責,通過myId來傳遞。

今次改進,即是兼容和擴展了這種可能,儅沒有id,也沒有通過xml指定myId,hasId模塊試圖去探測primary key和unique key,儅獲得相應的字段或者字段列表時,轉為hasId的情況。最糟糕的情況是檢測 primary key/unique key失敗,這樣, hasId模塊仍將繼續,取xml配置文件listcount指定的前n個字段作爲 unique key的字段,如果沒有xml配置文件指定,則使用默認的 listcount 值,也即前n=7.

簡而言之,目標數據表是否有良好設計(有無id),是否通過xml配置文件指定id,是否有primary key/unique key等情況,均被cover上,hasId擴展模塊獎對這些情況進行智能處理,系統robust更多一些。

one more thing, 智能再多一些,如果hasId知道了目標數據對象的unique key,那麽再檢索的時候,如果同時使用了unique key的字段,還有其他補充字段的條件,則其他補充字段條件就可以省略不計。 比如使用id查詢,如果再給定狀態,形成 id+istate的查詢,則istate應該自動被丟棄,如果id是unique key,就不同時存在兩狀態的同一個unique key的記錄。

3. 其他調整與完善

繼續完善和調整了首頁面顯示導航;

繼續完善了工作流相關模塊;

默認inserttime/updatetime為UI錄入時為只讀狀態,也即這些字段顯示后有系統自動生成。
也可以通過xml配置文件的readonly做控制。

增加filterReplace功能,與輸入validator不同的是,filterReplace是將輸入的内容使用給定的匹配模式(主要是正則表達式)進行替換,比如一個id期望值是數字1234,如果輸入了a1234,則validator會警告說不合法,中止流程並請用戶修正,而filterReplace則會“粗魯地”匹配出1234進行繼續,丟棄a,不提示,不中斷流程。這個有些類似與搜索引擎的智能修正。

 

gmis-logo-201606

-gMIS 是一种基于 -GWA2 的通用管理信息系统软件,具有可配置的输入和输出接口。
可以在其上构建各种管理应用软件系统,如
内容管理系统(CMS),客户资源管理(CRM), 企业资源计划管理(ERP),
办公自动化系统(OA)等, 以及各种行业应用管理系统软件,如
人力资源管理系统(HR),学生管理,档案管理,旅游管理,图书管理,
商品管理及业务运营支撑系统等等。
实现零代码开发、搭建各种管理信息系统(MIS).

Lower Costs, 降低成本; Better Productivity, 提高效率.

This entry was posted in -gMIS, 计算机技术 and tagged , , , , , . Bookmark the permalink.