pb编辑窗口控制下拉框中的内容自动筛选并必须选择正确和字段类型正确

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

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值