两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于JSON自定義的報表生成系統(tǒng)及方法與流程

文檔序號:11154973閱讀:425來源:國知局
一種基于JSON自定義的報表生成系統(tǒng)及方法與制造工藝

本發(fā)明涉及工業(yè)企業(yè)數(shù)據(jù)處理技術領域,尤其是涉及一種基于JSON和Web的自定義的報表生成系統(tǒng)及方法,是一種簡易高效的工業(yè)企業(yè)報表系統(tǒng)和生成方法



背景技術:

報表在工業(yè)企業(yè)中是一種非常重要企業(yè)管理工具。隨著計算機技術的發(fā)展,在目前的實際應用中,主要采用三種方法來生成報表。第一種是采用人工填寫Excel方式來生成報表,這種報表格式比較自由,主要以人工填寫為主,效率比較低,不具備歷史數(shù)據(jù)查閱。第二種是在各種應用系統(tǒng)中,將數(shù)據(jù)庫中數(shù)據(jù)灌入到硬編碼的表格中,生成可查看的報表,此方法的可動態(tài)查看歷史數(shù)據(jù),但不能隨意的更改報表的顯示方式。第三種是將報表的顯示抽象成模板,模板可自由構造,前臺和后臺通過模板的分析,將數(shù)據(jù)填充到前臺由模板生成的報表中。本發(fā)明提供改進第三種方法,使其成為一種效率更高的報表系統(tǒng)。



技術實現(xiàn)要素:

本發(fā)明的目的是提供一種基于JSON和Web的自定義的報表生成系統(tǒng)及方法,簡化報表模板的配制過程,提高報表模板的使用效率,適用于工業(yè)企業(yè)中處理復雜的業(yè)務數(shù)據(jù)和一種在B/S架構下使用的報表。

本發(fā)明的工業(yè)企業(yè)報表系統(tǒng)包括系統(tǒng)配置模塊,報表模板配置模塊,報表服務模塊、報表發(fā)布模塊、報表瀏覽模塊、權限管理模塊和報表查看模塊。

本發(fā)明中所有模塊全部部署在企業(yè)局域網(wǎng)的Web服務器中,客戶端通過局域網(wǎng)訪問服務器??蛻舳酥饕怯嬎銠C中安裝的瀏覽器,通過瀏覽器的地址欄,輸入局域網(wǎng)Web服務器IP地址,通過Http協(xié)議訪問系統(tǒng)。本發(fā)明還需要關系數(shù)據(jù)庫支持,關系數(shù)據(jù)庫可以安裝在Web服務器中,或者其他局域網(wǎng)的服務器中。

本發(fā)明中報表配置模塊、報表發(fā)布模塊、報表瀏覽模塊、權限管理模塊和報表查看模塊分別與報表服務模塊通過報表服務模塊提供Web API接口進行連接。其中報表查看模塊通過Ajax請求與權限管理模塊連接。報表查看模塊與報表瀏覽模板通過瀏覽器的事件觸發(fā)連接。

本發(fā)明中系統(tǒng)配置模塊,該模塊用于配置報表中需要顯示的數(shù)據(jù)。將報表中需要顯示的數(shù)據(jù)含義,以空間(稱做Node或節(jié)點)、物料(Material)、屬性(Property),進行表示,整體的含義表示為某個空間位置某種物料的相關屬性的值,簡稱NMP模型。該模型用于前臺報表配置模塊和報表服務模塊,報表配置模塊通過NMP模型,規(guī)劃報表中需要顯示的數(shù)據(jù)范圍,報表服務模塊通過NMP模型,構造數(shù)據(jù)庫查詢語句,并生成報表中需要顯示的數(shù)據(jù)。即系統(tǒng)配置模塊為報表模板模塊和報表服務模塊提供統(tǒng)一的模型語言。報表配置模塊,將報表名稱、查詢方法、功能菜單和報表中表格的列和數(shù)據(jù)范圍進行表單式的配置,最終以JSON字符串的形式提交給報表服務模塊。報表服務模塊將其以JSON的文件的形式保存操作系統(tǒng)的某個文件夾中。報表發(fā)布模塊,對報表配置模塊生成所有的模板文件,進行再組織,便于用戶導航,并以JSON格式和文件的形式進行保存。報表瀏覽模塊,將報表發(fā)布模塊的結果作為輸入,解析JSON,生成報表導航頁面,方便用戶導航到需要查看的報表。權限管理模塊,使用報表配置模塊配置的報表模板文件作為輸入,對報表的使用者進行報表權限配置,權限包括,應用權限,節(jié)點(Node),物料權限的配置,并將權限存儲在數(shù)據(jù)庫中。報表瀏覽模塊,以報表模板配置模塊和權限配置模塊的結果作為輸入,解析報表模板中的配置項,并根據(jù)查詢條件,以Ajax形式向報表服務模塊發(fā)出請求,報表服務模塊根據(jù)請求攜帶的參數(shù),查詢報表模板,然后根據(jù)報表模板配置項和NMP模型,生成SQL語句,向關系數(shù)據(jù)庫提交SQL語句,報表服務模塊將數(shù)據(jù)庫返回的結果,按照報表模板的配置格式要求生成前臺需要的數(shù)據(jù)返回,報表查看模塊根據(jù)返回的結果,利用前端框架渲染成表格,前端框架指瀏覽器端使用的顯示框架,如ExtJS、jQuery UI等。

