check_winpaper_column(string mcolname,long row)
此為單據窗w_top_bottom_paper 專用函數
參數: mcolname一般為單據的單號欄位,row為保留欄位,尚未用到.
用途: 新單據存檔時,找出表頭區的單據mcolname欄位值,再到dw_tab1,dw_tab21,dw_sub1-dw_sub6,找出如果有相同mcolname欄位時,以表頭區的相同欄位名稱的值成批置換之.如果不是單號主鍵,此函數不會執行.執行完後,單據窗的視窗抬頭會改成新單號.
說明: 新增單據的表頭區的單號可能在存檔前被其他人搶單存檔,造成表頭區的單號必須重新找過,可選擇讓系統自動重新賦予新單號或自行撰寫函數取新單號,系統自動取單號也會自動執行check_winpaper_column,如果是自行寫函數取單號,就必須在該函數後段執行此函數,以讓表頭區與其他明細資料區的單號一致.會選擇人工寫函數的原因,是單號的編法為雙欄位以上的判斷式,系統只支援單欄位的單號判斷.
下面為自行寫存檔函數的部分片段,碰到新稱單據的時候會被執行到
單號欄位為tranno,但取新單號函數s_get_noctrl_new(string,string)為雙欄位,當取出的新單號ls_testtranno<>原表頭區單號mtranno時,表頭區單號就換新單號,且呼叫check_winpaper_column以連帶統一其他資料視區的單號值.
....
if record_status=new! or record_status=NewModified! then
ls_testtranno=s_get_noctrl_new("LA",mtrantype)
if ls_testtranno<>mtranno then
w_paper.dw_up.setitem(1,"tranno",ls_testtranno)
w_paper.check_winpaper_column("tranno",1)
mtranno=ls_testtranno
end if
end if
.....
何謂單號? 單號就是單據的編號,一般的單據在上方都會編有唯一的號碼,以便查單用.例如發票單據的單號就是發票號碼.