所謂的佔比運算,就是拿每一行的數值除以所有行的合計值,因此,我們要先把合計值算出來。
二、設計過程
demo_訂單資訊表:select demo_orders.訂購日期,demo_orders.貨主地區,demo_orders.貨主城市,demo_orders.貨主名稱,demo_orderdetails.單價,demo_orderdetails.數量 from demo_orders,demo_orderdetails where demo_orders.訂單id=demo_orderdetails.訂單id and demo_orders.訂購日期 is not null
(1)a2單元格表示式:=demo_訂單資訊表.group(貨主地區,false)
(2)b2單元格表示式:=demo_訂單資訊表.count()
(3)d2單元格表示式:=demo_訂單資訊表.sum(數量*單價),顯示格式:¥#,##0.00,縮排:5
(4)b3單元格表示式:=sum(b2{})
(5)d3單元格表示式:=sum(d2{}),顯示格式:¥#,##0.00,縮排:5,算出合計值
可以看到合計值出來了:
此時我們再加上佔比的表示式:
(6)c2單元格表示式:=b2/b3,顯示格式:#0.00%,縮排:5
(7)e2單元格表示式:=d2/d3,顯示格式:#0.00%,縮排:5
此報表儲存為「佔比報表」,預覽。
這是乙個比較簡單的行間運算例子,該例子要求報表引擎在解析報表時,能夠先解析表示式,判斷出b2格和d2格的佔比表示式用到了b3格和d3格,從而先計算b3格和d3格,然後再計算c2格和e2格。
對於很多引用第三方表示式解析器(如beanshell)的報表工具來說,就無法智慧型的判斷運算優先順序了。因此,對於那類報表工具來說,看起來很簡單的佔比報表,實現起來卻很麻煩。
集深資料系統V5 動態改變列
問題背景 通過選擇不同的引數來改變報表中的列資料.例如選擇1,則報表中的列就為地區列 選擇2,則報表中的列就為城市列,以此類推.解決途徑 使用集深系統平台中內建的case 函式實現動態切換列.步驟如下 1.建立一張普通報表 2 設定引數 3.改變單元格表示式 4.設定通用查詢的編輯風格 預覽效果 選...
V5填報表只更新修改資料
潤幹v5填報儲存時是根據指令碼中的新舊物件進行判斷,然後通過update函式進行更新,目前是對裡邊的所有資料進行操作,也就是後所頁面中展現10條記錄,如果只修改一行的話,那麼儲存時10條就都會進行更新,一方面效率有些差,另外,有可能資料表中會有一些最後修改人等字段,只要求對該條資料修改的字段進行更新...
潤幹V5中設計的報表如何在V4中展現
潤幹v5與潤幹v4設計器功能大致相同,都能夠通過簡單的操作展現需要展現的資料,然而由於潤幹v4基於c s架構,而潤幹v5是基於b s架構的,要讓兩個版本所設計的潤幹報表能夠相容,相互相容使用,就需要我們對v4做一些必要的處理。首先需要做的準備工作是乙個潤幹v5最新的應用包,在應用包的資料管理選單子項...