本發(fā)明所述的系統(tǒng)配置模塊,是將報表顯示的數(shù)據(jù)通過Node(節(jié)點),Material(物料),Property(屬性)進行結構化組織,簡稱NMP模型。例如,某煉鐵廠高爐煤氣流量,其中煉鐵廠為節(jié)點,高爐煤氣位物料,流量為屬性。系統(tǒng)配置模塊提供節(jié)點,物料和屬性的配置,并對外提供讀取NMP的接口。

本發(fā)明所述的報表模板配置模塊可以配置兩類模板,一類為普通報表模板配置,一類為自由報表模板配置;

普通報表模板配置包括標題,分組,查詢條件,行類型,流過濾,按鈕,列定義,關聯(lián)資源,配置完的結果以JSON格式的文件存儲;

所述查詢條件包括開始時間,結束時間,年,月,周,樹形表格;開始時間,結束時間,年,月,周表示報表查看模塊中是否渲染這些控件,樹形表格表示報表的樣式以樹形顯示。

所述的行類型將報表頁面中的每一行抽象為節(jié)點型,介質型和流類型。節(jié)點型表示企業(yè)中某個單元的某種信息的統(tǒng)計,例如某車間月成本;介質型表示企業(yè)某種物質某種信息的統(tǒng)計,例如企業(yè)中煤的消耗;流類型表示企業(yè)中某個單元發(fā)生或者消耗某種介質某種信息的統(tǒng)計,例如一車間轉爐煤氣回收量的統(tǒng)計。

所述流過濾包括發(fā)生,消耗,凈消耗,回收,主產(chǎn),輸出,放散,外購。將企業(yè)單元與介質之間的關系抽象為流,流的種類有上述幾種。其中消耗表示單元與消耗某種介質關系,發(fā)生表示單元與產(chǎn)生某種介質的關系,凈消耗表示單元即發(fā)生又消耗某介質,其中純消耗該種介質關系,回收表示單元與從單元中回收某種本來流失的介質的關系,主產(chǎn)表示單元與產(chǎn)生主要工藝產(chǎn)品之間的關系。輸出表示該單元與轉供某種自己消耗的介質的關系。放散表示單元與放散介質之間的關系。外購表示:該單元與外購介質之間的關系,外購介質表示企業(yè)不自產(chǎn),需要從其他企業(yè)中購買的介質。

所述按鈕顯示報表外掛的處理腳本的名稱,并在報表瀏覽模塊中以按鈕形式的控件顯示。通過按鈕點擊觸發(fā)報表該名稱的腳本。

所述的列定義配置項包括,列名稱,類型,字段或函數(shù),時間格式,數(shù)據(jù)類型,數(shù)據(jù)周期,偏移量,偏移周期數(shù),產(chǎn)耗,介質名,屬性,函數(shù),只讀,主列,列寬,單位。其中列名稱表示改列的頭名稱。類型表示該列是文字列,時間列,還是數(shù)據(jù)列。字段或函數(shù),字段表示該列顯示數(shù)據(jù)的某一方面的物理意義,例如車間名稱,介質名稱等。公式表示運算表達式,以其他列的名稱作為表達式的運算項,得到的結果填到該列。時間格式表示時間列顯示的格式。數(shù)據(jù)類型表示要獲取什么類型的數(shù)據(jù),可選類型包括差值,表底值,當前值,其中差值表示某個時間范圍內儀表在結束時間的顯示值和起始時間顯示值差值;表底值表示某個時間的儀表的顯示值;當前值表示儀表當前值。數(shù)據(jù)周期表示:系統(tǒng)將差值,表底值以3600秒,86400秒,2628000秒,31536000秒作為存儲服務推進周期,將數(shù)據(jù)存儲到數(shù)據(jù)庫中,在報表查詢時需要提供查詢那種周期的數(shù)據(jù)。偏移量:表示按照某個數(shù)據(jù)周期進行時間偏移,改變該列的查詢時間。偏移周期數(shù)表示:偏移多少個周期。產(chǎn)耗與上述流過濾描述流相同。介質名:表示改列需要查詢那種介質的數(shù)據(jù),填寫介質名稱。屬性表示顯示信息的物理量,如流量,溫度,實物量等。函數(shù)表示查詢某段時間范圍內某種類型數(shù)據(jù)的處理函數(shù),如求和,求平均,最大值,最小值函數(shù)等。主列表示該列在報表中是否是主要的列,該列確定其他列是否顯示,以true或者false表示。列寬表示該列在報表瀏覽模塊中渲染的寬度。單位:表示該列數(shù)據(jù)的單位。

