$PBExportHeader$w_mtrl_ch_fx.srw $PBExportComments$分销系统(门店采购订单明细选供应商物料) forward global type w_mtrl_ch_fx from w_publ_base end type type tv_1 from uo_tv_fx_mtrltype within w_mtrl_ch_fx end type type dw_show from u_dw_rbtnfilter within w_mtrl_ch_fx end type type dw_select from u_dw_rbtnfilter within w_mtrl_ch_fx end type type cb_select from uo_imflatbutton within w_mtrl_ch_fx end type type cb_del from uo_imflatbutton within w_mtrl_ch_fx end type type cb_ok from uo_imflatbutton within w_mtrl_ch_fx end type end forward global type w_mtrl_ch_fx from w_publ_base integer width = 4375 integer height = 2300 string title = "供应商物料选择" boolean minbox = false windowtype windowtype = response! long backcolor = 16777215 string icon = "graphics\chain_link_128px.ico" boolean center = true tv_1 tv_1 dw_show dw_show dw_select dw_select cb_select cb_select cb_del cb_del cb_ok cb_ok end type global w_mtrl_ch_fx w_mtrl_ch_fx forward prototypes public subroutine wf_retrieve () public subroutine wf_retrieve_mtrltype (readonly oleobject arg_mtrltypes) public subroutine wf_retrieve_mtrl (readonly integer arg_mtrltypeid, readonly integer arg_sonflag) end prototypes public subroutine wf_retrieve ();string arg_msg oleobject mtrltypes mtrltypes = FXAppCom.GetSptMtrltype(app_token_fx, ref arg_msg) IF (arg_msg <> '') THEN MessageBox('ERROR', '获取物料类别失败:' + arg_msg) RETURN END IF dw_show.ReSet( ) wf_retrieve_mtrltype(mtrltypes) end subroutine public subroutine wf_retrieve_mtrltype (readonly oleobject arg_mtrltypes);long i, cnt, row cnt = arg_mtrltypes.Count if cnt <= 0 then return datastore ds ds = create datastore ds.DataObject = 'ds_fx_mtrltype' oleobject mtrltype for i = 1 to cnt mtrltype = arg_mtrltypes.GetItem(i - 1) row = ds.InsertRow(0) ds.Object.comid[row] = mtrltype.GetInt('comid') ds.Object.mtrltypeid[row] = mtrltype.GetInt('mtrltypeid') ds.Object.mtrltype[row] = mtrltype.GetString('mtrltype') ds.Object.handtype[row] = mtrltype.GetString('handtype') ds.Object.sonflag[row] = mtrltype.GetInt('sonflag') ds.Object.parentid[row] = mtrltype.GetInt('parentid') ds.Object.mtrltypeid_erp[row] = mtrltype.GetInt('mtrltypeid_erp') next tv_1.uof_init(ds) end subroutine public subroutine wf_retrieve_mtrl (readonly integer arg_mtrltypeid, readonly integer arg_sonflag);oleobject mtrls, mtrl mtrls = FXAppCom.CreArrOfPbDictionary() string arg_msg mtrls = FXAppCom.GetSptMtrl(app_token_fx, arg_mtrltypeid, arg_sonflag, ref arg_msg) long i, cnt, row cnt = mtrls.Count dw_show.Reset( ) dw_show.SetRedraw(false) for i = 1 to cnt mtrl = mtrls.GetItem(i - 1) row = dw_show.InsertRow(0) dw_show.Object.fxmtrlid[row] = mtrl.GetInt('fxmtrlid') dw_show.Object.comid[row] = mtrl.GetInt('comid') dw_show.Object.mtrlid[row] = mtrl.GetInt('mtrlid') dw_show.Object.mtrlcode[row] = mtrl.GetString('mtrlcode') dw_show.Object.mtrlname[row] = mtrl.GetString('mtrlname') dw_show.Object.mtrlmode[row] = mtrl.GetString('mtrlmode') dw_show.Object.mtrlsectype[row] = mtrl.GetString('mtrlsectype') dw_show.Object.zxmtrlmode[row] = mtrl.GetString('zxmtrlmode') dw_show.Object.usermtrlmode[row] = mtrl.GetString('usermtrlmode') next dw_show.SetRedraw(true) dw_show.SelectRow(0, false) end subroutine on w_mtrl_ch_fx.create int iCurrent call super::create this.tv_1=create tv_1 this.dw_show=create dw_show this.dw_select=create dw_select this.cb_select=create cb_select this.cb_del=create cb_del this.cb_ok=create cb_ok iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.tv_1 this.Control[iCurrent+2]=this.dw_show this.Control[iCurrent+3]=this.dw_select this.Control[iCurrent+4]=this.cb_select this.Control[iCurrent+5]=this.cb_del this.Control[iCurrent+6]=this.cb_ok end on on w_mtrl_ch_fx.destroy call super::destroy destroy(this.tv_1) destroy(this.dw_show) destroy(this.dw_select) destroy(this.cb_select) destroy(this.cb_del) destroy(this.cb_ok) end on event open;call super::open;wf_retrieve( ) end event event resize;call super::resize;cb_exit.X = this.workspacewidth( ) - cb_exit.Width end event type cb_func from w_publ_base`cb_func within w_mtrl_ch_fx integer width = 151 integer height = 164 end type type cb_exit from w_publ_base`cb_exit within w_mtrl_ch_fx integer x = 1801 integer width = 151 integer height = 164 integer picsize = 16 toolbaralignment pic_align = alignattop! end type type tv_1 from uo_tv_fx_mtrltype within w_mtrl_ch_fx integer y = 176 integer width = 1015 integer height = 2052 integer taborder = 30 boolean bringtotop = true integer textsize = -9 fontcharset fontcharset = gb2312charset! fontfamily fontfamily = anyfont! string facename = "宋体" boolean disabledragdrop = false boolean hideselection = false boolean tooltips = false boolean trackselect = true string picturename[] = {"Application!","Structure5!"} end type event selectionchanged;call super::selectionchanged;wf_retrieve_mtrl(this.ins_cur_info.mtrltypeid[1], this.ins_cur_info.sonflag[1]) end event type dw_show from u_dw_rbtnfilter within w_mtrl_ch_fx integer x = 1029 integer y = 176 integer width = 3351 integer height = 976 integer taborder = 20 boolean bringtotop = true string dataobject = "dw_fx_mtrldef" boolean hscrollbar = true boolean vscrollbar = true boolean rbutton_filter_use = true boolean rbutton_setposition_use = true boolean titleclick_sort_use = true end type event clicked;call super::clicked;if (row <= 0) then return This.SelectRow(row, not This.IsSelected(row)) end event type dw_select from u_dw_rbtnfilter within w_mtrl_ch_fx integer x = 1029 integer y = 1260 integer width = 3351 integer height = 964 integer taborder = 20 boolean bringtotop = true string dataobject = "dw_fx_mtrldef" boolean hscrollbar = true boolean vscrollbar = true boolean rbutton_filter_use = true boolean rbutton_setposition_use = true boolean titleclick_sort_use = true end type event clicked;call super::clicked;if (row <= 0) then return This.SelectRow(0, false) This.SelectRow(row, true) end event event rowfocuschanged;call super::rowfocuschanged;IF currentrow <=0 THEN RETURN this.selectrow(0,false) this.selectrow(currentrow,true) this.SetRow(currentrow) end event type cb_select from uo_imflatbutton within w_mtrl_ch_fx integer x = 3118 integer y = 1160 integer width = 608 integer height = 92 integer taborder = 30 boolean bringtotop = true string text = "↓ 选择" end type event clicked;call super::clicked;long row row = dw_show.GetRow( ) if (row <= 0) then MessageBox('提示', '请在上方的物料清单内选择') return end if long i for i = 1 to dw_show.RowCount( ) if (dw_show.IsSelected(i)) then dw_show.RowsCopy(i, i, Primary!, dw_select, dw_select.RowCount() + 1, Primary!) end if next dw_show.SelectRow(0, false) dw_show.SetRow(0) if (dw_select.RowCount( ) > 0) then dw_select.SelectRow(0, false) dw_select.SelectRow(dw_select.RowCount( ), true) dw_select.SetRow(dw_select.RowCount( )) end if end event type cb_del from uo_imflatbutton within w_mtrl_ch_fx integer x = 3744 integer y = 1160 integer width = 608 integer height = 92 integer taborder = 40 boolean bringtotop = true string text = "↑删除" end type event clicked;call super::clicked;if (dw_select.GetRow() <= 0) then MessageBox('提示', '请在下方的物料清单内选择') return end if dw_select.DeleteRow(dw_select.GetRow()) dw_show.TriggerEvent(rowfocuschanged!) end event type cb_ok from uo_imflatbutton within w_mtrl_ch_fx integer x = 1029 integer width = 165 integer height = 164 integer taborder = 20 boolean bringtotop = true string text = "选定" string normalpicname = "ok.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! end type event clicked;call super::clicked;if (dw_select.RowCount() <= 0) then MessageBox('提示', '右下角的清单内并没有内容') return end if s_fx_mtrldef s_tran long i for i = 1 to dw_select.RowCount() s_tran.fxmtrlid[i] = dw_select.Object.fxmtrlid[i] s_tran.comid[i] = dw_select.Object.comid[i] s_tran.mtrlid[i] = dw_select.Object.mtrlid[i] s_tran.mtrlcode[i] = dw_select.Object.mtrlcode[i] s_tran.mtrlname[i] = dw_select.Object.mtrlname[i] s_tran.mtrlmode[i] = dw_select.Object.mtrlmode[i] s_tran.mtrlsectype[i] = dw_select.Object.mtrlsectype[i] s_tran.zxmtrlmode[i] = dw_select.Object.zxmtrlmode[i] s_tran.usermtrlmode[i] = dw_select.Object.usermtrlmode[i] next CloseWithReturn(parent, s_tran) end event