這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)BIRT中組內(nèi)跨行計算和小計怎樣做,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
我們提供的服務(wù)有:成都做網(wǎng)站、成都網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、泉港ssl等。為上千企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的泉港網(wǎng)站制作公司
BIRT提供了簡單的計算列功能,可以在原始數(shù)據(jù)基礎(chǔ)上再計算出一些別的列值或統(tǒng)計值(規(guī)律性較強(qiáng)的表達(dá)式)。但由于模型采用控件拖拽式布局(一般用列名命名設(shè)計階段的數(shù)據(jù)單元),沒有很好的運(yùn)算后報表數(shù)據(jù)項(xiàng)命名機(jī)制,很難精確描述數(shù)據(jù)之間的引用關(guān)系,導(dǎo)致隨意的獨(dú)立格運(yùn)算非常困難。
比如要處理這么個場景:為了讓例子盡可能簡單,假設(shè)有3列數(shù)據(jù),按id分組,數(shù)據(jù)格式如下:
期望展現(xiàn)的報表結(jié)果如下圖所示:
計算規(guī)則:
1、newcolumn=上一行v1 + V1 + 上一行v2 + v2 (上一行無數(shù)據(jù)則為0)
2、每組都有小計來匯總newcolumn
3、最后還需要總計
常見的解決辦法就是寫自定義數(shù)據(jù)集(復(fù)雜SQL或scripted data sources),把數(shù)據(jù)事先計算好后再塞入到報表格子中。但自定義數(shù)據(jù)集方式,代碼非常麻煩,工作量大。
如果使用集算器則會簡單很多,其豐富的集合運(yùn)算可以方便地完成這類計算,比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)) |
最后將計算結(jié)果返回給BIRT直接進(jìn)行報表展現(xiàn)即可。
上述就是小編為大家分享的BIRT中組內(nèi)跨行計算和小計怎樣做了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
新聞名稱:BIRT中組內(nèi)跨行計算和小計怎樣做
文章路徑:http://jinyejixie.com/article28/psicjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、品牌網(wǎng)站設(shè)計、定制網(wǎng)站、網(wǎng)頁設(shè)計公司、外貿(mào)網(wǎng)站建設(shè)、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)