所述關聯(lián)資源將企業(yè)中各單元組織成節(jié)點類型樹,節(jié)點樹和介質樹,通過勾選三種樹的節(jié)點來決定報表中數(shù)據(jù)的數(shù)據(jù)源范圍。其中節(jié)點類型表示企業(yè)中抽象類型單元,如煉鐵是5#高爐車間的抽象,用于統(tǒng)計多個相似車間的數(shù)據(jù)。所以節(jié)點類型樹表示節(jié)點類型的層次化表示。節(jié)點樹表示企業(yè)中實體單元之間層次化表示。介質類型樹表示企業(yè)中各種物質的層次化表示。

本發(fā)明所述自由報表模板配置報表模板配置為先生成一個m*n的表格,然后通過配置表格中單元格的屬性來生成表格,模板最終以JSON文件格式進行存儲。

所述單元格屬性包括ID,路由,數(shù)據(jù)類型,數(shù)據(jù)周期,偏移量,偏移周期數(shù),行,列,公式,函數(shù)。其中ID,數(shù)據(jù)在系統(tǒng)中的索引。路由是數(shù)據(jù)ID變更后,根據(jù)路由更新數(shù)據(jù)ID。數(shù)據(jù)類型,數(shù)據(jù)周期,偏移量,偏移周期數(shù),函數(shù)在普通報表列配置中描述一樣。行,表示單元格所在表格的行索引。列,表示單元格在表格中列索引。公式,為加減乘除運算表達式,運算項為單元格行列索引,表示該單元格由其他單元格通過運算表達式計算得到。

本發(fā)明所述報表發(fā)布模塊包括報表模板樹,節(jié)點類型樹,節(jié)點樹,介質樹,欄目,類型,排序。其中節(jié)點類型樹,節(jié)點樹和介質樹已在普通模板關聯(lián)資源處已闡述。報表模板樹,將報表模板按照報表模板配置項中分組,組成一個樹型的結構,樹的節(jié)點名稱為分組名稱。欄目,表示報表在報表瀏覽模塊中區(qū)域名稱。類型為報表分類名稱,例如:日報,月報等。排序表示欄目的在報表瀏覽模塊中的位置,以及報表顯示在那個欄目中。

本發(fā)明所述報表瀏覽模塊包括報表類型按鈕,以及報表欄目。報表發(fā)布模塊中類型在報表模板中以按鈕的形式表示,點擊報表瀏覽中的類型按鈕,切換欄目中的報表名稱。報表欄目表示將報表瀏覽切分成m*n區(qū)域,每個欄目代表一個區(qū)域,用于表示企業(yè)不同的單元。

本發(fā)明所述的權限配置模塊,提供對報表查看的權限進行控制,權限通過對用戶是否對某個節(jié)點、某種介質、以及某個應用是否有權限。節(jié)點指用戶所在部門(空間)Node,物料指某種物質,應用指報表承載的一些菜單應用,如該報表是否具備導出Excel的功能。

所述報表查看模塊包括:時間選擇控件,查詢按鈕,導出Excel按鈕,繪圖控件觸發(fā)按鈕及其他報表處理腳本觸發(fā)的按鈕,表格。查詢按鈕表示,按查詢時間查詢報表數(shù)據(jù)處理腳本。導出Excel按鈕表示將表格中數(shù)據(jù)導入到Excel表格中。繪圖控件觸發(fā)按鈕表示點擊后會在瀏覽器上出現(xiàn)繪圖的控件,點擊報表表格中的數(shù)據(jù),會在繪圖控件上繪制點擊單元格的歷史數(shù)據(jù)趨勢。表格表示,根據(jù)普通模板的配置的列類型和自由報表模板中配置單元格形成的報表。

本發(fā)明提供的是這樣一種報表生成方法,包含下列步驟:

