$PBExportHeader$w_order_ml_mod_tree.srw forward global type w_order_ml_mod_tree from w_publ_easyq end type type st_dscrp from statictext within w_order_ml_mod_tree end type type dw_2 from u_dw_rbtnfilter within w_order_ml_mod_tree end type type cb_save from uo_imflatbutton within w_order_ml_mod_tree end type type cb_cancel_scll from uo_imflatbutton within w_order_ml_mod_tree end type type cb_add from uo_imflatbutton within w_order_ml_mod_tree end type type cb_del from uo_imflatbutton within w_order_ml_mod_tree end type type cb_func2 from uo_imflatbutton within w_order_ml_mod_tree end type type cb_3 from uo_imflatbutton within w_order_ml_mod_tree end type end forward global type w_order_ml_mod_tree from w_publ_easyq integer width = 3611 integer height = 2380 string title = "修改用料" boolean minbox = false boolean maxbox = false boolean resizable = false windowtype windowtype = response! event ue_p_set_wrkgrpid ( ) event ue_p_set_status ( ) event ue_p_set_woodcode ( ) event ue_p_set_pcode ( ) event ue_allowedit ( ) st_dscrp st_dscrp dw_2 dw_2 cb_save cb_save cb_cancel_scll cb_cancel_scll cb_add cb_add cb_del cb_del cb_func2 cb_func2 cb_3 cb_3 end type global w_order_ml_mod_tree w_order_ml_mod_tree type variables Long i_taskid,i_scid Int i_printid Int i_Ordertype Long ll_unlock_row Boolean if_cmpl = TRUE Decimal i_d_cmplqty_old Int i_i_plantype_old Long i_l_scid_old s_order_ml_mrp s_mrp end variables event ue_p_set_wrkgrpid();//IF NOT dw_edit_mode THEN RETURN IF MessageBox('提示','是否确定要批设定领用工组', question!, YesNo!, 2) = 2 THEN RETURN END IF Long ll_i dw_1.AcceptText() dw_1.SetRedraw(FALSE) IF dw_1.RowCount() >= 2 THEN FOR ll_i = 2 TO dw_1.RowCount() dw_1.Object.u_orderrqmtrl_tree_wrkgrpid[ll_i] = dw_1.Object.u_orderrqmtrl_tree_wrkgrpid[1] NEXT END IF dw_1.SetRedraw(TRUE) end event event ue_p_set_status();//IF NOT dw_edit_mode THEN RETURN IF MessageBox('提示','是否确定要批设定'+sys_option_change_status, question!, YesNo!, 2) = 2 THEN RETURN END IF Long ll_i dw_1.AcceptText() dw_1.SetRedraw(FALSE) IF dw_1.RowCount() >= 2 THEN FOR ll_i = 2 TO dw_1.RowCount() dw_1.Object.u_orderrqmtrl_tree_status[ll_i] = dw_1.Object.u_orderrqmtrl_tree_status[1] NEXT END IF dw_1.SetRedraw(TRUE) end event event ue_p_set_woodcode();//IF NOT dw_edit_mode THEN RETURN IF MessageBox('提示','是否确定要批设定'+sys_option_change_woodcode, question!, YesNo!, 2) = 2 THEN RETURN END IF Long ll_i dw_1.AcceptText() dw_1.SetRedraw(FALSE) IF dw_1.RowCount() >= 2 THEN FOR ll_i = 2 TO dw_1.RowCount() dw_1.Object.u_orderrqmtrl_tree_woodcode[ll_i] = dw_1.Object.u_orderrqmtrl_tree_woodcode[1] NEXT END IF dw_1.SetRedraw(TRUE) end event event ue_p_set_pcode();//IF NOT dw_edit_mode THEN RETURN IF MessageBox('提示','是否确定要批设定'+sys_option_change_pcode, question!, YesNo!, 2) = 2 THEN RETURN END IF Long ll_i dw_1.AcceptText() dw_1.SetRedraw(FALSE) IF dw_1.RowCount() >= 2 THEN FOR ll_i = 2 TO dw_1.RowCount() dw_1.Object.u_orderrqmtrl_tree_pcode[ll_i] = dw_1.Object.u_orderrqmtrl_tree_pcode[1] NEXT END IF dw_1.SetRedraw(TRUE) end event event ue_allowedit();Long Columns Int i String ls_modify_str Long ll_row Long ll_value Long ll_statusflag,ll_woodcodeflag,ll_pcodeflag String ls_status,ls_woodcode,ls_pcode String ls_data_type ll_row = dw_1.GetRow() IF ll_row <= 0 THEN RETURN Columns = Long(dw_1.Describe("DataWindow.Column.Count")) FOR i = 1 TO Columns ls_modify_str = dw_1.Describe("#" + String(i) + ".name") ls_modify_str = Lower(ls_modify_str) IF i = 1 THEN //第1个字段,约定物料ID ls_data_type = dw_1.Describe(ls_modify_str+".ColType") IF ls_data_type = "long" THEN ll_value = dw_1.GetItemNumber(ll_row,ls_modify_str) END IF END IF IF Pos(ls_modify_str,'statusflag') > 0 THEN ls_data_type = dw_1.Describe(ls_modify_str+".ColType") IF ls_data_type = "long" THEN ll_statusflag = dw_1.GetItemNumber(ll_row,ls_modify_str) END IF END IF IF Pos(ls_modify_str,'woodcodeflag') > 0 THEN ls_data_type = dw_1.Describe(ls_modify_str+".ColType") IF ls_data_type = "long" THEN ll_woodcodeflag = dw_1.GetItemNumber(ll_row,ls_modify_str) END IF END IF IF Pos(ls_modify_str,'pcodeflag') > 0 THEN ls_data_type = dw_1.Describe(ls_modify_str+".ColType") IF ls_data_type = "long" THEN ll_pcodeflag = dw_1.GetItemNumber(ll_row,ls_modify_str) END IF END IF IF Pos(ls_modify_str,'status') > 0 AND Pos(ls_modify_str,'statusflag') = 0 AND Pos(ls_modify_str,'statustype') = 0 THEN IF Len(ls_modify_str) = Len('status') OR Pos(ls_modify_str,'_status') > 0 THEN IF Not (Pos(ls_modify_str,'u_saletask_status') > 0 OR & Pos(ls_modify_str,'u_buytask_status') > 0 OR & Pos(ls_modify_str,'u_order_ml_status') > 0 OR & Pos(ls_modify_str,'u_order_wfjg_status') > 0 OR & Pos(ls_modify_str,'u_rs_empinfo_status') > 0 ) THEN ls_status = ls_modify_str END IF END IF END IF IF Pos(ls_modify_str,'woodcode') > 0 AND Pos(ls_modify_str,'woodcodeflag') = 0 AND Pos(ls_modify_str,'woodcodetype') = 0 THEN IF Len(ls_modify_str) = Len('woodcode') OR Pos(ls_modify_str,'_woodcode') > 0 THEN ls_woodcode = ls_modify_str END IF END IF IF Pos(ls_modify_str,'pcode') > 0 AND Pos(ls_modify_str,'pcodeflag') = 0 AND Pos(ls_modify_str,'pcodetype') = 0 THEN IF Len(ls_modify_str) = Len('pcode') OR Pos(ls_modify_str,'_pcode') > 0 THEN ls_pcode = ls_modify_str END IF END IF NEXT IF ls_status <> '' THEN IF ll_statusflag <> 0 OR ll_value = 0 THEN dw_1.Modify(ls_status+".dddw.allowedit = no") ELSE dw_1.Modify(ls_status+".dddw.allowedit = yes") END IF END IF IF ls_woodcode <> '' THEN IF ll_woodcodeflag <> 0 OR ll_value = 0 THEN dw_1.Modify(ls_woodcode+".dddw.allowedit = no") ELSE dw_1.Modify(ls_woodcode+".dddw.allowedit = yes") END IF END IF IF ls_pcode <> '' THEN IF ll_pcodeflag <> 0 OR ll_value = 0 THEN dw_1.Modify(ls_pcode+".dddw.allowedit = no") ELSE dw_1.Modify(ls_pcode+".dddw.allowedit = yes") END IF END IF end event event open; wf_movetocenter() dw_1.SetTransObject(sqlca) dw_2.SetTransObject(sqlca) s_mrp = Message.PowerObjectParm Int li_if_allowuse,li_if_date string ls_arr[] li_if_allowuse = s_mrp.if_allowuse li_if_date = s_mrp.if_date st_dscrp.Text = '销售订单明细备注:'+s_mrp.dscrp i_taskid = s_mrp.taskid i_scid = s_mrp.scid i_printid = s_mrp.printid dw_1.Retrieve(i_scid,i_taskid,i_printid) ls_arr[1] = string(i_scid) + '_' + string(i_taskid) + '_' + string(i_printid) dw_2.Retrieve(ls_arr) end event event resize;ln_bar.EndX = THIS.Width ln_bar2.EndX = THIS.Width r_bar.Width = THIS.Width ln_1.EndX = THIS.Width ln_2.EndX = THIS.Width ln_3.EndX = THIS.Width ln_4.EndX = THIS.Width dw_2.Width = THIS.Width - dw_2.X - 40 dw_1.Y = dw_2.Y + dw_2.height + 5 dw_1.Width = THIS.Width - dw_1.X - 40 dw_1.Height = THIS.Height - dw_1.Y - 150 st_dscrp.Width = THIS.Width - st_dscrp.X - 40 end event on w_order_ml_mod_tree.create int iCurrent call super::create this.st_dscrp=create st_dscrp this.dw_2=create dw_2 this.cb_save=create cb_save this.cb_cancel_scll=create cb_cancel_scll this.cb_add=create cb_add this.cb_del=create cb_del this.cb_func2=create cb_func2 this.cb_3=create cb_3 iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.st_dscrp this.Control[iCurrent+2]=this.dw_2 this.Control[iCurrent+3]=this.cb_save this.Control[iCurrent+4]=this.cb_cancel_scll this.Control[iCurrent+5]=this.cb_add this.Control[iCurrent+6]=this.cb_del this.Control[iCurrent+7]=this.cb_func2 this.Control[iCurrent+8]=this.cb_3 end on on w_order_ml_mod_tree.destroy call super::destroy destroy(this.st_dscrp) destroy(this.dw_2) destroy(this.cb_save) destroy(this.cb_cancel_scll) destroy(this.cb_add) destroy(this.cb_del) destroy(this.cb_func2) destroy(this.cb_3) end on event ue_before_open;// end event type cb_func from w_publ_easyq`cb_func within w_order_ml_mod_tree integer x = 1454 end type type cb_exit from w_publ_easyq`cb_exit within w_order_ml_mod_tree integer x = 2418 end type type cb_2 from w_publ_easyq`cb_2 within w_order_ml_mod_tree integer x = 2117 end type event cb_2::clicked; IF NOT f_power_ind(1504) THEN //主计划窗口设置 MessageBox(publ_operator,'你没有使用权限!') RETURN END IF IF DW_1.RowCount() >= 1 THEN cbx_YL.Checked = TRUE cbx_YL.TriggerEvent(Clicked!) OpenWithParm(w_sys_printpagesetting,DW_1) ELSE MessageBox('NO','数据窗口中没有任何记录,不能打印!') END IF IF Trim(DW_1.DataObject) = '' THEN RETURN f_SetProfileString (sys_empid,DW_1.DataObject, "MARGIN_TOP", String(DW_1.Object.DataWindow.Print.MARGIN.Top)) f_SetProfileString (sys_empid,DW_1.DataObject, "MARGIN_LEFT", String(DW_1.Object.DataWindow.Print.MARGIN.Left)) f_SetProfileString (sys_empid,DW_1.DataObject, "MARGIN_BOTTOM", String(DW_1.Object.DataWindow.Print.MARGIN.BOTTOM)) f_SetProfileString (sys_empid,DW_1.DataObject, "MARGIN_RIGHT", String(DW_1.Object.DataWindow.Print.MARGIN.Right)) end event type cb_psetup from w_publ_easyq`cb_psetup within w_order_ml_mod_tree integer x = 1861 end type type cb_1 from w_publ_easyq`cb_1 within w_order_ml_mod_tree boolean visible = false end type type st_3 from w_publ_easyq`st_3 within w_order_ml_mod_tree boolean visible = false end type type st_4 from w_publ_easyq`st_4 within w_order_ml_mod_tree boolean visible = false end type type em_1 from w_publ_easyq`em_1 within w_order_ml_mod_tree boolean visible = false end type type em_2 from w_publ_easyq`em_2 within w_order_ml_mod_tree boolean visible = false end type type ddlb_yl from w_publ_easyq`ddlb_yl within w_order_ml_mod_tree integer x = 2939 end type type cbx_yl from w_publ_easyq`cbx_yl within w_order_ml_mod_tree integer x = 2720 end type type dw_1 from w_publ_easyq`dw_1 within w_order_ml_mod_tree event ue_dwndropdown pbm_dwndropdown integer y = 652 integer height = 1580 string dataobject = "dw_order_ml_mod_tree" end type event dw_1::ue_dwndropdown;//IF NOT dw_edit_mode THEN RETURN String ls_col_pz,ls_col_mtrlid String ls_pz_ch String ls_col_value String ls_data_type Long ll_row,ll_mtrlid s_pzwin_open arg_s_win ll_row = THIS.GetRow() IF ll_row > 0 THEN ls_col_mtrlid = THIS.Describe("#1.Name") IF NOT Pos(Lower(ls_col_mtrlid),'mtrlid') > 0 THEN RETURN ll_mtrlid = THIS.GetItemNumber(ll_row,ls_col_mtrlid) ls_col_pz = THIS.GetColumnName( ) ls_data_type = this.Describe(ls_col_pz+".ColType") IF Pos(Lower(ls_data_type),"char") > 0 THEN ls_col_value = THIS.GetItemString(ll_row,ls_col_pz) END IF arg_s_win.arg_x = THIS.X + THIS.PointerX() + PARENT.X arg_s_win.arg_y = THIS.Y + THIS.PointerY() + PARENT.Y arg_s_win.arg_col = ls_col_pz arg_s_win.arg_mtrlid = ll_mtrlid arg_s_win.arg_col_value = ls_col_value ls_pz_ch = f_mtrl_pz(arg_s_win) IF ls_pz_ch = '' THEN RETURN THIS.SetItem(ll_row,ls_col_pz,ls_pz_ch) END IF end event event dw_1::clicked;call super::clicked;THIS.AcceptText() IF NOT if_cmpl and row <> ll_unlock_row THEN MessageBox('提示','系统处理解锁状态,请先计算') THIS.SelectRow(0,FALSE) THIS.SetRow(ll_unlock_row) THIS.SelectRow(ll_unlock_row,TRUE) RETURN END IF IF row > 0 THEN THIS.SelectRow(0,FALSE) THIS.SetRow(row) THIS.SelectRow(row,TRUE) END IF end event event dw_1::itemchanged;call super::itemchanged;THIS.AcceptText() CHOOSE CASE dwo.Name CASE 'u_ordermtrl_plantype' IF THIS.Object.u_ordermtrl_tree_plantype[row] = 2 THEN THIS.Object.u_ordermtrl_tree_produce_wrkgrpid[row] = 0 END IF CASE 'u_ordermtrl_scid' Long ll_produce_wrkgrpid,ll_scid_wrkgrpid,ll_produce_scid ll_produce_wrkgrpid = THIS.Object.u_ordermtrl_tree_produce_wrkgrpid[row] ll_produce_scid = THIS.Object.u_ordermtrl_tree_produce_scid[row] SELECT scid INTO :ll_scid_wrkgrpid FROM u_sc_wkp Where wrkgrpid = :ll_produce_wrkgrpid; IF sqlca.SQLCode <> 0 THEN ll_scid_wrkgrpid = 0 IF ll_scid_wrkgrpid <> ll_produce_scid THEN THIS.Object.u_ordermtrl_tree_produce_wrkgrpid[row] = 0 END IF CASE 'u_orderrqmtrl_tree_truerqqty' This.Object.u_orderrqmtrl_tree_rqqty[row] = this.Object.u_orderrqmtrl_tree_truerqqty[row] END CHOOSE end event event dw_1::rbuttondown;call super::rbuttondown;Long ll_row,ll_column ll_row = THIS.GetRow() ll_column = THIS.GetColumn() IF ll_row <= 0 THEN RETURN IF ll_column <= 0 THEN RETURN IF Left( THIS.Describe( dwo.Name+ ".coltype"),4) = 'date' THEN s_calender_arg s_calender s_calender.PointerX = xpos s_calender.PointerY = ypos s_calender.X = THIS.X + PARENT.X s_calender.Y = THIS.Y + PARENT.Y OpenWithParm(w_calendar,s_calender) THIS.SetItem(ll_row,ll_column,id_date_selected) END IF end event event dw_1::rowfocuschanged;call super::rowfocuschanged;THIS.AcceptText() IF NOT if_cmpl AND currentrow <> ll_unlock_row THEN MessageBox('提示','系统处理解锁状态,请先计算') THIS.SelectRow(0,FALSE) THIS.SetRow(ll_unlock_row) THIS.SelectRow(ll_unlock_row,TRUE) RETURN END IF IF currentrow > 0 THEN THIS.SelectRow(0,FALSE) THIS.SetRow(currentrow) THIS.SelectRow(currentrow,TRUE) parent.triggerevent('ue_allowedit') END IF end event type sle_mtrl from w_publ_easyq`sle_mtrl within w_order_ml_mod_tree end type type sle_cust from w_publ_easyq`sle_cust within w_order_ml_mod_tree end type type st_mtrl from w_publ_easyq`st_mtrl within w_order_ml_mod_tree end type type st_cust from w_publ_easyq`st_cust within w_order_ml_mod_tree end type type cbx_loginretr from w_publ_easyq`cbx_loginretr within w_order_ml_mod_tree end type type pb_em1 from w_publ_easyq`pb_em1 within w_order_ml_mod_tree boolean visible = false end type type pb_em2 from w_publ_easyq`pb_em2 within w_order_ml_mod_tree boolean visible = false end type type pb_2 from w_publ_easyq`pb_2 within w_order_ml_mod_tree boolean visible = false end type type cb_help from w_publ_easyq`cb_help within w_order_ml_mod_tree integer x = 2267 end type type cb_copyself from w_publ_easyq`cb_copyself within w_order_ml_mod_tree integer x = 1605 end type type gb_1 from w_publ_easyq`gb_1 within w_order_ml_mod_tree end type type ln_bar from w_publ_easyq`ln_bar within w_order_ml_mod_tree end type type ln_bar2 from w_publ_easyq`ln_bar2 within w_order_ml_mod_tree end type type r_bar from w_publ_easyq`r_bar within w_order_ml_mod_tree integer x = 2405 end type type ln_1 from w_publ_easyq`ln_1 within w_order_ml_mod_tree integer beginy = 280 integer endy = 280 end type type ln_2 from w_publ_easyq`ln_2 within w_order_ml_mod_tree integer beginy = 284 integer endy = 284 end type type ln_3 from w_publ_easyq`ln_3 within w_order_ml_mod_tree end type type ln_4 from w_publ_easyq`ln_4 within w_order_ml_mod_tree end type type st_dscrp from statictext within w_order_ml_mod_tree integer x = 23 integer y = 200 integer width = 3543 integer height = 56 boolean bringtotop = true integer textsize = -9 integer weight = 700 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 16711680 long backcolor = 134217739 string text = "销售订单备注:" boolean focusrectangle = false end type type dw_2 from u_dw_rbtnfilter within w_order_ml_mod_tree integer y = 296 integer width = 3543 integer height = 344 integer taborder = 50 boolean bringtotop = true string dataobject = "dw_order_ml_mod_taskmx_bat" boolean hscrollbar = true boolean vscrollbar = true boolean resizable = true boolean hsplitscroll = true boolean rbutton_filter_use = true boolean rbutton_setposition_use = true boolean titleclick_sort_use = true end type event resize;call super::resize;parent.triggerevent("resize") end event type cb_save from uo_imflatbutton within w_order_ml_mod_tree integer width = 165 integer height = 164 integer taborder = 10 boolean bringtotop = true string text = "保存" string normalpicname = "save.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;Long ll_i,ch,ch_tree,ch_scll String arg_msg s_order_ml_rqmtrl s_mtrl,s_mtrl_tree,s_mtrl_scll dw_1.AcceptText() IF dw_1.RowCount() <= 0 THEN MessageBox('提示','没有可保存的数据') RETURN END IF FOR ll_i = 1 TO dw_1.RowCount() IF dw_1.Object.u_orderrqmtrl_tree_ifmainmtrlid[ll_i] = 1 THEN CONTINUE; if dw_1.Object.u_orderrqmtrl_tree_wrkgrpid[ll_i] = 0 then MessageBox('提示', '第'+string(ll_i)+'行,请选择领用工组') return end if IF dw_1.Object.dstrqty[ll_i] = 0 AND dw_1.Object.consignedqty[ll_i] = 0 THEN ch_tree++ s_mtrl_tree.taskid[ch_tree] = i_taskid s_mtrl_tree.printid[ch_tree] = i_printid s_mtrl_tree.scid[ch_tree] = i_scid s_mtrl_tree.mtrlid[ch_tree] = dw_1.Object.u_OrderRqMtrl_tree_mtrlid[ll_i] s_mtrl_tree.ifmainmtrlid[ch_tree] = dw_1.Object.u_orderrqmtrl_tree_ifmainmtrlid[ll_i] s_mtrl_tree.plantype[ch_tree] = dw_1.Object.u_OrderRqMtrl_tree_plantype[ll_i] s_mtrl_tree.qty[ch_tree] = dw_1.Object.u_OrderRqMtrl_tree_rqqty[ll_i] s_mtrl_tree.cmplqty[ch_tree] = dw_1.Object.u_OrderRqMtrl_tree_truerqqty[ll_i] s_mtrl_tree.mqty[ch_tree] = dw_1.Object.u_OrderRqMtrl_tree_mqty[ll_i] s_mtrl_tree.bqty[ch_tree] = dw_1.Object.u_OrderRqMtrl_tree_bqty[ll_i] s_mtrl_tree.wqty[ch_tree] = dw_1.Object.u_OrderRqMtrl_tree_wqty[ll_i] s_mtrl_tree.pqty[ch_tree] = dw_1.Object.u_OrderRqMtrl_tree_pqty[ll_i] s_mtrl_tree.produce_scid[ch_tree] = dw_1.Object.u_OrderRqMtrl_tree_produce_scid[ll_i] s_mtrl_tree.produce_wrkgrpid[ch_tree] = dw_1.Object.u_OrderRqMtrl_tree_produce_wrkgrpid[ll_i] s_mtrl_tree.wrkgrpid_scll[ch_tree] = dw_1.Object.u_OrderRqMtrl_tree_wrkgrpid[ll_i] s_mtrl_tree.lp[ch_tree] = dw_1.Object.u_OrderRqMtrl_tree_lp[ll_i] s_mtrl_tree.status[ch_tree] = dw_1.Object.u_OrderRqMtrl_tree_status[ll_i] s_mtrl_tree.woodcode[ch_tree] = dw_1.Object.u_OrderRqMtrl_tree_woodcode[ll_i] s_mtrl_tree.pcode[ch_tree] = dw_1.Object.u_OrderRqMtrl_tree_pcode[ll_i] s_mtrl_tree.pmtrlid[ch_tree] = dw_1.Object.u_OrderRqMtrl_tree_pmtrlid[ll_i] s_mtrl_tree.ifchanged[ch_tree] = dw_1.Object.u_OrderRqMtrl_tree_ifchanged[ll_i] s_mtrl_tree.pfgroup[ch_tree] = dw_1.Object.u_OrderRqMtrl_tree_pfgroup[ll_i] s_mtrl_tree.plancode[ch_tree] = dw_1.Object.u_orderrqmtrl_tree_plancode[ll_i] s_mtrl_tree.mxdscrp[ch_tree] = dw_1.Object.u_orderrqmtrl_tree_mxdscrp[ll_i] s_mtrl_tree.promode[ch_tree] = dw_1.Object.u_orderrqmtrl_tree_promode[ll_i] s_mtrl_tree.pfgroupmode[ch_tree] = dw_1.Object.u_orderrqmtrl_tree_pfgroupmode[ll_i] s_mtrl_tree.pfklmode[ch_tree] = dw_1.Object.u_orderrqmtrl_tree_pfklmode[ll_i] s_mtrl_tree.pfgroupqty[ch_tree] = dw_1.Object.u_orderrqmtrl_tree_pfgroupqty[ll_i] END IF IF dw_1.Object.u_OrderRqMtrl_tree_rqqty[ll_i] > 0 AND dw_1.Object.consignedqty[ll_i] = 0 THEN ch++ s_mtrl.taskid[ch] = i_taskid s_mtrl.printid[ch] = i_printid s_mtrl.scid[ch] = i_scid s_mtrl.mtrlid[ch] = dw_1.Object.u_OrderRqMtrl_tree_mtrlid[ll_i] s_mtrl.ifmainmtrlid[ch] = dw_1.Object.u_orderrqmtrl_tree_ifmainmtrlid[ll_i] s_mtrl.plantype[ch] = dw_1.Object.u_OrderRqMtrl_tree_plantype[ll_i] s_mtrl.qty[ch] = dw_1.Object.u_OrderRqMtrl_tree_rqqty[ll_i] s_mtrl.cmplqty[ch] = dw_1.Object.u_OrderRqMtrl_tree_truerqqty[ll_i] s_mtrl.mqty[ch] = dw_1.Object.u_OrderRqMtrl_tree_mqty[ll_i] s_mtrl.bqty[ch] = dw_1.Object.u_OrderRqMtrl_tree_bqty[ll_i] s_mtrl.wqty[ch] = dw_1.Object.u_OrderRqMtrl_tree_wqty[ll_i] s_mtrl.pqty[ch] = dw_1.Object.u_OrderRqMtrl_tree_pqty[ll_i] s_mtrl.produce_scid[ch] = dw_1.Object.u_OrderRqMtrl_tree_produce_scid[ll_i] s_mtrl.produce_wrkgrpid[ch] = dw_1.Object.u_OrderRqMtrl_tree_produce_wrkgrpid[ll_i] s_mtrl.wrkgrpid_scll[ch] = dw_1.Object.u_OrderRqMtrl_tree_wrkgrpid[ll_i] s_mtrl.lp[ch] = dw_1.Object.u_OrderRqMtrl_tree_lp[ll_i] s_mtrl.status[ch] = dw_1.Object.u_OrderRqMtrl_tree_status[ll_i] s_mtrl.woodcode[ch] = dw_1.Object.u_OrderRqMtrl_tree_woodcode[ll_i] s_mtrl.pcode[ch] = dw_1.Object.u_OrderRqMtrl_tree_pcode[ll_i] s_mtrl.pmtrlid[ch] = dw_1.Object.u_OrderRqMtrl_tree_pmtrlid[ll_i] s_mtrl.ifchanged[ch] = dw_1.Object.u_OrderRqMtrl_tree_ifchanged[ll_i] s_mtrl.plancode[ch] = dw_1.Object.u_orderrqmtrl_tree_plancode[ll_i] s_mtrl.mxdscrp[ch] = dw_1.Object.u_orderrqmtrl_tree_mxdscrp[ll_i] s_mtrl.promode[ch] = dw_1.Object.u_orderrqmtrl_tree_promode[ll_i] s_mtrl.pfgroupmode[ch] = dw_1.Object.u_orderrqmtrl_tree_pfgroupmode[ll_i] s_mtrl.pfklmode[ch] = dw_1.Object.u_orderrqmtrl_tree_pfklmode[ll_i] s_mtrl.pfgroupqty[ch] = dw_1.Object.u_orderrqmtrl_tree_pfgroupqty[ll_i] END IF IF dw_1.Object.u_OrderRqMtrl_tree_truerqqty[ll_i] > 0 AND dw_1.Object.dstrqty[ll_i] = 0 THEN ch_scll++ s_mtrl_scll.taskid[ch_scll] = i_taskid s_mtrl_scll.printid[ch_scll] = i_printid s_mtrl_scll.scid[ch_scll] = i_scid s_mtrl_scll.mtrlid[ch_scll] = dw_1.Object.u_OrderRqMtrl_tree_mtrlid[ll_i] s_mtrl_scll.ifmainmtrlid[ch_scll] = dw_1.Object.u_orderrqmtrl_tree_ifmainmtrlid[ll_i] s_mtrl_scll.plantype[ch_scll] = dw_1.Object.u_OrderRqMtrl_tree_plantype[ll_i] s_mtrl_scll.qty[ch_scll] = dw_1.Object.u_OrderRqMtrl_tree_rqqty[ll_i] s_mtrl_scll.cmplqty[ch_scll] = dw_1.Object.u_OrderRqMtrl_tree_truerqqty[ll_i] s_mtrl_scll.mqty[ch_scll] = dw_1.Object.u_OrderRqMtrl_tree_mqty[ll_i] s_mtrl_scll.bqty[ch_scll] = dw_1.Object.u_OrderRqMtrl_tree_bqty[ll_i] s_mtrl_scll.wqty[ch_scll] = dw_1.Object.u_OrderRqMtrl_tree_wqty[ll_i] s_mtrl_scll.pqty[ch_scll] = dw_1.Object.u_OrderRqMtrl_tree_pqty[ll_i] s_mtrl_scll.produce_scid[ch_scll] = dw_1.Object.u_OrderRqMtrl_tree_produce_scid[ll_i] s_mtrl_scll.produce_wrkgrpid[ch_scll] = dw_1.Object.u_OrderRqMtrl_tree_produce_wrkgrpid[ll_i] s_mtrl_scll.wrkgrpid_scll[ch_scll] = dw_1.Object.u_OrderRqMtrl_tree_wrkgrpid[ll_i] s_mtrl_scll.lp[ch_scll] = dw_1.Object.u_OrderRqMtrl_tree_lp[ll_i] s_mtrl_scll.status[ch_scll] = dw_1.Object.u_OrderRqMtrl_tree_status[ll_i] s_mtrl_scll.woodcode[ch_scll] = dw_1.Object.u_OrderRqMtrl_tree_woodcode[ll_i] s_mtrl_scll.pcode[ch_scll] = dw_1.Object.u_OrderRqMtrl_tree_pcode[ll_i] s_mtrl_scll.pmtrlid[ch_scll] = dw_1.Object.u_OrderRqMtrl_tree_pmtrlid[ll_i] s_mtrl_scll.ifchanged[ch_scll] = dw_1.Object.u_OrderRqMtrl_tree_ifchanged[ll_i] s_mtrl_scll.plancode[ch_scll] = dw_1.Object.u_orderrqmtrl_tree_plancode[ll_i] s_mtrl_scll.mxdscrp[ch_scll] = dw_1.Object.u_orderrqmtrl_tree_mxdscrp[ll_i] s_mtrl_scll.promode[ch_scll] = dw_1.Object.u_orderrqmtrl_tree_promode[ll_i] s_mtrl_scll.pfgroupmode[ch_scll] = dw_1.Object.u_orderrqmtrl_tree_pfgroupmode[ll_i] s_mtrl_scll.pfklmode[ch_scll] = dw_1.Object.u_orderrqmtrl_tree_pfklmode[ll_i] s_mtrl_scll.pfgroupqty[ch_scll] = dw_1.Object.u_orderrqmtrl_tree_pfgroupqty[ll_i] END IF NEXT uo_order_ml_mrp uo_ml_mrp uo_ml_mrp = CREATE uo_order_ml_mrp IF uo_ml_mrp.uof_add_rqmtrl_other(s_mtrl,FALSE,arg_msg) = 0 THEN MessageBox('提示','保存物料需求表失败,'+arg_msg) RETURN END IF IF uo_ml_mrp.uof_add_rqmtrl_tree_other(s_mtrl_tree,FALSE,arg_msg) = 0 THEN MessageBox('提示','保存物料需求结构表失败,'+arg_msg) RETURN END IF IF uo_ml_mrp.uof_add_rqmtrl_scll_other(s_mtrl_scll,TRUE,arg_msg) = 0 THEN MessageBox('提示','保存用料明细表失败,'+arg_msg) RETURN END IF DESTROY uo_ml_mrp MessageBox('提示','保存成功') Close(PARENT) end event type cb_cancel_scll from uo_imflatbutton within w_order_ml_mod_tree integer x = 165 integer width = 256 integer height = 164 integer taborder = 50 boolean bringtotop = true string text = "取消领料" string normalpicname = "mx.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;Long ll_row dw_1.AcceptText() ll_row = dw_1.GetRow() IF ll_row <= 0 THEN MessageBox('提示','请选择目标物料') RETURN END IF IF dw_1.Object.u_OrderRqMtrl_tree_ifmainmtrlid[ll_row] = 1 THEN MessageBox('提示','生产计划物料不能操作') RETURN END IF IF dw_1.Object.u_orderrqmtrl_tree_truerqqty[ll_row] <> 0 THEN MessageBox('提示','物料有需求数,不能取消领料') RETURN END IF IF dw_1.Object.u_orderrqmtrl_tree_rqqty[ll_row] = 0 THEN MessageBox('提示','物料没有领料数,不能取消领料') RETURN END IF dw_1.Object.u_orderrqmtrl_tree_rqqty[ll_row] = 0 dw_1.Object.u_orderrqmtrl_tree_ifchanged[ll_row] = 1 end event type cb_add from uo_imflatbutton within w_order_ml_mod_tree integer x = 421 integer width = 256 integer height = 164 integer taborder = 60 boolean bringtotop = true string text = "增加物料" string normalpicname = "new.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;Open(w_order_ml_mod_tree_mtrl) s_mtrldef_array s_inscust s_inscust = Message.PowerObjectParm uo_order_ml_mrp uo_ml_mrp uo_ml_mrp = CREATE uo_order_ml_mrp String arg_msg Long child_row,ls_j child_row = dw_1.GetRow() FOR ls_j = 1 TO UpperBound(s_inscust.mtrlid) IF s_inscust.mtrlid[ls_j] > 0 THEN //正常返回值则可以取以下值 IF dw_1.GetRow() > 0 THEN IF dw_1.Object.u_orderrqmtrl_tree_mtrlid[child_row] <> 0 THEN child_row = dw_1.InsertRow (0) ELSE child_row = dw_1.GetRow() END IF ELSE child_row = dw_1.InsertRow (0) END IF dw_1.Object.u_orderrqmtrl_tree_mtrlid[child_row] = s_inscust.mtrlid[ls_j] dw_1.Object.u_mtrldef_mtrlcode[child_row] = s_inscust.mtrlcode[ls_j] dw_1.Object.u_mtrldef_mtrlname[child_row] = s_inscust.mtrlname[ls_j] dw_1.Object.u_mtrldef_mtrlmode[child_row] = s_inscust.mtrlmode[ls_j] dw_1.Object.u_mtrldef_unit[child_row] = s_inscust.unit[ls_j] dw_1.Object.u_mtrldef_mtrltype[child_row] = s_inscust.mtrltype[ls_j] dw_1.Object.u_mtrldef_mtrlprp[child_row] = s_inscust.mtrlprp[ls_j] dw_1.Object.u_orderrqmtrl_tree_plantype[child_row] = 0 dw_1.Object.u_mtrldef_mtrlorigin[child_row] = s_inscust.mtrlorigin[ls_j] dw_1.Object.u_orderrqmtrl_tree_plantype[child_row] = s_inscust.mtrlorigin[ls_j] dw_1.Object.u_OrderRqMtrl_tree_status[child_row] = s_inscust.status[ls_j] dw_1.Object.u_OrderRqMtrl_tree_woodcode[child_row] = s_inscust.woodcode[ls_j] dw_1.Object.u_OrderRqMtrl_tree_pcode[child_row] = s_inscust.pcode[ls_j] dw_1.Object.u_orderrqmtrl_tree_lp[child_row] = 1 dw_1.Object.dstrqty[child_row] = 0 dw_1.Object.consignedqty [child_row] = 0 dw_1.Object.u_orderrqmtrl_tree_pmtrlid[child_row] = dw_1.Object.u_orderrqmtrl_tree_pmtrlid[1] //查询可用数 Decimal ld_bqty, ld_wqty, ld_mqty, ld_pqty, ld_otherrqqty IF uo_ml_mrp.uof_get_qty(1,i_scid,i_taskid,i_printid,s_inscust.mtrlid[ls_j],& s_inscust.status[ls_j],s_inscust.woodcode[ls_j],s_inscust.pcode[ls_j],ld_bqty,arg_msg) = 1 THEN dw_1.Object.u_orderrqmtrl_tree_bqty[child_row] = ld_bqty ELSE ld_bqty = 0 END IF IF uo_ml_mrp.uof_get_qty(3,i_scid,i_taskid,i_printid,s_inscust.mtrlid[ls_j],& s_inscust.status[ls_j],s_inscust.woodcode[ls_j],s_inscust.pcode[ls_j],ld_wqty,arg_msg) = 1 THEN dw_1.Object.u_orderrqmtrl_tree_wqty[child_row] = ld_wqty ELSE ld_wqty = 0 END IF IF uo_ml_mrp.uof_get_qty(4,i_scid,i_taskid,i_printid,s_inscust.mtrlid[ls_j],& s_inscust.status[ls_j],s_inscust.woodcode[ls_j],s_inscust.pcode[ls_j],ld_mqty,arg_msg) = 1 THEN dw_1.Object.u_orderrqmtrl_tree_mqty[child_row] = ld_mqty ELSE ld_mqty = 0 END IF dw_1.Object.ckwareqty[child_row] = ld_mqty + ld_bqty + ld_wqty + ld_pqty - ld_otherrqqty END IF NEXT DESTROY uo_ml_mrp end event type cb_del from uo_imflatbutton within w_order_ml_mod_tree integer x = 942 integer width = 256 integer height = 164 integer taborder = 70 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;Long ll_row dw_1.AcceptText() ll_row = dw_1.GetRow() IF ll_row <= 0 THEN MessageBox('提示','请选择目标物料') RETURN END IF IF dw_1.Object.dstrqty[ll_row] > 0 OR dw_1.Object.consignedqty[ll_row] > 0 THEN RETURN ELSE dw_1.SetRedraw (FALSE) dw_1.DeleteRow (0) dw_1.TriggerEvent (RowFocusChanged!) dw_1.SetRedraw (TRUE) END IF end event type cb_func2 from uo_imflatbutton within w_order_ml_mod_tree integer x = 1198 integer width = 256 integer height = 164 integer taborder = 70 boolean bringtotop = true string text = "明细功能" string normalpicname = "mx.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu string menustr menustr="Text=批设置领用工组~tEvent=ue_p_set_wrkgrpid" menustr=menustr + "|" + "Text=批设置"+sys_option_change_status+"~tEvent=ue_p_set_status" menustr=menustr + "|" + "Text=批设置"+sys_option_change_woodcode+"~tEvent=ue_p_set_woodcode" menustr=menustr + "|" + "Text=批设置"+sys_option_change_pcode+"~tEvent=ue_p_set_pcode" if len(trim(menustr))<>0 then dmPopupMenu = Create m_Dfc_Control_PopupMenu dmPopupMenu.mf_BuildMenu(This, menustr) dmPopupMenu.mf_PopMenu() Destroy dmPopupMenu end if end event type cb_3 from uo_imflatbutton within w_order_ml_mod_tree integer x = 677 integer width = 265 integer height = 164 integer taborder = 70 boolean bringtotop = true string text = "选择库存" string normalpicname = "new.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked; Long ls_j,child_row String arg_msg child_row = dw_1.GetRow() uo_order_ml_mrp uo_ml_mrp uo_ml_mrp = CREATE uo_order_ml_mrp s_edit_index_tran s_tranf8 //传递参数使用 s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行 s_tranf8.arg_pkid = 0 //目标定位PKID (备用) s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选 s_tranf8.b_long = - 1 //选择原料或产品 s_tranf8.d_long = -1 s_tranf8.c_long = -1 OpenWithParm(w_mtrlware_storageid_ch,s_tranf8) //调用 s_mtrlware_noalloc_array S_INSCUST S_INSCUST = Message.PowerObjectParm //接受返回结构 FOR ls_j = 1 To UpperBound(S_INSCUST.mtrlwareid) IF S_INSCUST.mtrlwareid[ls_j] > 0 THEN IF dw_1.GetRow() > 0 THEN IF dw_1.Object.u_orderrqmtrl_tree_mtrlid[child_row] <> 0 THEN child_row = dw_1.InsertRow (0) ELSE child_row = dw_1.GetRow() END IF ELSE child_row = dw_1.InsertRow (0) END IF dw_1.Object.u_orderrqmtrl_tree_mtrlid[child_row] = s_inscust.mtrlid[ls_j] dw_1.Object.u_mtrldef_mtrlcode[child_row] = s_inscust.u_mtrldef_mtrlcode[ls_j] dw_1.Object.u_mtrldef_mtrlname[child_row] = s_inscust.u_mtrldef_mtrlname[ls_j] dw_1.Object.u_mtrldef_mtrlmode[child_row] = s_inscust.u_mtrldef_mtrlmode[ls_j] dw_1.Object.u_mtrldef_unit[child_row] = s_inscust.u_mtrldef_unit[ls_j] dw_1.Object.u_mtrldef_mtrltype[child_row] = s_inscust.u_mtrldef_mtrltype[ls_j] dw_1.Object.u_mtrldef_mtrlprp[child_row] = s_inscust.u_mtrldef_mtrlprp[ls_j] dw_1.Object.u_orderrqmtrl_tree_plantype[child_row] = 0 dw_1.Object.u_mtrldef_mtrlorigin[child_row] = s_inscust.u_mtrldef_mtrlorigin[ls_j] dw_1.Object.u_orderrqmtrl_tree_plantype[child_row] = s_inscust.u_mtrldef_mtrlorigin[ls_j] dw_1.Object.u_OrderRqMtrl_tree_status[child_row] = s_inscust.status[ls_j] dw_1.Object.u_OrderRqMtrl_tree_woodcode[child_row] = s_inscust.woodcode[ls_j] dw_1.Object.u_OrderRqMtrl_tree_pcode[child_row] = s_inscust.pcode[ls_j] dw_1.Object.u_orderrqmtrl_tree_lp[child_row] = 1 dw_1.Object.dstrqty[child_row] = 0 dw_1.Object.consignedqty [child_row] = 0 dw_1.Object.u_orderrqmtrl_tree_pmtrlid[child_row] = dw_1.Object.u_orderrqmtrl_tree_pmtrlid[1] dw_1.Object.u_orderrqmtrl_tree_plancode[child_row] = s_inscust.plancode[ls_j] //查询可用数 Decimal ld_bqty, ld_wqty, ld_mqty, ld_pqty, ld_otherrqqty IF uo_ml_mrp.uof_get_qty(1,i_scid,i_taskid,i_printid,s_inscust.mtrlid[ls_j],& s_inscust.status[ls_j],s_inscust.woodcode[ls_j],s_inscust.pcode[ls_j],ld_bqty,arg_msg) = 1 THEN dw_1.Object.u_orderrqmtrl_tree_bqty[child_row] = ld_bqty ELSE ld_bqty = 0 END IF IF uo_ml_mrp.uof_get_qty(3,i_scid,i_taskid,i_printid,s_inscust.mtrlid[ls_j],& s_inscust.status[ls_j],s_inscust.woodcode[ls_j],s_inscust.pcode[ls_j],ld_wqty,arg_msg) = 1 THEN dw_1.Object.u_orderrqmtrl_tree_wqty[child_row] = ld_wqty ELSE ld_wqty = 0 END IF dw_1.Object.u_orderrqmtrl_tree_mqty[child_row] = s_inscust.noallocqty[ls_j] // IF uo_ml_mrp.uof_get_qty(4,i_scid,i_taskid,i_printid,s_inscust.mtrlid[ls_j],& // s_inscust.status[ls_j],s_inscust.woodcode[ls_j],s_inscust.pcode[ls_j],ld_mqty,arg_msg) = 1 THEN // dw_1.Object.u_orderrqmtrl_tree_mqty[child_row] = ld_mqty // ELSE // ld_mqty = 0 // END IF dw_1.Object.ckwareqty[child_row] = ld_mqty + ld_bqty + ld_wqty + ld_pqty - ld_otherrqqty END IF NEXT end event