您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關BIRT中組內跨行計算和小計怎樣做,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
BIRT提供了簡單的計算列功能,可以在原始數據基礎上再計算出一些別的列值或統計值(規律性較強的表達式)。但由于模型采用控件拖拽式布局(一般用列名命名設計階段的數據單元),沒有很好的運算后報表數據項命名機制,很難精確描述數據之間的引用關系,導致隨意的獨立格運算非常困難。
比如要處理這么個場景:為了讓例子盡可能簡單,假設有3列數據,按id分組,數據格式如下:
期望展現的報表結果如下圖所示:
計算規則:
1、newcolumn=上一行v1 + V1 + 上一行v2 + v2 (上一行無數據則為0)
2、每組都有小計來匯總newcolumn
3、最后還需要總計
常見的解決辦法就是寫自定義數據集(復雜SQL或scripted data sources),把數據事先計算好后再塞入到報表格子中。但自定義數據集方式,代碼非常麻煩,工作量大。
如果使用集算器則會簡單很多,其豐富的集合運算可以方便地完成這類計算,比scripted data sources代碼要短,比SQL寫起來更簡單,比如類似的計算在集算器里可以這樣寫:
A | B | |
1 | =myDB.query@x("select *,0 as newcolumn from sample") | =create(id,v1,v2,newcolumn) |
2 | >A1.group(id).run(~.run(v1+v2+v1[-1]+v2[-1]:newcolumn)) | |
3 | for A1.group(id) | >B1.insert(0:A3,id,v1,v2,newcolumn) |
4 | >B1.insert(0,"","",A3.id+"SUBTOTAL:",A3.sum(newcolumn)) | |
5 | >B1.insert(0,"","","TOTAL:",A1.sum(newcolumn)) |
最后將計算結果返回給BIRT直接進行報表展現即可。
上述就是小編為大家分享的BIRT中組內跨行計算和小計怎樣做了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。