(1)在系統(tǒng)配置模塊,配置報表中需要查看的數(shù)據(jù)模型,即配置NMP模型。

(2)根據(jù)報表模板配置表單或者表格配置報表顯示項,完成后,將配置項以JSON文件的形式進行存儲。

(3)發(fā)布報表模板,選擇報表模板的請求參數(shù),配置報表模板在瀏覽器中位置參數(shù),將報表發(fā)布為JSON文件進行存儲。

(4)在權限配置模塊,選擇步驟(2)中配置的報表模板,對其進行權限配置,保存,將用戶的權限保存在數(shù)據(jù)庫中。

(5)報表瀏覽模塊,瀏覽器加載步驟(3)中發(fā)布JSON文件,將報表定位在瀏覽器確定的位置中。

(6)點擊在瀏覽器定位中的報表,獲取步驟(2)中配置的參數(shù),向報表服務模塊服務發(fā)起Ajax請求,報表服務模塊根據(jù)請求參數(shù),加載當前用戶權限,查看當前用戶是否有權限訪問數(shù)據(jù),如果沒有直接返回空,否則執(zhí)行步驟(7)。

(7)根據(jù)步驟(6)中Http請求,提取報表模板ID,報表服務模塊根據(jù)ID,獲取報表模板的JSON文件,并將JSON文件返回給瀏覽器,瀏覽器將JSON文件轉換成JavaScript對象,報表查看模塊根據(jù)JavaScript對象,生成報表樣式,該樣式包括查詢條件控件,查詢按鈕以及導出Excel按鈕,繪圖控件發(fā)起按鈕及報表表格。報表樣式生成完畢后提取查詢條件控件中當前時間,JavaScript對象中節(jié)點ID,節(jié)點類型ID,介質ID和報表模板ID,把這些提取的值作為參數(shù),向報表服務模塊再次發(fā)起Ajax請求,并執(zhí)行步驟(8)。

(8)根據(jù)步驟(7)中Http請求,提取報表模板ID,報表服務模塊利用報表模板ID,查詢報表模板配置JSON文件,將JSON文件轉換成.NET對象,然后提取請求參數(shù)中節(jié)點ID,節(jié)點ID,介質ID及時間參數(shù),生成NMP模型,根據(jù)NMP模型生成SQL語句,提交數(shù)據(jù)庫進行查詢,并將查詢的結果返回給報表服務模塊,報表服務模塊根據(jù)報表模板對象,生成表格對象,返回給報表查看模塊,報表查看模塊根據(jù)前端框架,翻譯成html,給用戶瀏覽。

本發(fā)明的優(yōu)點:

1、本發(fā)明中的報表模板配置過程簡單,不具備開發(fā)能力業(yè)務人員也會配置,且效率高,且真正做到了報表零開發(fā)。

2、本發(fā)明中報表發(fā)布可解決報表模板的重復使用,只需修改節(jié)點,節(jié)點類型和節(jié)點參數(shù),即可做到不用修改報表模板的就可以使用,提高了報表模板使用效率。

3、本發(fā)明中報表模板采用JSON作為模板的文件格式,統(tǒng)一了前后臺不同計算機語言之間對模板操作,并為基于Web的企業(yè)報表提供一種實現(xiàn)方法。

4、本發(fā)明中提供了報表瀏覽模式,使用區(qū)塊平鋪的模式,簡化了尋找報表的過程,便捷業(yè)務人員對報表的定位。

5、本發(fā)明提供了報表數(shù)據(jù)趨勢查看一種新的交互模式,即通過點擊報表單元格,查詢該單元格數(shù)據(jù)的歷史趨勢曲線的功能。

附圖說明

圖1為本發(fā)明系統(tǒng)結構圖。

圖2為本發(fā)明報表查看程序結構圖。

具體實施方式

本發(fā)明的工業(yè)企業(yè)報表系統(tǒng)包括系統(tǒng)配置模塊,報表模板配置模塊,報表服務模塊、報表發(fā)布模塊、報表瀏覽模塊、權限管理模塊和報表查看模塊。

本發(fā)明中所有模塊全部部署在企業(yè)局域網(wǎng)的Web服務器中,客戶端通過局域網(wǎng)訪問服務器??蛻舳酥饕怯嬎銠C中安裝的瀏覽器,通過瀏覽器的地址欄,輸入局域網(wǎng)Web服務器IP地址,通過Http協(xié)議訪問系統(tǒng)。本發(fā)明還需要關系數(shù)據(jù)庫支持,關系數(shù)據(jù)庫可以安裝在Web服務器中,或者其他局域網(wǎng)的服務器中。

