123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518 |
- $PBExportHeader$w_mtrl_structure_replace_p.srw
- forward
- global type w_mtrl_structure_replace_p from w_publ_base
- end type
- type dw_s from u_dw_rbtnfilter within w_mtrl_structure_replace_p
- end type
- type dw_o from u_dw_rbtnfilter within w_mtrl_structure_replace_p
- end type
- type dw_mx from u_dw_rbtnfilter within w_mtrl_structure_replace_p
- end type
- type st_1 from statictext within w_mtrl_structure_replace_p
- end type
- type st_2 from statictext within w_mtrl_structure_replace_p
- end type
- type cbx_1 from checkbox within w_mtrl_structure_replace_p
- end type
- type cb_pset from uo_imflatbutton within w_mtrl_structure_replace_p
- end type
- type gb_1 from groupbox within w_mtrl_structure_replace_p
- end type
- type gb_2 from groupbox within w_mtrl_structure_replace_p
- end type
- end forward
- global type w_mtrl_structure_replace_p from w_publ_base
- integer width = 3611
- integer height = 2304
- string title = "BOM替换"
- boolean minbox = false
- windowtype windowtype = response!
- event ue_f8 ( )
- dw_s dw_s
- dw_o dw_o
- dw_mx dw_mx
- st_1 st_1
- st_2 st_2
- cbx_1 cbx_1
- cb_pset cb_pset
- gb_1 gb_1
- gb_2 gb_2
- end type
- global w_mtrl_structure_replace_p w_mtrl_structure_replace_p
- type variables
- long i_mtrlid
- end variables
- event ue_f8();Long child_row
- child_row = dw_o.GetRow()
- IF NOT IsValid(W_mtrldef_edit) THEN
- s_edit_index_tran s_ch_tran //传递参数使用
- s_ch_tran.if_retrieve_all = FALSE //是否一次RETRIEVE所有行
- s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
- s_ch_tran.arg_pkid = 0 //目标定位PKID (备用)
- s_ch_tran.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
- s_ch_tran.if_select_all = false
- s_ch_tran.b_long = 2
- s_ch_tran.c_long = -1
- s_ch_tran.f_long = -1
-
- Long chc = 1,ls_j
- dw_o.AcceptText()
-
- OpenWithParm(W_mtrldef_edit,s_ch_tran)
-
- s_mtrldef_array S_INSCUST
- S_INSCUST = Message.PowerObjectParm
- FOR ls_j = 1 TO UpperBound(S_INSCUST.mtrlid)
- IF S_INSCUST.mtrlid[ls_j] > 0 THEN
- dw_o.Object.mtrlcode[child_row] = S_INSCUST.mtrlcode[ls_j]
- dw_o.Object.unit[child_row] = S_INSCUST.unit[ls_j]
- dw_o.Object.mtrlid[child_row] = S_INSCUST.mtrlid[ls_j]
- dw_o.Object.mtrlname[child_row] = S_INSCUST.mtrlname[ls_j]
- dw_o.Object.mtrlmode[child_row] = S_INSCUST.mtrlmode[ls_j]
- END IF
- NEXT
- END IF
- end event
- on w_mtrl_structure_replace_p.create
- int iCurrent
- call super::create
- this.dw_s=create dw_s
- this.dw_o=create dw_o
- this.dw_mx=create dw_mx
- this.st_1=create st_1
- this.st_2=create st_2
- this.cbx_1=create cbx_1
- this.cb_pset=create cb_pset
- this.gb_1=create gb_1
- this.gb_2=create gb_2
- iCurrent=UpperBound(this.Control)
- this.Control[iCurrent+1]=this.dw_s
- this.Control[iCurrent+2]=this.dw_o
- this.Control[iCurrent+3]=this.dw_mx
- this.Control[iCurrent+4]=this.st_1
- this.Control[iCurrent+5]=this.st_2
- this.Control[iCurrent+6]=this.cbx_1
- this.Control[iCurrent+7]=this.cb_pset
- this.Control[iCurrent+8]=this.gb_1
- this.Control[iCurrent+9]=this.gb_2
- end on
- on w_mtrl_structure_replace_p.destroy
- call super::destroy
- destroy(this.dw_s)
- destroy(this.dw_o)
- destroy(this.dw_mx)
- destroy(this.st_1)
- destroy(this.st_2)
- destroy(this.cbx_1)
- destroy(this.cb_pset)
- destroy(this.gb_1)
- destroy(this.gb_2)
- end on
- event open;call super::open;i_mtrlid = message.doubleparm
- dw_s.settransobject(sqlca)
- dw_o.settransobject(sqlca)
- dw_mx.settransobject(sqlca)
- dw_s.retrieve(i_mtrlid)
- dw_mx.retrieve(i_mtrlid)
- dw_o.insertrow(0)
- end event
- type cb_func from w_publ_base`cb_func within w_mtrl_structure_replace_p
- integer x = 1755
- integer y = 2072
- integer width = 311
- integer height = 96
- string text = "确定"
- string normalpicname = "ok.bmp"
- integer picsize = 0
- toolbaralignment pic_align = alignatleft!
- boolean border = true
- end type
- event cb_func::clicked;call super::clicked;Int rslt = 1
- Long ll_mtrlid_s,ll_mtrlid_o,ll_mtrlid
- String ls_mtrlcode, ls_mtrlcode_o, ls_mtrlcode_s
- String ls_pfcode,ls_pfgroup
- Decimal lde_sonscale
- Long ll_i,ll_cnt,count,i
- String arg_msg
- Long ll_billid
- dw_mx.SetFilter('')
- dw_mx.Filter()
- dw_s.AcceptText()
- dw_o.AcceptText()
- dw_mx.AcceptText()
- ll_mtrlid_s = dw_s.Object.mtrlid[1]
- ls_mtrlcode_s = dw_s.Object.mtrlcode[1]
- ll_mtrlid_o = dw_o.Object.mtrlid[1]
- ls_mtrlcode_o = dw_o.Object.mtrlcode[1]
- IF ll_mtrlid_s = 0 THEN
- MessageBox('系统提示','没有原物料')
- RETURN
- END IF
- IF ll_mtrlid_o = 0 THEN
- MessageBox('系统提示','没有替换物料')
- RETURN
- END IF
- IF ll_mtrlid_s = ll_mtrlid_o THEN
- MessageBox('系统提示','原物料不能和替换物料相同,请检查')
- RETURN
- END IF
- IF dw_mx.Find('choice = 1', 1, dw_mx.RowCount()) <= 0 THEN
- MessageBox('系统提示','请勾选需替换物料的物料列表')
- RETURN
- END IF
- FOR i = 1 To dw_mx.RowCount()
- IF dw_mx.Object.choice[i] = 0 THEN CONTINUE
- IF dw_mx.Object.mtrlid[i] > 0 THEN
- ll_mtrlid = dw_mx.Object.mtrlid[i] //产品
- lde_sonscale = dw_mx.Object.u_prdpf_sonscale_new[i]
- ls_pfcode = dw_mx.Object.u_prdpf_pfcode[i]
- ls_pfgroup = dw_mx.Object.u_prdpf_pfgroup[i]
-
- UPDATE u_prdpf
- SET sonmtrlid = :ll_mtrlid_o,
- sonscale = :lde_sonscale
- WHERE ( u_prdpf.mtrlid = :ll_mtrlid ) AND
- ( u_prdpf.sonmtrlid = :ll_mtrlid_s ) AND
- ( u_prdpf.pfcode = :ls_pfcode )AND
- ( u_prdpf.pfgroup = :ls_pfgroup );
- IF sqlca.SQLCode <> 0 THEN
- arg_msg = "行:"+String(i)+",替换物料操作失败,"+sqlca.SQLErrText
- rslt = 0
- GOTO ext
- ELSEIF sqlca.SQLNRows <> 1 THEN
- arg_msg = "行:"+String(i)+",替换物料操作失败,BOM不存在该物料或关键字变更!"
- rslt = 0
- GOTO ext
- END IF
- END IF
- NEXT
- ext:
- IF rslt = 0 THEN
- ROLLBACK;
- MessageBox('错误',arg_msg)
- RETURN
- ELSE
- COMMIT;
- MessageBox('系统提示','批替换物料BOM成功')
-
- //日志
- f_setsysoplog('BOM物料批替换','物料:'+ls_mtrlcode_s+'批替换成物料:'+ls_mtrlcode_o,arg_msg,True)
- //--
-
- Close(Parent)
- END IF
- end event
- type cb_exit from w_publ_base`cb_exit within w_mtrl_structure_replace_p
- integer x = 2208
- integer y = 2072
- end type
- type dw_s from u_dw_rbtnfilter within w_mtrl_structure_replace_p
- integer x = 261
- integer y = 56
- integer width = 1842
- integer height = 352
- boolean bringtotop = true
- string dataobject = "dw_mtrl_structure_replace_s"
- end type
- event constructor;int i = 0
- end event
- event destructor;int i = 0
- end event
- type dw_o from u_dw_rbtnfilter within w_mtrl_structure_replace_p
- integer x = 261
- integer y = 484
- integer width = 1842
- integer height = 352
- integer taborder = 20
- boolean bringtotop = true
- string dataobject = "dw_mtrl_structure_replace_o"
- end type
- event destructor;int i = 0
- end event
- event constructor;int i = 0
- end event
- event doubleclicked;call super::doubleclicked;parent.triggerevent('ue_f8')
- end event
- event dwnkey;call super::dwnkey;Long child_row
- String ls_mtrlcode,ls_mtrlname,ls_unit,ls_mtrlmode
- Long ls_mtrlid
- If (KeyDown(KeyEnter!) Or KeyDown(KeyTab!)) And Not KeyDown(KeyControl!) And Not KeyDown(KeyShift!) THEN
- IF dw_o.GetColumnName() = 'mtrlcode' THEN
- dw_o.AcceptText()
- child_row = dw_o.GetRow()
-
- ls_mtrlcode = dw_o.Object.mtrlcode[child_row]
-
- SELECT u_mtrldef.mtrlid,
- u_mtrldef.mtrlname,
- u_mtrldef.unit,
- u_mtrldef.mtrlmode
- INTO :ls_mtrlid,
- :ls_mtrlname,
- :ls_unit,
- :ls_mtrlmode
- FROM u_mtrldef
- Where ( u_mtrldef.mtrlcode = :ls_mtrlcode);
-
- IF sqlca.SQLCode <> 0 THEN
- Parent.TriggerEvent('ue_f8')
- RETURN 1
- ELSE
- dw_o.Object.unit[child_row] = ls_unit
- dw_o.Object.mtrlid[child_row] = ls_mtrlid
- dw_o.Object.mtrlname[child_row] = ls_mtrlname
- dw_o.Object.mtrlmode[child_row] = ls_mtrlmode
- END IF
- END IF
- END IF
- end event
- type dw_mx from u_dw_rbtnfilter within w_mtrl_structure_replace_p
- integer y = 880
- integer width = 3543
- integer height = 1148
- integer taborder = 20
- boolean bringtotop = true
- string dataobject = "dw_mtrl_structure_replace_mx"
- boolean hscrollbar = true
- boolean vscrollbar = true
- boolean hsplitscroll = true
- boolean rbutton_filter_use = true
- boolean titleclick_sort_use = true
- end type
- event rowfocuschanged;call super::rowfocuschanged;IF currentrow <=0 THEN RETURN
- this.selectrow(0,false)
- this.selectrow(currentrow,true)
- this.setrow(currentrow)
- end event
- event clicked;call super::clicked;IF row <= 0 THEN RETURN
- This.SelectRow(0,False)
- This.SelectRow(row,True)
- This.SetRow(row)
- end event
- type st_1 from statictext within w_mtrl_structure_replace_p
- integer x = 9
- integer y = 196
- integer width = 247
- integer height = 48
- boolean bringtotop = true
- integer textsize = -9
- integer weight = 400
- fontcharset fontcharset = gb2312charset!
- fontpitch fontpitch = variable!
- string facename = "宋体"
- long textcolor = 33554432
- long backcolor = 134217739
- string text = "原物料"
- alignment alignment = center!
- boolean focusrectangle = false
- end type
- type st_2 from statictext within w_mtrl_structure_replace_p
- integer x = 9
- integer y = 616
- integer width = 247
- integer height = 48
- boolean bringtotop = true
- integer textsize = -9
- integer weight = 400
- fontcharset fontcharset = gb2312charset!
- fontpitch fontpitch = variable!
- string facename = "宋体"
- long textcolor = 33554432
- long backcolor = 134217739
- string text = "替换物料"
- alignment alignment = center!
- boolean focusrectangle = false
- end type
- type cbx_1 from checkbox within w_mtrl_structure_replace_p
- integer x = 672
- integer y = 2084
- integer width = 197
- integer height = 76
- boolean bringtotop = true
- integer textsize = -9
- integer weight = 400
- fontcharset fontcharset = gb2312charset!
- fontpitch fontpitch = variable!
- string facename = "宋体"
- long textcolor = 33554432
- long backcolor = 134217739
- string text = "全选"
- end type
- event clicked;Long ll_i
- dw_mx.SetRedraw(FALSE)
- FOR ll_i = 1 TO dw_mx.RowCount()
- IF THIS.Checked THEN
- dw_mx.Object.choice[ll_i] = 1
- ELSE
- dw_mx.Object.choice[ll_i] = 0
- END IF
- NEXT
- dw_mx.SetRedraw(TRUE)
- end event
- type cb_pset from uo_imflatbutton within w_mtrl_structure_replace_p
- integer x = 983
- integer y = 2072
- integer width = 631
- integer taborder = 20
- boolean bringtotop = true
- string text = "按比例设置新用料量"
- string normalpicname = "p1.bmp"
- integer picsize = 16
- end type
- event clicked;call super::clicked;Long ll_i
- Decimal ld_rate
- Long ll_if_all
- Long ll_row
- Long ll_dec
- Long ll_way
- ll_row = dw_mx.GetRow()
- IF ll_row <= 0 THEN
- MessageBox('系统提示','请选择明细内容')
- RETURN
- END IF
- s_edit_index_tran s_ins_rate
- Open(w_prdpf_change_rate_edit)
- s_ins_rate = Message.PowerObjectParm
- ld_rate = s_ins_rate.b_decimal
- ll_if_all = s_ins_rate.b_long
- ll_dec = s_ins_rate.c_long
- ll_way = s_ins_rate.d_long
- IF ll_if_all = -1 THEN RETURN
- dw_mx.AcceptText()
- IF ll_if_all = 0 THEN
- IF ll_way = 0 THEN
- dw_mx.Object.u_prdpf_sonscale_new[ll_row] = Round(dw_mx.Object.u_prdpf_sonscale[ll_row] + ld_rate,ll_dec)
- ELSEIF ll_way = 1 THEN
- dw_mx.Object.u_prdpf_sonscale_new[ll_row] = Round(dw_mx.Object.u_prdpf_sonscale[ll_row] - ld_rate,ll_dec)
- ELSEIF ll_way = 2 THEN
- dw_mx.Object.u_prdpf_sonscale_new[ll_row] = Round(dw_mx.Object.u_prdpf_sonscale[ll_row] * ld_rate,ll_dec)
- ELSEIF ll_way = 3 THEN
- dw_mx.Object.u_prdpf_sonscale_new[ll_row] = Round(dw_mx.Object.u_prdpf_sonscale[ll_row] / ld_rate,ll_dec)
- END IF
- ELSEIF ll_if_all = 1 THEN
- dw_mx.SetRedraw(False)
- FOR ll_i = 1 To dw_mx.RowCount()
-
- IF dw_mx.Object.choice[ll_i] = 0 THEN CONTINUE
-
- IF ll_way = 0 THEN
- dw_mx.Object.u_prdpf_sonscale_new[ll_i] = Round(dw_mx.Object.u_prdpf_sonscale[ll_i] + ld_rate,ll_dec)
- ELSEIF ll_way = 1 THEN
- dw_mx.Object.u_prdpf_sonscale_new[ll_i] = Round(dw_mx.Object.u_prdpf_sonscale[ll_i] - ld_rate,ll_dec)
- ELSEIF ll_way = 2 THEN
- dw_mx.Object.u_prdpf_sonscale_new[ll_i] = Round(dw_mx.Object.u_prdpf_sonscale[ll_i] * ld_rate,ll_dec)
- ELSEIF ll_way = 3 THEN
- dw_mx.Object.u_prdpf_sonscale_new[ll_i] = Round(dw_mx.Object.u_prdpf_sonscale[ll_i] / ld_rate,ll_dec)
- END IF
- NEXT
- dw_mx.SetRedraw(True)
- END IF
- end event
- type gb_1 from groupbox within w_mtrl_structure_replace_p
- integer x = 151
- integer y = 4
- integer width = 2043
- integer height = 452
- integer taborder = 10
- integer textsize = -9
- integer weight = 400
- fontcharset fontcharset = gb2312charset!
- fontpitch fontpitch = variable!
- string facename = "宋体"
- long textcolor = 33554432
- long backcolor = 134217739
- end type
- type gb_2 from groupbox within w_mtrl_structure_replace_p
- integer x = 151
- integer y = 424
- integer width = 2043
- integer height = 452
- integer taborder = 10
- integer textsize = -9
- integer weight = 400
- fontcharset fontcharset = gb2312charset!
- fontpitch fontpitch = variable!
- string facename = "宋体"
- long textcolor = 33554432
- long backcolor = 134217739
- end type
|