實現報表與演算法的統一管理
在報表專案中,常常有些複雜的資料計算是一個報表專門使用的,其它報表用不到。通常,此類計算可以在報表資料來源中用 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
- 資料庫系統-設計、實現與管理(一)資料庫
- 高併發系統的限流演算法與實現演算法
- 分欄報表-物品清單報表實現
- 報價系統概念與技術實現
- OWA管理之一HTTPS實現OWA表單HTTP
- 如何實現報表的批次列印需求
- 報表合計需求的實現方法
- 潤乾報表中進度條的一種實現方式
- 如何在 web 端實現一個有日曆的報表Web
- 分散式系統限流演算法分析與實現分散式演算法
- 如何實現報表的點選表頭排序需求排序
- 輕鬆實現報表整合
- 就業資訊管理系統設計與實現就業
- .NET 8.0 酒店管理系統設計與實現
- 用.Net報表控制元件,實現20萬門店的資料管理控制元件
- 報表展現時如何實現固定表頭效果
- 基於zookeeper實現統一配置管理
- 表管理之三:表與表結構的管理
- 一個hash表的實現
- 填報表實現隔行異色的效果
- 多系統管理混亂?SAP系統整合其他系統實現統一管理
- 資料結構和演算法(一)線性表實現資料結構演算法
- 如何實現報表直接列印需求
- 在VB6.0中實現動態統計報表 (轉)
- sift演算法的編譯與實現演算法編譯
- Ruby Ruport實踐—報表引數實現
- 資料結構與演算法——雜湊表類的C++實現(探測雜湊表)資料結構演算法C++
- 資料結構實驗一:順序表的建立與操作實現、順序表實現約瑟夫環問題資料結構
- C語言-超市倉庫管理系統的設計與實現C語言
- 能實現專案管理與BUG跟蹤系統功能的Redmine專案管理
- 某資產管理公司部署貸前徵信調查報表系統實錄
- java中實現報表樣式的問題Java
- 純JavaScript實現一個帶cookie的學生管理系統JavaScriptCookie
- 快捷簡易統計圖表模型設計與實現模型
- 怎樣實現動態列報表,也就是列數不固定的報表?
- KNN演算法推理與實現KNN演算法