123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462 |
- $PBExportHeader$w_configure_pzmx_ch.srw
- forward
- global type w_configure_pzmx_ch from w_publ_choice
- end type
- type cb_clean from uo_imflatbutton within w_configure_pzmx_ch
- end type
- type cb_del_all from uo_imflatbutton within w_configure_pzmx_ch
- end type
- end forward
- global type w_configure_pzmx_ch from w_publ_choice
- integer width = 1810
- integer height = 1700
- string title = "部件选配类型-配置选择"
- event ue_allowedit ( )
- cb_clean cb_clean
- cb_del_all cb_del_all
- end type
- global w_configure_pzmx_ch w_configure_pzmx_ch
- type variables
- long cur_typeid = 0
- long ins_mtrlid = 0
- s_pzwin_open s_mt
- String rst_str
- boolean edit_mode = true
- end variables
- forward prototypes
- public subroutine wf_slpit (string arg_col_value)
- public subroutine wf_slpit_arr (s_mtrl_configure_array arg_configure_arr)
- public subroutine wf_add_mx (long arg_mtrlid)
- 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,ll_i,ll_j
- Long ll_start
- String ls_namemx[], ls_pzmx
- String ls_name[]
- 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] = Mid(arg_col_value,Pos(arg_col_value,':') + 1)
- 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_name[i] = Left(arg_col_value, Pos(arg_col_value,":") - 1)
- ls_namemx[i] = Left(arg_col_value, ll_start - 1)
- ls_namemx[i] = Mid(ls_namemx[i],Pos(ls_namemx[i],':') + 1)
- arg_col_value = Mid(arg_col_value, ll_start + 1)
- ll_start = Pos(arg_col_value, "|")
- LOOP
- FOR ll_i = 1 TO dw_ch.RowCount()
- ll_pzid = dw_ch.Object.pzid[ll_i]
- IF UpperBound(ls_namemx) < i THEN EXIT
-
- FOR ll_j = 1 TO i
- IF dw_ch.Object.Name[ll_i] = ls_name[ll_j] THEN
- dw_ch.Object.namemx[ll_i] = ls_namemx[ll_j]
- goto _next
- END IF
- NEXT
- _next:
- NEXT
- RETURN
- 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] = mid(arg_configure_arr.pznamemx[j],pos(arg_configure_arr.pznamemx[j],':') + 1)
- EXIT
- END IF
- NEXT
- NEXT
- RETURN
- end subroutine
- public subroutine wf_add_mx (long arg_mtrlid);dw_ch.Reset()
- Long ll_pzid
- String ls_pzcode,ls_pzname,ls_pznamemx
- Long ll_row
- Long ll_configcodetype
- Int li_inputtype
- SELECT u_mtrldef.configcodetype
- INTO :ll_configcodetype
- FROM u_mtrldef
- Where u_mtrldef.mtrlid = :arg_mtrlid;
- IF sqlca.SQLCode <> 0 THEN
- ll_configcodetype = -1
- END IF
- DECLARE cur_pz CURSOR FOR
- SELECT u_mtrl_configure2.pzid,
- u_mtrl_configure2.pzcode,
- u_mtrl_configure2.pzname,
- u_mtrl_configure2.pznamemx
- FROM u_mtrl_configure2
- WHERE u_mtrl_configure2.mtrlid = :arg_mtrlid
- Order By u_mtrl_configure2.pzcode;
-
- OPEN cur_pz;
- FETCH cur_pz INTO :ll_pzid,:ls_pzcode,:ls_pzname,:ls_pznamemx;
- DO WHILE sqlca.SQLCode = 0
- ll_row = dw_ch.InsertRow(0)
-
- IF ll_configcodetype > 0 THEN
- SELECT inputtype
- INTO :li_inputtype
- FROM u_configure_code
- WHERE pzid = :ll_pzid
- AND typeid = :ll_configcodetype;
- IF sqlca.SQLCode <> 0 THEN
- li_inputtype = 0
- END IF
- END IF
-
- dw_ch.Object.pzid[ll_row] = ll_pzid
- dw_ch.Object.pzcode[ll_row] = ls_pzcode
- dw_ch.Object.Name[ll_row] = ls_pzname
- dw_ch.Object.namemx[ll_row] = ls_pznamemx
- dw_ch.Object.inputtype[ll_row] = li_inputtype
-
- FETCH cur_pz INTO :ll_pzid,:ls_pzcode,:ls_pzname,:ls_pznamemx;
- LOOP
- CLOSE cur_pz;
- end subroutine
- on w_configure_pzmx_ch.create
- int iCurrent
- call super::create
- this.cb_clean=create cb_clean
- this.cb_del_all=create cb_del_all
- iCurrent=UpperBound(this.Control)
- this.Control[iCurrent+1]=this.cb_clean
- this.Control[iCurrent+2]=this.cb_del_all
- end on
- on w_configure_pzmx_ch.destroy
- call super::destroy
- destroy(this.cb_clean)
- destroy(this.cb_del_all)
- end on
- event open;if_ue_sort = TRUE
- wf_movetocenter()
- dw_CH.SetTransObject (sqlca)
- s_mt = Message.PowerObjectParm
- cur_typeid = s_mt.arg_mtrlid
- ins_mtrlid = s_mt.arg_id
- cb_retrieve.TriggerEvent(Clicked!)
- IF UpperBound(s_mt.arg_configure_arr.pzid) > 0 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
- setnull(rst_str)
- end event
- event close;call super::close;CLOSEWITHRETURN(THIS,rst_str)
- 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_configure_pzmx_ch
- end type
- type cb_exit from w_publ_choice`cb_exit within w_configure_pzmx_ch
- integer x = 905
- end type
- event cb_exit::clicked;SetNull(rst_str)
- Close(Parent)
- end event
- type sle_ch from w_publ_choice`sle_ch within w_configure_pzmx_ch
- boolean visible = false
- integer x = 325
- end type
- type dw_ch from w_publ_choice`dw_ch within w_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_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_configure_pzmx_ch
- end type
- event cb_retrieve::clicked;
- IF cur_typeid = -1 THEN
- wf_add_mx(ins_mtrlid)
- ELSE
- dw_ch.Retrieve(cur_typeid)
- END IF
- IF dw_ch.RowCount() > 0 THEN
- dw_ch.SetRow(1)
- dw_ch.SelectRow(0,FALSE)
- dw_ch.SelectRow(1,TRUE)
- END IF
- //yyx2015-10-7 修复刷新清空问题
- IF UpperBound(s_mt.arg_configure_arr.pzid) > 0 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
- end event
- type cb_choice from w_publ_choice`cb_choice within w_configure_pzmx_ch
- integer x = 754
- end type
- event cb_choice::clicked;call super::clicked;Long ls_row,i
- String ls_name
- rst_str = ""
- dw_ch.AcceptText()
- FOR i = 1 TO dw_ch.RowCount( )
- IF Trim(dw_ch.Object.namemx[i]) = "" THEN
- //rst_str += "|"
- ELSE
- rst_str += trim(dw_ch.Object.Name[i]) + ':' +trim(dw_ch.Object.namemx[i])+"|"
- END IF
- NEXT
- CLOSE(PARENT)
- end event
- type ln_bar from w_publ_choice`ln_bar within w_configure_pzmx_ch
- end type
- type ln_bar2 from w_publ_choice`ln_bar2 within w_configure_pzmx_ch
- end type
- type r_bar from w_publ_choice`r_bar within w_configure_pzmx_ch
- integer x = 1248
- integer y = 4
- end type
- type ln_1 from w_publ_choice`ln_1 within w_configure_pzmx_ch
- boolean visible = false
- end type
- type ln_2 from w_publ_choice`ln_2 within w_configure_pzmx_ch
- boolean visible = false
- end type
- type cb_clean from uo_imflatbutton within w_configure_pzmx_ch
- integer x = 302
- integer width = 151
- integer height = 164
- integer taborder = 50
- boolean bringtotop = true
- string text = "清除"
- string normalpicname = "DELETE.BMP"
- integer picsize = 16
- toolbaralignment pic_align = alignattop!
- boolean border = false
- end type
- event clicked;call super::clicked;IF dw_ch.GetRow() > 0 THEN
- dw_ch.Object.namemx[dw_ch.GetRow()] = ''
- dw_ch.AcceptText()
- END IF
- end event
- type cb_del_all from uo_imflatbutton within w_configure_pzmx_ch
- integer x = 453
- integer height = 164
- integer taborder = 30
- boolean bringtotop = true
- string text = "清除全部"
- string normalpicname = "DELETE.BMP"
- integer picsize = 16
- toolbaralignment pic_align = alignattop!
- boolean border = false
- end type
- event clicked;call super::clicked;IF MessageBox('询问','是否确认清空全部配置项明细内容?',question!,yesno!) = 2 THEN RETURN
- Long ll_i
- dw_ch.SetRedraw(False)
- FOR ll_i = 1 To dw_ch.RowCount()
- dw_ch.Object.namemx[ll_i] = ''
- NEXT
- dw_ch.SetRedraw(True)
- dw_ch.AcceptText()
- end event
|