實現報表與演算法的統一管理
在報表專案中,常常有些複雜的資料計算是一個報表專門使用的,其它報表用不到。通常,此類計算可以在報表資料來源中用 SQL 實現,不過由於 SQL 無法分步計算,需要寫非常複雜難懂的長語句,不利於除錯和維護,因此也會使用 Java 或者儲存過程來實現。但這樣一來,計算程式又會和報表模板分開,不利於組織管理。
使用潤乾報表的指令碼資料集(結合集算器實現)來實現報表專用計算,是解決上述困境的一個有效手段,一方面既可以寫出簡單易懂的分步計算指令碼,另一方面又可以將指令碼和報表模板一起存放,利於管理。
這兩種方式的系統結構對比如下圖所示:
下面透過一個具體的報表例子來看一下潤乾報表指令碼資料集的用法。
下表是一個《年度客戶銷售分析報表》,要求可以選擇年份作為輸入引數:
其中,CLIENT 是客戶,TOTAL 是客戶銷售總額,DATE1 是客戶最後一次銷售日期,AMOUNT1 是客戶最後一次銷售金額,DATE2 是客戶倒數第二次銷售日期,AMOUNT2 是客戶倒數第二次銷售日期。
1、定義報表引數
在潤乾報表中新建報表模板後,要定義報表引數:
2、配置指令碼資料集
定義一個指令碼資料集如下:
指令碼資料集編寫如下:
A | B | |
---|---|---|
1 | =create(client,total,date1,amount1,date2,amount2) |
|
2 | =demo.query(“select * from sales where year(ORDERDATE)=”+year) |
|
3 | =A2.group(CLIENT) |
|
4 | for A3 |
|
5 |
|
>client=A4.m(1).CLIENT |
6 |
|
>total=A4.sum(AMOUNT) |
7 |
|
=A4.sort(ORDERDATE:-1) |
8 |
|
>date1=B6.m(1).ORDERDATE |
9 |
|
>amount1=B6.m(1).AMOUNT |
10 |
|
>date2=B6.m(2).ORDERDATE |
11 |
|
>amount2=B6.m(2).AMOUNT |
12 | result A1 |
|
程式碼說明:
A1:新建一個空序表,準備存放結果資料。
A2:使用報表的資料來源 demo 用簡單的 sql 取出銷售資料,year 是報表的引數。
A3:對銷售資料按照 CLIENT 分組。
A4:開始對分組資料迴圈處理。
B4:-B11:求結果資料,插入 A1 中,這裡不再詳細介紹。
A12:將結果資料 A1 返回給報表。
3、報表設計
回到報表設計器主介面,報表設計如下圖:
儲存為 salary.rpx 即可。可以看到報表設計、計算指令碼編寫都在同一個 rpx 檔案中,管理變得簡單。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69957599/viewspace-2669201/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 效能最佳化之報表與演算法的統一管理演算法
- Flutter 統一彈窗管理的思考與實現Flutter
- 高併發系統的限流演算法與實現演算法
- 分散式系統限流演算法分析與實現分散式演算法
- 報價系統概念與技術實現
- .NET 8.0 酒店管理系統設計與實現
- 基於zookeeper實現統一配置管理
- 報表合計需求的實現方法
- 如何實現報表的批次列印需求
- 如何在 web 端實現一個有日曆的報表Web
- 潤乾報表中進度條的一種實現方式
- 如何實現報表的點選表頭排序需求排序
- 用.Net報表控制元件,實現20萬門店的資料管理控制元件
- 多系統管理混亂?SAP系統整合其他系統實現統一管理
- 資料結構和演算法(一)線性表實現資料結構演算法
- 就業資訊管理系統設計與實現就業
- 報表展現時如何實現固定表頭效果
- 輕鬆實現報表整合
- C語言-超市倉庫管理系統的設計與實現C語言
- 填報表實現隔行異色的效果
- 純JavaScript實現一個帶cookie的學生管理系統JavaScriptCookie
- 快捷簡易統計圖表模型設計與實現模型
- RSA演算法與Python實現演算法Python
- KNN演算法推理與實現KNN演算法
- 一種經典的客戶關係管理系統(CRM)訂單模型的設計與實現模型
- 資料結構實驗一:順序表的建立與操作實現、順序表實現約瑟夫環問題資料結構
- 海外報告|Metaverse的現狀與管理挑戰Metaverse
- 線性表及其演算法(java實現)演算法Java
- 基於java的企業車輛管理系統的設計與實現Java
- 並查集的概念與演算法實現並查集演算法
- 決策樹演算法的推理與實現演算法
- 基於SSH培訓機構管理系統的設計與實現
- 如何實現報表直接列印需求
- python實現報表用什麼?Python
- php演算法實現(一)PHP演算法
- 跟我一起學習和開發動態表單系統-動態表單系統的技術實現與優勢(2)
- 怎樣實現動態列報表,也就是列數不固定的報表?
- Kafka與ELK實現一個日誌系統Kafka