pb編輯視窗控制下拉框中的內容自動篩選並必須選擇正確和欄位型別正確
阿新 • • 發佈:2018-12-16
dw 的 editchanged事件:
ib_changed = true cb_update.enabled = true datawindowchild ldwc_dddw datawindowchild ldwc_dddw1 CHOOSE CASE dwo.name CASE 'company_name' This.GetChild(dwo.Name,ldwc_dddw) if len(data)>1 then ldwc_dddw.setfilter("( Upper(company_no) like '%"+Upper(Data)+"%' ) OR ( Upper(py_code) like '%"+Upper(Data)+"%' )") // ldwc_dddw.setfilter("Upper(stock_no) like '%"+Upper(Data)+"%'") ldwc_dddw.filter( ) else ldwc_dddw.setfilter('') ldwc_dddw.filter( ) end if CASE 'account' int i i = This.GetChild(dwo.Name,ldwc_dddw1) if i = -1 then return ldwc_dddw1.setTransObject(sqlca) ldwc_dddw1.retrieve() inv_dddwsrv.of_filter(ldwc_dddw1,"account_no",Upper(Data),false) CASE 'entrust_bank' This.GetChild(dwo.Name,ldwc_dddw) if len(data)>1 then ldwc_dddw.setfilter("( Upper(py_code) like '%"+Upper(Data)+"%' )") ldwc_dddw.filter( ) else ldwc_dddw.setfilter('') ldwc_dddw.filter( ) end if END CHOOSE
dw的itemchanged事件:
ib_changed = true cb_update.enabled = true //IF dwo.name <>'contract_no' THEN return IF row < 1 THEN return int li_Count dwitemstatus ldws STRING ls_bm,ls_bm1,ls_bm2,ls_bm3,ls_bm4 STRING ls_ry CHOOSE CASE dwo.name CASE 'contract_no' ldws = this.getitemstatus(row,0,primary!) IF ldws = new! OR ldws = newmodified! THEN SELECT count(*) into :li_Count from contract_info where contract_no= :data; IF li_Count > 0 THEN messagebox('警告','此合同已經存在.') return 1 END IF END IF CASE 'company_name' IF Len(Data) > 0 THEN int count SELECT count(*) INTO :count FROM custom_info WHERE company_no=:data ; if count<=0 then // messagebox('提示','輸入的合同號不存在!') return 1 end if end if //THIS.AcceptText() //ls_ry = THIS.GetItemString(row,'product_no') SELECT company_short, company_address,capital,legal_person, company_name INTO :ls_bm, :ls_bm1, :ls_bm2, :ls_bm3, :ls_bm4 FROM custom_info WHERE company_no= :data ; IF ls_bm <> '' AND IsNull(ls_bm) = FALSE THEN THIS.SetItem(row,'company_short',ls_bm) END IF IF ls_bm1 <> '' AND IsNull(ls_bm1) = FALSE THEN THIS.SetItem(row,'address',ls_bm1) END IF IF ls_bm2 <> '' AND IsNull(ls_bm2) = FALSE THEN THIS.SetItem(row,'capital',ls_bm2) END IF IF ls_bm3 <> '' AND IsNull(ls_bm3) = FALSE THEN THIS.SetItem(row,'legal_person',ls_bm3) END IF IF ls_bm4 <> '' AND IsNull(ls_bm4) = FALSE THEN THIS.SetItem(row,'company_bz',ls_bm4) END IF CASE 'product_no' THIS.AcceptText() //ls_ry = THIS.GetItemString(row,'product_no') SELECT product_name INTO :ls_bm FROM product_info WHERE product_no = :data ; IF ls_bm <> '' AND IsNull(ls_bm) = FALSE THEN THIS.SetItem(row,'product_name',ls_bm) END IF
dw的itemerr事件:
CHOOSE CASE dwo.name CASE "tel" MessageBox("提示","請輸入數值型別資料!") this.setfocus() Return 1 CASE "contract_no","isnotrenewal" MessageBox("提示","請輸入正確合同號!") Return 1 CASE "company_name" MessageBox("提示","請輸入正確公司代號!") Return 1 // CASE "account" // // MessageBox("提示","請輸入正確帳號!") // // Return 1 END CHOOSE
控制視窗欄位類型錄入正確
dw的itemerr事件:
string ls_column_name,ls_null
dec ldc_null
date ld_null
time lt_null
ls_column_name = dwo.name
SetNull(ls_null)
SetNull(ldc_null)
SetNull(ld_null)
SetNull(lt_null)
CHOOSE CASE Lower(dwo.ColType)
CASE "date","datetime"
IF Not IsDate(data) THEN
MessageBox("提示","請輸入日期型別資料!")
this.SetItem(row,ls_column_name,ld_null)
Return 1
END IF
CASE "decimal","number","long"
IF Not IsNumber(data) THEN
MessageBox("提示","請輸入數值型別資料!")
this.SetItem(row,ls_column_name,ldc_null)
Return 1
END IF
CASE "time"
IF Not IsTime(data) THEN
MessageBox("提示","請輸入時間型別資料!")
this.SetItem(row,ls_column_name,lt_null)
Return 1
END IF
END CHOOSE