下面以實際的例子來描述如何實現彙總計算,效果圖如下:
背景說明:
頭塊中的total欄位(headers.amount_total)彙總行上面amount(lines.amount)
行中的amount是unit price(lines.unit_price)和quantity(lines.quantity)的乘積
unit price和quantity的任何更改會導致amount發生改變,最終影響total值
實現步驟:
1,建立合計顯示字段,即headers.amount_total,設定其子類屬性為:text_item_display_only
2,在合計顯示的資料塊中,建立合計專案的彙總臨時專案,命名規則為:《合計專案名稱》_rtot_db,number(38)/display_item,即amount_rtot_db/number(38)/display_item
3,在明細塊中建立兩個統計使用的item,乙個《被統計項》_rtot_old,另乙個《被統計項》_rtot_db,型別 char(61) display_item,即amount_rtot_old/char(61)/display_item 和 amount_rtot_db/char(61)/display_item
? [copy to clipboard]
view code plsql
1234
procedure running_total (event varchar2) isbegin ?
[copy to clipboard]
view code plsql 1
2345
6789
1011
1213
1415
procedure unit_price (event varchar2) is6,建立amount的handler**begin
if event = 'when-validate-item' then
lines.amount('init');
lines.running_total('when-validate-item');
endif;
end unit_price;
procedure quantity (event varchar2) is
begin
if event = 'when-validate-item' then
lines.amount('init');
lines.running_total('when-validate-item');
endif;
end quantity;
? [copy to clipboard]
view code plsql
123456
procedure amount (event varchar2) is7,在彙總顯示專案所在塊中的post-query觸發器中從資料庫中計算出明細的初始彙總值begin
if event = 'init' then
copy(name_in('lines.unit_price') * name_in('lines.quantity'),'lines.amount');
endif;
end amount;
?[copy to clipboard]
view code plsql
1234567
procedure post_query is8,在明細塊的以下觸發器中新增相應的**begin
select
nvl(sum(unit_price*quantity),0)
into :headers.amount_total
from xhu_order_lines
where header_id = :headers.header_id ;
end post_query;
?[copy to clipboard]
view code plsql
123**4567
891011
1213
1415
1617
我自己的做法:
行塊增加乙個total項,項的計算模式設定為「概要」,彙總函式選擇「和」
假如是統計行數-計數
行塊屬性:預計算彙總設定為「是」。
頭塊的total項copy行塊total值。
行塊block屬性查詢所有記錄:是
實現主從關係Form中彙總行金額 數量
背景說明 頭塊中的total欄位 headers.amount total 彙總行上面amount lines.amount 行中的amount是unit price lines.unit price 和quantity lines.quantity 的乘積 unit price和quantity的...
kbmMW 實現主從關係表的方法
環境 delphi xe10.2.2 kbmmw5.02 unidac7.02 fb3.0 在日常應用中,我們經常會用到主 從 master detail 關係表,如客戶與訂單 角色與許可權等。在 kbmmw 中實現mater detail 關係表的方法有兩種,各有優缺點。下面是我實現這兩個方法的過...
Jedis如何確認主從關係
在不配置哨兵的情況下,jedis無需確認主從關係。redis的主從複製讀寫分離那都是內部處理的,對外的使用做到呼叫方無感知。所以無論是用命令列去操作redis,還是利用jedis操作redis,都不需要呼叫方去判斷當前連線是主是從。哪怕我在從伺服器進行set操作,redis也會自動跳轉到主伺服器操作...