$PBExportHeader$w_mtrl_configure_pzmx_ch.srw forward global type w_mtrl_configure_pzmx_ch from w_publ_choice end type end forward global type w_mtrl_configure_pzmx_ch from w_publ_choice integer width = 1810 integer height = 1700 string title = "产品选配类型-配置选择" event ue_allowedit ( ) end type global w_mtrl_configure_pzmx_ch w_mtrl_configure_pzmx_ch type variables long cur_typeid = 0 s_pzwin_open s_mt String rst_str boolean edit_mode = true s_mtrl_configure_array s_config end variables forward prototypes public subroutine wf_slpit (string arg_col_value) public subroutine wf_slpit_arr (s_mtrl_configure_array arg_configure_arr) end prototypes event ue_allowedit();IF dw_ch.GetRow( ) <= 0 THEN dw_ch.Modify("namemx.dddw.allowedit = no") RETURN END IF IF dw_ch.Object.inputtype[dw_ch.GetRow()] = 0 THEN dw_ch.Modify("namemx.dddw.allowedit = no") messagebox("",2) ELSE dw_ch.Modify("namemx.dddw.allowedit = yes") messagebox("",1) END IF end event public subroutine wf_slpit (string arg_col_value);Long i,j,k Long ll_start String ls_namemx[], ls_pzmx Long ll_pzid IF Trim(arg_col_value) = "" THEN RETURN IF dw_ch.RowCount() <= 0 THEN RETURN IF Pos(arg_col_value, "|") = 0 AND dw_ch.RowCount() > 0 THEN dw_ch.Object.namemx[1] = arg_col_value RETURN END IF IF Right(arg_col_value,1) <> "|" THEN arg_col_value += "|" END IF i = 0 ll_start = Pos(arg_col_value, "|") DO WHILE ll_start > 0 AND arg_col_value <> "|" i++ ls_namemx[i] = Left(arg_col_value, ll_start - 1) arg_col_value = Mid(arg_col_value, ll_start + 1) ll_start = Pos(arg_col_value, "|") LOOP FOR i = 1 TO dw_ch.RowCount() ll_pzid = dw_ch.Object.pzid[i] IF UpperBound(ls_namemx) < i THEN EXIT dw_ch.Object.namemx[i] = ls_namemx[i] NEXT RETURN //dw_1.Retrieve(ll_pzid) //for j = 1 to dw_1.rowcount( ) // if ls_pzmx = dw_1.object.namemx[j] then // // end if //next end subroutine public subroutine wf_slpit_arr (s_mtrl_configure_array arg_configure_arr);Long i,j,k Long ll_start String ls_namemx[], ls_pzmx Long ll_pzid IF dw_ch.RowCount() <= 0 THEN RETURN IF UpperBound(arg_configure_arr.pzid) <= 0 THEN RETURN FOR i = 1 TO dw_ch.RowCount() ll_pzid = dw_ch.Object.pzid[i] FOR j = 1 TO UpperBound(arg_configure_arr.pzid) IF arg_configure_arr.pzid[j] = ll_pzid THEN dw_ch.Object.namemx[i] = arg_configure_arr.pznamemx[j] EXIT END IF NEXT NEXT RETURN end subroutine on w_mtrl_configure_pzmx_ch.create call super::create end on on w_mtrl_configure_pzmx_ch.destroy call super::destroy end on event open;if_ue_sort = TRUE wf_movetocenter() dw_CH.SetTransObject (sqlca) s_mt = Message.PowerObjectParm cur_typeid = s_mt.arg_mtrlid cb_retrieve.TriggerEvent(Clicked!) IF UpperBound(s_mt.arg_configure_arr.pzid) > 0 THEN //IF NOT IsNull(s_mt.arg_configure_arr) THEN wf_slpit_arr(s_mt.arg_configure_arr) ELSEIF NOT IsNull(s_mt.arg_col_value) THEN wf_slpit(s_mt.arg_col_value) END IF IF NOT IsNull(s_mt.arg_editmode) THEN edit_mode = s_mt.arg_editmode END IF IF NOT edit_mode THEN cb_choice.Enabled = FALSE END IF end event event close;call super::close;//CLOSEWITHRETURN(THIS,rst_str) CloseWithReturn(THIS,s_config) end event event dw_filter;call super::dw_filter;string obj_expr='' if trim(sle_ch.text)<>'' then IF POS(trim(sle_ch.text),'%')=0 THEN obj_expr=obj_expr+'( namemx LIKE "%'+trim(sle_ch.text)+'%" )' ELSE obj_expr=obj_expr+'(namemx LIKE "'+trim(sle_ch.text)+'" )' END IF end if // //if trim(sle_name.text)<>'' then // if obj_expr<>'' then obj_expr=obj_expr+ ' and ' // IF POS(trim(sle_ch.text),'%')=0 THEN // obj_expr=obj_expr+' ( pzcodemx LIKE "%'+trim(sle_name.text)+'%" )' // ELSE // obj_expr=obj_expr+'( pzcodemx LIKE "'+trim(sle_name.text)+'" )' // END IF //end if // dw_ch.setfilter(obj_expr) dw_ch.SetRedraw(False) dw_ch.filter() if dw_ch.rowcount()>=1 then dw_ch.selectrow(0,false) dw_ch.selectrow(1,true) dw_ch.setrow( 1) end if dw_ch.SetRedraw(TRUE) end event type cb_func from w_publ_choice`cb_func within w_mtrl_configure_pzmx_ch end type type cb_exit from w_publ_choice`cb_exit within w_mtrl_configure_pzmx_ch end type type sle_ch from w_publ_choice`sle_ch within w_mtrl_configure_pzmx_ch boolean visible = false integer x = 325 end type type dw_ch from w_publ_choice`dw_ch within w_mtrl_configure_pzmx_ch event ue_dwndropdown pbm_dwndropdown integer y = 180 integer width = 1783 integer height = 1432 string dataobject = "dw_configure_pz_ch" end type event dw_ch::ue_dwndropdown;IF NOT edit_mode THEN RETURN Long row row = THIS.GetRow() IF row <= 0 OR IsNull(row) THEN RETURN THIS.AcceptText( ) Long ll_pzid String rslt_pz s_pzwin_open arg_s_open arg_s_open.arg_x = THIS.X + THIS.PointerX() + PARENT.X arg_s_open.arg_y = THIS.Y + THIS.PointerY() + PARENT.Y arg_s_open.arg_dwname = "dddw_configure_pzmx" arg_s_open.arg_mtrlid = THIS.Object.pzid[row] OpenWithParm(w_pz_ch,arg_s_open) rslt_pz = Message.StringParm IF rslt_pz <> '' THEN dw_ch.Object.namemx[row] = rslt_pz END IF RETURN 1 end event event dw_ch::doubleclicked;//if row<=0 then return //cb_CHOICE.PostEvent(Clicked!) end event event dw_ch::rowfocuschanged;call super::rowfocuschanged;IF NOT edit_mode THEN THIS.Modify("namemx.dddw.allowedit = no") RETURN END IF IF currentrow <= 0 OR IsNull(currentrow) THEN THIS.Modify("namemx.dddw.allowedit = no") RETURN END IF IF THIS.Object.inputtype[currentrow] = 0 THEN THIS.Modify("namemx.dddw.allowedit = NO") THIS.Modify("namemx.dddw.AutoHScroll = NO") ELSE THIS.Modify("namemx.dddw.allowedit = YES") THIS.Modify("namemx.dddw.AutoHScroll = YES") END IF end event type st_1 from w_publ_choice`st_1 within w_mtrl_configure_pzmx_ch boolean visible = false integer width = 293 string text = "名称包含:" boolean righttoleft = false end type type cb_retrieve from w_publ_choice`cb_retrieve within w_mtrl_configure_pzmx_ch end type event cb_retrieve::clicked;dw_ch.retrieve(cur_typeid) if dw_ch.rowcount() > 0 then dw_ch.setrow(1) dw_ch.selectrow(0,false) dw_ch.selectrow(1,true) end if end event type cb_choice from w_publ_choice`cb_choice within w_mtrl_configure_pzmx_ch end type event cb_choice::clicked;call super::clicked;Long ls_row,i String ls_name Long chC dw_ch.accepttext() rst_str = "" FOR i = 1 TO dw_ch.RowCount( ) IF dw_ch.Object.namemx[i] = "" THEN CONTINUE // rst_str += dw_ch.Object.namemx[i]+"|" chC++ s_config.pzid[chC] = dw_ch.Object.pzid[i] s_config.pzname[chC] = dw_ch.Object.Name[i] s_config.pzcode[chC] = dw_ch.Object.pzcode[i] s_config.pznamemx[chC] = dw_ch.Object.namemx[i] NEXT IF chC = 0 THEN MessageBox('系统提示','请至少选择一个目标行!',StopSign!) RETURN END IF Close(PARENT) end event type ln_bar from w_publ_choice`ln_bar within w_mtrl_configure_pzmx_ch end type type ln_bar2 from w_publ_choice`ln_bar2 within w_mtrl_configure_pzmx_ch end type type r_bar from w_publ_choice`r_bar within w_mtrl_configure_pzmx_ch integer x = 1248 integer y = 4 end type type ln_1 from w_publ_choice`ln_1 within w_mtrl_configure_pzmx_ch boolean visible = false end type type ln_2 from w_publ_choice`ln_2 within w_mtrl_configure_pzmx_ch boolean visible = false end type