本發(fā)明中報表配置模塊、報表發(fā)布模塊、報表瀏覽模塊、權限管理模塊和報表查看模塊分別與報表服務模塊通過報表服務模塊提供Web API接口進行連接。其中報表查看模塊通過Ajax請求與權限管理模塊連接。報表查看模塊與報表瀏覽模板通過瀏覽器的事件觸發(fā)連接。

下面通過具體實施例對本發(fā)明做進一步說明。

以國內某鋼鐵企業(yè)煉鐵廠能源報表和工序能耗報表的實現(xiàn)過程作為本發(fā)明的實施例。

實施例1:煉鐵廠能源報表

(1)打開普通報表配置表單,填寫報表名稱為煉鐵廠能源報表,填寫分組名稱為煉鐵廠,勾選開始時間作為查詢條件,時間周期選擇天,行類型上選擇匯總流(表示煉鐵廠每種能源介質發(fā)生消耗的匯總),流過濾選擇發(fā)生和消耗,按鈕不選擇表示默認(導出Excel和繪圖)。在列定義通過列模板選擇車間,在列名中填寫車間;在類型中選擇Field,在字段或公式中填寫Node.Name;其他不用填寫。然后在列模板中選擇介質,在列明中填寫介質,在類型選擇中選擇Field,在字段或公式中填寫MaterialType.Name,其他不用填寫。在列模板中選擇產(chǎn)耗,然后在列名中填寫產(chǎn)耗,然后在類型中選擇Field,在字段或公式中填寫FlowType,其他不用填寫或選擇。然后在列模板中選擇采集值,在列名中填寫采集值,在類型中填寫Value,在數(shù)據(jù)周期中選擇天,在產(chǎn)耗中選擇凈消耗,在屬性名填寫實物量(實物量表示累計流量)。在只讀中選擇true,列寬填寫80。在主列中填寫80。在單位列中填寫單位。確認值除了列名不相同,其他配置相同。小時平均值和采集值除了列名,函數(shù)需要選擇平均值,其他相同。月累計與采集值除了列名,函數(shù)需要選擇求和。在關聯(lián)資源的介質勾選高爐煤氣。然后保存。

(2)在報表發(fā)布模塊,報表模板樹中找到該模板,在節(jié)點樹煉鐵廠,在欄目中選擇煉鐵,在類型選擇日報,點擊確定后,該報表就存入到報表發(fā)布的JSON文件中。

(3)打開瀏覽器選擇報表瀏覽模塊,點擊日報,選擇煉鐵區(qū)域。

(4)雙擊報表瀏覽模塊中,煉鐵欄目,點擊宏發(fā)煉鐵廠,宏發(fā)煉鐵日報。并可點擊繪圖按鈕,在報表的下方出現(xiàn)圖形繪制控件,點擊表格中的單元格在繪圖控件中顯示該單元格的數(shù)據(jù)的歷史趨勢。

實施例2:工序能耗報表

(1)打開自由報表模板,生成一個21*9的表格。右鍵表格單元格,出現(xiàn)菜單,復制,粘貼,設置,刪除和添加其他數(shù)據(jù)。復制可以復制該單元格數(shù)據(jù)到其他單元格,粘貼用來粘貼其他報表單元格中的數(shù)據(jù),設置用來配置該單元格的屬性,可以配置該單元格偏移量,偏移周期數(shù),單位,函數(shù)等屬性。依次配置完該表格上所有的單元格后保存。

(2)打開報表發(fā)布,在報表模板樹中選擇工序能耗報表,在節(jié)點樹中選擇焦化,在欄目中選擇焦化,在類型中選擇工序能耗,點擊確定,工序能耗發(fā)布到發(fā)布文件中。

(3)打開報表瀏覽模塊,點擊工序能耗,在焦化廠欄目中選擇工序能耗,點擊即可查看焦化廠的當月的工序能耗報表。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
买车| 栾川县| 德兴市| 明星| 盐源县| 葵青区| 德清县| 陈巴尔虎旗| 洪泽县| 巴彦淖尔市| 平远县| 鄂州市| 克拉玛依市| 伊春市| 侯马市| 巴塘县| 伊金霍洛旗| 清水河县| 义马市| 老河口市| 宿松县| 桂阳县| 杂多县| 平阴县| 霸州市| 沽源县| 商洛市| 宁阳县| 宜春市| 晋州市| 台前县| 耿马| 游戏| 招远市| 揭西县| 霍州市| 大丰市| 德令哈市| 宝鸡市| 阿拉善盟| 昌乐县|