$PBExportHeader$w_mtrldef_prdpf_padd.srw forward global type w_mtrldef_prdpf_padd from w_publ_base end type type dw_1 from u_dw_rbtnfilter within w_mtrldef_prdpf_padd end type type st_2 from statictext within w_mtrldef_prdpf_padd end type type st_mtrl from statictext within w_mtrldef_prdpf_padd end type type cb_mod_bcp from uo_imflatbutton within w_mtrldef_prdpf_padd end type type cb_save_bcp from uo_imflatbutton within w_mtrldef_prdpf_padd end type type cb_other_bom from uo_imflatbutton within w_mtrldef_prdpf_padd end type type cb_save from uo_imflatbutton within w_mtrldef_prdpf_padd end type type st_1 from statictext within w_mtrldef_prdpf_padd end type type st_mtrl_pf from statictext within w_mtrldef_prdpf_padd end type type cb_delmx from uo_imflatbutton within w_mtrldef_prdpf_padd end type type mle_log from multilineedit within w_mtrldef_prdpf_padd end type type dw_2 from u_dw_rbtnfilter within w_mtrldef_prdpf_padd end type type cb_addmx_wp from uo_imflatbutton within w_mtrldef_prdpf_padd end type type cb_delmx_wp from uo_imflatbutton within w_mtrldef_prdpf_padd end type type cb_save_wp from uo_imflatbutton within w_mtrldef_prdpf_padd end type type cb_edit_wp from uo_imflatbutton within w_mtrldef_prdpf_padd end type type dw_copy from datawindow within w_mtrldef_prdpf_padd end type type cb_cmpl_pfklmode from commandbutton within w_mtrldef_prdpf_padd end type type st_arg from statictext within w_mtrldef_prdpf_padd end type type em_arg from editmask within w_mtrldef_prdpf_padd end type type cbx_cmp_qty from checkbox within w_mtrldef_prdpf_padd end type type cb_re_mtrl from uo_imflatbutton within w_mtrldef_prdpf_padd end type type cbx_pfgroup from checkbox within w_mtrldef_prdpf_padd end type type cb_import from uo_imflatbutton within w_mtrldef_prdpf_padd end type type cb_1 from uo_imflatbutton within w_mtrldef_prdpf_padd end type type cb_moban from uo_imflatbutton within w_mtrldef_prdpf_padd end type type cb_change from uo_imflatbutton within w_mtrldef_prdpf_padd end type type cb_print from uo_imflatbutton within w_mtrldef_prdpf_padd end type type cbx_save_close from checkbox within w_mtrldef_prdpf_padd end type type rb_1 from radiobutton within w_mtrldef_prdpf_padd end type type rb_2 from radiobutton within w_mtrldef_prdpf_padd end type type dw_3 from u_dw_rbtnfilter within w_mtrldef_prdpf_padd end type type dw_copy_wkp from datawindow within w_mtrldef_prdpf_padd end type type dw_copy_main from datawindow within w_mtrldef_prdpf_padd end type type cb_copy_paste from uo_imflatbutton within w_mtrldef_prdpf_padd end type type cb_bom from uo_imflatbutton within w_mtrldef_prdpf_padd end type type cb_tmp_save from uo_imflatbutton within w_mtrldef_prdpf_padd end type type cb_tmp_read from uo_imflatbutton within w_mtrldef_prdpf_padd end type type cb_templet_ch from uo_imflatbutton within w_mtrldef_prdpf_padd end type type dw_buffer from datawindow within w_mtrldef_prdpf_padd end type type cb_pack from uo_imflatbutton within w_mtrldef_prdpf_padd end type type cb_all_ch from commandbutton within w_mtrldef_prdpf_padd end type type cb_fan_ch from commandbutton within w_mtrldef_prdpf_padd end type type cbx_ifreset from checkbox within w_mtrldef_prdpf_padd end type type cb_autocode from uo_imflatbutton within w_mtrldef_prdpf_padd end type type cbx_wp_pack from checkbox within w_mtrldef_prdpf_padd end type type cb_2 from uo_imflatbutton within w_mtrldef_prdpf_padd end type type cb_fj_edit from uo_imflatbutton within w_mtrldef_prdpf_padd end type type cbx_wp_add from checkbox within w_mtrldef_prdpf_padd end type type cb_old_to_new from commandbutton within w_mtrldef_prdpf_padd end type type cb_add_mtrl from uo_imflatbutton within w_mtrldef_prdpf_padd end type type ln_bar from line within w_mtrldef_prdpf_padd end type type ln_bar2 from line within w_mtrldef_prdpf_padd end type type r_bar from rectangle within w_mtrldef_prdpf_padd end type type ln_7 from line within w_mtrldef_prdpf_padd end type type ln_8 from line within w_mtrldef_prdpf_padd end type type ln_1 from line within w_mtrldef_prdpf_padd end type type ln_2 from line within w_mtrldef_prdpf_padd end type type ln_3 from line within w_mtrldef_prdpf_padd end type type ln_4 from line within w_mtrldef_prdpf_padd end type type ln_5 from line within w_mtrldef_prdpf_padd end type type ln_6 from line within w_mtrldef_prdpf_padd end type type ln_9 from line within w_mtrldef_prdpf_padd end type type ln_10 from line within w_mtrldef_prdpf_padd end type type ln_11 from line within w_mtrldef_prdpf_padd end type type ln_12 from line within w_mtrldef_prdpf_padd end type end forward global type w_mtrldef_prdpf_padd from w_publ_base integer width = 5879 integer height = 2396 string title = "物料清单辅助建立" boolean maxbox = true windowstate windowstate = maximized! boolean clientedge = true event ue_retrieve_workprice ( ) event ue_wp_status ( ) event ue_wp_procode ( ) event ue_cmp_pfklmode ( ) event ue_cmp_pfgroupmode ( ) event ue_allowedit ( ) event ue_import_xls ( ) event ue_import_xls_2 ( ) event ue_import_xls_3 ( ) event user_key ( ) event ue_add_same ( ) event ue_add_next ( ) event ue_viewprint_dy ( ) event ue_viewprint_gy ( ) event ue_viewprint_tree ( ) event ue_viewprint_yl ( ) event ue_viewprint_yl_wrk ( ) event ue_retrieve_wkp ( ) event ue_gydscrp ( ) event ue_copy_mx ( ) event ue_paste_mx ( ) event ue_copy_mx_this ( ) event ue_paste_mx_same ( ) event ue_templet_ch ( ) event ue_wp_u_workqtystr ( ) event ue_wp_workqtystr ( ) event ue_wp_u_pricestr ( ) event ue_wp_pricestr ( ) event ue_import_xls_4 ( ) event ue_import_xls_5 ( ) event ue_import_xls_6 ( ) event ue_cmp_packinfo ( ) event ue_old_to_new ( ) event ue_import_xls_7 ( ) event ue_del_ch ( ) event ue_del_this ( ) event ue_add_up ( ) dw_1 dw_1 st_2 st_2 st_mtrl st_mtrl cb_mod_bcp cb_mod_bcp cb_save_bcp cb_save_bcp cb_other_bom cb_other_bom cb_save cb_save st_1 st_1 st_mtrl_pf st_mtrl_pf cb_delmx cb_delmx mle_log mle_log dw_2 dw_2 cb_addmx_wp cb_addmx_wp cb_delmx_wp cb_delmx_wp cb_save_wp cb_save_wp cb_edit_wp cb_edit_wp dw_copy dw_copy cb_cmpl_pfklmode cb_cmpl_pfklmode st_arg st_arg em_arg em_arg cbx_cmp_qty cbx_cmp_qty cb_re_mtrl cb_re_mtrl cbx_pfgroup cbx_pfgroup cb_import cb_import cb_1 cb_1 cb_moban cb_moban cb_change cb_change cb_print cb_print cbx_save_close cbx_save_close rb_1 rb_1 rb_2 rb_2 dw_3 dw_3 dw_copy_wkp dw_copy_wkp dw_copy_main dw_copy_main cb_copy_paste cb_copy_paste cb_bom cb_bom cb_tmp_save cb_tmp_save cb_tmp_read cb_tmp_read cb_templet_ch cb_templet_ch dw_buffer dw_buffer cb_pack cb_pack cb_all_ch cb_all_ch cb_fan_ch cb_fan_ch cbx_ifreset cbx_ifreset cb_autocode cb_autocode cbx_wp_pack cbx_wp_pack cb_2 cb_2 cb_fj_edit cb_fj_edit cbx_wp_add cbx_wp_add cb_old_to_new cb_old_to_new cb_add_mtrl cb_add_mtrl ln_bar ln_bar ln_bar2 ln_bar2 r_bar r_bar ln_7 ln_7 ln_8 ln_8 ln_1 ln_1 ln_2 ln_2 ln_3 ln_3 ln_4 ln_4 ln_5 ln_5 ln_6 ln_6 ln_9 ln_9 ln_10 ln_10 ln_11 ln_11 ln_12 ln_12 end type global w_mtrldef_prdpf_padd w_mtrldef_prdpf_padd type variables s_edit_index_tran s_tran Long ins_mtrlid,ins_mtrlid_pf String ins_pfdscrp String ins_pfcode String ins_mtrlcode,ins_mtrlname Boolean ins_ifmod = False Boolean ins_ifmod_wp = False String ins_mtrlcode_ori = '' String ins_mtrlname_ori = '' String ins_mtrlmode_ori = '' String ins_unit_ori = '' String ins_mtrlsectype_ori = '' String ins_zxmtrlmode_ori = '' String ins_usermtrlmode_ori = '' Long ins_mtrltypeid_ori = 0 Long ins_scid_ori = 0 Long ins_dftwrkgrpid_ori = 0 Decimal ins_orderdays_ori = 0 Decimal ins_buydays_ori = 0 Decimal ins_wfjgdays_ori = 0 String ins_mb_mtrlcode = '' uo_mtrldef uo_mtrl uo_mtrl_pf uo_pf uo_workpricetable u_wrkprice Long ins_cnt = 0 Int ins_if_saletask Long ins_scid,ins_taskid,ins_printid Int ins_copy_type = 0 //复制类型 0 - 复制下级 1-复制本级及下级 end variables forward prototypes public function integer wf_face () public function integer wf_checkrand (ref string arg_msg) public function integer wf_save (ref string arg_msg) public function integer wf_addmx (long arg_mtrlid, string arg_pfcode, long arg_lp, decimal arg_qty, ref string arg_msg) public function integer wf_addmx_row (long arg_mtrlid, string arg_pfcode, long arg_lp, long arg_row, decimal arg_qty, ref string arg_msg) public function integer wf_face_wp () public subroutine wf_re_mtrl (integer arg_if_addmx) public function integer wf_cmpprdpf (long arg_mtrlid, string arg_pfcode) public function integer wf_check_wkp (ref string arg_msg) public function integer wf_add_row (long arg_mtrlid, string arg_pfcode, long arg_lp, decimal arg_qty, ref string arg_msg, ref long arg_row) public function integer wf_add_row_null (string arg_mtrlname, long arg_lp, decimal arg_qty, ref string arg_msg, ref long arg_row) public function integer wf_auto_wp (boolean arg_ifwpadd, ref string arg_msg) public function integer wf_addmx_up (long arg_mtrlid, string arg_pfcode, long arg_pmtrlid, long arg_lp, long arg_row, ref string arg_msg) public function integer wf_addmx_next (long arg_mtrlid, string arg_pfcode, long arg_pmtrlid, long arg_lp, long arg_row, ref string arg_msg, decimal arg_qty, decimal arg_pfgroupqty) end prototypes event ue_retrieve_workprice();Long ll_row Long ll_mtrlid Long ll_dftwrkgrpid Long ll_i,ll_j,ll_row_copy String ls_mtrlcode Long ll_mb_mtrlid string ls_wpcode ll_j = 0 ll_row = dw_1.GetRow() IF ll_row <= 0 THEN ll_dftwrkgrpid = 0 ELSE ll_dftwrkgrpid = dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row] END IF //只显未产品默认制造车间相关的工组 datawindowchild childdw dw_2.SetTransObject (sqlca) dw_2.GetChild("wrkgrpid",childdw) childdw.SetTransObject (sqlca) IF childdw.Retrieve(ll_dftwrkgrpid) = 0 THEN childdw.InsertRow(0) END IF ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_row] IF ll_row <= 0 THEN dw_2.Reset() ELSE IF dw_1.Object.ifmod_wp[ll_row] = 0 THEN ll_mtrlid = dw_1.Object.u_prdpf_sonmtrlid[ll_row] ll_mb_mtrlid = dw_1.Object.mb_mtrlid[ll_row] IF ll_mb_mtrlid > 0 THEN ls_wpcode = f_get_dft_wp(ll_mb_mtrlid) dw_2.Retrieve(ll_mb_mtrlid,ls_wpcode) ELSE ls_wpcode = f_get_dft_wp(ll_mtrlid) dw_2.Retrieve(ll_mtrlid,ls_wpcode) END IF ELSE dw_2.setredraw(false) dw_2.Reset() dw_copy.SetFilter("u_mtrldef_mtrlcode = '"+ls_mtrlcode + "'") dw_copy.Filter() FOR ll_i = 1 To dw_copy.RowCount() // ll_row_copy = dw_copy.Find("u_mtrldef_mtrlcode = '"+ls_mtrlcode + "'", ll_i, ll_i) // IF ll_row_copy > 0 THEN // ll_j++ dw_copy.RowsCopy (ll_i,ll_i,Primary!,dw_2,ll_i,Primary!) // END IF NEXT dw_2.setredraw(true) END IF END IF end event event ue_wp_status();IF NOT ins_ifmod_wp THEN RETURN Long uc_row,ll_mtrlid,child_row string ls_status uc_row = dw_1.GetRow() IF uc_row <= 0 THEN MessageBox('系统提示','请先选择产品') RETURN END IF child_row = dw_2.getrow() if child_row <= 0 then MessageBox('系统提示','请选择明细') RETURN END IF dw_1.AcceptText() dw_2.AcceptText() ll_mtrlid = dw_1.Object.u_prdpf_sonmtrlid[uc_row] IF NOT IsValid(w_configure_ch_zj) THEN s_edit_index_tran s_ch_tran s_ch_tran.c_long = ll_mtrlid OpenWithParm(w_configure_ch_zj,s_ch_tran) //调用 ls_status = Message.StringParm //接受返回结构 dw_2.SetRedraw(FALSE) IF len(trim(ls_status)) > 0 THEN if ls_status = '[清空配置]' then ls_status = '' dw_2.Object.u_sc_workprice_status[child_row] = ls_status dw_2.SetFocus() dw_2.SetColumn('dscrp') END IF dw_2.SetRedraw(TRUE) END IF end event event ue_wp_procode();IF NOT ins_ifmod_wp THEN RETURN Long ll_row Long child_row string ls_mtrlcode long ll_mtrlid ll_row = dw_1.GetRow() child_row = dw_2.GetRow() IF ll_row <= 0 THEN MessageBox('系统提示','没有正确的物料内容') RETURN END IF IF dw_1.Object.u_mtrldef_mtrlorigin[ll_row] <> 0 THEN MessageBox('系统提示','只有自制来源的产品及半成品才能编辑工价表明细,请检查') RETURN END IF ls_mtrlcode = dw_1.object.u_mtrldef_mtrlcode[ll_row] s_edit_index_tran s_ch_tran s_ch_tran.if_retrieve_all = TRUE s_ch_tran.work_mode = 1 s_ch_tran.arg_pkid = 0 s_ch_tran.b_long = 0 s_ch_tran.if_select_all = TRUE IF child_row > 0 THEN s_ch_tran.arg_string_code = dw_2.Object.procode[child_row] Long ls_j IF NOT IsValid(w_sc_workprocedure) THEN OpenWithParm(w_sc_workprocedure,s_ch_tran) //调用 s_workprocedure S_INSCUST S_INSCUST = Message.PowerObjectParm //接受返回结构 FOR ls_j = 1 TO UpperBound(S_INSCUST.wrkproid) IF S_INSCUST.wrkproid[ls_j] > 0 THEN //正常返回值则可以取以下值 IF dw_2.Find('proid='+String(S_INSCUST.wrkproid[ls_j]),1,dw_2.RowCount()) = 0 THEN IF dw_2.GetRow() > 0 THEN IF dw_2.Object.proid[child_row] <> 0 THEN child_row = dw_2.InsertRow (0) ELSE child_row = dw_2.GetRow() END IF ELSE child_row = dw_2.InsertRow (0) END IF END IF dw_2.Object.proid[child_row] = S_INSCUST.wrkproid[ls_j] dw_2.Object.procode[child_row] = S_INSCUST.wrkprocode[ls_j] dw_2.Object.u_sc_workprice_proname[child_row] = S_INSCUST.wrkproname[ls_j] dw_2.Object.worklevel[child_row] = S_INSCUST.worklevel[ls_j] dw_2.Object.techlevel[child_row] = S_INSCUST.techlevel[ls_j] dw_2.Object.workhour[child_row] = S_INSCUST.workhour[ls_j] dw_2.Object.wrkgrpid[child_row] = S_INSCUST.wrkgrid[ls_j] dw_2.Object.workprice[child_row] = S_INSCUST.workprice[ls_j] dw_2.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode IF child_row > 1 THEN dw_2.Object.proorder[child_row] = dw_2.Object.proorder[child_row - 1] + 1 END IF END IF NEXT dw_2.SetRow(child_row) dw_2.ScrollToRow(child_row) dw_2.SetFocus() IF UpperBound(S_INSCUST.wrkproid) > 0 THEN dw_2.SetColumn("workprice") END IF END IF dw_2.SetRedraw(TRUE) dw_2.SetFocus() end event event ue_cmp_pfklmode();IF ins_ifmod_wp THEN MessageBox('系统提示','正在编辑工价表,不能执行本操作') RETURN END IF IF ins_ifmod THEN MessageBox('系统提示','正在编辑半成品,不能执行本操作') RETURN END IF Long ll_i,ll_j,ll_k String ls_pfklmode String arg_msg Decimal ld_sonscale dw_1.AcceptText() Long ll_length,j String ls_code,ls_pfklmode_cmpl Decimal ld_pfgroupqty Decimal ld_arg Decimal ld_qty_p Long ll_lp Decimal ld_sonscale_ori ld_arg = Dec(em_arg.Text) IF IsNull(ld_arg) Or ld_arg = 0 THEN MessageBox('系统提示','请输入正确的参数') RETURN END IF dw_1.SetRedraw(False) FOR ll_i = 1 To dw_1.RowCount() ls_pfklmode = Trim(dw_1.Object.u_prdpf_pfklmode[ll_i]) ld_pfgroupqty = dw_1.Object.u_prdpf_pfgroupqty[ll_i] IF dw_1.Object.iflock[ll_i] = 1 THEN CONTINUE IF ls_pfklmode = '' THEN CONTINUE ls_pfklmode_cmpl = ls_pfklmode ll_length = Len(ls_pfklmode_cmpl) ls_pfklmode = '' j = 0 j++ DO WHILE ll_length >= j ls_code = Mid(ls_pfklmode_cmpl,j,1) IF Not Asc(ls_code) > 127 THEN ls_pfklmode += ls_code END IF j++ LOOP IF f_cmpl_pfklmode(ls_pfklmode,ld_sonscale,arg_msg) = 0 THEN dw_1.SetRedraw(True) MessageBox('提示','行:'+String(ll_i)+','+arg_msg) RETURN END IF IF dw_1.Object.lp[ll_i] = 1 THEN ld_qty_p = 1 ELSEIF dw_1.Object.lp[ll_i] > 1 THEN FOR ll_j = ll_i To 1 Step -1 IF dw_1.Object.lp[ll_j] = dw_1.Object.lp[ll_i] - 1 THEN ld_qty_p = dw_1.Object.u_prdpf_sonscale[ll_j] EXIT END IF NEXT END IF IF cbx_cmp_qty.Checked THEN dw_1.Object.u_prdpf_sonscale[ll_i] = Round(ld_sonscale / ld_arg * ld_pfgroupqty * ld_qty_p ,sys_option_produce_dec) ELSE dw_1.Object.u_prdpf_sonscale[ll_i] = Round(ld_sonscale / ld_arg * ld_qty_p,sys_option_produce_dec) END IF dw_1.AcceptText() ll_lp = dw_1.Object.lp[ll_i] ld_sonscale_ori = dw_1.Object.u_prdpf_sonscale_ori[ll_i] ld_sonscale = dw_1.Object.u_prdpf_sonscale[ll_i] FOR ll_k = ll_i + 1 To dw_1.RowCount() IF dw_1.Object.lp[ll_k] <= ll_lp THEN EXIT dw_1.Object.u_prdpf_sonscale[ll_k] = dw_1.Object.u_prdpf_sonscale_ori[ll_k] * (ld_sonscale / ld_sonscale_ori ) NEXT ll_i = ll_k - 1 NEXT dw_1.SetRedraw(True) end event event ue_cmp_pfgroupmode();IF ins_ifmod_wp THEN MessageBox('系统提示','正在编辑工价表,不能执行本操作') RETURN END IF IF ins_ifmod THEN MessageBox('系统提示','正在编辑半成品,不能执行本操作') RETURN END IF Long ll_i,ll_j,ll_k,ll_lp String ls_pfgroupmode String arg_msg Decimal ld_sonscale,ld_sonscale_ori dw_1.AcceptText() Long ll_length,j String ls_code,ls_pfgroupmode_cmpl Decimal ld_pfgroupqty Decimal ld_arg,ld_qty_p ld_arg = Dec(em_arg.Text) IF IsNull(ld_arg) Or ld_arg = 0 THEN MessageBox('系统提示','请输入正确的参数') RETURN END IF dw_1.SetRedraw(False) FOR ll_i = 1 To dw_1.RowCount() ls_pfgroupmode = Trim(dw_1.Object.u_prdpf_pfgroupmode[ll_i]) ld_pfgroupqty = dw_1.Object.u_prdpf_pfgroupqty[ll_i] IF dw_1.Object.iflock[ll_i] = 1 THEN CONTINUE IF ls_pfgroupmode = '' THEN CONTINUE ls_pfgroupmode_cmpl = ls_pfgroupmode ll_length = Len(ls_pfgroupmode_cmpl) ls_pfgroupmode = '' j = 0 j++ DO WHILE ll_length >= j ls_code = Mid(ls_pfgroupmode_cmpl,j,1) IF Not Asc(ls_code) > 127 THEN ls_pfgroupmode += ls_code END IF j++ LOOP IF f_cmpl_pfklmode(ls_pfgroupmode,ld_sonscale,arg_msg) = 0 THEN dw_1.SetRedraw(True) MessageBox('提示','行:'+String(ll_i)+','+arg_msg) RETURN END IF IF dw_1.Object.lp[ll_i] = 1 THEN ld_qty_p = 1 ELSEIF dw_1.Object.lp[ll_i] > 1 THEN FOR ll_j = ll_i To 1 Step -1 IF dw_1.Object.lp[ll_j] = dw_1.Object.lp[ll_i] - 1 THEN ld_qty_p = dw_1.Object.u_prdpf_sonscale[ll_j] EXIT END IF NEXT END IF IF cbx_cmp_qty.Checked THEN dw_1.Object.u_prdpf_sonscale[ll_i] = Round(ld_sonscale / ld_arg * ld_pfgroupqty * ld_qty_p,sys_option_produce_dec) ELSE dw_1.Object.u_prdpf_sonscale[ll_i] = Round(ld_sonscale / ld_arg * ld_qty_p,sys_option_produce_dec) END IF ll_lp = dw_1.Object.lp[ll_i] ld_sonscale_ori = dw_1.Object.u_prdpf_sonscale_ori[ll_i] ld_sonscale = dw_1.Object.u_prdpf_sonscale[ll_i] FOR ll_k = ll_i + 1 To dw_1.RowCount() IF dw_1.Object.lp[ll_k] <= ll_lp THEN EXIT dw_1.Object.u_prdpf_sonscale[ll_k] = dw_1.Object.u_prdpf_sonscale_ori[ll_k] * (ld_sonscale / ld_sonscale_ori ) NEXT ll_i = ll_k - 1 NEXT 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 dw_1.accepttext() 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 ll_value = dw_1.object.u_prdpf_sonmtrlid[ll_row] 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 ue_import_xls();// 导入Excel Int rslt = 1 String arg_msg DataStore ds_col30 ds_col30 = Create DataStore dw_1.SetRedraw(False) ds_col30.DataObject = 'dw_col30' If f_readxls(ds_col30,arg_msg) <> 1 Then rslt = 0 Goto ext End If Long ll_lp Long ll_row Long ll_mtrlid_p String ls_mtrlcode_p String ls_pfcode Long ll_mtrlid String ls_mtrlcode String ls_mtrlname Int li_mtrlprp String ls_mtrlmode String ls_unit String ls_zxmtrlmode String ls_mtrlsectype Int li_statusflag Int li_statustype Int li_woodcodeflag Int li_woodcodetype Int li_pcodeflag Int li_pcodetype String ls_usermtrlmode Int li_Mtrlorigin Long ll_dftwrkgrpid Long ll_scid Long ll_mtrltypeid String ls_wrkGrpName Decimal ld_sonscale Long ll_wrkgrpid_scll Long ll_newrow For ll_row = 2 To ds_col30.RowCount() //第2行开始才是清单 //明细终止标记 If Trim(ds_col30.GetItemString(ll_row,1)) = '' Then Exit ll_lp = Long(Trim(ds_col30.GetItemString(ll_row,1))) ls_mtrlcode_p = Trim(ds_col30.GetItemString(ll_row,3)) ls_mtrlcode = Trim(ds_col30.GetItemString(ll_row,5)) Select mtrlid,dftwrkgrpid,mtrlorigin Into :ll_mtrlid_p,:ll_dftwrkgrpid,:li_mtrlorigin From u_mtrldef Where barcode = :ls_mtrlcode_p; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行父代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText Goto ext End If If li_Mtrlorigin = 0 Then If ll_dftwrkgrpid = 0 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行父代码资料的默认生产车间未设置,请检查' Goto ext Else Select top 1 wrkgrpid Into :ll_wrkgrpid_scll From u_sc_workgroup Where storageid = :ll_dftwrkgrpid Order By wrkgrpcode; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行父代码资料默认生产车间第1工组失败,可能资料未定义' + sqlca.SQLErrText Goto ext End If End If End If If ll_lp = 1 Then If ll_mtrlid_p <> ins_mtrlid Then rslt = 0 arg_msg = '第' + String(ll_row) + '行父代码与当前编辑的产品ID不相符,操作取消' Goto ext End If End If Select mtrlid Into :ll_mtrlid From u_mtrldef Where barcode = :ls_mtrlcode; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行子代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText Goto ext End If ls_pfcode = f_get_dft_pf(ll_mtrlid) If ls_pfcode = '' Then rslt = 0 arg_msg = '第' + String(ll_row) + '行子代码默认清单未定义,请检查' Goto ext End If Next If Not cbx_ifreset.Checked Then dw_1.Reset() wf_re_mtrl(0) End If For ll_row = 2 To ds_col30.RowCount() //明细终止标记 If Trim(ds_col30.GetItemString(ll_row,1)) = '' Then Exit ll_lp = Long(Trim(ds_col30.GetItemString(ll_row,1))) ls_mtrlcode_p = Trim(ds_col30.GetItemString(ll_row,3)) ls_mtrlcode = Trim(ds_col30.GetItemString(ll_row,5)) ld_sonscale = Dec(Trim(ds_col30.GetItemString(ll_row,10))) Select mtrlid,dftwrkgrpid,mtrlorigin Into :ll_mtrlid_p,:ll_dftwrkgrpid,:li_mtrlorigin From u_mtrldef Where barcode = :ls_mtrlcode_p; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行父代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText Goto ext End If If li_Mtrlorigin = 0 Then If ll_dftwrkgrpid = 0 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行父代码资料的默认生产车间未设置,请检查' Goto ext Else Select top 1 wrkgrpid Into :ll_wrkgrpid_scll From u_sc_workgroup Where storageid = :ll_dftwrkgrpid Order By wrkgrpcode; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行父代码资料默认生产车间第1工组失败,可能资料未定义' + sqlca.SQLErrText Goto ext End If End If End If Select u_mtrldef.mtrlid, u_mtrldef.mtrlcode, u_mtrldef.mtrlname, u_mtrldef.mtrlprp, u_mtrldef.mtrlmode, u_mtrldef.unit, u_mtrldef.zxmtrlmode, u_mtrldef.mtrlsectype, u_mtrldef.statusflag, u_mtrldef.statustype, u_mtrldef.woodcodeflag, u_mtrldef.woodcodetype, u_mtrldef.pcodeflag, u_mtrldef.pcodetype, u_mtrldef.usermtrlmode, u_mtrldef.Mtrlorigin, u_mtrldef.dftwrkgrpid, u_mtrldef.scid, u_mtrldef.mtrltypeid, isnull(u_sc_wkp.wrkGrpName,'') Into :ll_mtrlid, :ls_mtrlcode, :ls_mtrlname, :li_mtrlprp, :ls_mtrlmode, :ls_unit, :ls_zxmtrlmode, :ls_mtrlsectype, :li_statusflag, :li_statustype, :li_woodcodeflag, :li_woodcodetype, :li_pcodeflag, :li_pcodetype, :ls_usermtrlmode, :li_Mtrlorigin, :ll_dftwrkgrpid, :ll_scid, :ll_mtrltypeid, :ls_wrkGrpName From u_mtrldef left Outer join u_sc_wkp on u_mtrldef.dftwrkgrpid = u_sc_wkp.wrkgrpid Where u_mtrldef.barcode = :ls_mtrlcode; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行子代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText Goto ext End If ll_newrow = dw_1.InsertRow(0) dw_1.Object.u_mtrldef_mtrlcode[ll_newrow] = ls_mtrlcode dw_1.Object.u_mtrldef_mtrlprp[ll_newrow] = li_mtrlprp dw_1.Object.u_PrdPF_wrkgrpid[ll_newrow] = ll_wrkgrpid_scll dw_1.Object.u_PrdPF_Sonscale[ll_newrow] = ld_sonscale dw_1.Object.u_PrdPF_SonLoss[ll_newrow] = 0 dw_1.Object.u_PrdPF_SonDECLosS[ll_newrow] = 0 dw_1.Object.u_PrdPF_status[ll_newrow] = '' dw_1.Object.u_PrdPF_woodcode[ll_newrow] = '' dw_1.Object.u_PrdPF_pcode[ll_newrow] = '' dw_1.Object.u_PrdPF_Sonahead[ll_newrow] = 0 dw_1.Object.u_mtrldef_mtrlname[ll_newrow] = ls_mtrlname dw_1.Object.u_mtrldef_unit[ll_newrow] = ls_unit dw_1.Object.u_mtrldef_mtrlmode[ll_newrow] = ls_mtrlmode dw_1.Object.u_mtrldef_mtrlsectype[ll_newrow] = ls_mtrlsectype dw_1.Object.u_mtrldef_zxmtrlmode[ll_newrow] = ls_zxmtrlmode dw_1.Object.u_sc_wkp_wrkGrpName[ll_newrow] = ls_wrkGrpName dw_1.Object.u_mtrldef_statusflag[ll_newrow] = li_statusflag dw_1.Object.u_mtrldef_statustype[ll_newrow] = li_statustype dw_1.Object.u_mtrldef_woodcodeflag[ll_newrow] = li_woodcodeflag dw_1.Object.u_mtrldef_woodcodetype[ll_newrow] = li_woodcodetype dw_1.Object.u_mtrldef_pcodeflag[ll_newrow] = li_pcodeflag dw_1.Object.u_mtrldef_pcodetype[ll_newrow] = li_pcodetype dw_1.Object.u_mtrldef_usermtrlmode[ll_newrow] = ls_usermtrlmode dw_1.Object.u_mtrldef_Mtrlorigin[ll_newrow] = li_Mtrlorigin dw_1.Object.lp[ll_newrow] = ll_lp dw_1.Object.iflock[ll_newrow] = 1 dw_1.Object.u_mtrldef_mtrlid[ll_newrow] = ll_mtrlid dw_1.Object.u_prdpf_sonmtrlid[ll_newrow] = ll_mtrlid dw_1.Object.pmtrlid[ll_newrow] = ll_mtrlid_p dw_1.Object.u_prdpf_printid[ll_newrow] = ll_newrow dw_1.Object.u_prdpf_sonpfcode[ll_newrow] = f_get_dft_pf(ll_mtrlid) dw_1.Object.u_prdpf_pfgroup[ll_newrow] = '' dw_1.Object.u_prdpf_pfgroupqty[ll_newrow] = 0 dw_1.Object.u_prdpf_pfgroupmode[ll_newrow] = '' dw_1.Object.u_prdpf_pfklmode[ll_newrow] = '' dw_1.Object.u_prdpf_dscrp[ll_newrow] = '' dw_1.Object.u_prdpf_baseqty[ll_newrow] = 1 dw_1.Object.u_prdpf_scllloss[ll_newrow] = 0 dw_1.Object.u_prdpf_sclldecloss[ll_newrow] = 0 dw_1.Object.u_prdpf_ifover[ll_newrow] = 0 dw_1.Object.u_prdpf_dipztype[ll_newrow] = 0 dw_1.Object.u_prdpf_buyarg[ll_newrow] = 0 dw_1.Object.u_mtrldef_orderdays[ll_newrow] = 0 dw_1.Object.u_mtrldef_buydays[ll_newrow] = 0 dw_1.Object.u_mtrldef_wfjgdays[ll_newrow] = 0 dw_1.Object.u_mtrldef_dftwrkgrpid[ll_newrow] = ll_dftwrkgrpid dw_1.Object.u_mtrldef_scid[ll_newrow] = ll_scid dw_1.Object.u_mtrldef_mtrltypeid[ll_newrow] = ll_mtrltypeid Next ext: Destroy ds_col30 dw_1.SetRedraw(True) If rslt = 0 Then MessageBox('提示',arg_msg) End If end event event ue_import_xls_2();// 导入Excel Int rslt = 1 String arg_msg DataStore ds_col30 ds_col30 = Create DataStore dw_1.SetRedraw(False) ds_col30.DataObject = 'dw_col30' If f_readxls(ds_col30,arg_msg) <> 1 Then rslt = 0 Goto ext End If Long ll_lp Long ll_row,ll_row_new Long cnt Long ll_cnt Long ll_mtrlid_p String ls_mtrlcode_p String ls_pfcode Long ll_mtrlid String ls_mtrlcode String ls_mtrlname Int li_mtrlprp String ls_mtrlmode String ls_unit String ls_zxmtrlmode String ls_mtrlsectype Int li_statusflag Int li_statustype Int li_woodcodeflag Int li_woodcodetype Int li_pcodeflag Int li_pcodetype String ls_usermtrlmode Int li_Mtrlorigin Long ll_dftwrkgrpid Long ll_scid Long ll_mtrltypeid String ls_wrkGrpName Decimal ld_sonscale, lde_qty Long ll_wrkgrpid_scll String ls_col10, ls_col11 Long ll_newrow If Not cbx_ifreset.Checked Then dw_1.Reset() //插入产品 wf_re_mtrl(0) End If For ll_row = 7 To ds_col30.RowCount() //明细终止标记 If Trim(ds_col30.GetItemString(ll_row,8)) = '' Then Exit ls_mtrlcode_p = Trim(ds_col30.GetItemString(ll_row,3)) ls_mtrlname = Trim(ds_col30.GetItemString(ll_row,8)) ld_sonscale = Dec(Trim(ds_col30.GetItemString(ll_row,15))) lde_qty = Dec(Trim(ds_col30.GetItemString(ll_row,7))) ls_col10 = Trim(ds_col30.GetItemString(ll_row,10)) ls_col11 = Trim(ds_col30.GetItemString(ll_row,11)) If lde_qty <> 0 Then ld_sonscale = ld_sonscale / lde_qty End If If ls_mtrlcode_p <> "" Then cnt = 0 Select COUNT(*) Into :cnt From u_mtrldef Where (mtrlcode = :ls_mtrlcode_p) And (mtrlorigin = 0); If sqlca.SQLCode = -1 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlcode_p + ',部件查询资料定义表失败,' + sqlca.SQLErrText Goto ext ElseIf sqlca.SQLCode = 100 Then cnt = 0 End If If cnt > 1 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlcode_p + ',部件资料定义有' + String(cnt) + '条重复记录' Goto ext ElseIf cnt = 1 Then //插入部件 Select mtrlid,dftwrkgrpid,mtrlorigin Into :ll_mtrlid_p,:ll_dftwrkgrpid,:li_mtrlorigin From u_mtrldef Where mtrlcode = :ls_mtrlcode_p; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行父代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText Goto ext End If If ll_dftwrkgrpid = 0 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行父代码资料的默认生产车间未设置,请检查' Goto ext Else Select top 1 wrkgrpid Into :ll_wrkgrpid_scll From u_sc_workgroup Where storageid = :ll_dftwrkgrpid Order By wrkgrpcode; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行父代码资料默认生产车间第1工组失败,可能资料未定义' + sqlca.SQLErrText Goto ext End If End If //插入部件 wf_add_row(ll_mtrlid_p, '', 1, lde_qty, arg_msg,ll_row_new) ElseIf cnt = 0 Then //插入新行-部件 //插入部件 wf_add_row_null(ls_mtrlname, 1, lde_qty, arg_msg,ll_row_new) End If End If //ls_mtrlcode_p <> "" //插入新行 cnt = 0 Select COUNT(*) Into :cnt From u_mtrldef Where u_mtrldef.mtrlname = :ls_mtrlname; If sqlca.SQLCode = -1 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlname + ',材料查询资料定义表失败,' + sqlca.SQLErrText Goto ext ElseIf sqlca.SQLCode = 100 Then cnt = 0 End If If ls_col10 = '' And ls_col11 = '' Then ll_lp = 1 Else ll_lp = 2 End If If cnt > 1 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlname + ',材料资料定义有' + String(cnt) + '条重复记录' Goto ext ElseIf cnt = 1 Then //插入部件 Select mtrlid,dftwrkgrpid,mtrlorigin Into :ll_mtrlid,:ll_dftwrkgrpid,:li_mtrlorigin From u_mtrldef Where mtrlname = :ls_mtrlname; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行父代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText Goto ext End If //插入材料 wf_add_row(ll_mtrlid, '', ll_lp, ld_sonscale, arg_msg,ll_row_new) ElseIf cnt = 0 Then //插入新行-部件 //插入材料 wf_add_row_null(ls_mtrlname, ll_lp, ld_sonscale, arg_msg,ll_row_new) End If Next ext: Destroy ds_col30 dw_1.SetRedraw(True) If rslt = 0 Then MessageBox('提示',arg_msg) End If end event event ue_import_xls_3();// 导入Excel Int rslt = 1 String arg_msg DataStore ds_col30 ds_col30 = Create DataStore ds_col30.DataObject = 'dw_col30' If f_readxls(ds_col30,arg_msg) <> 1 Then rslt = 0 Goto ext End If Long ll_i,cnt,ll_j Long ll_lp Long ll_row Long ll_mtrlid_p String ls_mtrlcode_p,ls_pfgroup,ls_mtrlmode_p String ls_pfcode Decimal ld_pfgroupqty,ld_sonloss String ls_pfklmode Long ll_mtrlid String ls_mtrlcode,ls_mtrlmode String ls_mtrlname Int li_mtrlprp String ls_unit String ls_zxmtrlmode String ls_mtrlsectype Int li_statusflag Int li_statustype Int li_woodcodeflag Int li_woodcodetype Int li_pcodeflag Int li_pcodetype String ls_usermtrlmode Int li_Mtrlorigin Long ll_dftwrkgrpid Long ll_scid Long ll_mtrltypeid String ls_wrkGrpName Decimal ld_sonscale Long ll_dftscllwkpid,ll_scllwkpid,ll_wkpid_find String ls_mb_mtrlcode Long ll_newrow Int li_ifadd String ls_printstr Long ll_lp_cnt String ls_piccode String ls_wrkGrpName_exl String unit_f,mtrlsectype_f,zxmtrlmode_f,usermtrlmode_f,piccode_f Long mtrltypeid_f,ifselforder_f,ordertype_f,scid_f,dftwrkgrpid_f Decimal orderdays_f,buydays_f,wfjgdays_f Long mtrlid_f,dftscllwkpid_f Int li_ifselforder,li_ordertype For ll_row = 1 To 5 ds_col30.Object.col1[ll_row] = '' Next ds_col30.SetSort('col1 A') ds_col30.Sort() For ll_row = 6 To ds_col30.RowCount() //第6行开始才是清单 //明细终止标记 If Trim(ds_col30.GetItemString(ll_row,1)) = '' Then Exit If Trim(ds_col30.GetItemString(ll_row,2)) = '是' Then li_ifadd = 1 Else li_ifadd = 0 End If ll_lp = Long(Trim(ds_col30.GetItemString(ll_row,1))) ls_mtrlcode_p = Trim(ds_col30.GetItemString(ll_row,4)) ls_mtrlcode = Trim(ds_col30.GetItemString(ll_row,11)) ls_mtrlname = Trim(ds_col30.GetItemString(ll_row,12)) ls_mtrlmode = Trim(ds_col30.GetItemString(ll_row,13)) If ls_mtrlcode = '' And li_ifadd = 0 Then rslt = 0 arg_msg = '第' + String(ll_row) + '必须填写材料编码,请检查' Goto ext End If If ls_mtrlcode <> '' Then Select mtrlid Into :ll_mtrlid From u_mtrldef Where mtrlcode = :ls_mtrlcode; If sqlca.SQLCode <> 0 Then ll_mtrlid = 0 End If If ll_mtrlid = 0 Then Select mtrlid Into :ll_mtrlid From u_mtrldef Where mtrlname = :ls_mtrlname; If sqlca.SQLCode <> 0 Then ll_mtrlid = 0 End If End If If ll_mtrlid = 0 Then Select mtrlid Into :ll_mtrlid From u_mtrldef Where mtrlname = :ls_mtrlname And mtrlmode = :ls_mtrlmode; If sqlca.SQLCode <> 0 Then ll_mtrlid = 0 End If End If If ll_mtrlid > 0 Then ls_pfcode = f_get_dft_pf(ll_mtrlid) If ls_pfcode = '' Then rslt = 0 arg_msg = '第' + String(ll_row) + '行物料编码:'+ls_mtrlcode+',默认清单未定义,请检查' Goto ext End If End If End If Next If Not cbx_ifreset.Checked Then dw_1.Reset() wf_re_mtrl(0) End If dw_1.SetRedraw(False) For ll_row = 6 To ds_col30.RowCount() //明细终止标记 If Trim(ds_col30.GetItemString(ll_row,1)) = '' Then Exit If Trim(ds_col30.GetItemString(ll_row,2)) = '是' Then li_ifadd = 1 Else li_ifadd = 0 End If ls_printstr = Trim(ds_col30.GetItemString(ll_row,1)) ll_lp_cnt = 0 Do While Pos(ls_printstr,'.') > 0 ll_lp_cnt++ ls_printstr = Mid(ls_printstr,Pos(ls_printstr,'.') + 1) Loop ls_mb_mtrlcode = Trim(ds_col30.GetItemString(ll_row,3)) ll_lp = ll_lp_cnt + 1 ls_pfgroup = Trim(ds_col30.GetItemString(ll_row,4)) ls_mtrlmode_p = '' If Trim(ds_col30.GetItemString(ll_row,6)) <> '' Then ls_mtrlmode_p = Trim(ds_col30.GetItemString(ll_row,6)) End If If Trim(ds_col30.GetItemString(ll_row,7)) <> '' Then If Trim(ls_mtrlmode_p) = '' Then ls_mtrlmode_p = Trim(ds_col30.GetItemString(ll_row,7)) Else ls_mtrlmode_p = ls_mtrlmode_p + '*' + Trim(ds_col30.GetItemString(ll_row,7)) End If End If If Trim(ds_col30.GetItemString(ll_row,8)) <> '' Then If Trim(ls_mtrlmode_p) = '' Then ls_mtrlmode_p = Trim(ds_col30.GetItemString(ll_row,8)) Else ls_mtrlmode_p = ls_mtrlmode_p + '*' + Trim(ds_col30.GetItemString(ll_row,8)) End If End If ld_pfgroupqty = Dec(Trim(ds_col30.GetItemString(ll_row,9))) ls_mtrlcode = Trim(ds_col30.GetItemString(ll_row,11)) ls_mtrlname = Trim(ds_col30.GetItemString(ll_row,12)) ld_sonscale = Dec(Trim(ds_col30.GetItemString(ll_row,19))) ld_sonloss = Dec(Trim(ds_col30.GetItemString(ll_row,20))) ls_piccode = Trim(ds_col30.GetItemString(ll_row,5)) ls_wrkGrpName_exl = Trim(ds_col30.GetItemString(ll_row,10)) ls_pfklmode = '' If Trim(ds_col30.GetItemString(ll_row,14)) <> '' Then ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,14)) End If If Trim(ds_col30.GetItemString(ll_row,15)) <> '' Then If Trim(ls_pfklmode) = '' Then ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,15)) Else ls_pfklmode = ls_pfklmode + '*' + Trim(ds_col30.GetItemString(ll_row,15)) End If End If If Trim(ds_col30.GetItemString(ll_row,16)) <> '' Then If Trim(ls_pfklmode) = '' Then ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,16)) Else ls_pfklmode = ls_pfklmode + '*' + Trim(ds_col30.GetItemString(ll_row,16)) End If End If Select mtrlid Into :ll_mtrlid From u_mtrldef Where mtrlcode = :ls_mtrlcode; If sqlca.SQLCode <> 0 Then ll_mtrlid = 0 End If If ll_mtrlid = 0 Then Select mtrlid Into :ll_mtrlid From u_mtrldef Where mtrlname = :ls_mtrlname; If sqlca.SQLCode <> 0 Then ll_mtrlid = 0 End If End If If ll_mtrlid = 0 Then Select mtrlid Into :ll_mtrlid From u_mtrldef Where mtrlname = :ls_mtrlname And mtrlmode = :ls_mtrlmode; If sqlca.SQLCode <> 0 Then ll_mtrlid = 0 End If End If If li_ifadd = 1 Then ll_newrow = dw_1.InsertRow(0) dw_1.Object.u_mtrldef_mtrlcode[ll_newrow] = ls_mtrlcode dw_1.Object.u_mtrldef_mtrlprp[ll_newrow] = 1 dw_1.Object.u_PrdPF_wrkgrpid[ll_newrow] = 0 dw_1.Object.u_PrdPF_Sonscale[ll_newrow] = ld_pfgroupqty dw_1.Object.u_prdpf_sonscale_ori[ll_newrow] = ld_pfgroupqty dw_1.Object.u_PrdPF_SonLoss[ll_newrow] = 0 dw_1.Object.u_PrdPF_SonDECLosS[ll_newrow] = 0 dw_1.Object.u_PrdPF_status[ll_newrow] = '' dw_1.Object.u_PrdPF_woodcode[ll_newrow] = '' dw_1.Object.u_PrdPF_pcode[ll_newrow] = '' dw_1.Object.u_PrdPF_Sonahead[ll_newrow] = 0 dw_1.Object.u_mtrldef_mtrlname[ll_newrow] = ls_pfgroup dw_1.Object.u_mtrldef_unit[ll_newrow] = '' dw_1.Object.u_mtrldef_mtrlmode[ll_newrow] = ls_mtrlmode_p dw_1.Object.u_mtrldef_mtrlsectype[ll_newrow] = '' dw_1.Object.u_mtrldef_zxmtrlmode[ll_newrow] = '' dw_1.Object.u_sc_wkp_wrkGrpName[ll_newrow] = '' dw_1.Object.u_mtrldef_statusflag[ll_newrow] = 0 dw_1.Object.u_mtrldef_statustype[ll_newrow] = 0 dw_1.Object.u_mtrldef_woodcodeflag[ll_newrow] = 0 dw_1.Object.u_mtrldef_woodcodetype[ll_newrow] = 0 dw_1.Object.u_mtrldef_pcodeflag[ll_newrow] = 0 dw_1.Object.u_mtrldef_pcodetype[ll_newrow] = 0 dw_1.Object.u_mtrldef_usermtrlmode[ll_newrow] = '' dw_1.Object.u_mtrldef_Mtrlorigin[ll_newrow] = 0 dw_1.Object.lp[ll_newrow] = ll_lp If ll_lp = 1 Then dw_1.Object.iflock[ll_newrow] = 0 Else dw_1.Object.iflock[ll_newrow] = 1 End If dw_1.Object.u_mtrldef_mtrlid[ll_newrow] = 0 dw_1.Object.u_prdpf_sonmtrlid[ll_newrow] = 0 dw_1.Object.pmtrlid[ll_newrow] = ll_mtrlid_p dw_1.Object.u_prdpf_printid[ll_newrow] = ll_newrow dw_1.Object.u_prdpf_sonpfcode[ll_newrow] = '[常规]' dw_1.Object.u_prdpf_promode[ll_newrow] = ls_piccode dw_1.Object.u_mtrldef_piccode[ll_newrow] = ls_piccode dw_1.Object.u_prdpf_pfgroup[ll_newrow] = '' dw_1.Object.u_prdpf_pfgroupqty[ll_newrow] = 0 dw_1.Object.u_prdpf_pfgroupmode[ll_newrow] = '' dw_1.Object.u_prdpf_pfklmode[ll_newrow] = '' dw_1.Object.u_prdpf_dscrp[ll_newrow] = '' dw_1.Object.u_prdpf_baseqty[ll_newrow] = 1 dw_1.Object.u_prdpf_scllloss[ll_newrow] = 0 dw_1.Object.u_prdpf_sclldecloss[ll_newrow] = 0 dw_1.Object.u_prdpf_ifover[ll_newrow] = 0 dw_1.Object.u_prdpf_dipztype[ll_newrow] = 0 dw_1.Object.u_prdpf_buyarg[ll_newrow] = 0 dw_1.Object.u_mtrldef_orderdays[ll_newrow] = 0 dw_1.Object.u_mtrldef_buydays[ll_newrow] = 0 dw_1.Object.u_mtrldef_wfjgdays[ll_newrow] = 0 dw_1.Object.u_mtrldef_dftwrkgrpid[ll_newrow] = 0 dw_1.Object.u_mtrldef_scid[ll_newrow] = 0 dw_1.Object.u_mtrldef_mtrltypeid[ll_newrow] = 0 dw_1.Object.ifnewadd[ll_newrow] = 0 dw_1.Object.ifmod[ll_newrow] = 0 Select unit, mtrltypeid, mtrlsectype, zxmtrlmode, usermtrlmode, piccode, ifselforder, ordertype, scid, dftwrkgrpid, orderdays, buydays, wfjgdays, mtrlid, dftscllwkpid Into :unit_f, :mtrltypeid_f, :mtrlsectype_f, :zxmtrlmode_f, :usermtrlmode_f, :piccode_f, :ifselforder_f, :ordertype_f, :scid_f, :dftwrkgrpid_f, :orderdays_f, :buydays_f, :wfjgdays_f, :mtrlid_f, :dftscllwkpid_f From u_mtrldef Where mtrlcode = :ls_mb_mtrlcode; If sqlca.SQLCode = 0 Then dw_1.Object.u_mtrldef_unit[ll_newrow] = unit_f dw_1.Object.u_mtrldef_mtrltypeid[ll_newrow] = mtrltypeid_f dw_1.Object.u_mtrldef_mtrlsectype[ll_newrow] = mtrlsectype_f dw_1.Object.u_mtrldef_zxmtrlmode[ll_newrow] = zxmtrlmode_f dw_1.Object.u_mtrldef_usermtrlmode[ll_newrow] = usermtrlmode_f dw_1.Object.u_mtrldef_piccode[ll_newrow] = piccode_f dw_1.Object.u_mtrldef_ifselforder[ll_newrow] = ifselforder_f dw_1.Object.u_mtrldef_ordertype[ll_newrow] = ordertype_f dw_1.Object.u_mtrldef_scid[ll_newrow] = scid_f dw_1.Object.u_mtrldef_dftwrkgrpid[ll_newrow] = dftwrkgrpid_f dw_1.Object.u_mtrldef_orderdays[ll_newrow] = orderdays_f dw_1.Object.u_mtrldef_buydays[ll_newrow] = buydays_f dw_1.Object.u_mtrldef_wfjgdays[ll_newrow] = wfjgdays_f dw_1.Object.mb_mtrlcode[ll_newrow] = ls_mb_mtrlcode dw_1.Object.mb_mtrlid[ll_newrow] = mtrlid_f End If Select wrkgrpid Into :ll_wkpid_find From u_sc_workgroup Where wrkGrpName = :ls_wrkGrpName_exl; If sqlca.SQLCode <> 0 Then ll_wkpid_find = 0 If ll_wkpid_find = 0 Then ll_scllwkpid = dftscllwkpid_f Else ll_scllwkpid = ll_wkpid_find End If dw_1.Object.u_PrdPF_wrkgrpid[ll_newrow] = ll_scllwkpid End If If ll_mtrlid > 0 Then Select u_mtrldef.mtrlid, u_mtrldef.mtrlcode, u_mtrldef.mtrlname, u_mtrldef.mtrlprp, u_mtrldef.mtrlmode, u_mtrldef.unit, u_mtrldef.zxmtrlmode, u_mtrldef.mtrlsectype, u_mtrldef.statusflag, u_mtrldef.statustype, u_mtrldef.woodcodeflag, u_mtrldef.woodcodetype, u_mtrldef.pcodeflag, u_mtrldef.pcodetype, u_mtrldef.usermtrlmode, u_mtrldef.Mtrlorigin, u_mtrldef.dftwrkgrpid, u_mtrldef.scid, u_mtrldef.mtrltypeid, isnull(u_sc_wkp.wrkGrpName,''), u_mtrldef.dftscllwkpid, u_mtrldef.ifselforder, u_mtrldef.ordertype Into :ll_mtrlid, :ls_mtrlcode, :ls_mtrlname, :li_mtrlprp, :ls_mtrlmode, :ls_unit, :ls_zxmtrlmode, :ls_mtrlsectype, :li_statusflag, :li_statustype, :li_woodcodeflag, :li_woodcodetype, :li_pcodeflag, :li_pcodetype, :ls_usermtrlmode, :li_Mtrlorigin, :ll_dftwrkgrpid, :ll_scid, :ll_mtrltypeid, :ls_wrkGrpName, :ll_dftscllwkpid, :li_ifselforder, :li_ordertype From u_mtrldef left Outer join u_sc_wkp on u_mtrldef.dftwrkgrpid = u_sc_wkp.wrkgrpid Where u_mtrldef.mtrlid = :ll_mtrlid; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行子代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText Goto ext End If Else ll_mtrlid = 0 li_mtrlprp = 2 ls_mtrlmode = '' ls_unit = '' ls_zxmtrlmode = '' ls_mtrlsectype = '' li_statusflag = 0 li_statustype = 0 li_woodcodeflag = 0 li_woodcodetype = 0 li_pcodeflag = 0 li_pcodetype = 0 ls_usermtrlmode = '' li_Mtrlorigin = 2 ll_dftwrkgrpid = 0 ll_scid = 0 ll_mtrltypeid = 0 ls_wrkGrpName = '' ll_dftscllwkpid = 0 End If Select wrkgrpid Into :ll_wkpid_find From u_sc_workgroup Where wrkGrpName = :ls_wrkGrpName_exl; If sqlca.SQLCode <> 0 Then ll_wkpid_find = 0 If ll_wkpid_find = 0 Then ll_scllwkpid = ll_dftscllwkpid Else ll_scllwkpid = ll_wkpid_find End If If ll_mtrlid > 0 Or li_ifadd = 0 And ls_mtrlcode <> '' And ls_mtrlname <> '' Then ll_newrow = dw_1.InsertRow(0) dw_1.Object.u_mtrldef_mtrlcode[ll_newrow] = ls_mtrlcode dw_1.Object.u_mtrldef_mtrlprp[ll_newrow] = li_mtrlprp dw_1.Object.u_PrdPF_wrkgrpid[ll_newrow] = ll_scllwkpid dw_1.Object.u_PrdPF_Sonscale[ll_newrow] = ld_sonscale dw_1.Object.u_prdpf_sonscale_ori[ll_newrow] = ld_sonscale dw_1.Object.u_PrdPF_SonLoss[ll_newrow] = ld_sonloss dw_1.Object.u_PrdPF_SonDECLosS[ll_newrow] = 0 dw_1.Object.u_PrdPF_status[ll_newrow] = '' dw_1.Object.u_PrdPF_woodcode[ll_newrow] = '' dw_1.Object.u_PrdPF_pcode[ll_newrow] = '' dw_1.Object.u_PrdPF_Sonahead[ll_newrow] = 0 dw_1.Object.u_mtrldef_mtrlname[ll_newrow] = ls_mtrlname dw_1.Object.u_mtrldef_unit[ll_newrow] = ls_unit dw_1.Object.u_mtrldef_mtrlmode[ll_newrow] = ls_mtrlmode dw_1.Object.u_mtrldef_mtrlsectype[ll_newrow] = ls_mtrlsectype dw_1.Object.u_mtrldef_zxmtrlmode[ll_newrow] = ls_zxmtrlmode dw_1.Object.u_sc_wkp_wrkGrpName[ll_newrow] = ls_wrkGrpName dw_1.Object.u_mtrldef_statusflag[ll_newrow] = li_statusflag dw_1.Object.u_mtrldef_statustype[ll_newrow] = li_statustype dw_1.Object.u_mtrldef_woodcodeflag[ll_newrow] = li_woodcodeflag dw_1.Object.u_mtrldef_woodcodetype[ll_newrow] = li_woodcodetype dw_1.Object.u_mtrldef_pcodeflag[ll_newrow] = li_pcodeflag dw_1.Object.u_mtrldef_pcodetype[ll_newrow] = li_pcodetype dw_1.Object.u_mtrldef_usermtrlmode[ll_newrow] = ls_usermtrlmode dw_1.Object.u_mtrldef_Mtrlorigin[ll_newrow] = li_Mtrlorigin dw_1.Object.u_mtrldef_ifselforder[ll_newrow] = li_ifselforder dw_1.Object.u_mtrldef_ordertype[ll_newrow] = li_ordertype If li_ifadd = 1 Then dw_1.Object.lp[ll_newrow] = ll_lp + 1 dw_1.Object.u_prdpf_pfgroup[ll_newrow] = '' dw_1.Object.u_prdpf_pfgroupqty[ll_newrow] = 0 dw_1.Object.u_prdpf_pfgroupmode[ll_newrow] = '' Else dw_1.Object.lp[ll_newrow] = ll_lp dw_1.Object.u_prdpf_pfgroup[ll_newrow] = ls_pfgroup dw_1.Object.u_prdpf_pfgroupqty[ll_newrow] = ld_pfgroupqty dw_1.Object.u_prdpf_pfgroupmode[ll_newrow] = ls_mtrlmode_p End If If ll_lp = 1 Then dw_1.Object.iflock[ll_newrow] = 0 Else dw_1.Object.iflock[ll_newrow] = 1 End If dw_1.Object.u_mtrldef_mtrlid[ll_newrow] = ll_mtrlid dw_1.Object.u_prdpf_sonmtrlid[ll_newrow] = ll_mtrlid dw_1.Object.pmtrlid[ll_newrow] = ll_mtrlid_p dw_1.Object.u_prdpf_printid[ll_newrow] = ll_newrow dw_1.Object.u_prdpf_sonpfcode[ll_newrow] = f_get_dft_pf(ll_mtrlid) dw_1.Object.u_prdpf_promode[ll_newrow] = ls_piccode dw_1.Object.u_mtrldef_piccode[ll_newrow] = ls_piccode dw_1.Object.u_prdpf_pfklmode[ll_newrow] = ls_pfklmode dw_1.Object.u_prdpf_dscrp[ll_newrow] = '' dw_1.Object.u_prdpf_baseqty[ll_newrow] = 1 dw_1.Object.u_prdpf_scllloss[ll_newrow] = 0 dw_1.Object.u_prdpf_sclldecloss[ll_newrow] = 0 dw_1.Object.u_prdpf_ifover[ll_newrow] = 0 dw_1.Object.u_prdpf_dipztype[ll_newrow] = 0 dw_1.Object.u_prdpf_buyarg[ll_newrow] = 0 dw_1.Object.u_mtrldef_orderdays[ll_newrow] = 0 dw_1.Object.u_mtrldef_buydays[ll_newrow] = 0 dw_1.Object.u_mtrldef_wfjgdays[ll_newrow] = 0 dw_1.Object.u_mtrldef_dftwrkgrpid[ll_newrow] = ll_dftwrkgrpid dw_1.Object.u_mtrldef_scid[ll_newrow] = ll_scid dw_1.Object.u_mtrldef_mtrltypeid[ll_newrow] = ll_mtrltypeid dw_1.Object.ifnewadd[ll_newrow] = 0 dw_1.Object.ifmod[ll_newrow] = 0 If ll_mtrlid = 0 Then dw_1.Object.error_msg[ll_newrow] = '系统中没有此物料的信息,请检查' End If End If Next //如果需要新建的资料信息齐全,自动加上"新建"标记 For ll_i = 2 To dw_1.RowCount() If dw_1.Object.u_mtrldef_mtrlid[ll_i] = 0 And dw_1.Object.u_mtrldef_mtrlprp[ll_i] = 1 Then ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_i] ll_dftwrkgrpid = dw_1.Object.u_mtrldef_dftwrkgrpid[ll_i] ll_mtrltypeid = dw_1.Object.u_mtrldef_mtrltypeid[ll_i] If Trim(ls_mtrlcode) = '' Then dw_1.Object.error_msg[ll_i] = '请输入物料编码' Continue End If Select count(*) Into :cnt From u_mtrldef Where mtrlcode = :ls_mtrlcode; If sqlca.SQLCode <> 0 Then dw_1.Object.error_msg[ll_i] = '查询新编码是否已存在失败' Continue End If If cnt > 0 Then dw_1.Object.error_msg[ll_i] = '新输入的编码已在系统中存在,请重新输入' Continue End If If Trim(dw_1.Object.u_mtrldef_unit[ll_i]) = '' Then dw_1.Object.error_msg[ll_i] = '请输入库存单位' Continue End If If dw_1.Object.u_mtrldef_mtrltypeid[ll_i] = 0 Then dw_1.Object.error_msg[ll_i] = '请选择类别' Continue End If Select count(*) Into :cnt From u_mtrltype Where mtrltypeid = :ll_mtrltypeid; If sqlca.SQLCode <> 0 Then dw_1.Object.error_msg[ll_i] = '查询物料类别是否已存在失败' Continue End If If cnt = 0 Then dw_1.Object.error_msg[ll_i] = '物料类别在系统中不存在,请重新选择' Continue End If If dw_1.Object.u_mtrldef_dftwrkgrpid[ll_i] = 0 Then dw_1.Object.error_msg[ll_i] = '请选择默认制造车间' Continue End If Select count(*) Into :cnt From u_sc_wkp Where wrkgrpid = :ll_dftwrkgrpid; If sqlca.SQLCode <> 0 Then dw_1.Object.error_msg[ll_i] = '查询默认制造车间是否已存在失败' Continue End If If cnt = 0 Then dw_1.Object.error_msg[ll_i] = '默认制造车间在系统中不存在,请重新选择' Continue End If ll_lp = dw_1.Object.lp[ll_i] dw_1.Object.ifnewadd[ll_i] = 1 For ll_j = ll_i + 1 To dw_1.RowCount() If dw_1.Object.lp[ll_j] = ll_lp + 1 Then //And dw_1.Object.pmtrlid[ll_i] = ll_mtrlid THEN dw_1.Object.iflock[ll_j] = 0 End If If dw_1.Object.lp[ll_j] <= ll_lp Then Exit Next End If Next ext: Destroy ds_col30 dw_1.SetRedraw(True) If rslt = 0 Then MessageBox('提示',arg_msg) End If end event event user_key(); IF KeyDown(KeyF7!) THEN This.TriggerEvent('ue_add_same') ELSEIF KeyDown(KeyF8!) THEN This.TriggerEvent('ue_add_next') END IF end event event ue_add_same();IF ins_ifmod_wp THEN MessageBox('系统提示','正在编辑工价表,不能执行本操作') RETURN END IF IF ins_ifmod THEN MessageBox('系统提示','正在编辑半成品,不能执行本操作') RETURN END IF Long ll_i String ls_mtrlcode,ls_mtrlname,ls_pfcode,arg_msg Long ll_row,ll_row_add Long ll_pmtrlid,ll_lp Long ll_mtrlid_pf String arg_msg_str ll_row = dw_1.GetRow() IF ll_row > 0 THEN ll_pmtrlid = dw_1.Object.pmtrlid[ll_row] ll_lp = dw_1.Object.lp[ll_row] ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_row] IF ll_lp = 0 THEN MessageBox('系统提示','主产品不能增同级') RETURN END IF IF ll_lp <> 1 THEN FOR ll_i = ll_row To 1 Step -1 IF dw_1.Object.lp[ll_i] = ll_lp - 1 THEN IF dw_1.Object.u_mtrldef_mtrlid[ll_i] <> 0 THEN MessageBox('系统提示','上级物料不是新建立的物料,不能执行增同级操作') RETURN ELSE EXIT END IF END IF NEXT END IF ELSE ll_pmtrlid = ins_mtrlid ll_lp = 0 END IF IF ll_row = dw_1.RowCount() THEN ll_row_add = ll_row ELSE FOR ll_i = ll_row + 1 To dw_1.RowCount() IF dw_1.Object.lp[ll_i] <= ll_lp THEN ll_row_add = ll_i - 1 EXIT END IF NEXT IF ll_row_add = 0 THEN ll_row_add = dw_1.RowCount() END IF END IF 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 = true s_ch_tran.b_long = 0 s_ch_tran.c_long = -1 s_ch_tran.f_long = 1 This.Enabled = False OpenWithParm(w_mtrldef_edit,s_ch_tran) This.Enabled = True s_mtrldef_array s_inscust s_inscust = Message.PowerObjectParm dw_1.SetRedraw(False) FOR ll_i = 1 To UpperBound(s_inscust.mtrlid) ll_mtrlid_pf = s_inscust.mtrlid[ll_i] IF ll_mtrlid_pf > 0 THEN ls_pfcode = f_get_dft_pf(ll_mtrlid_pf) IF wf_addmx_next(ll_mtrlid_pf,ls_pfcode,ll_pmtrlid,ll_lp,ll_row_add + 1 ,arg_msg,1,0) = 0 THEN arg_msg_str = arg_msg_str + arg_msg +'~r~n' CONTINUE END IF ins_cnt++ IF ls_mtrlcode <> '' THEN mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.对 '+ls_mtrlcode+' 增加同级物料 '+s_inscust.mtrlcode[ll_i] ELSE mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.增加物料 '+s_inscust.mtrlcode[ll_i] END IF END IF NEXT dw_1.SetRedraw(True) IF Trim(arg_msg_str) <> '' THEN MessageBox('Error',arg_msg_str) END IF END IF this.setfocus() end event event ue_add_next();IF ins_ifmod_wp THEN MessageBox('系统提示','正在编辑工价表,不能执行本操作') RETURN END IF IF ins_ifmod THEN MessageBox('系统提示','正在编辑半成品,不能执行本操作') RETURN END IF Long ll_i String ls_mtrlcode,ls_mtrlname,ls_pfcode,arg_msg,arg_msg_str Long ll_row,ll_row_add Long ll_pmtrlid,ll_lp Long ll_mtrlid Long ll_mtrlid_pf int li_mtrlorigin ll_row = dw_1.GetRow() IF ll_row > 0 THEN ll_pmtrlid = dw_1.Object.pmtrlid[ll_row] ll_lp = dw_1.Object.lp[ll_row] ll_mtrlid = dw_1.Object.u_mtrldef_mtrlid[ll_row] ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_row] li_mtrlorigin = dw_1.Object.u_mtrldef_mtrlorigin[ll_row] ELSE ll_pmtrlid = ins_mtrlid ll_lp = 0 li_mtrlorigin = 0 END IF //IF ll_mtrlid <> 0 And ll_lp <> 0 THEN // MessageBox('系统提示','只能在新建立的物料上或主产品上进行增下级操作') // RETURN //END IF if li_mtrlorigin = 2 then MessageBox('系统提示','不能在采购物料上进行增下级操作') RETURN END IF IF ll_row = dw_1.RowCount() THEN ll_row_add = ll_row ELSE FOR ll_i = ll_row + 1 To dw_1.RowCount() IF dw_1.Object.lp[ll_i] <= ll_lp THEN ll_row_add = ll_i - 1 EXIT END IF NEXT IF ll_row_add = 0 THEN ll_row_add = dw_1.RowCount() END IF END IF 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 = True s_ch_tran.b_long = 0 s_ch_tran.c_long = -1 s_ch_tran.f_long = 1 This.Enabled = False OpenWithParm(w_mtrldef_edit,s_ch_tran) This.Enabled = True s_mtrldef_array s_inscust s_inscust = Message.PowerObjectParm dw_1.SetRedraw(False) FOR ll_i = 1 To UpperBound(s_inscust.mtrlid) ll_mtrlid_pf = s_inscust.mtrlid[ll_i] IF ll_mtrlid_pf > 0 THEN ls_pfcode = f_get_dft_pf(ll_mtrlid_pf) IF wf_addmx_next(ll_mtrlid_pf,ls_pfcode,ll_pmtrlid,ll_lp + 1 ,ll_row_add + 1 ,arg_msg,1,0) = 0 THEN arg_msg_str = arg_msg_str + arg_msg + '~r~n' END IF ins_cnt++ IF ls_mtrlcode <> '' THEN mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.对 '+ls_mtrlcode+' 增加下级物料 '+s_inscust.mtrlcode[ll_i] ELSE mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.增加物料 '+s_inscust.mtrlcode[ll_i] END IF END IF NEXT dw_1.SetRedraw(True) IF Trim(arg_msg_str) <> '' THEN MessageBox('Error',arg_msg_str) END IF END IF this.setfocus() end event event ue_viewprint_dy();S_print_MSG LS_PRMSG String ls_windowname ls_windowname = 'w_mtrl_structure' String ls_old_dwname,ls_new_dwname = '' ls_old_dwname = 'dw_rp_prdstruct_dy' ls_new_dwname = f_get_dwprint_dynamic_chname(ls_old_dwname,ls_windowname) IF ls_new_dwname = '' THEN ls_new_dwname = ls_old_dwname END IF LS_PRMSG.obj_dwNAME = ls_new_dwname LS_PRMSG.TAG_TEXT = '产品加工说明书' LS_PRMSG.FILTER_STRING = '' LS_PRMSG.retr_pram_falg = 14 LS_PRMSG.PAGECH_FLAG = 0 LS_PRMSG.retr_pramnmb = ins_mtrlid LS_PRMSG.retr_pramstr = ins_pfcode OpenWithParm(w_publ_preview,LS_PRMSG) end event event ue_viewprint_gy(); wf_cmpprdpf(ins_mtrlid,ins_pfcode) S_print_MSG LS_PRMSG String ls_windowname ls_windowname = 'w_mtrl_structure' String ls_old_dwname,ls_new_dwname = '' ls_old_dwname = 'dw_rp_prdstruct' ls_new_dwname = f_get_dwprint_dynamic_chname(ls_old_dwname,ls_windowname) IF ls_new_dwname = '' THEN ls_new_dwname = ls_old_dwname END IF LS_PRMSG.obj_dwNAME = ls_new_dwname LS_PRMSG.TAG_TEXT = '产品物料明细表[工艺]' LS_PRMSG.FILTER_STRING = '' LS_PRMSG.retr_pram_falg = 14 LS_PRMSG.PAGECH_FLAG = 0 LS_PRMSG.retr_pramnmb = ins_mtrlid LS_PRMSG.retr_pramstr = ins_pfcode OpenWithParm(w_publ_preview,LS_PRMSG) end event event ue_viewprint_tree(); wf_cmpprdpf(ins_mtrlid,ins_pfcode) S_print_MSG LS_PRMSG String ls_windowname ls_windowname = 'w_mtrl_structure' String ls_old_dwname,ls_new_dwname = '' ls_old_dwname = 'dw_rp_prdstruct_tree' ls_new_dwname = f_get_dwprint_dynamic_chname(ls_old_dwname,ls_windowname) IF ls_new_dwname = '' THEN ls_new_dwname = ls_old_dwname END IF LS_PRMSG.obj_dwNAME = ls_new_dwname LS_PRMSG.TAG_TEXT = '产品物料明细表[树型结构]' LS_PRMSG.FILTER_STRING = '' LS_PRMSG.retr_pram_falg = 14 LS_PRMSG.PAGECH_FLAG = 0 LS_PRMSG.retr_pramnmb = ins_mtrlid LS_PRMSG.retr_pramstr = ins_pfcode OpenWithParm(w_publ_preview,LS_PRMSG) end event event ue_viewprint_yl(); wf_cmpprdpf(ins_mtrlid,ins_pfcode) S_print_MSG LS_PRMSG String ls_windowname ls_windowname = 'w_mtrl_structure' String ls_old_dwname,ls_new_dwname = '' ls_old_dwname = 'dw_rp_prdstruct_yl' ls_new_dwname = f_get_dwprint_dynamic_chname(ls_old_dwname,ls_windowname) IF ls_new_dwname = '' THEN ls_new_dwname = ls_old_dwname END IF LS_PRMSG.obj_dwNAME = ls_new_dwname LS_PRMSG.TAG_TEXT = '产品物料明细表[用料]' LS_PRMSG.FILTER_STRING = '' LS_PRMSG.retr_pram_falg = 14 LS_PRMSG.PAGECH_FLAG = 0 LS_PRMSG.retr_pramnmb = ins_mtrlid LS_PRMSG.retr_pramstr = ins_pfcode OpenWithParm(w_publ_preview,LS_PRMSG) end event event ue_viewprint_yl_wrk(); wf_cmpprdpf(ins_mtrlid,ins_pfcode) S_print_MSG LS_PRMSG String ls_windowname ls_windowname = 'w_mtrl_structure' String ls_old_dwname,ls_new_dwname = '' ls_old_dwname = 'dw_rp_prdstruct_yl_wrk' ls_new_dwname = f_get_dwprint_dynamic_chname(ls_old_dwname,ls_windowname) IF ls_new_dwname = '' THEN ls_new_dwname = ls_old_dwname END IF LS_PRMSG.obj_dwNAME = ls_new_dwname LS_PRMSG.TAG_TEXT = '产品物料明细表[车间]' LS_PRMSG.FILTER_STRING = '' LS_PRMSG.retr_pram_falg = 14 LS_PRMSG.PAGECH_FLAG = 0 LS_PRMSG.retr_pramnmb = ins_mtrlid LS_PRMSG.retr_pramstr = ins_pfcode OpenWithParm(w_publ_preview,LS_PRMSG) end event event ue_retrieve_wkp();Long ll_row Long ll_mtrlid Long ll_dftwrkgrpid Long ll_i,ll_j,ll_row_copy String ls_mtrlcode Long ll_mb_mtrlid ll_j = 0 ll_row = dw_1.GetRow() IF ll_row <= 0 THEN ll_dftwrkgrpid = 0 ELSE ll_dftwrkgrpid = dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row] END IF //只显未产品默认制造车间相关的工组 datawindowchild childdw dw_3.SetTransObject (sqlca) dw_3.GetChild("swkpid",childdw) childdw.SetTransObject (sqlca) IF childdw.Retrieve(ll_dftwrkgrpid) = 0 THEN childdw.InsertRow(0) END IF datawindowchild childdwo dw_3.SetTransObject (sqlca) dw_3.GetChild("owkpid",childdwo) childdwo.SetTransObject (sqlca) IF childdwo.Retrieve(ll_dftwrkgrpid) = 0 THEN childdwo.InsertRow(0) END IF ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_row] IF ll_row <= 0 THEN dw_3.Reset() ELSE IF dw_1.Object.ifmod_wkp[ll_row] = 0 THEN ll_mtrlid = dw_1.Object.u_prdpf_sonmtrlid[ll_row] ll_mb_mtrlid = dw_1.Object.mb_mtrlid[ll_row] IF ll_mb_mtrlid > 0 THEN dw_3.Retrieve(ll_mb_mtrlid) ELSE dw_3.Retrieve(ll_mtrlid) END IF ELSE dw_3.Reset() dw_copy_wkp.SetFilter("u_mtrldef_mtrlcode = '"+ls_mtrlcode + "'") dw_copy_wkp.Filter() FOR ll_i = 1 To dw_copy_wkp.RowCount() dw_copy_wkp.RowsCopy (ll_i,ll_i,Primary!,dw_3,ll_i,Primary!) NEXT END IF END IF end event event ue_gydscrp();IF dw_3.GetRow() <= 0 THEN MessageBox('系统提示','请先选择明细行') RETURN END IF s_view_dscrp s_view,s_return String ls_dscrp dw_3.AcceptText() ls_dscrp = dw_3.Object.gydscrp[dw_3.GetRow()] s_view.Title = '产品生产流程工艺说明' s_view.dscrp = ls_dscrp s_view.editmode = ins_ifmod_wp OpenWithParm(w_mtrlwkp_gydscrp_edit,s_view) IF ins_ifmod_wp THEN s_return = Message.PowerObjectParm IF s_return.returnflag = 1 THEN RETURN dw_3.Object.gydscrp[dw_3.GetRow()] = s_return.dscrp dw_3.Object.gydscrplen[dw_3.GetRow()] = lena(s_return.dscrp) END IF end event event ue_copy_mx();IF ins_ifmod THEN MessageBox('系统提示','编辑状态下不能使用复制功能') RETURN END IF IF ins_ifmod_wp THEN MessageBox('系统提示','编辑明细状态下不能使用复制功能') RETURN END IF Long ll_lp,ll_row,ll_i,ll_j string ls_mtrlcode ll_row = dw_1.GetRow() IF ll_row <= 0 THEN MessageBox('系统提示','请选择要复制清单的半成品') return END IF ll_lp = dw_1.Object.lp[ll_row] IF ll_lp = 0 THEN MessageBox('系统提示','主产品不能使用复制功能') RETURN END IF ls_mtrlcode = dw_1.object.u_mtrldef_mtrlcode[ll_row] dw_copy_main.Reset() FOR ll_i = ll_row + 1 To dw_1.RowCount() IF dw_1.Object.lp[ll_i] <= ll_lp THEN EXIT ll_j++ dw_1.RowsCopy (ll_i,ll_i,Primary!,dw_copy_main,ll_j,Primary!) NEXT ins_copy_type = 0 ins_cnt++ mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.复制 '+ ls_mtrlcode +' 下级组成物料' MessageBox('系统提示','复制成功') end event event ue_paste_mx();IF ins_ifmod THEN MessageBox('系统提示','编辑状态下不能使用粘贴功能') RETURN END IF IF ins_ifmod_wp THEN MessageBox('系统提示','编辑明细状态下不能使用粘贴功能') RETURN END IF Long ll_lp,ll_row,ll_i,ll_j,ll_lp_ds,ll_row_add String ls_mtrlcode ll_row = dw_1.GetRow() IF ll_row <= 0 THEN MessageBox('系统提示','请选择要粘贴清单的半成品') return END IF ll_lp = dw_1.Object.lp[ll_row] IF ll_lp <> 0 THEN IF dw_1.Object.ifnewadd[ll_row] <> 1 THEN MessageBox('系统提示','只能在新建的资料或主产品上使用粘贴功能') RETURN END IF END IF ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_row] IF dw_copy_main.RowCount() = 0 THEN MessageBox('系统提示','没有可粘贴的内容') RETURN END IF IF ll_row = dw_1.RowCount() THEN ll_row_add = ll_row ELSE FOR ll_i = ll_row + 1 To dw_1.RowCount() IF dw_1.Object.lp[ll_i] <= ll_lp THEN ll_row_add = ll_i - 1 EXIT END IF NEXT IF ll_row_add = 0 THEN ll_row_add = dw_1.RowCount() END IF END IF ll_lp_ds = dw_copy_main.Object.lp[1] dw_copy_main.AcceptText() FOR ll_i = 1 To dw_copy_main.RowCount() IF ins_copy_type = 0 THEN dw_copy_main.Object.lp[ll_i] = dw_copy_main.Object.lp[ll_i] + (ll_lp_ds - 1 - ll_lp) ELSEIF ins_copy_type = 1 THEN dw_copy_main.Object.lp[ll_i] = dw_copy_main.Object.lp[ll_i] + (ll_lp - ll_lp_ds + 1) END IF dw_copy_main.Object.iflock[ll_i] = 0 NEXT dw_copy_main.AcceptText() dw_1.SetRedraw(False) FOR ll_i = 1 To dw_copy_main.RowCount() dw_copy_main.RowsCopy (ll_i,ll_i,Primary!,dw_1,ll_row_add + ll_i,Primary!) NEXT dw_1.SetRedraw(True) ins_cnt++ mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.对 '+ ls_mtrlcode +' 粘贴已复制的组成物料' end event event ue_copy_mx_this();IF ins_ifmod THEN MessageBox('系统提示','编辑状态下不能使用复制功能') RETURN END IF IF ins_ifmod_wp THEN MessageBox('系统提示','编辑明细状态下不能使用复制功能') RETURN END IF Long ll_lp,ll_row,ll_i,ll_j String ls_mtrlcode ll_row = dw_1.GetRow() IF ll_row <= 0 THEN MessageBox('系统提示','请选择要复制清单的半成品') RETURN END IF ll_lp = dw_1.Object.lp[ll_row] IF ll_lp = 0 THEN MessageBox('系统提示','主产品不能使用复制功能') RETURN END IF ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_row] dw_copy_main.Reset() FOR ll_i = ll_row To dw_1.RowCount() IF ll_i <> ll_row THEN IF dw_1.Object.lp[ll_i] <= ll_lp THEN EXIT END IF ll_j++ dw_1.RowsCopy (ll_i,ll_i,Primary!,dw_copy_main,ll_j,Primary!) NEXT ins_copy_type = 1 ins_cnt++ mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.复制 '+ ls_mtrlcode +' 及其下级组成物料' MessageBox('系统提示','复制成功') end event event ue_paste_mx_same();IF ins_ifmod THEN MessageBox('系统提示','编辑状态下不能使用粘贴功能') RETURN END IF IF ins_ifmod_wp THEN MessageBox('系统提示','编辑明细状态下不能使用粘贴功能') RETURN END IF Long ll_lp,ll_row,ll_i,ll_j,ll_lp_ds,ll_row_add String ls_mtrlcode ll_row = dw_1.GetRow() IF ll_row <= 0 THEN MessageBox('系统提示','请选择要粘贴清单的半成品') return END IF ll_lp = dw_1.Object.lp[ll_row] if ll_lp = 0 then MessageBox('系统提示','主产品上不能使用本功能') RETURN END IF //IF ll_lp <> 0 THEN // IF dw_1.Object.ifnewadd[ll_row] <> 1 THEN // MessageBox('系统提示','只能在新建的资料或主产品上使用粘贴功能') // RETURN // END IF //END IF ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_row] IF dw_copy_main.RowCount() = 0 THEN MessageBox('系统提示','没有可粘贴的内容') RETURN END IF IF ll_row = dw_1.RowCount() THEN ll_row_add = ll_row ELSE FOR ll_i = ll_row + 1 To dw_1.RowCount() IF dw_1.Object.lp[ll_i] <= ll_lp THEN ll_row_add = ll_i - 1 EXIT END IF NEXT IF ll_row_add = 0 THEN ll_row_add = dw_1.RowCount() END IF END IF ll_lp_ds = dw_copy_main.Object.lp[1] dw_copy_main.AcceptText() FOR ll_i = 1 To dw_copy_main.RowCount() // IF ins_copy_type = 0 THEN dw_copy_main.Object.lp[ll_i] = dw_copy_main.Object.lp[ll_i] + (ll_lp - ll_lp_ds) // ELSEIF ins_copy_type = 1 THEN // dw_copy_main.Object.lp[ll_i] = dw_copy_main.Object.lp[ll_i] + (ll_lp - ll_lp_ds + 1) // END IF dw_copy_main.Object.iflock[ll_i] = 0 NEXT dw_copy_main.AcceptText() dw_1.SetRedraw(False) FOR ll_i = 1 To dw_copy_main.RowCount() dw_copy_main.RowsCopy (ll_i,ll_i,Primary!,dw_1,ll_row_add + ll_i,Primary!) NEXT dw_1.SetRedraw(True) ins_cnt++ mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.对 '+ ls_mtrlcode +' 同级粘贴已复制的组成物料' end event event ue_templet_ch();IF Not ins_ifmod_wp THEN RETURN Long ll_row Long child_row String ls_mtrlcode Long ll_mtrlid ll_row = dw_1.GetRow() child_row = dw_2.GetRow() IF ll_row <= 0 THEN MessageBox('系统提示','没有正确的物料内容') RETURN END IF IF dw_1.Object.u_mtrldef_mtrlorigin[ll_row] <> 0 THEN MessageBox('系统提示','只有自制来源的产品及半成品才能编辑工价表明细,请检查') RETURN END IF ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_row] Long ls_j IF Not IsValid(w_mtrl_workprice_templet_ch) THEN Open(w_mtrl_workprice_templet_ch) s_workpricetable_array s_ch s_ch = Message.PowerObjectParm dw_2.reset() FOR ls_j = 1 To UpperBound(s_ch.proid) IF s_ch.proid[ls_j] > 0 THEN //正常返回值则可以取以下值 child_row = dw_2.InsertRow(0) dw_2.Object.proid[child_row] = s_ch.proid[ls_j] dw_2.Object.procode[child_row] = s_ch.procode[ls_j] dw_2.Object.u_sc_workprice_proname[child_row] = s_ch.proname[ls_j] dw_2.Object.worklevel[child_row] = s_ch.worklevel[ls_j] dw_2.Object.techlevel[child_row] = s_ch.techlevel[ls_j] dw_2.Object.workhour[child_row] = s_ch.workhour[ls_j] dw_2.Object.wrkgrpid[child_row] = s_ch.wrkgrpid[ls_j] dw_2.Object.workprice[child_row] = s_ch.workprice[ls_j] dw_2.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode IF child_row > 1 THEN dw_2.Object.proorder[child_row] = dw_2.Object.proorder[child_row - 1] + 1 END IF END IF NEXT dw_2.SetRow(child_row) dw_2.ScrollToRow(child_row) dw_2.SetFocus() IF UpperBound(s_ch.proid) > 0 THEN dw_2.SetColumn("workprice") END IF END IF dw_2.SetRedraw(True) dw_2.SetFocus() end event event ue_wp_u_workqtystr();IF Not ins_ifmod_wp THEN RETURN dw_2.AcceptText() String ls_workqtystr Long ll_row s_edit_index_tran s_tran_str ll_row = dw_2.GetRow() IF ll_row <= 0 THEN RETURN ls_workqtystr = dw_2.Object.u_sc_workprice_u_workqtystr[ll_row] s_tran_str.b_long = 1 // 0-工价,1-数量 s_tran_str.b_string = ls_workqtystr OpenWithParm(w_mtrl_workpricestr_compute_edit,s_tran_str) ls_workqtystr = Message.StringParm dw_2.Object.u_sc_workprice_u_workqtystr[ll_row] = ls_workqtystr dw_2.AcceptText() end event event ue_wp_workqtystr();IF Not ins_ifmod_wp THEN RETURN dw_2.AcceptText() String ls_workqtystr Long ll_row s_edit_index_tran s_tran_str ll_row = dw_2.GetRow() IF ll_row <= 0 THEN RETURN ls_workqtystr = dw_2.Object.u_sc_workprice_workqtystr[ll_row] s_tran_str.b_long = 1 // 0-工价,1-数量 s_tran_str.b_string = ls_workqtystr OpenWithParm(w_mtrl_workpricestr_compute_edit,s_tran_str) ls_workqtystr = Message.StringParm dw_2.Object.u_sc_workprice_workqtystr[ll_row] = ls_workqtystr dw_2.AcceptText() end event event ue_wp_u_pricestr();IF Not ins_ifmod_wp THEN RETURN dw_2.AcceptText() String ls_pricestr Long ll_row s_edit_index_tran s_tran_str ll_row = dw_2.GetRow() IF ll_row <= 0 THEN RETURN ls_pricestr = dw_2.Object.u_sc_workprice_u_pricestr[ll_row] s_tran_str.b_long = 0 // 0-工价,1-数量 s_tran_str.b_string = ls_pricestr OpenWithParm(w_mtrl_workpricestr_compute_edit,s_tran_str) ls_pricestr = Message.StringParm dw_2.Object.u_sc_workprice_u_pricestr[ll_row] = ls_pricestr dw_2.AcceptText() end event event ue_wp_pricestr();IF Not ins_ifmod_wp THEN RETURN dw_2.AcceptText() String ls_pricestr Long ll_row s_edit_index_tran s_tran_str ll_row = dw_2.GetRow() IF ll_row <= 0 THEN RETURN ls_pricestr = dw_2.Object.u_sc_workprice_pricestr[ll_row] s_tran_str.b_long = 0 // 0-工价,1-数量 s_tran_str.b_string = ls_pricestr OpenWithParm(w_mtrl_workpricestr_compute_edit,s_tran_str) ls_pricestr = Message.StringParm dw_2.Object.u_sc_workprice_pricestr[ll_row] = ls_pricestr dw_2.AcceptText() end event event ue_import_xls_4();// 导入Excel Int rslt = 1 String arg_msg DataStore ds_col30 ds_col30 = Create DataStore ds_col30.DataObject = 'dw_col30' If f_readxls(ds_col30,arg_msg) <> 1 Then rslt = 0 Goto ext End If Long ll_lp Long ll_row,ll_row_new Long cnt Long ll_cnt Long ll_mtrlid_p String ls_mtrlcode_p String ls_pfcode Long ll_mtrlid String ls_mtrlcode String ls_mtrlname Int li_mtrlprp String ls_mtrlmode String ls_unit String ls_zxmtrlmode String ls_mtrlsectype Int li_statusflag Int li_statustype Int li_woodcodeflag Int li_woodcodetype Int li_pcodeflag Int li_pcodetype String ls_usermtrlmode Int li_Mtrlorigin Long ll_dftwrkgrpid Long ll_scid Long ll_mtrltypeid String ls_wrkGrpName Decimal ld_sonscale, lde_qty Long ll_wrkgrpid_scll String ls_col16, ls_col17 Long ll_newrow String ls_promode,ls_pfgroup,ls_pfgroupmode,ls_pfklmode Decimal ld_pfgroupqty,lde_qty_mx String ls_wenli,ls_fengbian,ls_paikong,ls_luoji,ls_penyou string ls_dscrp Long ll_modleid String ls_modlename String ls_pfgroup_p Select count(*) Into :cnt From u_mtrl_wkp_tech_modle; If sqlca.SQLCode <> 0 Then cnt = 0 If cnt = 1 Then Select top 1 modleid, modlename Into :ll_modleid, :ls_modlename From u_mtrl_wkp_tech_modle; If sqlca.SQLCode <> 0 Then ll_modleid = 0 ls_modlename = '' End If End If If Not cbx_ifreset.Checked Then dw_1.Reset() //插入产品 wf_re_mtrl(0) End If dw_1.SetRedraw(False) For ll_row = 7 To ds_col30.RowCount() //明细终止标记 If Trim(ds_col30.GetItemString(ll_row,14)) = '' And Trim(ds_col30.GetItemString(ll_row,2)) = '' Then Exit ls_mtrlcode_p = Trim(ds_col30.GetItemString(ll_row,13)) ls_mtrlname = Trim(ds_col30.GetItemString(ll_row,15)) ls_mtrlcode = Trim(ds_col30.GetItemString(ll_row,14)) ld_sonscale = Dec(Trim(ds_col30.GetItemString(ll_row,21))) lde_qty = Dec(Trim(ds_col30.GetItemString(ll_row,7))) //部件数量 lde_qty_mx = Dec(Trim(ds_col30.GetItemString(ll_row,19))) // If IsNull(ld_sonscale) Then ld_sonscale = 0 If ld_sonscale = 0 Then If lde_qty = 0 Then ld_sonscale = lde_qty_mx Else ld_sonscale = lde_qty End If End If ls_promode = Trim(ds_col30.GetItemString(ll_row,3)) ls_pfgroup = Trim(ds_col30.GetItemString(ll_row,2)) // ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,5)) + '*'+Trim(ds_col30.GetItemString(ll_row,6))+'*'+Trim(ds_col30.GetItemString(ll_row,7)) // ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,16)) + '*'+Trim(ds_col30.GetItemString(ll_row,17))+'*'+Trim(ds_col30.GetItemString(ll_row,18)) ls_pfgroupmode = '' ls_pfklmode = '' If Trim(ds_col30.GetItemString(ll_row,4)) <> '' Then ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,4)) End If If Trim(ds_col30.GetItemString(ll_row,5)) <> '' Then If Trim(ls_pfgroupmode) <> '' Then ls_pfgroupmode = ls_pfgroupmode + '*'+Trim(ds_col30.GetItemString(ll_row,5)) Else ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,5)) End If End If If Trim(ds_col30.GetItemString(ll_row,6)) <> '' Then If Trim(ls_pfgroupmode) <> '' Then ls_pfgroupmode = ls_pfgroupmode + '*'+Trim(ds_col30.GetItemString(ll_row,6)) Else ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,6)) End If End If If Trim(ds_col30.GetItemString(ll_row,16)) <> '' Then ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,16)) End If If Trim(ds_col30.GetItemString(ll_row,17)) <> '' Then If Trim(ls_pfklmode) <> '' Then ls_pfklmode = ls_pfklmode + '*'+Trim(ds_col30.GetItemString(ll_row,17)) Else ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,17)) End If End If If Trim(ds_col30.GetItemString(ll_row,18)) <> '' Then If Trim(ls_pfklmode) <> '' Then ls_pfklmode = ls_pfklmode + '*'+Trim(ds_col30.GetItemString(ll_row,18)) Else ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,18)) End If End If ls_wenli = Trim(ds_col30.GetItemString(ll_row,8)) ls_fengbian = Trim(ds_col30.GetItemString(ll_row,9)) ls_paikong = Trim(ds_col30.GetItemString(ll_row,10)) ls_luoji = Trim(ds_col30.GetItemString(ll_row,11)) ls_penyou = Trim(ds_col30.GetItemString(ll_row,12)) ls_dscrp = Trim(ds_col30.GetItemString(ll_row,27)) ls_col16 = Trim(ds_col30.GetItemString(ll_row,16)) ls_col17 = Trim(ds_col30.GetItemString(ll_row,17)) If ls_pfgroup = '' Then ls_pfgroup = ls_pfgroup_p + '封边带' Else ls_pfgroup_p = ls_pfgroup End If // If lde_qty <> 0 Then // ld_sonscale = ld_sonscale / lde_qty // End If // If ls_mtrlcode_p <> "" Then // // cnt = 0 // Select COUNT(*) // Into :cnt // From u_mtrldef // Where (mtrlcode = :ls_mtrlcode_p) // And (mtrlorigin = 0); // If sqlca.SQLCode = -1 Then // rslt = 0 // arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlcode_p + ',部件查询资料定义表失败,' + sqlca.SQLErrText // Goto ext // ElseIf sqlca.SQLCode = 100 Then // cnt = 0 // End If // // If cnt > 1 Then // rslt = 0 // arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlcode_p + ',部件资料定义有' + String(cnt) + '条重复记录' // Goto ext // ElseIf cnt = 1 Then //插入部件 // Select mtrlid,dftwrkgrpid,mtrlorigin Into :ll_mtrlid_p,:ll_dftwrkgrpid,:li_mtrlorigin // From u_mtrldef Where mtrlcode = :ls_mtrlcode_p; // If sqlca.SQLCode <> 0 Then // rslt = 0 // arg_msg = '第' + String(ll_row) + '行父代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText // Goto ext // End If // // If ll_dftwrkgrpid = 0 Then // rslt = 0 // arg_msg = '第' + String(ll_row) + '行父代码资料的默认生产车间未设置,请检查' // Goto ext // Else // Select top 1 wrkgrpid Into :ll_wrkgrpid_scll // From u_sc_workgroup // Where storageid = :ll_dftwrkgrpid // Order By wrkgrpcode; // If sqlca.SQLCode <> 0 Then // rslt = 0 // arg_msg = '第' + String(ll_row) + '行父代码资料默认生产车间第1工组失败,可能资料未定义' + sqlca.SQLErrText // Goto ext // End If // End If // //插入部件 // wf_add_row(ll_mtrlid_p, '', 1, 1, arg_msg,ll_row_new) // ElseIf cnt = 0 Then //插入新行-部件 // //插入部件 // wf_add_row_null(ls_mtrlcode_p, 1, 1, arg_msg,ll_row_new) // End If // // If ll_row_new > 0 Then // dw_1.Object.u_prdpf_sonpfcode[ll_row_new] = ins_pfcode // dw_1.Object.u_prdpf_dipztype[ll_row_new] = 3 // dw_1.Object.u_prdpf_ifover[ll_row_new] = 1 // End If // // End If //ls_mtrlcode_p <> "" // //插入新行 cnt = 0 Select COUNT(*) Into :cnt From u_mtrldef Where u_mtrldef.mtrlcode = :ls_mtrlcode; If sqlca.SQLCode = -1 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlname + ',材料查询资料定义表失败,' + sqlca.SQLErrText Goto ext ElseIf sqlca.SQLCode = 100 Then cnt = 0 End If // If ls_col16 = '' And ls_col17 = '' Then ll_lp = 1 // Else // ll_lp = 2 // End If If cnt > 1 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlname + ',材料资料定义有' + String(cnt) + '条重复记录' Goto ext ElseIf cnt = 1 Then //插入部件 Select mtrlid,dftwrkgrpid,mtrlorigin Into :ll_mtrlid,:ll_dftwrkgrpid,:li_mtrlorigin From u_mtrldef Where mtrlcode = :ls_mtrlcode; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行父代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText Goto ext End If //插入材料 wf_add_row(ll_mtrlid, '', ll_lp, ld_sonscale, arg_msg,ll_row_new) If wf_addmx_row(ll_mtrlid,'',ll_lp + 1,ll_row_new + 1 ,ld_sonscale,arg_msg) = 0 Then rslt = 0 Goto ext End If ElseIf cnt = 0 Then //插入新行-部件 //插入材料 wf_add_row_null(ls_mtrlname, ll_lp, ld_sonscale, arg_msg,ll_row_new) End If If ll_row_new > 0 Then dw_1.Object.u_prdpf_promode[ll_row_new] = ls_promode dw_1.Object.u_prdpf_pfgroup[ll_row_new] = ls_pfgroup dw_1.Object.u_prdpf_pfgroupmode[ll_row_new] = ls_pfgroupmode dw_1.Object.u_prdpf_pfgroupqty[ll_row_new] = lde_qty dw_1.Object.u_prdpf_pfklmode[ll_row_new] = ls_pfklmode dw_1.Object.u_prdpf_wenli[ll_row_new] = ls_wenli dw_1.Object.u_prdpf_fengbian[ll_row_new] = ls_fengbian dw_1.Object.u_prdpf_paikong[ll_row_new] = ls_paikong dw_1.Object.u_prdpf_luoji[ll_row_new] = ls_luoji dw_1.Object.u_prdpf_penyou[ll_row_new] = ls_penyou dw_1.Object.u_prdpf_dscrp[ll_row_new] = ls_dscrp // If ll_lp = 1 Then // dw_1.Object.u_prdpf_dipztype[ll_row_new] = 3 // dw_1.Object.u_prdpf_ifover[ll_row_new] = 1 // else dw_1.Object.u_prdpf_dipztype[ll_row_new] = -1 dw_1.Object.u_prdpf_ifover[ll_row_new] = 0 // End If If lde_qty > 0 Then dw_1.Object.u_prdpf_modleid[ll_row_new] = ll_modleid dw_1.Object.u_prdpf_modlename[ll_row_new] = ls_modlename End If End If Next ext: Destroy ds_col30 dw_1.SetRedraw(True) If rslt = 0 Then MessageBox('提示',arg_msg) End If end event event ue_import_xls_5();// 导入Excel If ins_mtrlid = 0 Then MessageBox('系统提示','请先选择产品') Return End If Int rslt = 1 String arg_msg DataStore ds_col30 ds_col30 = Create DataStore ds_col30.DataObject = 'dw_col30' If f_readxls(ds_col30,arg_msg) <> 1 Then rslt = 0 Goto ext End If Long ll_lp Long ll_row,ll_row_new,ll_row_newmx Long cnt Long ll_cnt Long ll_mtrlid_p String ls_mtrlcode_p String ls_pfcode Long ll_mtrlid String ls_mtrlcode String ls_mtrlname Int li_mtrlprp String ls_mtrlmode String ls_unit String ls_zxmtrlmode String ls_mtrlsectype Int li_statusflag Int li_statustype Int li_woodcodeflag Int li_woodcodetype Int li_pcodeflag Int li_pcodetype String ls_usermtrlmode Int li_Mtrlorigin Long ll_dftwrkgrpid Long ll_scid Long ll_mtrltypeid String ls_wrkGrpName Decimal ld_sonscale, lde_qty Long ll_wrkgrpid_scll String ls_col16, ls_col17 Long ll_newrow String ls_promode,ls_pfgroup,ls_pfgroupmode,ls_pfklmode Decimal ld_pfgroupqty,lde_qty_mx String ls_wenli,ls_fengbian,ls_paikong,ls_luoji,ls_penyou String ls_dscrp Long ll_modleid String ls_modlename String ls_pfgroup_p String ls_mtrlcode_ban,ls_mtrlname_ban Long ll_lp_add,ll_lp_add_p //用于记录增加胚板/后段板后,对应增加的层级数 String unit_f,mtrlsectype_f,zxmtrlmode_f,usermtrlmode_f,piccode_f Long mtrltypeid_f,ifselforder_f,ordertype_f,scid_f,dftwrkgrpid_f,mtrlprp_f Decimal orderdays_f,buydays_f,wfjgdays_f Long mtrlid_f,dftscllwkpid_f,outtype_f String unit_a,mtrlsectype_a,zxmtrlmode_a,usermtrlmode_a,piccode_a Long mtrltypeid_a,ifselforder_a,ordertype_a,scid_a,dftwrkgrpid_a,mtrlprp_a Decimal orderdays_a,buydays_a,wfjgdays_a Long mtrlid_a,dftscllwkpid_a,outtype_a String ls_mb_mtrlcode,ls_wpcode Boolean lb_ifmb = False //是否有模板编码及是否成功读取模板编码资料 Boolean lb_ifmb_a = False //后段板 是否有模板编码及是否读取数据成功 Long ll_k,ll_row_f,ll_l,ll_j String ls_procode String ls_mb_mtrlcode_p //胚板模板 String ls_mb_mtrlcode_a //后段板模板 String ls_promode_lit Int li_ifyb_mode = 0 //压板模式 String ls_yb_name = '' //压板名称 Long ll_row_r,ll_cnt_r Long ll_lp_yb = 0,ll_lp_yb_add = 0 DataStore ds_repeat ds_repeat = Create DataStore ds_repeat.DataObject = 'ds_mtrl_prdpf_check_repeat' s_workpricetable arg_s_mx[],arg_s_empty[] Select count(*) Into :cnt From u_mtrl_wkp_tech_modle; If sqlca.SQLCode <> 0 Then cnt = 0 If cnt = 1 Then Select top 1 modleid, modlename Into :ll_modleid, :ls_modlename From u_mtrl_wkp_tech_modle; If sqlca.SQLCode <> 0 Then ll_modleid = 0 ls_modlename = '' End If End If If Not cbx_ifreset.Checked Then dw_1.Reset() //插入产品 wf_re_mtrl(0) dw_copy.Reset() End If dw_1.SetRedraw(False) For ll_row = 7 To ds_col30.RowCount() //明细终止标记 If Trim(ds_col30.GetItemString(ll_row,14)) = '' And Trim(ds_col30.GetItemString(ll_row,15)) = '' And Trim(ds_col30.GetItemString(ll_row,2)) = '' Then Exit ls_mtrlname = Trim(ds_col30.GetItemString(ll_row,15)) ls_mtrlcode = Trim(ds_col30.GetItemString(ll_row,14)) ld_sonscale = Dec(Trim(ds_col30.GetItemString(ll_row,21))) lde_qty = Dec(Trim(ds_col30.GetItemString(ll_row,7))) //部件数量 lde_qty_mx = Dec(Trim(ds_col30.GetItemString(ll_row,19))) // ls_mb_mtrlcode = Trim(ds_col30.GetItemString(ll_row,13)) If IsNull(ld_sonscale) Then ld_sonscale = 0 If ld_sonscale = 0 Then If lde_qty = 0 Then ld_sonscale = lde_qty_mx Else ld_sonscale = lde_qty End If End If ls_promode = Trim(ds_col30.GetItemString(ll_row,3)) If Pos(ls_promode,'-') > 0 Then ls_promode_lit = Mid(ls_promode,Pos(ls_promode,'-') + 1) Else ls_promode_lit = ls_promode End If ls_pfgroup = Trim(ds_col30.GetItemString(ll_row,2)) // ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,5)) + '*'+Trim(ds_col30.GetItemString(ll_row,6))+'*'+Trim(ds_col30.GetItemString(ll_row,7)) // ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,16)) + '*'+Trim(ds_col30.GetItemString(ll_row,17))+'*'+Trim(ds_col30.GetItemString(ll_row,18)) ls_pfgroupmode = '' ls_pfklmode = '' If Trim(ds_col30.GetItemString(ll_row,4)) <> '' Then ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,4)) End If If Trim(ds_col30.GetItemString(ll_row,5)) <> '' Then If Trim(ls_pfgroupmode) <> '' Then ls_pfgroupmode = ls_pfgroupmode + '*'+Trim(ds_col30.GetItemString(ll_row,5)) Else ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,5)) End If End If If Trim(ds_col30.GetItemString(ll_row,6)) <> '' Then If Trim(ls_pfgroupmode) <> '' Then ls_pfgroupmode = ls_pfgroupmode + '*'+Trim(ds_col30.GetItemString(ll_row,6)) Else ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,6)) End If End If If Trim(ds_col30.GetItemString(ll_row,16)) <> '' Then ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,16)) End If If Trim(ds_col30.GetItemString(ll_row,17)) <> '' Then If Trim(ls_pfklmode) <> '' Then ls_pfklmode = ls_pfklmode + '*'+Trim(ds_col30.GetItemString(ll_row,17)) Else ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,17)) End If End If If Trim(ds_col30.GetItemString(ll_row,18)) <> '' Then If Trim(ls_pfklmode) <> '' Then ls_pfklmode = ls_pfklmode + '*'+Trim(ds_col30.GetItemString(ll_row,18)) Else ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,18)) End If End If ls_wenli = Trim(ds_col30.GetItemString(ll_row,8)) ls_fengbian = Trim(ds_col30.GetItemString(ll_row,9)) ls_paikong = Trim(ds_col30.GetItemString(ll_row,10)) ls_luoji = Trim(ds_col30.GetItemString(ll_row,11)) ls_penyou = Trim(ds_col30.GetItemString(ll_row,12)) ls_dscrp = Trim(ds_col30.GetItemString(ll_row,27)) ls_col16 = Trim(ds_col30.GetItemString(ll_row,16)) ls_col17 = Trim(ds_col30.GetItemString(ll_row,17)) //读取模板编码资料 If Pos(ls_mb_mtrlcode,'+') = 0 Then //如果模板编码不含+号,ls_mb_mtrlcode属于胚板模块编码 ls_mb_mtrlcode_p = ls_mb_mtrlcode Else //如果含+号,+号前是后段板模板编码,+号后是胚板编码 ls_mb_mtrlcode_a = Mid(ls_mb_mtrlcode , 1 , Pos(ls_mb_mtrlcode , '+') - 1 ) ls_mb_mtrlcode_p = Mid(ls_mb_mtrlcode , Pos(ls_mb_mtrlcode , '+') + 1) End If //读取胚板模板编码信息 lb_ifmb = False If ls_mb_mtrlcode_p <> '' Then Select unit, mtrltypeid, mtrlsectype, zxmtrlmode, usermtrlmode, piccode, ifselforder, ordertype, scid, dftwrkgrpid, orderdays, buydays, wfjgdays, mtrlid, dftscllwkpid, mtrlprp, outtype Into :unit_f, :mtrltypeid_f, :mtrlsectype_f, :zxmtrlmode_f, :usermtrlmode_f, :piccode_f, :ifselforder_f, :ordertype_f, :scid_f, :dftwrkgrpid_f, :orderdays_f, :buydays_f, :wfjgdays_f, :mtrlid_f, :dftscllwkpid_f, :mtrlprp_f, :outtype_f From u_mtrldef Where mtrlcode = :ls_mb_mtrlcode_p; If sqlca.SQLCode <> 0 Then lb_ifmb = False Else lb_ifmb = True End If End If //读取后段板模板编码信息 lb_ifmb_a = False If ls_mb_mtrlcode_a <> '' Then Select unit, mtrltypeid, mtrlsectype, zxmtrlmode, usermtrlmode, piccode, ifselforder, ordertype, scid, dftwrkgrpid, orderdays, buydays, wfjgdays, mtrlid, dftscllwkpid, mtrlprp, outtype Into :unit_a, :mtrltypeid_a, :mtrlsectype_a, :zxmtrlmode_a, :usermtrlmode_a, :piccode_a, :ifselforder_a, :ordertype_a, :scid_a, :dftwrkgrpid_a, :orderdays_a, :buydays_a, :wfjgdays_a, :mtrlid_a, :dftscllwkpid_a, :mtrlprp_a, :outtype_a From u_mtrldef Where mtrlcode = :ls_mb_mtrlcode_a; If sqlca.SQLCode <> 0 Then lb_ifmb_a = False Else lb_ifmb_a = True End If End If // //增加胚板/后段板 //在圆方导入的excel如果<封边信息>栏有录入信息则为加工板 //如果<封边信息>栏无录入信息且在<喷油(吸塑)信息>栏录入了喷油则为喷油板 //如果<封边信息>栏无录入信息且在<喷油(吸塑)信息>栏录入了吸塑则为吸塑板 //喷油板,吸塑板 均为后段板 //编码规则: //后段板编码:包件编码+部件代号 //胚板编码:包件编码+部件代号+特殊标识号 ll_lp_add = 0 If ls_pfgroup <> '' Then //And (ls_fengbian <> '' Or ls_fengbian = '' And ls_penyou <> '' ) Then If li_ifyb_mode = 1 Then //如果进入压板模式,对比本行部件名称是否与压板名称匹配 If Left(ls_pfgroup,Len(ls_yb_name)) = ls_yb_name Then //如匹配,本行部件是压板组料,属于压板下级 ll_lp_yb_add = ll_lp_yb Else //如果不匹配,退出压板模式 li_ifyb_mode = 0 ll_lp_yb_add = 0 End If Else ll_lp_yb_add = 0 End If //新需求:压板均为胚板 20150310 If Not (ls_fengbian = '' And ls_penyou <> '') or (ls_mtrlcode = '' And ls_mtrlname = '压板') Then //ls_fengbian <> '' Then //胚板(只增加一层) ll_lp_add = 1 + ll_lp_yb_add If ls_mtrlcode = '' And ls_mtrlname = '压板' Then //本物料为压板, 下级相关组料层级归到本物料下 li_ifyb_mode = 1 ls_yb_name = ls_pfgroup ll_lp_yb = 1 End If Else //后段板(增加后段板-胚板,两层) ll_lp_add = 2 + ll_lp_yb_add //新需求:压板均为胚板 20150310 这段不会再执行 If ls_mtrlcode = '' And ls_mtrlname = '压板' Then //本物料为压板, 下级相关组料层级归到本物料下 li_ifyb_mode = 1 ls_yb_name = ls_pfgroup ll_lp_yb = 2 End If /// //增加后段板代码 ls_mtrlcode_ban = ins_mtrlcode + '_' + ls_promode_lit //ls_promode ////需求变更:物料清单导入界面生成的板件编码不用型号,只取部件代号'-'后面部分【优适】 dyy 20141110 ls_mtrlname_ban = ls_pfgroup + '(后段)' //检查相同部件编号但不同板件材料的情况 If ds_repeat.Find('mtrlcode_ban = "'+ls_mtrlcode_ban+'" and mtrlcode = "'+ls_mtrlcode+'"',1,ds_repeat.RowCount()) = 0 Then ll_row_r = ds_repeat.InsertRow(0) ds_repeat.Object.mtrlcode_ban[ll_row_r] = ls_mtrlcode_ban ds_repeat.Object.mtrlcode[ll_row_r] = ls_mtrlcode End If ds_repeat.SetFilter('mtrlcode_ban = "'+ls_mtrlcode_ban+'"') ds_repeat.Filter() ll_cnt_r = ds_repeat.RowCount() If ll_cnt_r > 1 Then ls_mtrlcode_ban = ls_mtrlcode_ban + '('+String(ll_cnt_r)+')' End If ds_repeat.SetFilter('') ds_repeat.Filter() //// // If ls_mtrlcode_ban <> "" Then cnt = 0 Select COUNT(*) Into :cnt From u_mtrldef Where (mtrlcode = :ls_mtrlcode_ban) And (mtrlorigin = 0); If sqlca.SQLCode = -1 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlcode_ban + ',部件查询资料定义表失败,' + sqlca.SQLErrText Goto ext ElseIf sqlca.SQLCode = 100 Then cnt = 0 End If If cnt > 1 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlcode_ban + ',部件资料定义有' + String(cnt) + '条重复记录' Goto ext ElseIf cnt = 1 Then //插入部件 Select mtrlid,dftwrkgrpid,mtrlorigin Into :ll_mtrlid_p,:ll_dftwrkgrpid,:li_mtrlorigin From u_mtrldef Where mtrlcode = :ls_mtrlcode_ban; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行父代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText Goto ext End If // If ll_dftwrkgrpid = 0 Then // rslt = 0 // arg_msg = '第' + String(ll_row) + '行父代码资料的默认生产车间未设置,请检查' // Goto ext // Else // Select top 1 wrkgrpid Into :ll_wrkgrpid_scll // From u_sc_workgroup // Where storageid = :ll_dftwrkgrpid // Order By wrkgrpcode; // If sqlca.SQLCode <> 0 Then // rslt = 0 // arg_msg = '第' + String(ll_row) + '行父代码资料默认生产车间第1工组失败,可能资料未定义' + sqlca.SQLErrText // Goto ext // End If // End If //插入部件 wf_add_row(ll_mtrlid_p, '', 1, lde_qty, arg_msg,ll_row_new) ElseIf cnt = 0 Then //插入新行-部件 //插入部件 wf_add_row_null(ls_mtrlname_ban, 1, lde_qty, arg_msg,ll_row_new) If ll_row_new > 0 Then dw_1.Object.u_mtrldef_mtrlcode[ll_row_new] = ls_mtrlcode_ban dw_1.Object.u_mtrldef_mtrlorigin[ll_row_new] = 0 dw_1.Object.u_mtrldef_mtrlprp[ll_row_new] = 0 dw_1.Object.u_mtrldef_unit[ll_row_new] = '块' // dw_1.Object.u_prdpf_pfgroup[ll_row_new] = ls_mtrlname_ban // dw_1.Object.u_prdpf_promode[ll_row_new] = ls_promode dw_1.Object.u_prdpf_pfgroupqty[ll_row_new] = lde_qty dw_1.Object.u_prdpf_sonpfcode[ll_row_new] = '[常规]' // dw_1.Object.u_prdpf_pfgroupmode[ll_row_new] = ls_pfgroupmode dw_1.Object.u_mtrldef_mtrlmode[ll_row_new] = ls_pfgroupmode dw_1.Object.u_prdpf_wenli[ll_row_new] = ls_wenli dw_1.Object.u_prdpf_fengbian[ll_row_new] = ls_fengbian dw_1.Object.u_prdpf_paikong[ll_row_new] = ls_paikong dw_1.Object.u_prdpf_luoji[ll_row_new] = ls_luoji dw_1.Object.u_prdpf_penyou[ll_row_new] = ls_penyou dw_1.Object.u_mtrldef_ban_wenli[ll_row_new] = ls_wenli dw_1.Object.u_mtrldef_ban_fengbian[ll_row_new] = ls_fengbian dw_1.Object.u_mtrldef_ban_paikong[ll_row_new] = ls_paikong dw_1.Object.u_mtrldef_ban_luoji[ll_row_new] = ls_luoji dw_1.Object.u_mtrldef_ban_penyou[ll_row_new] = ls_penyou dw_1.Object.u_mtrldef_ban_gydscrp[ll_row_new] = ls_dscrp dw_1.Object.u_mtrldef_ban_promode[ll_row_new] = ls_promode dw_1.Object.u_mtrldef_ban_pfklmode[ll_row_new] = ls_pfklmode dw_1.Object.u_prdpf_dscrp[ll_row_new] = ls_dscrp dw_1.Object.u_mtrldef_ifselforder[ll_row_new] = 2 dw_1.Object.ifnewadd[ll_row_new] = 1 dw_1.Object.u_mtrldef_bantype[ll_row_new] = 2 //套用模板编码资料信息 If lb_ifmb_a Then dw_1.Object.u_mtrldef_unit[ll_row_new] = unit_a dw_1.Object.u_mtrldef_mtrltypeid[ll_row_new] = mtrltypeid_a dw_1.Object.u_mtrldef_mtrlsectype[ll_row_new] = mtrlsectype_a dw_1.Object.u_mtrldef_zxmtrlmode[ll_row_new] = zxmtrlmode_a dw_1.Object.u_mtrldef_usermtrlmode[ll_row_new] = usermtrlmode_a dw_1.Object.u_mtrldef_piccode[ll_row_new] = piccode_a dw_1.Object.u_mtrldef_ifselforder[ll_row_new] = ifselforder_a dw_1.Object.u_mtrldef_ordertype[ll_row_new] = ordertype_a dw_1.Object.u_mtrldef_scid[ll_row_new] = scid_a dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row_new] = dftwrkgrpid_a dw_1.Object.u_mtrldef_orderdays[ll_row_new] = orderdays_a dw_1.Object.u_mtrldef_buydays[ll_row_new] = buydays_a dw_1.Object.u_mtrldef_wfjgdays[ll_row_new] = wfjgdays_a dw_1.Object.u_mtrldef_mtrlprp[ll_row_new] = mtrlprp_a dw_1.Object.u_mtrldef_outtype[ll_row_new] = outtype_a dw_1.Object.u_PrdPF_wrkgrpid[ll_row_new] = dftscllwkpid_a dw_1.Object.mb_mtrlcode[ll_row_new] = ls_mb_mtrlcode_a dw_1.Object.mb_mtrlid[ll_row_new] = mtrlid_a End If End If //处理工价表_后段(如果有模板编码,使用模板编码的工价表,并按[cbx_wp_pack 按清单说明自动生成包件工价表]决定是否解释清单备注到工价表) dw_2.Reset() If lb_ifmb Then ls_wpcode = f_get_dft_wp(mtrlid_a) dw_2.Retrieve(mtrlid_a,ls_wpcode) End If If cbx_wp_pack.Checked Then If Trim(ls_dscrp) <> '' Then arg_s_mx = arg_s_empty f_cmp_proname(ls_dscrp,arg_s_mx) For ll_k = 1 To UpperBound(arg_s_mx) cnt++ // ll_row_f = dw_2.Find('procode = "'+arg_s_mx[ll_k].procode + '_' + ls_promode+'"',1,dw_2.RowCount()) ll_row_f = dw_2.Find('procode = "'+arg_s_mx[ll_k].procode+'"',1,dw_2.RowCount()) If ll_row_f = 0 Then //2014-09-15 需求变更: 模板工价表没有的工序,即使备注有,也不插入(优适), 屏蔽以下代码 //2014-09-20 需求再变更: 旧模式要插入,新模式不插入,所以增加cbx由用户自由控制,解除屏蔽以下代码 //2014-10-28 增加需求:如果工序有定义工价公式的,导入时将默认工式导入到工价表的工价公式 If cbx_wp_add.Checked Then ll_row_newmx = dw_2.InsertRow(0) dw_2.Object.proorder[ll_row_newmx] = cnt dw_2.Object.procode[ll_row_newmx] = arg_s_mx[ll_k].procode // + '_' + ls_promode dw_2.Object.u_sc_workprice_proname[ll_row_newmx] = arg_s_mx[ll_k].proname // + '_' + ls_pfgroup dw_2.Object.wrkgrpid[ll_row_newmx] = arg_s_mx[ll_k].wrkgrpid dw_2.Object.u_sc_workprice_pricestr[ll_row_newmx] = arg_s_mx[ll_k].pricestr If Trim(arg_s_mx[ll_k].pricestr) <> '' Then dw_2.Object.workprice[ll_row_newmx] = 0 Else dw_2.Object.workprice[ll_row_newmx] = arg_s_mx[ll_k].workprice End If dw_2.Object.workqty[ll_row_newmx] = 1 dw_2.Object.lsxtype[ll_row_newmx] = 1 End If Else dw_2.Object.wrkgrpid[ll_row_f] = arg_s_mx[ll_k].wrkgrpid dw_2.Object.u_sc_workprice_pricestr[ll_row_f] = arg_s_mx[ll_k].pricestr If Trim(arg_s_mx[ll_k].pricestr) <> '' Then dw_2.Object.workprice[ll_row_f] = 0 Else dw_2.Object.workprice[ll_row_f] = arg_s_mx[ll_k].workprice End If End If Next End If End If ll_j = 0 For ll_l = 1 To dw_2.RowCount() ls_procode = dw_2.Object.procode[ll_l] dw_2.Object.u_mtrldef_mtrlcode[ll_l] = ls_mtrlcode_ban dw_2.AcceptText() If dw_copy.Find("u_mtrldef_mtrlcode = '"+ls_mtrlcode_ban + "' and procode = '"+ls_procode+"'", 1, dw_copy.RowCount()) > 0 Then Continue ll_j++ dw_2.RowsCopy (ll_l,ll_l,Primary!,dw_copy,ll_j,Primary!) Next dw_1.Object.ifmod_wp[ll_row_new] = 1 //处理工价表_后段(完) End If End If //增加后段板代码(完) End If //增加胚板代码 ls_mtrlcode_ban = ins_mtrlcode + '_' + ls_promode_lit + '_P' //ls_promode + '_P' ////需求变更:物料清单导入界面生成的板件编码不用型号,只取部件代号'-'后面部分【优适】 dyy 20141110 ls_mtrlname_ban = ls_pfgroup //检查相同部件编号但不同板件材料的情况 If ds_repeat.Find('mtrlcode_ban = "'+ls_mtrlcode_ban+'" and mtrlcode = "'+ls_mtrlcode+'"',1,ds_repeat.RowCount()) = 0 Then ll_row_r = ds_repeat.InsertRow(0) ds_repeat.Object.mtrlcode_ban[ll_row_r] = ls_mtrlcode_ban ds_repeat.Object.mtrlcode[ll_row_r] = ls_mtrlcode End If ds_repeat.SetFilter('mtrlcode_ban = "'+ls_mtrlcode_ban+'"') ds_repeat.Filter() ll_cnt_r = ds_repeat.RowCount() If ll_cnt_r > 1 Then ls_mtrlcode_ban = ls_mtrlcode_ban + '('+String(ll_cnt_r)+')' End If ds_repeat.SetFilter('') ds_repeat.Filter() //// // If ls_mtrlcode_ban <> "" Then cnt = 0 Select COUNT(*) Into :cnt From u_mtrldef Where (mtrlcode = :ls_mtrlcode_ban) And (mtrlorigin = 0); If sqlca.SQLCode = -1 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlcode_ban + ',部件查询资料定义表失败,' + sqlca.SQLErrText Goto ext ElseIf sqlca.SQLCode = 100 Then cnt = 0 End If If cnt > 1 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlcode_ban + ',部件资料定义有' + String(cnt) + '条重复记录' Goto ext ElseIf cnt = 1 Then //插入部件 Select mtrlid,dftwrkgrpid,mtrlorigin Into :ll_mtrlid_p,:ll_dftwrkgrpid,:li_mtrlorigin From u_mtrldef Where mtrlcode = :ls_mtrlcode_ban; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行父代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText Goto ext End If // If ll_dftwrkgrpid = 0 Then // rslt = 0 // arg_msg = '第' + String(ll_row) + '行父代码资料的默认生产车间未设置,请检查' // Goto ext // Else // Select top 1 wrkgrpid Into :ll_wrkgrpid_scll // From u_sc_workgroup // Where storageid = :ll_dftwrkgrpid // Order By wrkgrpcode; // If sqlca.SQLCode <> 0 Then // rslt = 0 // arg_msg = '第' + String(ll_row) + '行父代码资料默认生产车间第1工组失败,可能资料未定义' + sqlca.SQLErrText // Goto ext // End If // End If //插入部件 wf_add_row(ll_mtrlid_p, '', ll_lp_add, lde_qty, arg_msg,ll_row_new) ElseIf cnt = 0 Then //插入新行-部件 //插入部件 wf_add_row_null(ls_mtrlname_ban, ll_lp_add, lde_qty, arg_msg,ll_row_new) If ll_row_new > 0 Then dw_1.Object.u_mtrldef_mtrlcode[ll_row_new] = ls_mtrlcode_ban dw_1.Object.u_mtrldef_mtrlorigin[ll_row_new] = 0 dw_1.Object.u_mtrldef_mtrlprp[ll_row_new] = 0 dw_1.Object.u_mtrldef_unit[ll_row_new] = '块' // dw_1.Object.u_prdpf_pfgroup[ll_row_new] = ls_mtrlname_ban // dw_1.Object.u_prdpf_promode[ll_row_new] = ls_promode dw_1.Object.u_prdpf_pfgroupqty[ll_row_new] = lde_qty dw_1.Object.u_prdpf_sonpfcode[ll_row_new] = '[常规]' // dw_1.Object.u_prdpf_pfgroupmode[ll_row_new] = ls_pfgroupmode dw_1.Object.u_mtrldef_mtrlmode[ll_row_new] = ls_pfgroupmode dw_1.Object.u_prdpf_wenli[ll_row_new] = ls_wenli dw_1.Object.u_prdpf_fengbian[ll_row_new] = ls_fengbian dw_1.Object.u_prdpf_paikong[ll_row_new] = ls_paikong dw_1.Object.u_prdpf_luoji[ll_row_new] = ls_luoji dw_1.Object.u_prdpf_penyou[ll_row_new] = ls_penyou dw_1.Object.u_mtrldef_ban_wenli[ll_row_new] = ls_wenli dw_1.Object.u_mtrldef_ban_fengbian[ll_row_new] = ls_fengbian dw_1.Object.u_mtrldef_ban_paikong[ll_row_new] = ls_paikong dw_1.Object.u_mtrldef_ban_luoji[ll_row_new] = ls_luoji dw_1.Object.u_mtrldef_ban_penyou[ll_row_new] = ls_penyou dw_1.Object.u_mtrldef_ban_gydscrp[ll_row_new] = ls_dscrp dw_1.Object.u_mtrldef_ban_promode[ll_row_new] = ls_promode dw_1.Object.u_mtrldef_ban_pfklmode[ll_row_new] = ls_pfklmode dw_1.Object.u_prdpf_dscrp[ll_row_new] = ls_dscrp dw_1.Object.u_mtrldef_ifselforder[ll_row_new] = 2 dw_1.Object.ifnewadd[ll_row_new] = 1 dw_1.Object.u_mtrldef_bantype[ll_row_new] = 1 //套用模板编码资料信息 If lb_ifmb Then dw_1.Object.u_mtrldef_unit[ll_row_new] = unit_f dw_1.Object.u_mtrldef_mtrltypeid[ll_row_new] = mtrltypeid_f dw_1.Object.u_mtrldef_mtrlsectype[ll_row_new] = mtrlsectype_f dw_1.Object.u_mtrldef_zxmtrlmode[ll_row_new] = zxmtrlmode_f dw_1.Object.u_mtrldef_usermtrlmode[ll_row_new] = usermtrlmode_f dw_1.Object.u_mtrldef_piccode[ll_row_new] = piccode_f dw_1.Object.u_mtrldef_ifselforder[ll_row_new] = ifselforder_f dw_1.Object.u_mtrldef_ordertype[ll_row_new] = ordertype_f dw_1.Object.u_mtrldef_scid[ll_row_new] = scid_f dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row_new] = dftwrkgrpid_f dw_1.Object.u_mtrldef_orderdays[ll_row_new] = orderdays_f dw_1.Object.u_mtrldef_buydays[ll_row_new] = buydays_f dw_1.Object.u_mtrldef_wfjgdays[ll_row_new] = wfjgdays_f dw_1.Object.u_mtrldef_mtrlprp[ll_row_new] = mtrlprp_f dw_1.Object.u_mtrldef_outtype[ll_row_new] = outtype_f dw_1.Object.u_PrdPF_wrkgrpid[ll_row_new] = dftscllwkpid_f dw_1.Object.mb_mtrlcode[ll_row_new] = ls_mb_mtrlcode_p dw_1.Object.mb_mtrlid[ll_row_new] = mtrlid_f End If End If //处理工价表(如果有模板编码,使用模板编码的工价表,并按[cbx_wp_pack 按清单说明自动生成包件工价表]决定是否解释清单备注到工价表) dw_2.Reset() If lb_ifmb Then ls_wpcode = f_get_dft_wp(mtrlid_f) dw_2.Retrieve(mtrlid_f,ls_wpcode) End If If cbx_wp_pack.Checked Then If Trim(ls_dscrp) <> '' Then arg_s_mx = arg_s_empty f_cmp_proname(ls_dscrp,arg_s_mx) For ll_k = 1 To UpperBound(arg_s_mx) cnt++ // ll_row_f = dw_2.Find('procode = "'+arg_s_mx[ll_k].procode + '_' + ls_promode+'"',1,dw_2.RowCount()) ll_row_f = dw_2.Find('procode = "'+arg_s_mx[ll_k].procode+'"',1,dw_2.RowCount()) If ll_row_f = 0 Then //2014-09-15 需求变更: 模板工价表没有的工序,即使备注有,也不插入(优适), 屏蔽以下代码 //2014-09-20 需求再变更: 旧模式要插入,新模式不插入,所以增加cbx由用户自由控制,解除屏蔽以下代码 //2014-10-28 增加需求:如果工序有定义工价公式的,导入时将默认工式导入到工价表的工价公式 If cbx_wp_add.Checked Then ll_row_newmx = dw_2.InsertRow(0) dw_2.Object.proorder[ll_row_newmx] = cnt dw_2.Object.procode[ll_row_newmx] = arg_s_mx[ll_k].procode // + '_' + ls_promode dw_2.Object.u_sc_workprice_proname[ll_row_newmx] = arg_s_mx[ll_k].proname // + '_' + ls_pfgroup dw_2.Object.wrkgrpid[ll_row_newmx] = arg_s_mx[ll_k].wrkgrpid dw_2.Object.u_sc_workprice_pricestr[ll_row_newmx] = arg_s_mx[ll_k].pricestr If Trim(arg_s_mx[ll_k].pricestr) <> '' Then dw_2.Object.workprice[ll_row_newmx] = 0 Else dw_2.Object.workprice[ll_row_newmx] = arg_s_mx[ll_k].workprice End If dw_2.Object.workqty[ll_row_newmx] = 1 dw_2.Object.lsxtype[ll_row_newmx] = 1 End If Else dw_2.Object.wrkgrpid[ll_row_f] = arg_s_mx[ll_k].wrkgrpid dw_2.Object.u_sc_workprice_pricestr[ll_row_f] = arg_s_mx[ll_k].pricestr If Trim(arg_s_mx[ll_k].pricestr) <> '' Then dw_2.Object.workprice[ll_row_f] = 0 Else dw_2.Object.workprice[ll_row_f] = arg_s_mx[ll_k].workprice End If End If Next End If End If ll_j = 0 For ll_l = 1 To dw_2.RowCount() ls_procode = dw_2.Object.procode[ll_l] dw_2.Object.u_mtrldef_mtrlcode[ll_l] = ls_mtrlcode_ban dw_2.AcceptText() If dw_copy.Find("u_mtrldef_mtrlcode = '"+ls_mtrlcode_ban + "' and procode = '"+ls_procode+"'", 1, dw_copy.RowCount()) > 0 Then Continue ll_j++ dw_2.RowsCopy (ll_l,ll_l,Primary!,dw_copy,ll_j,Primary!) Next dw_1.Object.ifmod_wp[ll_row_new] = 1 //处理工价表(完) End If End If //增加胚板代码(完) End If If ls_pfgroup = '' Then ls_pfgroup = ls_pfgroup_p + '封边带' ll_lp_add = ll_lp_add_p Else ls_pfgroup_p = ls_pfgroup ll_lp_add_p = ll_lp_add End If If Not (ls_mtrlcode = '' And ls_mtrlname = '压板') Then //插入新行 cnt = 0 Select COUNT(*) Into :cnt From u_mtrldef Where u_mtrldef.mtrlcode = :ls_mtrlcode; If sqlca.SQLCode = -1 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlname + ',材料查询资料定义表失败,' + sqlca.SQLErrText Goto ext ElseIf sqlca.SQLCode = 100 Then cnt = 0 End If ll_lp = ll_lp_add + 1 If cnt > 1 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlname + ',材料资料定义有' + String(cnt) + '条重复记录' Goto ext ElseIf cnt = 1 Then //插入部件 Select mtrlid,dftwrkgrpid,mtrlorigin Into :ll_mtrlid,:ll_dftwrkgrpid,:li_mtrlorigin From u_mtrldef Where mtrlcode = :ls_mtrlcode; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行父代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText Goto ext End If //插入材料 wf_add_row(ll_mtrlid, '', ll_lp, ld_sonscale, arg_msg,ll_row_new) If wf_addmx_row(ll_mtrlid,'',ll_lp + 1,ll_row_new + 1 ,ld_sonscale,arg_msg) = 0 Then rslt = 0 Goto ext End If ElseIf cnt = 0 Then //插入新行-部件 //插入材料 wf_add_row_null(ls_mtrlname, ll_lp, ld_sonscale, arg_msg,ll_row_new) End If If ll_row_new > 0 Then // dw_1.Object.u_prdpf_promode[ll_row_new] = ls_promode // dw_1.Object.u_prdpf_pfgroup[ll_row_new] = ls_pfgroup // dw_1.Object.u_prdpf_pfgroupmode[ll_row_new] = ls_pfgroupmode dw_1.Object.u_prdpf_pfgroupqty[ll_row_new] = lde_qty dw_1.Object.u_prdpf_pfklmode[ll_row_new] = ls_pfklmode dw_1.Object.u_prdpf_wenli[ll_row_new] = ls_wenli dw_1.Object.u_prdpf_fengbian[ll_row_new] = ls_fengbian dw_1.Object.u_prdpf_paikong[ll_row_new] = ls_paikong dw_1.Object.u_prdpf_luoji[ll_row_new] = ls_luoji dw_1.Object.u_prdpf_penyou[ll_row_new] = ls_penyou dw_1.Object.u_prdpf_dscrp[ll_row_new] = ls_dscrp // If ll_lp = 1 Then // dw_1.Object.u_prdpf_dipztype[ll_row_new] = 3 // dw_1.Object.u_prdpf_ifover[ll_row_new] = 1 // else dw_1.Object.u_prdpf_dipztype[ll_row_new] = -1 dw_1.Object.u_prdpf_ifover[ll_row_new] = 0 // End If If lde_qty > 0 Then dw_1.Object.u_prdpf_modleid[ll_row_new] = ll_modleid dw_1.Object.u_prdpf_modlename[ll_row_new] = ls_modlename End If End If End If Next ext: Destroy ds_repeat Destroy ds_col30 dw_1.SetRedraw(True) If rslt = 0 Then MessageBox('提示',arg_msg) End If end event event ue_import_xls_6();// 导入Excel If ins_mtrlid = 0 Then MessageBox('系统提示','请先选择产品') Return End If Int rslt = 1 String arg_msg DataStore ds_col30 ds_col30 = Create DataStore ds_col30.DataObject = 'dw_col30' If f_readxls(ds_col30,arg_msg) <> 1 Then rslt = 0 Goto ext End If Long ll_lp Long ll_row,ll_row_new,ll_row_newmx Long cnt Long ll_cnt Long ll_mtrlid_p String ls_mtrlcode_p String ls_pfcode Long ll_mtrlid String ls_mtrlcode String ls_mtrlname Int li_mtrlprp String ls_mtrlmode String ls_unit String ls_zxmtrlmode String ls_mtrlsectype Int li_statusflag Int li_statustype Int li_woodcodeflag Int li_woodcodetype Int li_pcodeflag Int li_pcodetype String ls_usermtrlmode Int li_Mtrlorigin Long ll_dftwrkgrpid Long ll_scid Long ll_mtrltypeid String ls_wrkGrpName Decimal ld_sonscale, lde_qty Long ll_wrkgrpid_scll String ls_col16, ls_col17 Long ll_newrow String ls_promode,ls_pfgroup,ls_pfgroupmode,ls_pfklmode Decimal ld_pfgroupqty,lde_qty_mx String ls_wenli,ls_fengbian,ls_paikong,ls_luoji,ls_penyou String ls_dscrp Long ll_modleid String ls_modlename String ls_pfgroup_p String ls_mtrlcode_ban,ls_mtrlname_ban Long ll_lp_add,ll_lp_add_p //用于记录增加胚板/后段板后,对应增加的层级数 String unit_f,mtrlsectype_f,zxmtrlmode_f,usermtrlmode_f,piccode_f Long mtrltypeid_f,ifselforder_f,ordertype_f,scid_f,dftwrkgrpid_f,mtrlprp_f Decimal orderdays_f,buydays_f,wfjgdays_f Long mtrlid_f,dftscllwkpid_f,outtype_f String unit_a,mtrlsectype_a,zxmtrlmode_a,usermtrlmode_a,piccode_a Long mtrltypeid_a,ifselforder_a,ordertype_a,scid_a,dftwrkgrpid_a,mtrlprp_a Decimal orderdays_a,buydays_a,wfjgdays_a Long mtrlid_a,dftscllwkpid_a,outtype_a String ls_mb_mtrlcode,ls_wpcode Boolean lb_ifmb = False //是否有模板编码及是否成功读取模板编码资料 Boolean lb_ifmb_a = False //后段板 是否有模板编码及是否读取数据成功 Long ll_k,ll_row_f,ll_l,ll_j String ls_procode String ls_mb_mtrlcode_p //胚板模板 String ls_mb_mtrlcode_a //后段板模板 String ls_direction //摆放方向(文本) Int li_direction //摆放方向(数值 0 -横 1-竖) String ls_pid //序号(文本) Decimal ld_midu,ld_cubage,ld_cubage_cl,ld_length,ld_width,ld_length_cl,ld_width_cl string ls_dscrp_mtrl s_workpricetable arg_s_mx[],arg_s_empty[] If Not cbx_ifreset.Checked Then dw_1.Reset() //插入产品 wf_re_mtrl(0) End If dw_1.SetRedraw(False) For ll_row = 8 To ds_col30.RowCount() //明细终止标记(部件名称及材料名称都为空) If Trim(ds_col30.GetItemString(ll_row,9)) = '' And Trim(ds_col30.GetItemString(ll_row,2)) = '' Then Exit ls_pid = Trim(ds_col30.GetItemString(ll_row,1)) ls_mtrlname = Trim(ds_col30.GetItemString(ll_row,9)) // ls_mtrlcode = Trim(ds_col30.GetItemString(ll_row,14)) Select mtrlcode,midu Into :ls_mtrlcode,:ld_midu From u_mtrldef Where mtrlname = :ls_mtrlname; If sqlca.SQLCode <> 0 Then ls_mtrlcode = '' ld_sonscale = Dec(Trim(ds_col30.GetItemString(ll_row,16))) lde_qty = Dec(Trim(ds_col30.GetItemString(ll_row,7))) //部件数量 lde_qty_mx = Dec(Trim(ds_col30.GetItemString(ll_row,16))) // ld_cubage = (Dec(Trim(ds_col30.GetItemString(ll_row,4))) * Dec(Trim(ds_col30.GetItemString(ll_row,5))) * Dec(Trim(ds_col30.GetItemString(ll_row,6))) ) / 1000000000 ld_cubage_cl = (Dec(Trim(ds_col30.GetItemString(ll_row,13))) * Dec(Trim(ds_col30.GetItemString(ll_row,14))) * Dec(Trim(ds_col30.GetItemString(ll_row,15))) ) / 1000000000 ld_length = Dec(Trim(ds_col30.GetItemString(ll_row,4))) ld_width = Dec(Trim(ds_col30.GetItemString(ll_row,5))) ld_length_cl = Dec(Trim(ds_col30.GetItemString(ll_row,13))) ld_width_cl = Dec(Trim(ds_col30.GetItemString(ll_row,14))) ls_dscrp_mtrl = Trim(ds_col30.GetItemString(ll_row,17)) ls_direction = Trim(ds_col30.GetItemString(ll_row,12)) If ls_direction = '竖' Then li_direction = 1 Else li_direction = 0 End If //模板编码 ls_mb_mtrlcode = Trim(ds_col30.GetItemString(ll_row,18)) If IsNull(ld_sonscale) Then ld_sonscale = 0 If ld_sonscale = 0 Then If lde_qty = 0 Then ld_sonscale = lde_qty_mx Else ld_sonscale = lde_qty End If End If ls_promode = Trim(ds_col30.GetItemString(ll_row,3)) ls_pfgroup = Trim(ds_col30.GetItemString(ll_row,2)) // ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,5)) + '*'+Trim(ds_col30.GetItemString(ll_row,6))+'*'+Trim(ds_col30.GetItemString(ll_row,7)) // ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,16)) + '*'+Trim(ds_col30.GetItemString(ll_row,17))+'*'+Trim(ds_col30.GetItemString(ll_row,18)) ls_pfgroupmode = '' ls_pfklmode = '' If Trim(ds_col30.GetItemString(ll_row,4)) <> '' Then ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,4)) End If If Trim(ds_col30.GetItemString(ll_row,5)) <> '' Then If Trim(ls_pfgroupmode) <> '' Then ls_pfgroupmode = ls_pfgroupmode + '*'+Trim(ds_col30.GetItemString(ll_row,5)) Else ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,5)) End If End If If Trim(ds_col30.GetItemString(ll_row,6)) <> '' Then If Trim(ls_pfgroupmode) <> '' Then ls_pfgroupmode = ls_pfgroupmode + '*'+Trim(ds_col30.GetItemString(ll_row,6)) Else ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,6)) End If End If If Trim(ds_col30.GetItemString(ll_row,13)) <> '' Then ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,13)) End If If Trim(ds_col30.GetItemString(ll_row,14)) <> '' Then If Trim(ls_pfklmode) <> '' Then ls_pfklmode = ls_pfklmode + '*'+Trim(ds_col30.GetItemString(ll_row,14)) Else ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,14)) End If End If If Trim(ds_col30.GetItemString(ll_row,15)) <> '' Then If Trim(ls_pfklmode) <> '' Then ls_pfklmode = ls_pfklmode + '*'+Trim(ds_col30.GetItemString(ll_row,15)) Else ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,15)) End If End If ls_fengbian = Trim(ds_col30.GetItemString(ll_row,11)) ls_dscrp = Trim(ds_col30.GetItemString(ll_row,17)) //读取胚板模板编码信息 lb_ifmb = False If ls_mb_mtrlcode <> '' Then Select unit, mtrltypeid, mtrlsectype, zxmtrlmode, usermtrlmode, piccode, ifselforder, ordertype, scid, dftwrkgrpid, orderdays, buydays, wfjgdays, mtrlid, dftscllwkpid, mtrlprp, outtype Into :unit_f, :mtrltypeid_f, :mtrlsectype_f, :zxmtrlmode_f, :usermtrlmode_f, :piccode_f, :ifselforder_f, :ordertype_f, :scid_f, :dftwrkgrpid_f, :orderdays_f, :buydays_f, :wfjgdays_f, :mtrlid_f, :dftscllwkpid_f, :mtrlprp_f, :outtype_f From u_mtrldef Where mtrlcode = :ls_mb_mtrlcode; If sqlca.SQLCode <> 0 Then lb_ifmb = False Else lb_ifmb = True End If End If If ls_pfgroup <> '' Then ll_lp_add = 1 //增加胚板代码 If ls_promode <> '' Then ls_mtrlcode_ban = ins_mtrlcode + '_' + ls_promode Else ls_mtrlcode_ban = ins_mtrlcode + '_part' +ls_pid End If ls_mtrlname_ban = ls_pfgroup If ls_mtrlcode_ban <> "" Then cnt = 0 Select COUNT(*) Into :cnt From u_mtrldef Where (mtrlcode = :ls_mtrlcode_ban) And (mtrlorigin = 0); If sqlca.SQLCode = -1 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlcode_ban + ',部件查询资料定义表失败,' + sqlca.SQLErrText Goto ext ElseIf sqlca.SQLCode = 100 Then cnt = 0 End If If cnt > 1 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlcode_ban + ',部件资料定义有' + String(cnt) + '条重复记录' Goto ext ElseIf cnt = 1 Then //插入部件 Select mtrlid,dftwrkgrpid,mtrlorigin Into :ll_mtrlid_p,:ll_dftwrkgrpid,:li_mtrlorigin From u_mtrldef Where mtrlcode = :ls_mtrlcode_ban; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行父代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText Goto ext End If //插入部件 wf_add_row(ll_mtrlid_p, '', ll_lp_add, lde_qty, arg_msg,ll_row_new) dw_1.Object.u_mtrldef_bantype[ll_row_new] = 1 dw_1.Object.u_mtrldef_midu[ll_row_new] = ld_midu dw_1.Object.cubage[ll_row_new] = ld_cubage dw_1.Object.Length[ll_row_new] = ld_length dw_1.Object.Width[ll_row_new] = ld_width ElseIf cnt = 0 Then //插入新行-部件 //插入部件 wf_add_row_null(ls_mtrlname_ban, ll_lp_add, lde_qty, arg_msg,ll_row_new) If ll_row_new > 0 Then dw_1.Object.u_mtrldef_mtrlcode[ll_row_new] = ls_mtrlcode_ban dw_1.Object.u_mtrldef_mtrlorigin[ll_row_new] = 0 dw_1.Object.u_mtrldef_mtrlprp[ll_row_new] = 0 dw_1.Object.u_mtrldef_unit[ll_row_new] = '块' // dw_1.Object.u_prdpf_pfgroup[ll_row_new] = ls_mtrlname_ban // dw_1.Object.u_prdpf_promode[ll_row_new] = ls_promode dw_1.Object.u_prdpf_pfgroupqty[ll_row_new] = lde_qty dw_1.Object.u_prdpf_sonpfcode[ll_row_new] = '[常规]' // dw_1.Object.u_prdpf_pfgroupmode[ll_row_new] = ls_pfgroupmode dw_1.Object.u_mtrldef_mtrlmode[ll_row_new] = ls_pfgroupmode dw_1.Object.u_prdpf_wenli[ll_row_new] = ls_wenli dw_1.Object.u_prdpf_fengbian[ll_row_new] = ls_fengbian dw_1.Object.u_prdpf_paikong[ll_row_new] = ls_paikong dw_1.Object.u_prdpf_luoji[ll_row_new] = ls_luoji dw_1.Object.u_prdpf_penyou[ll_row_new] = ls_penyou dw_1.Object.u_mtrldef_ban_wenli[ll_row_new] = ls_wenli dw_1.Object.u_mtrldef_ban_fengbian[ll_row_new] = ls_fengbian dw_1.Object.u_mtrldef_ban_paikong[ll_row_new] = ls_paikong dw_1.Object.u_mtrldef_ban_luoji[ll_row_new] = ls_luoji dw_1.Object.u_mtrldef_ban_penyou[ll_row_new] = ls_penyou dw_1.Object.u_mtrldef_ban_gydscrp[ll_row_new] = ls_dscrp dw_1.Object.u_mtrldef_ban_promode[ll_row_new] = ls_promode dw_1.Object.u_mtrldef_ban_direction[ll_row_new] = li_direction dw_1.Object.u_mtrldef_ban_pfklmode[ll_row_new] = ls_pfklmode dw_1.Object.u_prdpf_dscrp[ll_row_new] = ls_dscrp dw_1.Object.u_mtrldef_ifselforder[ll_row_new] = 2 dw_1.Object.ifnewadd[ll_row_new] = 1 dw_1.Object.u_mtrldef_bantype[ll_row_new] = 1 dw_1.Object.u_mtrldef_midu[ll_row_new] = ld_midu dw_1.Object.cubage[ll_row_new] = ld_cubage dw_1.Object.Length[ll_row_new] = ld_length dw_1.Object.Width[ll_row_new] = ld_width dw_1.Object.u_mtrldef_dscrp[ll_row_new] = ls_dscrp_mtrl //套用模板编码资料信息 If lb_ifmb Then dw_1.Object.u_mtrldef_unit[ll_row_new] = unit_f dw_1.Object.u_mtrldef_mtrltypeid[ll_row_new] = mtrltypeid_f dw_1.Object.u_mtrldef_mtrlsectype[ll_row_new] = mtrlsectype_f dw_1.Object.u_mtrldef_zxmtrlmode[ll_row_new] = zxmtrlmode_f dw_1.Object.u_mtrldef_usermtrlmode[ll_row_new] = usermtrlmode_f dw_1.Object.u_mtrldef_piccode[ll_row_new] = piccode_f dw_1.Object.u_mtrldef_ifselforder[ll_row_new] = ifselforder_f dw_1.Object.u_mtrldef_ordertype[ll_row_new] = ordertype_f dw_1.Object.u_mtrldef_scid[ll_row_new] = scid_f dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row_new] = dftwrkgrpid_f dw_1.Object.u_mtrldef_orderdays[ll_row_new] = orderdays_f dw_1.Object.u_mtrldef_buydays[ll_row_new] = buydays_f dw_1.Object.u_mtrldef_wfjgdays[ll_row_new] = wfjgdays_f dw_1.Object.u_mtrldef_mtrlprp[ll_row_new] = mtrlprp_f dw_1.Object.u_mtrldef_outtype[ll_row_new] = outtype_f dw_1.Object.u_PrdPF_wrkgrpid[ll_row_new] = dftscllwkpid_f dw_1.Object.mb_mtrlcode[ll_row_new] = ls_mb_mtrlcode dw_1.Object.mb_mtrlid[ll_row_new] = mtrlid_f End If End If End If End If //增加胚板代码(完) End If ls_pfgroup_p = ls_pfgroup ll_lp_add_p = ll_lp_add //插入新行 cnt = 0 Select COUNT(*) Into :cnt From u_mtrldef Where u_mtrldef.mtrlcode = :ls_mtrlcode; If sqlca.SQLCode = -1 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlname + ',材料查询资料定义表失败,' + sqlca.SQLErrText Goto ext ElseIf sqlca.SQLCode = 100 Then cnt = 0 End If ll_lp = ll_lp_add + 1 If cnt > 1 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlname + ',材料资料定义有' + String(cnt) + '条重复记录' Goto ext ElseIf cnt = 1 Then //插入部件 Select mtrlid,dftwrkgrpid,mtrlorigin Into :ll_mtrlid,:ll_dftwrkgrpid,:li_mtrlorigin From u_mtrldef Where mtrlcode = :ls_mtrlcode; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行父代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText Goto ext End If //插入材料 wf_add_row(ll_mtrlid, '', ll_lp, ld_sonscale, arg_msg,ll_row_new) If wf_addmx_row(ll_mtrlid,'',ll_lp + 1,ll_row_new + 1 ,ld_sonscale,arg_msg) = 0 Then rslt = 0 Goto ext End If ElseIf cnt = 0 Then //插入新行-部件 //插入材料 wf_add_row_null(ls_mtrlname, ll_lp, ld_sonscale, arg_msg,ll_row_new) End If If ll_row_new > 0 Then // dw_1.Object.u_prdpf_promode[ll_row_new] = ls_promode // dw_1.Object.u_prdpf_pfgroup[ll_row_new] = ls_pfgroup // dw_1.Object.u_prdpf_pfgroupmode[ll_row_new] = ls_pfgroupmode dw_1.Object.u_prdpf_pfgroupqty[ll_row_new] = lde_qty dw_1.Object.u_prdpf_pfklmode[ll_row_new] = ls_pfklmode dw_1.Object.u_mtrldef_midu[ll_row_new] = ld_midu dw_1.Object.cubage[ll_row_new] = ld_cubage_cl dw_1.Object.Length[ll_row_new] = ld_length_cl dw_1.Object.Width[ll_row_new] = ld_width_cl dw_1.Object.u_prdpf_wenli[ll_row_new] = ls_wenli dw_1.Object.u_prdpf_fengbian[ll_row_new] = ls_fengbian dw_1.Object.u_prdpf_paikong[ll_row_new] = ls_paikong dw_1.Object.u_prdpf_luoji[ll_row_new] = ls_luoji dw_1.Object.u_prdpf_penyou[ll_row_new] = ls_penyou dw_1.Object.u_prdpf_dscrp[ll_row_new] = ls_dscrp // If ll_lp = 1 Then // dw_1.Object.u_prdpf_dipztype[ll_row_new] = 3 // dw_1.Object.u_prdpf_ifover[ll_row_new] = 1 // else dw_1.Object.u_prdpf_dipztype[ll_row_new] = -1 dw_1.Object.u_prdpf_ifover[ll_row_new] = 0 // End If End If Next ext: Destroy ds_col30 dw_1.SetRedraw(True) If rslt = 0 Then MessageBox('提示',arg_msg) End If end event event ue_cmp_packinfo();If ins_ifmod = True Then MessageBox('系统提示','编辑状态下不能操作') Return End If If dw_1.Find('lp = 1 and u_mtrldef_ifpack > 0',1,dw_1.RowCount()) = 0 Then MessageBox('系统提示','产品直接下级没有包件,不能使用本功能') Return End If Long ll_i,ll_j,cnt Decimal ld_cubage,ld_weight,ld_length,ld_width,ld_qty s_edit_index_tran arg_s_tran cnt = 0 For ll_i = 1 To dw_1.RowCount() If dw_1.Object.lp[ll_i] = 1 And dw_1.Object.u_mtrldef_ifpack[ll_i] > 0 Then cnt++ arg_s_tran.arr_string[cnt] = dw_1.Object.u_mtrldef_mtrlcode[ll_i] //包件编码 arg_s_tran.arr_string2[cnt] = dw_1.Object.u_mtrldef_mtrlname[ll_i] //包件名称 ld_cubage = 0 ld_weight = 0 ld_length = 0 ld_width = 0 ld_qty = 0 For ll_j = ll_i + 1 To dw_1.RowCount() If dw_1.Object.lp[ll_j] <= 1 Then Exit If dw_1.Object.lp[ll_j] <> 2 Then Continue //只考虑包件的直接下级,即板件 ld_cubage = ld_cubage + dw_1.Object.cubage[ll_j] * dw_1.Object.u_prdpf_sonscale[ll_j] ld_weight = ld_weight + dw_1.Object.weight_cmp[ll_j] * dw_1.Object.u_prdpf_sonscale[ll_j] ld_qty = ld_qty + dw_1.Object.u_prdpf_sonscale[ll_j] ld_length = Max(ld_length,dw_1.Object.Length[ll_j]) ld_width = Max(ld_width,dw_1.Object.Width[ll_j]) Next arg_s_tran.arr_dec[cnt] = ld_cubage arg_s_tran.arr_dec2[cnt] = ld_weight arg_s_tran.arr_dec3[cnt] = ld_length arg_s_tran.arr_dec4[cnt] = ld_width arg_s_tran.arr_dec5[cnt] = ld_qty End If Next If cnt > 0 Then OpenWithParm(w_prdpf_padd_packinfo,arg_s_tran) End If end event event ue_old_to_new();Long ll_i,ll_j,ll_k,ll_l,ll_m Long ll_row,ll_row_h String ls_promode,ls_pfgroup,ls_fengbian,ls_penyou,ls_wenli,ls_paikong,ls_luoji,ls_pfklmode Boolean lb_ifhou = False Int li_lp_add = 0 Long cnt Long ll_mtrlid_mb String unit_a,mtrlsectype_a,zxmtrlmode_a,usermtrlmode_a,piccode_a,mtrlcode_a Long mtrltypeid_a,ifselforder_a,ordertype_a,scid_a,dftwrkgrpid_a,mtrlprp_a Decimal orderdays_a,buydays_a,wfjgdays_a Long mtrlid_a,dftscllwkpid_a,outtype_a String ls_dscrp Decimal ld_qty String ls_wpcode,ls_procode Long ll_row_f,ll_row_newmx String ls_mtrlcode_ban String ls_pfgroupmode String ls_promode_lit,ls_promode_all String ls_promode_lit_arr[],ls_promode_all_arr[] Long ll_mxbt s_workpricetable arg_s_mx[],arg_s_empty[] s_edit_index_tran arg_s_tran,arg_s_return dw_1.AcceptText() cnt = 0 arg_s_tran.b_string = ins_mtrlcode For ll_i = 1 To dw_1.RowCount() If dw_1.Object.lp[ll_i] <> 1 Or dw_1.Object.u_prdpf_promode[ll_i] = '' Then Continue cnt++ arg_s_tran.arr_string[cnt] = dw_1.Object.u_prdpf_promode[ll_i] arg_s_tran.arr_string2[cnt] = dw_1.Object.u_prdpf_pfgroup[ll_i] arg_s_tran.arr_string3[cnt] = dw_1.Object.u_prdpf_fengbian[ll_i] arg_s_tran.arr_string4[cnt] = dw_1.Object.u_prdpf_penyou[ll_i] ls_promode_all = dw_1.Object.u_prdpf_promode[ll_i] If Pos(ls_promode_all,'-') > 0 Then ls_promode_lit = Mid(ls_promode_all,Pos(ls_promode_all,'-') + 1) Else ls_promode_lit = ls_promode_all End If For ll_j = 1 To ll_mxbt If ls_promode_lit_arr[ll_j] = ls_promode_lit Then MessageBox('系统提示',ls_promode_all+' 与 '+ls_promode_all_arr[ll_j]+' "-"后面部分相同,会导致重复,请先修改') Return End If // If ls_promode_all_arr[ll_j] <> ls_promode_all And ls_promode_lit_arr[ll_j] = ls_promode_lit Then // MessageBox('系统提示',ls_promode_all+' 与 '+ls_promode_all_arr[ll_j]+' "-"后面部分相同,会导致重复,请先修改') // Return // End If Next ll_mxbt++ ls_promode_all_arr[ll_mxbt] = ls_promode_all ls_promode_lit_arr[ll_mxbt] = ls_promode_lit arg_s_tran.arr_string5[cnt] = ls_promode_lit Next If cnt = 0 Then MessageBox('系统提示','没有符合条件的数据(第1层并且部件代号不为空)') Return End If OpenWithParm(w_old_to_new_mtrl,arg_s_tran) arg_s_return = Message.PowerObjectParm If arg_s_return.b_long = 0 Then Return dw_1.SetRedraw(False) For ll_i = 1 To dw_1.RowCount() If dw_1.Object.lp[ll_i] <> 1 Or dw_1.Object.u_prdpf_promode[ll_i] = '' Then Continue ls_promode = dw_1.Object.u_prdpf_promode[ll_i] ls_pfgroup = dw_1.Object.u_prdpf_pfgroup[ll_i] ls_fengbian = dw_1.Object.u_prdpf_fengbian[ll_i] ls_penyou = dw_1.Object.u_prdpf_penyou[ll_i] ls_wenli = dw_1.Object.u_prdpf_wenli[ll_i] ls_paikong = dw_1.Object.u_prdpf_paikong[ll_i] ls_luoji = dw_1.Object.u_prdpf_luoji[ll_i] ls_pfklmode = dw_1.Object.u_prdpf_pfklmode[ll_i] ls_pfgroupmode = dw_1.Object.u_prdpf_pfgroupmode[ll_i] ld_qty = dw_1.Object.u_prdpf_pfgroupqty[ll_i] ls_dscrp = dw_1.Object.u_prdpf_dscrp[ll_i] //判断是否有后段板 If ls_fengbian = '' And ls_penyou <> '' Then lb_ifhou = True li_lp_add = 2 Else lb_ifhou = False li_lp_add = 1 End If For ll_j = ll_i To dw_1.RowCount() If dw_1.Object.lp[ll_j] = 1 And Pos(dw_1.Object.u_prdpf_pfgroup[ll_j],ls_pfgroup) = 0 Then Exit If dw_1.Object.lp[ll_j] = 1 And dw_1.Object.u_prdpf_pfgroup[ll_j] <> ls_pfgroup And Pos(dw_1.Object.u_prdpf_pfgroup[ll_j],'封边') = 0 Then Exit dw_1.Object.lp[ll_j] = dw_1.Object.lp[ll_j] + li_lp_add If dw_1.Object.u_prdpf_pfgroupqty[ll_j] > 0 Then dw_1.Object.u_prdpf_pfgroupqty[ll_j] = 1 End If dw_1.Object.u_prdpf_fengbian[ll_j] = '' dw_1.Object.u_prdpf_penyou[ll_j] = '' dw_1.Object.u_prdpf_wenli[ll_j] = '' dw_1.Object.u_prdpf_paikong[ll_j] = '' dw_1.Object.u_prdpf_luoji[ll_j] = '' dw_1.Object.u_prdpf_pfklmode[ll_j] = '' dw_1.Object.u_prdpf_pfgroupmode[ll_j] = '' Next ll_row = dw_1.InsertRow(ll_i) dw_1.Object.u_mtrldef_mtrlid[ll_row] = 0 dw_1.Object.ifnewadd[ll_row] = 1 dw_1.Object.u_prdpf_sonpfcode[ll_row] = '[常规]' dw_1.Object.iflock[ll_row] = 0 If lb_ifhou Then dw_1.Object.lp[ll_row] = 2 Else dw_1.Object.lp[ll_row] = 1 End If ls_mtrlcode_ban = ins_mtrlcode + '_' + ls_promode+'_P' // dw_1.Object.u_mtrldef_mtrlcode[ll_row] = ls_mtrlcode_ban //ins_mtrlcode + '_' + ls_promode+'_P' // dw_1.Object.u_mtrldef_mtrlname[ll_row] = ls_pfgroup dw_1.Object.u_mtrldef_mtrlmode[ll_row] = ls_pfgroupmode dw_1.Object.u_mtrldef_bantype[ll_row] = 1 dw_1.Object.u_mtrldef_mtrlorigin[ll_row] = 0 dw_1.Object.u_mtrldef_mtrlprp[ll_row] = 0 dw_1.Object.u_mtrldef_ifselforder[ll_row] = 2 dw_1.Object.u_prdpf_pfgroupqty[ll_row] = ld_qty dw_1.Object.u_prdpf_sonscale[ll_row] = ld_qty dw_1.Object.u_prdpf_dscrp[ll_row] = ls_dscrp dw_1.Object.u_mtrldef_ban_wenli[ll_row] = ls_wenli dw_1.Object.u_mtrldef_ban_fengbian[ll_row] = ls_fengbian dw_1.Object.u_mtrldef_ban_paikong[ll_row] = ls_paikong dw_1.Object.u_mtrldef_ban_luoji[ll_row] = ls_luoji dw_1.Object.u_mtrldef_ban_penyou[ll_row] = ls_penyou dw_1.Object.u_mtrldef_ban_gydscrp[ll_row] = ls_dscrp dw_1.Object.u_mtrldef_ban_promode[ll_row] = ls_promode dw_1.Object.u_mtrldef_ban_pfklmode[ll_row] = ls_pfklmode // 查询模板编码 ll_mtrlid_mb = 0 For ll_k = 1 To UpperBound(arg_s_return.arr_string) If ls_promode = arg_s_return.arr_string[ll_k] And ls_pfgroup = arg_s_return.arr_string2[ll_k] And arg_s_return.arr_long2[ll_k] = 0 Then ll_mtrlid_mb = arg_s_return.arr_long[ll_k] dw_1.Object.u_mtrldef_mtrlcode[ll_row] = arg_s_return.arr_string3[ll_k] dw_1.Object.u_mtrldef_mtrlname[ll_row] = arg_s_return.arr_string4[ll_k] End If Next If ll_mtrlid_mb > 0 Then Select unit, mtrltypeid, mtrlsectype, zxmtrlmode, usermtrlmode, piccode, ifselforder, ordertype, scid, dftwrkgrpid, orderdays, buydays, wfjgdays, dftscllwkpid, mtrlprp, outtype, mtrlcode Into :unit_a, :mtrltypeid_a, :mtrlsectype_a, :zxmtrlmode_a, :usermtrlmode_a, :piccode_a, :ifselforder_a, :ordertype_a, :scid_a, :dftwrkgrpid_a, :orderdays_a, :buydays_a, :wfjgdays_a, :dftscllwkpid_a, :mtrlprp_a, :outtype_a, :mtrlcode_a From u_mtrldef Where mtrlid = :ll_mtrlid_mb; If sqlca.SQLCode = 0 Then dw_1.Object.u_mtrldef_unit[ll_row] = unit_a dw_1.Object.u_mtrldef_mtrltypeid[ll_row] = mtrltypeid_a dw_1.Object.u_mtrldef_mtrlsectype[ll_row] = mtrlsectype_a dw_1.Object.u_mtrldef_zxmtrlmode[ll_row] = zxmtrlmode_a dw_1.Object.u_mtrldef_usermtrlmode[ll_row] = usermtrlmode_a dw_1.Object.u_mtrldef_piccode[ll_row] = piccode_a dw_1.Object.u_mtrldef_ifselforder[ll_row] = ifselforder_a dw_1.Object.u_mtrldef_ordertype[ll_row] = ordertype_a dw_1.Object.u_mtrldef_scid[ll_row] = scid_a dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row] = dftwrkgrpid_a dw_1.Object.u_mtrldef_orderdays[ll_row] = orderdays_a dw_1.Object.u_mtrldef_buydays[ll_row] = buydays_a dw_1.Object.u_mtrldef_wfjgdays[ll_row] = wfjgdays_a dw_1.Object.u_mtrldef_mtrlprp[ll_row] = mtrlprp_a dw_1.Object.u_mtrldef_outtype[ll_row] = outtype_a dw_1.Object.u_PrdPF_wrkgrpid[ll_row] = dftscllwkpid_a dw_1.Object.mb_mtrlcode[ll_row] = mtrlcode_a dw_1.Object.mb_mtrlid[ll_row] = ll_mtrlid_mb End If End If //处理工价表(如果有模板编码,使用模板编码的工价表,并按[cbx_wp_pack 按清单说明自动生成包件工价表]决定是否解释清单备注到工价表) dw_2.Reset() If ll_mtrlid_mb > 0 Then ls_wpcode = f_get_dft_wp(ll_mtrlid_mb) dw_2.Retrieve(ll_mtrlid_mb,ls_wpcode) End If If cbx_wp_pack.Checked Then If Trim(ls_dscrp) <> '' Then arg_s_mx = arg_s_empty f_cmp_proname(ls_dscrp,arg_s_mx) For ll_k = 1 To UpperBound(arg_s_mx) cnt++ // ll_row_f = dw_2.Find('procode = "'+arg_s_mx[ll_k].procode + '_' + ls_promode+'"',1,dw_2.RowCount()) ll_row_f = dw_2.Find('procode = "'+arg_s_mx[ll_k].procode+'"',1,dw_2.RowCount()) If ll_row_f = 0 Then //2014-09-15 需求变更: 模板工价表没有的工序,即使备注有,也不插入(优适), 屏蔽以下代码 //2014-09-20 需求再变更: 旧模式要插入,新模式不插入,所以增加cbx由用户自由控制,解除屏蔽以下代码 //2014-10-28 增加需求:如果工序有定义工价公式的,导入时将默认工式导入到工价表的工价公式 If cbx_wp_add.Checked Then ll_row_newmx = dw_2.InsertRow(0) dw_2.Object.proorder[ll_row_newmx] = cnt dw_2.Object.procode[ll_row_newmx] = arg_s_mx[ll_k].procode // + '_' + ls_promode dw_2.Object.u_sc_workprice_proname[ll_row_newmx] = arg_s_mx[ll_k].proname // + '_' + ls_pfgroup dw_2.Object.wrkgrpid[ll_row_newmx] = arg_s_mx[ll_k].wrkgrpid dw_2.Object.u_sc_workprice_pricestr[ll_row_newmx] = arg_s_mx[ll_k].pricestr If Trim(arg_s_mx[ll_k].pricestr) <> '' Then dw_2.Object.workprice[ll_row_newmx] = 0 Else dw_2.Object.workprice[ll_row_newmx] = arg_s_mx[ll_k].workprice End If dw_2.Object.workqty[ll_row_newmx] = 1 dw_2.Object.lsxtype[ll_row_newmx] = 1 End If Else dw_2.Object.wrkgrpid[ll_row_f] = arg_s_mx[ll_k].wrkgrpid dw_2.Object.u_sc_workprice_pricestr[ll_row_f] = arg_s_mx[ll_k].pricestr If Trim(arg_s_mx[ll_k].pricestr) <> '' Then dw_2.Object.workprice[ll_row_f] = 0 Else dw_2.Object.workprice[ll_row_f] = arg_s_mx[ll_k].workprice End If End If Next End If End If ll_m = 0 For ll_l = 1 To dw_2.RowCount() ls_procode = dw_2.Object.procode[ll_l] dw_2.Object.u_mtrldef_mtrlcode[ll_l] = ls_mtrlcode_ban dw_2.AcceptText() If dw_copy.Find("u_mtrldef_mtrlcode = '"+ls_mtrlcode_ban + "' and procode = '"+ls_procode+"'", 1, dw_copy.RowCount()) > 0 Then Continue ll_m++ dw_2.RowsCopy (ll_l,ll_l,Primary!,dw_copy,ll_m,Primary!) Next dw_1.Object.ifmod_wp[ll_row] = 1 /// // If lb_ifhou Then ll_row_h = dw_1.InsertRow(ll_row) dw_1.Object.u_mtrldef_mtrlid[ll_row_h] = 0 dw_1.Object.ifnewadd[ll_row_h] = 1 dw_1.Object.u_prdpf_sonpfcode[ll_row_h] = '[常规]' dw_1.Object.iflock[ll_row_h] = 0 dw_1.Object.lp[ll_row_h] = 1 // dw_1.Object.u_mtrldef_mtrlcode[ll_row_h] = ins_mtrlcode + '_' + ls_promode // dw_1.Object.u_mtrldef_mtrlname[ll_row_h] = ls_pfgroup+'(后段)' dw_1.Object.u_mtrldef_mtrlmode[ll_row_h] = ls_pfgroupmode dw_1.Object.u_mtrldef_bantype[ll_row_h] = 2 dw_1.Object.u_mtrldef_mtrlorigin[ll_row_h] = 0 dw_1.Object.u_mtrldef_mtrlprp[ll_row_h] = 0 dw_1.Object.u_mtrldef_ifselforder[ll_row_h] = 2 dw_1.Object.u_prdpf_pfgroupqty[ll_row_h] = ld_qty dw_1.Object.u_prdpf_sonscale[ll_row_h] = ld_qty dw_1.Object.u_prdpf_dscrp[ll_row_h] = ls_dscrp dw_1.Object.u_mtrldef_ban_wenli[ll_row_h] = ls_wenli dw_1.Object.u_mtrldef_ban_fengbian[ll_row_h] = ls_fengbian dw_1.Object.u_mtrldef_ban_paikong[ll_row_h] = ls_paikong dw_1.Object.u_mtrldef_ban_luoji[ll_row_h] = ls_luoji dw_1.Object.u_mtrldef_ban_penyou[ll_row_h] = ls_penyou dw_1.Object.u_mtrldef_ban_gydscrp[ll_row_h] = ls_dscrp dw_1.Object.u_mtrldef_ban_promode[ll_row_h] = ls_promode dw_1.Object.u_mtrldef_ban_pfklmode[ll_row_h] = ls_pfklmode // 查询模板编码 ll_mtrlid_mb = 0 For ll_k = 1 To UpperBound(arg_s_return.arr_string) If ls_promode = arg_s_return.arr_string[ll_k] And ls_pfgroup = arg_s_return.arr_string2[ll_k] And arg_s_return.arr_long2[ll_k] = 1 Then ll_mtrlid_mb = arg_s_return.arr_long[ll_k] dw_1.Object.u_mtrldef_mtrlcode[ll_row_h] = arg_s_return.arr_string3[ll_k] dw_1.Object.u_mtrldef_mtrlname[ll_row_h] = arg_s_return.arr_string4[ll_k] End If Next If ll_mtrlid_mb > 0 Then Select unit, mtrltypeid, mtrlsectype, zxmtrlmode, usermtrlmode, piccode, ifselforder, ordertype, scid, dftwrkgrpid, orderdays, buydays, wfjgdays, dftscllwkpid, mtrlprp, outtype, mtrlcode Into :unit_a, :mtrltypeid_a, :mtrlsectype_a, :zxmtrlmode_a, :usermtrlmode_a, :piccode_a, :ifselforder_a, :ordertype_a, :scid_a, :dftwrkgrpid_a, :orderdays_a, :buydays_a, :wfjgdays_a, :dftscllwkpid_a, :mtrlprp_a, :outtype_a, :mtrlcode_a From u_mtrldef Where mtrlid = :ll_mtrlid_mb; If sqlca.SQLCode = 0 Then dw_1.Object.u_mtrldef_unit[ll_row_h] = unit_a dw_1.Object.u_mtrldef_mtrltypeid[ll_row_h] = mtrltypeid_a dw_1.Object.u_mtrldef_mtrlsectype[ll_row_h] = mtrlsectype_a dw_1.Object.u_mtrldef_zxmtrlmode[ll_row_h] = zxmtrlmode_a dw_1.Object.u_mtrldef_usermtrlmode[ll_row_h] = usermtrlmode_a dw_1.Object.u_mtrldef_piccode[ll_row_h] = piccode_a dw_1.Object.u_mtrldef_ifselforder[ll_row_h] = ifselforder_a dw_1.Object.u_mtrldef_ordertype[ll_row_h] = ordertype_a dw_1.Object.u_mtrldef_scid[ll_row_h] = scid_a dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row_h] = dftwrkgrpid_a dw_1.Object.u_mtrldef_orderdays[ll_row_h] = orderdays_a dw_1.Object.u_mtrldef_buydays[ll_row_h] = buydays_a dw_1.Object.u_mtrldef_wfjgdays[ll_row_h] = wfjgdays_a dw_1.Object.u_mtrldef_mtrlprp[ll_row_h] = mtrlprp_a dw_1.Object.u_mtrldef_outtype[ll_row_h] = outtype_a dw_1.Object.u_PrdPF_wrkgrpid[ll_row_h] = dftscllwkpid_a dw_1.Object.mb_mtrlcode[ll_row_h] = mtrlcode_a dw_1.Object.mb_mtrlid[ll_row_h] = ll_mtrlid_mb End If End If //处理工价表(如果有模板编码,使用模板编码的工价表,并按[cbx_wp_pack 按清单说明自动生成包件工价表]决定是否解释清单备注到工价表) dw_2.Reset() If ll_mtrlid_mb > 0 Then ls_wpcode = f_get_dft_wp(ll_mtrlid_mb) dw_2.Retrieve(ll_mtrlid_mb,ls_wpcode) End If If cbx_wp_pack.Checked Then If Trim(ls_dscrp) <> '' Then arg_s_mx = arg_s_empty f_cmp_proname(ls_dscrp,arg_s_mx) For ll_k = 1 To UpperBound(arg_s_mx) cnt++ // ll_row_f = dw_2.Find('procode = "'+arg_s_mx[ll_k].procode + '_' + ls_promode+'"',1,dw_2.RowCount()) ll_row_f = dw_2.Find('procode = "'+arg_s_mx[ll_k].procode+'"',1,dw_2.RowCount()) If ll_row_f = 0 Then //2014-09-15 需求变更: 模板工价表没有的工序,即使备注有,也不插入(优适), 屏蔽以下代码 //2014-09-20 需求再变更: 旧模式要插入,新模式不插入,所以增加cbx由用户自由控制,解除屏蔽以下代码 If cbx_wp_add.Checked Then ll_row_newmx = dw_2.InsertRow(0) dw_2.Object.proorder[ll_row_newmx] = cnt dw_2.Object.procode[ll_row_newmx] = arg_s_mx[ll_k].procode // + '_' + ls_promode dw_2.Object.u_sc_workprice_proname[ll_row_newmx] = arg_s_mx[ll_k].proname // + '_' + ls_pfgroup dw_2.Object.wrkgrpid[ll_row_newmx] = arg_s_mx[ll_k].wrkgrpid dw_2.Object.u_sc_workprice_pricestr[ll_row_newmx] = arg_s_mx[ll_k].pricestr If Trim(arg_s_mx[ll_k].pricestr) <> '' Then dw_2.Object.workprice[ll_row_newmx] = 0 Else dw_2.Object.workprice[ll_row_newmx] = arg_s_mx[ll_k].workprice End If dw_2.Object.workqty[ll_row_newmx] = 1 dw_2.Object.lsxtype[ll_row_newmx] = 1 End If Else dw_2.Object.wrkgrpid[ll_row_f] = arg_s_mx[ll_k].wrkgrpid dw_2.Object.u_sc_workprice_pricestr[ll_row_f] = arg_s_mx[ll_k].pricestr If Trim(arg_s_mx[ll_k].pricestr) <> '' Then dw_2.Object.workprice[ll_row_f] = 0 Else dw_2.Object.workprice[ll_row_f] = arg_s_mx[ll_k].workprice End If End If Next End If End If ll_m = 0 For ll_l = 1 To dw_2.RowCount() ls_procode = dw_2.Object.procode[ll_l] dw_2.Object.u_mtrldef_mtrlcode[ll_l] = ls_mtrlcode_ban dw_2.AcceptText() If dw_copy.Find("u_mtrldef_mtrlcode = '"+ls_mtrlcode_ban + "' and procode = '"+ls_procode+"'", 1, dw_copy.RowCount()) > 0 Then Continue ll_m++ dw_2.RowsCopy (ll_l,ll_l,Primary!,dw_copy,ll_m,Primary!) Next dw_1.Object.ifmod_wp[ll_row] = 1 /// // End If Next dw_1.SetRedraw(True) end event event ue_import_xls_7();// 导入Excel If ins_mtrlid = 0 Then MessageBox('系统提示','请先选择产品') Return End If Int rslt = 1 String arg_msg DataStore ds_col30 ds_col30 = Create DataStore ds_col30.DataObject = 'dw_col30' If f_readxls(ds_col30,arg_msg) <> 1 Then rslt = 0 Goto ext End If Long ll_lp Long ll_row,ll_row_new,ll_row_newmx Long cnt Long ll_cnt Long ll_mtrlid_p String ls_mtrlcode_p String ls_pfcode Long ll_mtrlid String ls_mtrlcode String ls_mtrlname Int li_mtrlprp String ls_mtrlmode String ls_unit String ls_zxmtrlmode String ls_mtrlsectype Int li_statusflag Int li_statustype Int li_woodcodeflag Int li_woodcodetype Int li_pcodeflag Int li_pcodetype String ls_usermtrlmode Int li_Mtrlorigin Long ll_dftwrkgrpid Long ll_scid Long ll_mtrltypeid String ls_wrkGrpName Decimal ld_sonscale, lde_qty Long ll_wrkgrpid_scll String ls_col16, ls_col17 Long ll_newrow String ls_promode,ls_pfgroup,ls_pfgroupmode,ls_pfklmode Decimal ld_pfgroupqty,lde_qty_mx String ls_wenli,ls_fengbian,ls_paikong,ls_luoji,ls_penyou String ls_dscrp Long ll_modleid String ls_modlename String ls_pfgroup_p String ls_mtrlcode_ban,ls_mtrlname_ban Long ll_lp_add,ll_lp_add_p //用于记录增加胚板/后段板后,对应增加的层级数 String unit_f,mtrlsectype_f,zxmtrlmode_f,usermtrlmode_f,piccode_f Long mtrltypeid_f,ifselforder_f,ordertype_f,scid_f,dftwrkgrpid_f,mtrlprp_f Decimal orderdays_f,buydays_f,wfjgdays_f Long mtrlid_f,dftscllwkpid_f,outtype_f String unit_a,mtrlsectype_a,zxmtrlmode_a,usermtrlmode_a,piccode_a Long mtrltypeid_a,ifselforder_a,ordertype_a,scid_a,dftwrkgrpid_a,mtrlprp_a Decimal orderdays_a,buydays_a,wfjgdays_a Long mtrlid_a,dftscllwkpid_a,outtype_a String ls_mb_mtrlcode,ls_wpcode Boolean lb_ifmb = False //是否有模板编码及是否成功读取模板编码资料 Boolean lb_ifmb_a = False //后段板 是否有模板编码及是否读取数据成功 Long ll_k,ll_row_f,ll_l,ll_j String ls_procode String ls_mb_mtrlcode_p //胚板模板 String ls_mb_mtrlcode_a //后段板模板 String ls_direction //摆放方向(文本) Int li_direction //摆放方向(数值 0 -横 1-竖) String ls_pid //序号(文本) Decimal ld_midu,ld_cubage,ld_cubage_cl,ld_length,ld_width,ld_length_cl,ld_width_cl String ls_dscrp_mtrl s_workpricetable arg_s_mx[],arg_s_empty[] If Not cbx_ifreset.Checked Then dw_1.Reset() //插入产品 wf_re_mtrl(0) End If dw_1.SetRedraw(False) For ll_row = 8 To ds_col30.RowCount() //明细终止标记(部件名称及材料名称都为空) If Trim(ds_col30.GetItemString(ll_row,2)) = '' And Trim(ds_col30.GetItemString(ll_row,1)) = '' Then Exit ls_pid = String(ll_row - 7) //Trim(ds_col30.GetItemString(ll_row,1)) ls_mtrlname = Trim(ds_col30.GetItemString(ll_row,2)) // ls_mtrlcode = Trim(ds_col30.GetItemString(ll_row,14)) Select mtrlcode,midu Into :ls_mtrlcode,:ld_midu From u_mtrldef Where mtrlname = :ls_mtrlname; If sqlca.SQLCode <> 0 Then ls_mtrlcode = '' ld_sonscale = Dec(Trim(ds_col30.GetItemString(ll_row,8))) lde_qty = Dec(Trim(ds_col30.GetItemString(ll_row,8))) //部件数量 lde_qty_mx = Dec(Trim(ds_col30.GetItemString(ll_row,8))) // ld_cubage = (Dec(Trim(ds_col30.GetItemString(ll_row,5))) * Dec(Trim(ds_col30.GetItemString(ll_row,6))) * Dec(Trim(ds_col30.GetItemString(ll_row,7))) ) / 1000000000 ld_cubage_cl = (Dec(Trim(ds_col30.GetItemString(ll_row,5))) * Dec(Trim(ds_col30.GetItemString(ll_row,6))) * Dec(Trim(ds_col30.GetItemString(ll_row,7))) ) / 1000000000 ld_length = Dec(Trim(ds_col30.GetItemString(ll_row,5))) ld_width = Dec(Trim(ds_col30.GetItemString(ll_row,6))) ld_length_cl = Dec(Trim(ds_col30.GetItemString(ll_row,5))) ld_width_cl = Dec(Trim(ds_col30.GetItemString(ll_row,6))) ls_dscrp_mtrl = Trim(ds_col30.GetItemString(ll_row,9)) ls_direction = Trim(ds_col30.GetItemString(ll_row,4)) If ls_direction = '竖' Then li_direction = 1 Else li_direction = 0 End If //模板编码 ls_mb_mtrlcode = Trim(ds_col30.GetItemString(ll_row,11)) If IsNull(ld_sonscale) Then ld_sonscale = 0 If ld_sonscale = 0 Then If lde_qty = 0 Then ld_sonscale = lde_qty_mx Else ld_sonscale = lde_qty End If End If ls_promode = Trim(ds_col30.GetItemString(ll_row,10)) ls_pfgroup = Trim(ds_col30.GetItemString(ll_row,1)) // ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,5)) + '*'+Trim(ds_col30.GetItemString(ll_row,6))+'*'+Trim(ds_col30.GetItemString(ll_row,7)) // ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,16)) + '*'+Trim(ds_col30.GetItemString(ll_row,17))+'*'+Trim(ds_col30.GetItemString(ll_row,18)) ls_pfgroupmode = '' ls_pfklmode = '' If Trim(ds_col30.GetItemString(ll_row,5)) <> '' Then ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,5)) End If If Trim(ds_col30.GetItemString(ll_row,6)) <> '' Then If Trim(ls_pfgroupmode) <> '' Then ls_pfgroupmode = ls_pfgroupmode + '*'+Trim(ds_col30.GetItemString(ll_row,6)) Else ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,6)) End If End If If Trim(ds_col30.GetItemString(ll_row,7)) <> '' Then If Trim(ls_pfgroupmode) <> '' Then ls_pfgroupmode = ls_pfgroupmode + '*'+Trim(ds_col30.GetItemString(ll_row,7)) Else ls_pfgroupmode = Trim(ds_col30.GetItemString(ll_row,7)) End If End If If Trim(ds_col30.GetItemString(ll_row,5)) <> '' Then ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,5)) End If If Trim(ds_col30.GetItemString(ll_row,6)) <> '' Then If Trim(ls_pfklmode) <> '' Then ls_pfklmode = ls_pfklmode + '*'+Trim(ds_col30.GetItemString(ll_row,6)) Else ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,6)) End If End If If Trim(ds_col30.GetItemString(ll_row,7)) <> '' Then If Trim(ls_pfklmode) <> '' Then ls_pfklmode = ls_pfklmode + '*'+Trim(ds_col30.GetItemString(ll_row,7)) Else ls_pfklmode = Trim(ds_col30.GetItemString(ll_row,7)) End If End If ls_fengbian = Trim(ds_col30.GetItemString(ll_row,3)) ls_dscrp = Trim(ds_col30.GetItemString(ll_row,9)) //读取胚板模板编码信息 lb_ifmb = False If ls_mb_mtrlcode <> '' Then Select unit, mtrltypeid, mtrlsectype, zxmtrlmode, usermtrlmode, piccode, ifselforder, ordertype, scid, dftwrkgrpid, orderdays, buydays, wfjgdays, mtrlid, dftscllwkpid, mtrlprp, outtype Into :unit_f, :mtrltypeid_f, :mtrlsectype_f, :zxmtrlmode_f, :usermtrlmode_f, :piccode_f, :ifselforder_f, :ordertype_f, :scid_f, :dftwrkgrpid_f, :orderdays_f, :buydays_f, :wfjgdays_f, :mtrlid_f, :dftscllwkpid_f, :mtrlprp_f, :outtype_f From u_mtrldef Where mtrlcode = :ls_mb_mtrlcode; If sqlca.SQLCode <> 0 Then lb_ifmb = False Else lb_ifmb = True End If End If If ls_pfgroup <> '' Then ll_lp_add = 1 //增加胚板代码 If ls_promode <> '' Then ls_mtrlcode_ban = ins_mtrlcode + '_' + ls_promode Else ls_mtrlcode_ban = ins_mtrlcode + '_part' +ls_pid End If ls_mtrlname_ban = ls_pfgroup If ls_mtrlcode_ban <> "" Then cnt = 0 Select COUNT(*) Into :cnt From u_mtrldef Where (mtrlcode = :ls_mtrlcode_ban) And (mtrlorigin = 0); If sqlca.SQLCode = -1 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlcode_ban + ',部件查询资料定义表失败,' + sqlca.SQLErrText Goto ext ElseIf sqlca.SQLCode = 100 Then cnt = 0 End If If cnt > 1 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlcode_ban + ',部件资料定义有' + String(cnt) + '条重复记录' Goto ext ElseIf cnt = 1 Then //插入部件 Select mtrlid,dftwrkgrpid,mtrlorigin Into :ll_mtrlid_p,:ll_dftwrkgrpid,:li_mtrlorigin From u_mtrldef Where mtrlcode = :ls_mtrlcode_ban; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行父代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText Goto ext End If //插入部件 wf_add_row(ll_mtrlid_p, '', ll_lp_add, lde_qty, arg_msg,ll_row_new) dw_1.Object.u_mtrldef_bantype[ll_row_new] = 1 dw_1.Object.u_mtrldef_midu[ll_row_new] = ld_midu dw_1.Object.cubage[ll_row_new] = ld_cubage dw_1.Object.Length[ll_row_new] = ld_length dw_1.Object.Width[ll_row_new] = ld_width ElseIf cnt = 0 Then //插入新行-部件 //插入部件 wf_add_row_null(ls_mtrlname_ban, ll_lp_add, lde_qty, arg_msg,ll_row_new) If ll_row_new > 0 Then dw_1.Object.u_mtrldef_mtrlcode[ll_row_new] = ls_mtrlcode_ban dw_1.Object.u_mtrldef_mtrlorigin[ll_row_new] = 0 dw_1.Object.u_mtrldef_mtrlprp[ll_row_new] = 0 dw_1.Object.u_mtrldef_unit[ll_row_new] = '块' // dw_1.Object.u_prdpf_pfgroup[ll_row_new] = ls_mtrlname_ban // dw_1.Object.u_prdpf_promode[ll_row_new] = ls_promode dw_1.Object.u_prdpf_pfgroupqty[ll_row_new] = lde_qty dw_1.Object.u_prdpf_sonpfcode[ll_row_new] = '[常规]' // dw_1.Object.u_prdpf_pfgroupmode[ll_row_new] = ls_pfgroupmode dw_1.Object.u_mtrldef_mtrlmode[ll_row_new] = ls_pfgroupmode dw_1.Object.u_prdpf_wenli[ll_row_new] = ls_wenli dw_1.Object.u_prdpf_fengbian[ll_row_new] = ls_fengbian dw_1.Object.u_prdpf_paikong[ll_row_new] = ls_paikong dw_1.Object.u_prdpf_luoji[ll_row_new] = ls_luoji dw_1.Object.u_prdpf_penyou[ll_row_new] = ls_penyou dw_1.Object.u_mtrldef_ban_wenli[ll_row_new] = ls_wenli dw_1.Object.u_mtrldef_ban_fengbian[ll_row_new] = ls_fengbian dw_1.Object.u_mtrldef_ban_paikong[ll_row_new] = ls_paikong dw_1.Object.u_mtrldef_ban_luoji[ll_row_new] = ls_luoji dw_1.Object.u_mtrldef_ban_penyou[ll_row_new] = ls_penyou dw_1.Object.u_mtrldef_ban_gydscrp[ll_row_new] = ls_dscrp dw_1.Object.u_mtrldef_ban_promode[ll_row_new] = ls_promode dw_1.Object.u_mtrldef_ban_direction[ll_row_new] = li_direction dw_1.Object.u_mtrldef_ban_pfklmode[ll_row_new] = ls_pfklmode dw_1.Object.u_prdpf_dscrp[ll_row_new] = ls_dscrp dw_1.Object.u_mtrldef_ifselforder[ll_row_new] = 2 dw_1.Object.ifnewadd[ll_row_new] = 1 dw_1.Object.u_mtrldef_bantype[ll_row_new] = 1 dw_1.Object.u_mtrldef_midu[ll_row_new] = ld_midu dw_1.Object.cubage[ll_row_new] = ld_cubage dw_1.Object.Length[ll_row_new] = ld_length dw_1.Object.Width[ll_row_new] = ld_width dw_1.Object.u_mtrldef_dscrp[ll_row_new] = ls_dscrp_mtrl //套用模板编码资料信息 If lb_ifmb Then dw_1.Object.u_mtrldef_unit[ll_row_new] = unit_f dw_1.Object.u_mtrldef_mtrltypeid[ll_row_new] = mtrltypeid_f dw_1.Object.u_mtrldef_mtrlsectype[ll_row_new] = mtrlsectype_f dw_1.Object.u_mtrldef_zxmtrlmode[ll_row_new] = zxmtrlmode_f dw_1.Object.u_mtrldef_usermtrlmode[ll_row_new] = usermtrlmode_f dw_1.Object.u_mtrldef_piccode[ll_row_new] = piccode_f dw_1.Object.u_mtrldef_ifselforder[ll_row_new] = ifselforder_f dw_1.Object.u_mtrldef_ordertype[ll_row_new] = ordertype_f dw_1.Object.u_mtrldef_scid[ll_row_new] = scid_f dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row_new] = dftwrkgrpid_f dw_1.Object.u_mtrldef_orderdays[ll_row_new] = orderdays_f dw_1.Object.u_mtrldef_buydays[ll_row_new] = buydays_f dw_1.Object.u_mtrldef_wfjgdays[ll_row_new] = wfjgdays_f dw_1.Object.u_mtrldef_mtrlprp[ll_row_new] = mtrlprp_f dw_1.Object.u_mtrldef_outtype[ll_row_new] = outtype_f dw_1.Object.u_PrdPF_wrkgrpid[ll_row_new] = dftscllwkpid_f dw_1.Object.mb_mtrlcode[ll_row_new] = ls_mb_mtrlcode dw_1.Object.mb_mtrlid[ll_row_new] = mtrlid_f End If End If End If End If //增加胚板代码(完) End If ls_pfgroup_p = ls_pfgroup ll_lp_add_p = ll_lp_add //插入新行 cnt = 0 Select COUNT(*) Into :cnt From u_mtrldef Where u_mtrldef.mtrlcode = :ls_mtrlcode; If sqlca.SQLCode = -1 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlname + ',材料查询资料定义表失败,' + sqlca.SQLErrText Goto ext ElseIf sqlca.SQLCode = 100 Then cnt = 0 End If If ls_pfgroup <> '' Then ll_lp = ll_lp_add + 1 Else ll_lp = 1 End If If cnt > 1 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行:' + ls_mtrlname + ',材料资料定义有' + String(cnt) + '条重复记录' Goto ext ElseIf cnt = 1 Then //插入部件 Select mtrlid,dftwrkgrpid,mtrlorigin Into :ll_mtrlid,:ll_dftwrkgrpid,:li_mtrlorigin From u_mtrldef Where mtrlcode = :ls_mtrlcode; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '第' + String(ll_row) + '行父代码查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText Goto ext End If //插入材料 wf_add_row(ll_mtrlid, '', ll_lp, ld_sonscale, arg_msg,ll_row_new) If wf_addmx_row(ll_mtrlid,'',ll_lp + 1,ll_row_new + 1 ,ld_sonscale,arg_msg) = 0 Then rslt = 0 Goto ext End If ElseIf cnt = 0 Then //插入新行-部件 //插入材料 wf_add_row_null(ls_mtrlname, ll_lp, ld_sonscale, arg_msg,ll_row_new) End If If ll_row_new > 0 Then // dw_1.Object.u_prdpf_promode[ll_row_new] = ls_promode // dw_1.Object.u_prdpf_pfgroup[ll_row_new] = ls_pfgroup // dw_1.Object.u_prdpf_pfgroupmode[ll_row_new] = ls_pfgroupmode dw_1.Object.u_prdpf_pfgroupqty[ll_row_new] = lde_qty dw_1.Object.u_prdpf_pfklmode[ll_row_new] = ls_pfklmode dw_1.Object.u_mtrldef_midu[ll_row_new] = ld_midu dw_1.Object.cubage[ll_row_new] = ld_cubage_cl dw_1.Object.Length[ll_row_new] = ld_length_cl dw_1.Object.Width[ll_row_new] = ld_width_cl dw_1.Object.u_prdpf_wenli[ll_row_new] = ls_wenli dw_1.Object.u_prdpf_fengbian[ll_row_new] = ls_fengbian dw_1.Object.u_prdpf_paikong[ll_row_new] = ls_paikong dw_1.Object.u_prdpf_luoji[ll_row_new] = ls_luoji dw_1.Object.u_prdpf_penyou[ll_row_new] = ls_penyou dw_1.Object.u_prdpf_dscrp[ll_row_new] = ls_dscrp // If ll_lp = 1 Then // dw_1.Object.u_prdpf_dipztype[ll_row_new] = 3 // dw_1.Object.u_prdpf_ifover[ll_row_new] = 1 // else dw_1.Object.u_prdpf_dipztype[ll_row_new] = -1 dw_1.Object.u_prdpf_ifover[ll_row_new] = 0 // End If End If Next ext: Destroy ds_col30 dw_1.SetRedraw(True) If rslt = 0 Then MessageBox('提示',arg_msg) End If end event event ue_del_ch();//勾选删除 If ins_ifmod_wp Then MessageBox('系统提示','正在编辑工价表,不能执行本操作') Return End If If ins_ifmod Then MessageBox('系统提示','正在编辑半成品,不能执行本操作') Return End If Long ll_i,ll_j Long ll_row Long ll_lp,cnt String ls_mtrlcode dw_1.AcceptText() cnt = dw_1.Find('ch = 1 ',1,dw_1.RowCount()) If cnt = 0 Then If MessageBox('询问','是否确认要执行删除明细操作?',question!,yesno!) = 2 Then Return ll_row = dw_1.GetRow() If ll_row <= 0 Then MessageBox('系统提示','请选择要删除的明细') Return End If If dw_1.Object.lp[ll_row] = 0 Then MessageBox('系统提示','主产品资料不能删除') Return End If dw_1.Object.ifdel[ll_row] = 1 ll_lp = dw_1.Object.lp[ll_row] ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_row] //dw_1.SetRedraw(FALSE) For ll_i = ll_row + 1 To dw_1.RowCount() If dw_1.Object.lp[ll_i] <= ll_lp Then Exit dw_1.Object.ifdel[ll_i] = 1 Next dw_1.AcceptText() For ll_i = dw_1.RowCount() To 1 Step -1 If dw_1.Object.ifdel[ll_i] = 1 Then dw_1.DeleteRow(ll_i) End If Next //dw_1.SetRedraw(TRUE) ins_cnt++ mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.删除物料 '+ ls_mtrlcode +' 及其下级的物料' Else If MessageBox('询问','是否确认要执行删除选中明细操作?',question!,yesno!) = 2 Then Return For ll_i = 1 To dw_1.RowCount() If dw_1.Object.ch[ll_i] = 0 Then Continue If dw_1.Object.lp[ll_i] = 0 Then Continue dw_1.Object.ifdel[ll_i] = 1 ll_lp = dw_1.Object.lp[ll_i] ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_i] For ll_j = ll_i + 1 To dw_1.RowCount() If dw_1.Object.lp[ll_j] <= ll_lp Then Exit dw_1.Object.ifdel[ll_j] = 1 Next ins_cnt++ mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.删除物料 '+ ls_mtrlcode +' 及其下级的物料' Next dw_1.AcceptText() For ll_j = dw_1.RowCount() To 1 Step -1 If dw_1.Object.ifdel[ll_j] = 1 Then dw_1.DeleteRow(ll_j) End If Next End If end event event ue_del_this();//删除单级 If ins_ifmod_wp Then MessageBox('系统提示','正在编辑工价表,不能执行本操作') Return End If If ins_ifmod Then MessageBox('系统提示','正在编辑半成品,不能执行本操作') Return End If Long ll_i,ll_j Long ll_row Long ll_lp,cnt String ls_mtrlcode dw_1.AcceptText() ll_row = dw_1.GetRow() If ll_row <= 0 Then MessageBox('系统提示','请选择要删除的明细') Return End If If dw_1.Object.lp[ll_row] = 0 Then MessageBox('系统提示','主产品资料不能删除') Return End If If MessageBox('询问','是否确认要执行删除当前选中明细操作?',question!,yesno!) = 2 Then Return dw_1.Object.ifdel[ll_row] = 1 ll_lp = dw_1.Object.lp[ll_row] ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_row] dw_1.SetRedraw(FALSE) For ll_i = ll_row + 1 To dw_1.RowCount() If dw_1.Object.lp[ll_i] <= ll_lp Then Exit dw_1.Object.lp[ll_i] = dw_1.Object.lp[ll_i] - 1 Next dw_1.AcceptText() dw_1.DeleteRow(ll_row) dw_1.SetRedraw(TRUE) ins_cnt++ mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.删除物料 '+ ls_mtrlcode +' ,其下级物料层级上移' end event event ue_add_up();If ins_ifmod_wp Then MessageBox('系统提示','正在编辑工价表,不能执行本操作') Return End If If ins_ifmod Then MessageBox('系统提示','正在编辑半成品,不能执行本操作') Return End If Long ll_i String ls_mtrlcode,ls_mtrlname,ls_pfcode,arg_msg Long ll_row,ll_row_add Long ll_pmtrlid,ll_lp Long ll_mtrlid_pf String arg_msg_str ll_row = dw_1.GetRow() If ll_row > 0 Then ll_pmtrlid = dw_1.Object.pmtrlid[ll_row] ll_lp = dw_1.Object.lp[ll_row] ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_row] If ll_lp = 0 Then MessageBox('系统提示','主产品不能增上级') Return End If Else MessageBox('系统提示','请先选择要增加上级的明细') Return End If 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 = 0 s_ch_tran.c_long = -1 s_ch_tran.f_long = 1 This.Enabled = False OpenWithParm(w_mtrldef_edit,s_ch_tran) This.Enabled = True s_mtrldef_array s_inscust s_inscust = Message.PowerObjectParm dw_1.SetRedraw(False) If UpperBound(s_inscust.mtrlid) > 0 Then If s_inscust.mtrlorigin[1] = 2 Then dw_1.SetRedraw(True) MessageBox('系统提示','不能选择采购类的物料作为上级') Return End If ll_mtrlid_pf = s_inscust.mtrlid[1] If ll_mtrlid_pf > 0 Then ls_pfcode = f_get_dft_pf(ll_mtrlid_pf) If wf_addmx_up(ll_mtrlid_pf,ls_pfcode,ll_pmtrlid,ll_lp,ll_row,arg_msg) = 0 Then dw_1.SetRedraw(True) arg_msg_str = arg_msg_str + arg_msg +'~r~n' MessageBox('Error',arg_msg_str) Return End If ins_cnt++ If ls_mtrlcode <> '' Then mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.对 '+ls_mtrlcode+' 增加上级物料 '+s_inscust.mtrlcode[1] Else mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.增加物料 '+s_inscust.mtrlcode[1] End If End If End If dw_1.SetRedraw(True) End If This.SetFocus() end event public function integer wf_face ();IF ins_ifmod THEN cb_save_bcp.Enabled = TRUE cb_mod_bcp.Text = '放弃' cb_mod_bcp.normalpicname = 'Undo.bmp' cb_other_bom.Enabled = FALSE cb_add_mtrl.Enabled = FALSE cb_save.Enabled = FALSE cb_moban.Enabled = TRUE cb_autocode.enabled = true ELSE cb_save_bcp.Enabled = FALSE cb_mod_bcp.Text = '编辑半成品' cb_mod_bcp.normalpicname = 'open.bmp' cb_other_bom.Enabled = TRUE cb_add_mtrl.Enabled = TRUE cb_save.Enabled = TRUE cb_moban.Enabled = FALSE cb_autocode.enabled = false END IF cb_mod_bcp.of_init_draw() cb_mod_bcp.of_paint() cb_mod_bcp.TriggerEvent('ue_textchange') RETURN 1 end function public function integer wf_checkrand (ref string arg_msg);Long i,j Int rslt = 1 Long ll_lp dw_1.AcceptText() FOR i = 2 TO dw_1.RowCount() IF dw_1.Object.u_mtrldef_mtrlcode[i] = ins_mtrlcode THEN dw_1.SelectRow(0,FALSE) dw_1.SetRow(i) dw_1.SelectRow(i,TRUE) rslt = 0 arg_msg = '发现闭环,在第'+String(i)+'行,物料:'+dw_1.Object.u_mtrldef_mtrlcode[i] GOTO ext END IF NEXT FOR i = 1 TO dw_1.RowCount() ll_lp = dw_1.Object.lp[i] FOR j = i + 1 TO dw_1.RowCount() IF dw_1.Object.lp[j] <= ll_lp THEN EXIT IF dw_1.Object.u_mtrldef_mtrlcode[j] = dw_1.Object.u_mtrldef_mtrlcode[i] THEN dw_1.SelectRow(0,FALSE) dw_1.SetRow(j) dw_1.SelectRow(j,TRUE) rslt = 0 arg_msg = '发现闭环,在第'+String(j)+'行,物料:'+dw_1.Object.u_mtrldef_mtrlcode[j] GOTO ext END IF NEXT NEXT ext: RETURN rslt end function public function integer wf_save (ref string arg_msg);Int rslt = 1 Long ll_i,ll_j,ll_k String ls_mtrlcode,ls_mtrlname,ls_unit,ls_mtrlmode String ls_mtrlsectype,ls_zxmtrlmode,ls_usermtrlmode Decimal ld_orderdays,ld_buydays,ld_wfjgdays Long ll_mtrlid,ll_mtrlid_copy Long cnt Long ll_lp String ls_code,ls_name,ls_ename,ls_dscrp Long ll_type,ll_DefaultPZ,ll_ifzj Decimal ld_planprice Long ll_new_cid Decimal ld_capacity,ld_capaparm Long ll_mtrltypeid,ll_scid,ll_dftwrkgrpid String ls_piccode Int li_mtrlorigin, li_mtrlprp Long ll_mtrlid_wp Int li_ifselforder,li_ordertype Long printid_wkp String wkpname_wkp, groupstr_wkp Long swkpid_wkp, owkpid_wkp, iflast_wkp Decimal lasthour_wkp, lastdays_wkp,minlasthour_wkp, uprate_wkp String dscrp_wkp Long lp_wkp, printlp_wkp Decimal workhour_wkp, beforehour_wkp, afterhour_wkp Long workgroupid_wkp String gydscrp_wkp String ls_pfcode long ll_mb_mtrlid String ls_wpcode Decimal ld_sonloss_p,ld_sondecloss_p,ld_cmpqty_p,ld_qty Long ll_modleid String ls_modlename String ls_wenli,ls_fengbian,ls_paikong,ls_luoji,ls_penyou,ls_azcode Long ll_bantype Int li_outtype Decimal ld_midu String ls_mtrlcode_new_arr[] Long ll_cnt_new string ls_dscrp_mtrl s_mtrldef arg_s_mtrl s_mtrldef_ban arg_s_ban dw_1.AcceptText() For ll_i = 1 To dw_1.RowCount() If dw_1.Object.u_mtrldef_mtrlid[ll_i] = 0 Then If dw_1.Object.ifnewadd[ll_i] = 0 Then dw_1.SetRow(ll_i) dw_1.ScrollToRow(ll_i) dw_1.SelectRow(0,False) dw_1.SelectRow(ll_i,True) arg_msg = '查询物料原资料失败,请选择正确的物料(可执行编辑半成品功能)' rslt = 0 Goto ext End If ll_lp = dw_1.Object.lp[ll_i] ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_i] ls_mtrlname = dw_1.Object.u_mtrldef_mtrlname[ll_i] ls_unit = dw_1.Object.u_mtrldef_unit[ll_i] ls_mtrlmode = dw_1.Object.u_mtrldef_mtrlmode[ll_i] ls_mtrlsectype = dw_1.Object.u_mtrldef_mtrlsectype[ll_i] ls_zxmtrlmode = dw_1.Object.u_mtrldef_zxmtrlmode[ll_i] ls_usermtrlmode = dw_1.Object.u_mtrldef_usermtrlmode[ll_i] ll_mtrlid = dw_1.Object.u_prdpf_sonmtrlid[ll_i] ld_orderdays = dw_1.Object.u_mtrldef_orderdays[ll_i] ld_buydays = dw_1.Object.u_mtrldef_buydays[ll_i] ld_wfjgdays = dw_1.Object.u_mtrldef_wfjgdays[ll_i] ll_mtrltypeid = dw_1.Object.u_mtrldef_mtrltypeid[ll_i] ll_scid = dw_1.Object.u_mtrldef_scid[ll_i] ll_dftwrkgrpid = dw_1.Object.u_mtrldef_dftwrkgrpid[ll_i] li_mtrlorigin = dw_1.Object.u_mtrldef_mtrlorigin[ll_i] li_mtrlprp = dw_1.Object.u_mtrldef_mtrlprp[ll_i] ls_piccode = dw_1.Object.u_mtrldef_piccode[ll_i] li_ifselforder = dw_1.Object.u_mtrldef_ifselforder[ll_i] li_ordertype = dw_1.Object.u_mtrldef_ordertype[ll_i] ls_pfcode = dw_1.Object.u_prdpf_sonpfcode[ll_i] ll_mb_mtrlid = dw_1.Object.mb_mtrlid[ll_i] ll_bantype = dw_1.Object.u_mtrldef_bantype[ll_i] li_outtype = dw_1.Object.u_mtrldef_outtype[ll_i] ld_midu = dw_1.Object.u_mtrldef_midu[ll_i] ls_dscrp_mtrl = dw_1.Object.u_mtrldef_dscrp[ll_i] For ll_k = 1 To ll_cnt_new If ls_mtrlcode = ls_mtrlcode_new_arr[ll_k] Then Goto _next_row End If Next If ll_mtrlid > 0 and ll_mb_mtrlid = 0 Then Select u_mtrldef.mtrlname, u_mtrldef.mtrlsectype, u_mtrldef.mtrlmode, u_mtrldef.unit, u_mtrldef.dscrp, u_mtrldef.lmbuyprice, u_mtrldef.LMsaleprice, u_mtrldef.prdpackcode, u_mtrldef.packqty, u_mtrldef.zxmtrlmode, u_mtrldef.unit_buy, u_mtrldef.rate_buy, u_mtrldef.unit_scll, u_mtrldef.rate_scll, u_mtrldef.unit_sale, u_mtrldef.rate_sale, u_mtrldef.orderdays, u_mtrldef.buydays, u_mtrldef.wfjgdays, u_mtrldef.minbuyqty, u_mtrldef.aheaddays, u_mtrldef.ifselforder, u_mtrldef.mprice, u_mtrldef.Mtrlorigin, u_mtrldef.mtrlkind, u_mtrldef.lspacklimit, u_mtrldef.MaxQTY, u_mtrldef.MinQTY, u_mtrldef.isuse, u_mtrldef.mtrltypeid, u_mtrldef.barcode, u_mtrldef.net_weight, u_mtrldef.gross_weight, u_mtrldef.cubage, u_mtrldef.mtrlengname, u_mtrldef.scllflag, u_mtrldef.dftwrkGrpid, u_mtrldef.scid, u_mtrldef.ifscid, u_mtrldef.mtrlprp, u_mtrldef.uprate, u_mtrldef.upqty, u_mtrldef.ordertype, u_mtrldef.statusflag, u_mtrldef.statustype, u_mtrldef.woodcodeflag, u_mtrldef.woodcodetype, u_mtrldef.pcodeflag, u_mtrldef.pcodetype, u_mtrldef.mtrlarea, u_mtrldef.dftsptid, u_mtrldef.mtrlarea1, u_mtrldef.mtrlarea2, u_mtrldef.iflimitprice, u_mtrldef.configcode, u_mtrldef.autoinstall, u_mtrldef.ifpack, u_mtrldef.configname, u_mtrldef.ifpackpro, u_mtrldef.mtrlcolor, u_mtrldef.configcodetype, u_mtrldef.ifautodd, u_mtrldef.iflljg, u_mtrldef.ifunit, u_mtrldef.ifpackpz, u_mtrldef.ifpacktype, u_mtrldef.scllrate, u_mtrldef.cmpqty, u_mtrldef.usermtrlmode, u_mtrldef.storagetype, u_mtrldef.ifmtrlcuscode, u_mtrldef.mrptype, u_mtrldef.mrparg, u_mtrldef.updownprice, u_mtrldef.outtype, u_mtrldef.ifpricepack, u_mtrldef.gydscrp, u_mtrldef.downrate, u_mtrldef.ifcustom, u_mtrldef.buyunit, u_mtrldef.wfjgunit, u_mtrldef.scllunit, u_mtrldef.saleunit, u_mtrldef.buydec, u_mtrldef.wfjgdec, u_mtrldef.sclldec, u_mtrldef.saledec, u_mtrldef.issuliao, isnull(u_mtrldef_sl.period,0), u_mtrldef.ifenough, u_mtrldef.capacity, u_mtrldef.expday, u_mtrldef.capaparm, u_mtrldef.sctaskqty, u_mtrldef.minarg, u_mtrldef.maxarg, u_mtrldef.ifmrppackpf, u_mtrldef.maxzjday, u_mtrldef.eoq, u_mtrldef.splitrate, u_mtrldef.status_check, u_mtrldef.woodcode_check, u_mtrldef.pcode_check, u_mtrldef.maxdays, u_mtrldef.mindays, u_mtrldef.mrp_unit, u_mtrldef.rebuytype, u_mtrldef.rebuylot, u_mtrldef.ifsendlot, u_mtrldef.upddrate, u_mtrldef.upddqty, u_mtrldef.upsalerate, u_mtrldef.upsaleqty, u_mtrldef.status_config, u_mtrldef.woodcode_config, u_mtrldef.pcode_config, u_mtrldef.rebuylot, u_mtrldef.ifusedeliqty, u_mtrldef.pricepztype, u_mtrldef.useday, u_mtrldef.equiptype, u_mtrldef.ifpackpro2, isnull(u_mtrldef_sl.sk_mtrlid,0), u_mtrldef.ifkl, u_mtrldef.ifturn, u_mtrldef.iffp, u_mtrldef.scllqty, u_mtrldef.dftscllwkpid, u_mtrldef.piccode, u_mtrldef.if_hourpay, u_mtrldef.ifmrp, u_mtrldef.if_inherit, u_mtrldef.groupstr, u_mtrldef.groupday, u_mtrldef.aps_capacity_type, u_mtrldef.scllplan_mode, u_mtrldef.ifcheck, u_mtrldef.checkrate, u_mtrldef.chkpassrate, u_mtrldef.dftcusid, u_mtrldef.sendtype, u_mtrldef.buy_ceiling, u_mtrldef.wfjg_ceiling, u_mtrldef.sale_ceiling, u_mtrldef.scll_ceiling, u_mtrldef.material, u_mtrldef.adddec, u_mtrldef.ifbarcodefp, u_mtrldef.stoppqty, u_mtrldef.buy_autoday, u_mtrldef.upbuyrate, u_mtrldef.upbuyqty, u_mtrldef.ifrebuypack, u_mtrldef.protype, u_mtrldef.buydays_bx, u_mtrldef.wfjgdays_bx, u_mtrldef.multqty, u_mtrldef.multtype, u_mtrldef.buyer, u_mtrldef.bantype Into :arg_s_mtrl.mtrlname, :arg_s_mtrl.mtrlsectype, :arg_s_mtrl.mtrlmode, :arg_s_mtrl.unit, :arg_s_mtrl.dscrp, :arg_s_mtrl.lmbuyprice, :arg_s_mtrl.lmsaleprice, :arg_s_mtrl.prdpackcode, :arg_s_mtrl.packqty, :arg_s_mtrl.zxmtrlmode, :arg_s_mtrl.unit_buy, :arg_s_mtrl.rate_buy, :arg_s_mtrl.unit_scll, :arg_s_mtrl.rate_scll, :arg_s_mtrl.unit_sale, :arg_s_mtrl.rate_sale, :arg_s_mtrl.orderdays, :arg_s_mtrl.buydays, :arg_s_mtrl.wfjgdays, :arg_s_mtrl.minbuyqty, :arg_s_mtrl.aheaddays, :arg_s_mtrl.ifselforder, :arg_s_mtrl.mprice, :arg_s_mtrl.mtrlorigin, :arg_s_mtrl.mtrlkind, :arg_s_mtrl.lspacklimit, :arg_s_mtrl.maxqty, :arg_s_mtrl.minqty, :arg_s_mtrl.isuse, :arg_s_mtrl.mtrltypeid, :arg_s_mtrl.barcode, :arg_s_mtrl.net_weight, :arg_s_mtrl.gross_weight, :arg_s_mtrl.cubage, :arg_s_mtrl.mtrlengname, :arg_s_mtrl.scllflag, :arg_s_mtrl.dftwrkgrpid, :arg_s_mtrl.scid, :arg_s_mtrl.ifscid, :arg_s_mtrl.mtrlprp, :arg_s_mtrl.uprate, :arg_s_mtrl.upqty, :arg_s_mtrl.ordertype, :arg_s_mtrl.statusflag, :arg_s_mtrl.statustype, :arg_s_mtrl.woodcodeflag, :arg_s_mtrl.woodcodetype, :arg_s_mtrl.pcodeflag, :arg_s_mtrl.pcodetype, :arg_s_mtrl.mtrlarea, :arg_s_mtrl.dftsptid, :arg_s_mtrl.mtrlarea1, :arg_s_mtrl.mtrlarea2, :arg_s_mtrl.iflimitprice, :arg_s_mtrl.configcode, :arg_s_mtrl.autoinstall, :arg_s_mtrl.ifpack, :arg_s_mtrl.configname, :arg_s_mtrl.ifpackpro, :arg_s_mtrl.mtrlcolor, :arg_s_mtrl.configcodetype, :arg_s_mtrl.ifautodd, :arg_s_mtrl.iflljg, :arg_s_mtrl.ifunit, :arg_s_mtrl.ifpackpz, :arg_s_mtrl.ifpacktype, :arg_s_mtrl.scllrate, :arg_s_mtrl.cmpqty, :arg_s_mtrl.usermtrlmode, :arg_s_mtrl.storagetype, :arg_s_mtrl.ifmtrlcuscode, :arg_s_mtrl.mrptype, :arg_s_mtrl.mrparg, :arg_s_mtrl.updownprice, :arg_s_mtrl.outtype, :arg_s_mtrl.ifpricepack, :arg_s_mtrl.gydscrp, :arg_s_mtrl.downrate, :arg_s_mtrl.ifcustom, :arg_s_mtrl.buyunit, :arg_s_mtrl.wfjgunit, :arg_s_mtrl.scllunit, :arg_s_mtrl.saleunit, :arg_s_mtrl.buydec, :arg_s_mtrl.wfjgdec, :arg_s_mtrl.sclldec, :arg_s_mtrl.saledec, :arg_s_mtrl.issuliao, :arg_s_mtrl.period, :arg_s_mtrl.ifenough, :arg_s_mtrl.capacity, :arg_s_mtrl.expday, :arg_s_mtrl.capaparm, :arg_s_mtrl.sctaskqty, :arg_s_mtrl.minarg, :arg_s_mtrl.maxarg, :arg_s_mtrl.ifmrppackpf, :arg_s_mtrl.maxzjday, :arg_s_mtrl.eoq, :arg_s_mtrl.splitrate, :arg_s_mtrl.status_check, :arg_s_mtrl.woodcode_check, :arg_s_mtrl.pcode_check, :arg_s_mtrl.maxdays, :arg_s_mtrl.mindays, :arg_s_mtrl.mrp_unit, :arg_s_mtrl.rebuytype, :arg_s_mtrl.rebuylot, :arg_s_mtrl.ifsendlot, :arg_s_mtrl.upddrate, :arg_s_mtrl.upddqty, :arg_s_mtrl.upsalerate, :arg_s_mtrl.upsaleqty, :arg_s_mtrl.status_config, :arg_s_mtrl.woodcode_config, :arg_s_mtrl.pcode_config, :arg_s_mtrl.rebuylot, :arg_s_mtrl.ifusedeliqty, :arg_s_mtrl.pricepztype, :arg_s_mtrl.useday, :arg_s_mtrl.equiptype, :arg_s_mtrl.ifpackpro2, :arg_s_mtrl.skmtrlid, :arg_s_mtrl.ifkl, :arg_s_mtrl.ifturn, :arg_s_mtrl.iffp, :arg_s_mtrl.scllqty, :arg_s_mtrl.dftscllwkpid, :arg_s_mtrl.piccode, :arg_s_mtrl.if_hourpay, :arg_s_mtrl.ifmrp, :arg_s_mtrl.if_inherit, :arg_s_mtrl.groupstr, :arg_s_mtrl.groupday, :arg_s_mtrl.aps_capacity_type, :arg_s_mtrl.scllplan_mode, :arg_s_mtrl.ifcheck, :arg_s_mtrl.checkrate, :arg_s_mtrl.chkpassrate, :arg_s_mtrl.dftcusid, :arg_s_mtrl.sendtype, :arg_s_mtrl.buy_ceiling, :arg_s_mtrl.wfjg_ceiling, :arg_s_mtrl.sale_ceiling, :arg_s_mtrl.scll_ceiling, :arg_s_mtrl.material, :arg_s_mtrl.adddec, :arg_s_mtrl.ifbarcodefp, :arg_s_mtrl.stoppqty, :arg_s_mtrl.buy_autoday, :arg_s_mtrl.upbuyrate, :arg_s_mtrl.upbuyqty, :arg_s_mtrl.ifrebuypack, :arg_s_mtrl.protype, :arg_s_mtrl.buydays_bx, :arg_s_mtrl.wfjgdays_bx, :arg_s_mtrl.multqty, :arg_s_mtrl.multtype, :arg_s_mtrl.buyer, :arg_s_mtrl.bantype From u_mtrldef LEFT Outer JOIN u_mtrldef_sl ON u_mtrldef.mtrlid = u_mtrldef_sl.mtrlid Where u_mtrldef.mtrlid = :ll_mtrlid; If sqlca.SQLCode <> 0 Then arg_msg = '查询物料原资料失败,'+sqlca.SQLErrText rslt = 0 Goto ext End If If arg_s_mtrl.issuliao = 1 Then Select sk_mtrltypeid Into :arg_s_mtrl.sk_mtrltypeid From u_mtrldef_sl Where mtrlid = :ll_mtrlid; If sqlca.SQLCode <> 0 Then arg_s_mtrl.sk_mtrltypeid = 0 End If Else arg_s_mtrl.sk_mtrltypeid = 0 End If Else //无MTRLID的情况,属性值取默认值 //如果有模板编码,读取模板编码的属性 If ll_mb_mtrlid > 0 Then f_find_mtrl_by_id_noarr(ll_mb_mtrlid,arg_s_mtrl) Else arg_s_mtrl.dscrp = '' arg_s_mtrl.lmbuyprice = 0 arg_s_mtrl.LMsaleprice = 0 arg_s_mtrl.prdpackcode = '' arg_s_mtrl.packqty = 0 arg_s_mtrl.unit_buy = '' arg_s_mtrl.rate_buy = 0 arg_s_mtrl.unit_scll = '' arg_s_mtrl.rate_scll = 0 arg_s_mtrl.unit_sale = '' arg_s_mtrl.rate_sale = 0 arg_s_mtrl.minbuyqty = 0 arg_s_mtrl.aheaddays = 0 arg_s_mtrl.ifselforder = 0 arg_s_mtrl.mprice = 0 arg_s_mtrl.mtrlkind = 0 arg_s_mtrl.lspacklimit = 0 arg_s_mtrl.MaxQTY = 99999 arg_s_mtrl.MinQTY = 0 arg_s_mtrl.isuse = 1 arg_s_mtrl.barcode = '' arg_s_mtrl.net_weight = 0 arg_s_mtrl.gross_weight = 0 arg_s_mtrl.cubage = 0 arg_s_mtrl.mtrlengname = '' arg_s_mtrl.scllflag = 0 arg_s_mtrl.ifscid = 0 arg_s_mtrl.uprate = 0 arg_s_mtrl.upqty = 0 arg_s_mtrl.ordertype = 0 arg_s_mtrl.statusflag = 0 arg_s_mtrl.statustype = 0 arg_s_mtrl.woodcodeflag = 0 arg_s_mtrl.woodcodetype = 0 arg_s_mtrl.pcodeflag = 0 arg_s_mtrl.pcodetype = 0 arg_s_mtrl.mtrlarea = 0 arg_s_mtrl.dftsptid = 0 arg_s_mtrl.mtrlarea1 = 0 arg_s_mtrl.mtrlarea2 = 0 arg_s_mtrl.iflimitprice = 0 arg_s_mtrl.configcode = '' arg_s_mtrl.autoinstall = 0 arg_s_mtrl.ifpack = 0 arg_s_mtrl.configname = '' arg_s_mtrl.ifpackpro = 0 arg_s_mtrl.mtrlcolor = '' arg_s_mtrl.configcodetype = 0 arg_s_mtrl.ifautodd = 0 arg_s_mtrl.iflljg = 0 arg_s_mtrl.ifunit = 0 arg_s_mtrl.ifpackpz = 0 arg_s_mtrl.ifpacktype = 0 arg_s_mtrl.scllrate = 0 arg_s_mtrl.cmpqty = 1 arg_s_mtrl.storagetype = 0 arg_s_mtrl.ifmtrlcuscode = 0 arg_s_mtrl.mrptype = 0 arg_s_mtrl.mrparg = 5 arg_s_mtrl.updownprice = 0 arg_s_mtrl.outtype = 0 arg_s_mtrl.ifpricepack = 0 arg_s_mtrl.gydscrp = '' arg_s_mtrl.downrate = 0 arg_s_mtrl.ifcustom = 0 arg_s_mtrl.buyunit = 0 arg_s_mtrl.wfjgunit = 0 arg_s_mtrl.scllunit = 0 arg_s_mtrl.saleunit = 0 arg_s_mtrl.buydec = 5 arg_s_mtrl.wfjgdec = 5 arg_s_mtrl.sclldec = 5 arg_s_mtrl.saledec = 5 arg_s_mtrl.issuliao = 0 arg_s_mtrl.period = 0 arg_s_mtrl.ifenough = 0 arg_s_mtrl.capacity = 0 arg_s_mtrl.expday = 0 arg_s_mtrl.capaparm = 1 arg_s_mtrl.sctaskqty = 0 arg_s_mtrl.minarg = 0 arg_s_mtrl.maxarg = 0 arg_s_mtrl.ifmrppackpf = 0 arg_s_mtrl.maxzjday = 0 arg_s_mtrl.eoq = 0 arg_s_mtrl.splitrate = 0 arg_s_mtrl.sk_mtrltypeid = 0 arg_s_mtrl.status_check = 0 arg_s_mtrl.woodcode_check = 0 arg_s_mtrl.pcode_check = 0 arg_s_mtrl.maxdays = 0 arg_s_mtrl.mindays = 0 arg_s_mtrl.mrp_unit = 0 arg_s_mtrl.rebuytype = 0 arg_s_mtrl.rebuylot = 0 arg_s_mtrl.ifsendlot = 0 arg_s_mtrl.upddrate = 0 arg_s_mtrl.upddqty = 0 arg_s_mtrl.upsalerate = 0 arg_s_mtrl.upsaleqty = 0 arg_s_mtrl.status_config = '' arg_s_mtrl.woodcode_config = '' arg_s_mtrl.pcode_config = '' arg_s_mtrl.rebuylot = 0 arg_s_mtrl.ifusedeliqty = 0 arg_s_mtrl.pricepztype = 0 arg_s_mtrl.useday = 0 arg_s_mtrl.equiptype = 0 arg_s_mtrl.ifpackpro2 = 0 arg_s_mtrl.skmtrlid = 0 arg_s_mtrl.ifkl = 0 arg_s_mtrl.ifturn = 0 arg_s_mtrl.iffp = 0 arg_s_mtrl.scllqty = 0 arg_s_mtrl.dftscllwkpid = 0 arg_s_mtrl.piccode = '' arg_s_mtrl.if_hourpay = 0 arg_s_mtrl.ifmrp = 1 arg_s_mtrl.if_inherit = 0 arg_s_mtrl.groupstr = '' arg_s_mtrl.groupday = 0 arg_s_mtrl.aps_capacity_type = '' arg_s_mtrl.ifcheck = 0 arg_s_mtrl.checkrate = 1 arg_s_mtrl.scllplan_mode = 0 arg_s_mtrl.chkpassrate = 0 arg_s_mtrl.dftcusid = 0 arg_s_mtrl.sendtype = 0 arg_s_mtrl.buy_ceiling = 0 arg_s_mtrl.wfjg_ceiling = 0 arg_s_mtrl.sale_ceiling = 0 arg_s_mtrl.scll_ceiling = 0 arg_s_mtrl.material = '' arg_s_mtrl.adddec = 0 arg_s_mtrl.ifbarcodefp = 0 arg_s_mtrl.stoppqty = 0 arg_s_mtrl.buy_autoday = 0 arg_s_mtrl.upbuyrate = 0 arg_s_mtrl.upbuyqty = 0 arg_s_mtrl.ifrebuypack = 0 arg_s_mtrl.protype = 0 arg_s_mtrl.buydays_bx = 0 arg_s_mtrl.wfjgdays_bx = 0 arg_s_mtrl.multqty = 0 arg_s_mtrl.multtype = 0 arg_s_mtrl.buyer = '' arg_s_mtrl.bantype = 0 End If End If arg_s_mtrl.mtrlid = 0 //ll_mtrlid // 新建的资料或已有资料但设了模板 arg_s_mtrl.mtrlcode = ls_mtrlcode arg_s_mtrl.mtrlname = ls_mtrlname arg_s_mtrl.unit = ls_unit arg_s_mtrl.mtrlmode = ls_mtrlmode arg_s_mtrl.mtrlsectype = ls_mtrlsectype arg_s_mtrl.zxmtrlmode = ls_zxmtrlmode arg_s_mtrl.usermtrlmode = ls_usermtrlmode arg_s_mtrl.orderdays = ld_orderdays arg_s_mtrl.buydays = ld_buydays arg_s_mtrl.wfjgdays = ld_wfjgdays arg_s_mtrl.mtrltypeid = ll_mtrltypeid arg_s_mtrl.scid = ll_scid arg_s_mtrl.dftwrkGrpid = ll_dftwrkgrpid arg_s_mtrl.Mtrlorigin = li_mtrlorigin arg_s_mtrl.mtrlprp = li_mtrlprp arg_s_mtrl.piccode = ls_piccode arg_s_mtrl.ifselforder = li_ifselforder arg_s_mtrl.ordertype = li_ordertype arg_s_mtrl.mb_mtrlid = ll_mb_mtrlid arg_s_mtrl.bantype = ll_bantype arg_s_mtrl.outtype = li_outtype arg_s_mtrl.dscrp = ls_dscrp_mtrl arg_s_mtrl.midu = ld_midu arg_s_mtrl.isuse = 1 If uo_mtrl.uof_add_mtrl(arg_s_mtrl,publ_operator,arg_msg,False) = 0 Then arg_msg = "行:"+String(ll_i)+ ",建立新物料资料操作失败,"+arg_msg rslt = 0 Goto ext End If arg_s_ban.wenli = dw_1.Object.u_mtrldef_ban_wenli[ll_i] arg_s_ban.fengbian = dw_1.Object.u_mtrldef_ban_fengbian[ll_i] arg_s_ban.paikong = dw_1.Object.u_mtrldef_ban_paikong[ll_i] arg_s_ban.luoji = dw_1.Object.u_mtrldef_ban_luoji[ll_i] arg_s_ban.penyou = dw_1.Object.u_mtrldef_ban_penyou[ll_i] arg_s_ban.gydscrp = dw_1.Object.u_mtrldef_ban_gydscrp[ll_i] arg_s_ban.promode = dw_1.Object.u_mtrldef_ban_promode[ll_i] arg_s_ban.direction = dw_1.Object.u_mtrldef_ban_direction[ll_i] arg_s_ban.pfklmode = dw_1.Object.u_mtrldef_ban_pfklmode[ll_i] If uo_mtrl.uof_update_ban(uo_mtrl.uo_mtrlid,arg_s_ban,arg_msg,False) = 0 Then arg_msg = "行:"+String(ll_i)+ ",建立新物料板件资料操作失败,"+arg_msg rslt = 0 Goto ext End If //记录新建的物料编码,如果下面再出现,不重复新建资料 2014-10-06 ll_cnt_new++ ls_mtrlcode_new_arr[ll_cnt_new] = ls_mtrlcode ll_mtrlid_copy = uo_mtrl.uo_mtrlid dw_1.Object.newid[ll_i] = ll_mtrlid_copy If ll_mtrlid > 0 Then Insert Into u_mtrl_storage (mtrlid,storageid) Select :ll_mtrlid_copy,storageid From u_mtrl_storage Where mtrlid = :ll_mtrlid; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = sqlca.SQLErrText arg_msg = '复制物料存放仓库失败,'+arg_msg Goto ext End If Insert Into u_mtrl_wkp (mtrlid, swkpid, owkpid, wkpname, lastdays, dscrp) Select :ll_mtrlid_copy, u_mtrl_wkp.swkpid, u_mtrl_wkp.owkpid, u_mtrl_wkp.wkpname, u_mtrl_wkp.lastdays, u_mtrl_wkp.dscrp From u_mtrl_wkp Where mtrlid = :ll_mtrlid; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = sqlca.SQLErrText arg_msg = '复制车间交接流程失败,'+arg_msg Goto ext End If Insert Into u_mtrl_configure2 (scid, mtrlid, pzid, printid, pzcode, pzname, pzcodemx, pznamemx ) Select scid, :ll_mtrlid_copy, pzid, printid, pzcode, pzname, pzcodemx, pznamemx From u_mtrl_configure2 Where mtrlid = :ll_mtrlid; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = sqlca.SQLErrText arg_msg = '复制产品配置失败,'+arg_msg Goto ext End If Declare cur_configure Cursor For Select u_mtrl_configure.code, u_mtrl_configure.name, u_mtrl_configure.ename, u_mtrl_configure.type, u_mtrl_configure.dscrp, u_mtrl_configure.DefaultPZ, u_mtrl_configure.ifzj, u_mtrl_configure.planprice, u_mtrl_configure.capacity, u_mtrl_configure.capaparm From u_mtrl_configure Where u_mtrl_configure.mtrlid = :ll_mtrlid; Open cur_configure; Fetch cur_configure Into :ls_code,:ls_name,:ls_ename,:ll_type,:ls_dscrp, :ll_DefaultPZ,:ll_ifzj,:ld_planprice,:ld_capacity,:ld_capaparm; Do While sqlca.SQLCode = 0 ll_new_cid = f_sys_scidentity(0,"u_mtrl_configure","cid",arg_msg,True,id_sqlca) If ll_new_cid <= 0 Then rslt = 0 arg_msg = '复制配置内容失败,'+arg_msg Goto ext End If Insert Into u_mtrl_configure (mtrlid, cid, code, name, ename, type, dscrp, defaultpz, ifzj, planprice, capacity, capaparm) Values( :ll_mtrlid_copy, :ll_new_cid, :ls_code, :ls_name, :ls_ename, :ll_type, :ls_dscrp, :ll_DefaultPZ, :ll_ifzj, :ld_planprice, :ld_capacity, :ld_capaparm); If sqlca.SQLCode <> 0 Then arg_msg = sqlca.SQLErrText arg_msg = '复制配置内容失败,'+arg_msg rslt = 0 Goto ext End If Fetch cur_configure Into :ls_code,:ls_name,:ls_ename,:ll_type,:ls_dscrp, :ll_DefaultPZ,:ll_ifzj,:ld_planprice,:ld_capacity,:ld_capaparm; Loop Close cur_configure; End If If uo_pf.uof_addpflist(ll_mtrlid_copy,ls_pfcode,ll_dftwrkgrpid,'',0,1,0,False,arg_msg) = 0 Then rslt = 0 Goto ext End If If uo_pf.uof_audit(ll_mtrlid_copy,ls_pfcode,1,arg_msg,False) = 0 Then arg_msg = "审核清单用料明细物料的物料清单失败,"+arg_msg rslt = 0 Goto ext End If If ll_dftwrkgrpid > 0 Then If u_wrkprice.uof_add_list(ll_mtrlid_copy,'[常规]',ll_dftwrkgrpid,0,'',1,publ_operator,arg_msg,False) = 0 Then rslt = 0 Goto ext End If End If else //现有物料,更新板件信息 arg_s_ban.wenli = dw_1.Object.u_mtrldef_ban_wenli[ll_i] arg_s_ban.fengbian = dw_1.Object.u_mtrldef_ban_fengbian[ll_i] arg_s_ban.paikong = dw_1.Object.u_mtrldef_ban_paikong[ll_i] arg_s_ban.luoji = dw_1.Object.u_mtrldef_ban_luoji[ll_i] arg_s_ban.penyou = dw_1.Object.u_mtrldef_ban_penyou[ll_i] arg_s_ban.gydscrp = dw_1.Object.u_mtrldef_ban_gydscrp[ll_i] arg_s_ban.promode = dw_1.Object.u_mtrldef_ban_promode[ll_i] arg_s_ban.direction = dw_1.Object.u_mtrldef_ban_direction[ll_i] arg_s_ban.pfklmode = dw_1.Object.u_mtrldef_ban_pfklmode[ll_i] If uo_mtrl.uof_update_ban(dw_1.Object.u_mtrldef_mtrlid[ll_i],arg_s_ban,arg_msg,False) = 0 Then arg_msg = "行:"+String(ll_i)+ ",更新物料板件资料操作失败,"+arg_msg rslt = 0 Goto ext End If End If _next_row: Next dw_1.AcceptText() //建立清单 //1.建立主产品清单 Long ll_mtrlid_son Decimal ld_sonscale,ld_sonloss,ld_sondecloss,ld_sonahead String ls_dscrp_pf,ls_woodcode,ls_pcode,ls_status String ls_sonpfcode Long ll_printid String ls_pfgroup,ls_pfgroupmode,ls_pfklmode Decimal ls_pfgroupqty Decimal ld_scllloss,ld_sclldecloss,ld_pfgroupqty Long ll_ifover,ll_dipztype Decimal ld_buyarg Long ll_wrkgrpid String ls_promode Decimal ld_sonscale_p Long cnt_fj If ins_if_saletask = 1 Then Select count(*) Into :cnt From u_mtrl_pf Where mtrlid = :ins_mtrlid And pfcode = :ins_pfcode; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '查询产品物料清单信息失败,'+sqlca.SQLErrText Goto ext End If If cnt = 0 Then Select count(*) Into :cnt_fj From U_File Where relid = :ins_mtrlid And relcode = :ins_pfcode And billtype = 202 Using sys_fileDB_sqlca; If sys_fileDB_sqlca.SQLCode <> 0 Then cnt_fj = 0 Insert Into u_mtrl_pf(mtrlid,pfcode,if_saletask,moddate,modemp,inuse,dscrp,fjcnt) Values (:ins_mtrlid,:ins_pfcode,1,getdate(),:publ_operator,1,:ins_pfdscrp,:cnt_fj); If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = "添加物料清单失败,"+sqlca.SQLErrText Goto ext End If If uo_pf.uof_audit(ins_mtrlid,ins_pfcode,1,arg_msg,False) = 0 Then arg_msg = "审核清单用料明细物料的物料清单失败,"+arg_msg rslt = 0 Goto ext End If End If End If Delete From u_prdpf Where ( u_prdpf.mtrlid = :ins_mtrlid ) And ( u_prdpf.pfcode = :ins_pfcode ); If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '删除主产品原有物料清单失败,'+sqlca.SQLErrText Goto ext End If //FOR ll_i = 1 To dw_1.RowCount() // IF dw_1.Object.u_mtrldef_mtrlid[ll_i] = 0 THEN CONTINUE // // ll_mtrlid = dw_1.Object.u_mtrldef_mtrlid[ll_i] // ls_pfcode = f_get_dft_pf(ll_mtrlid) //// ls_pfcode = ins_pfcode // // DELETE FROM u_prdpf // WHERE ( u_prdpf.mtrlid = :ll_mtrlid ) AND // ( u_prdpf.pfcode = :ls_pfcode ); // IF sqlca.SQLCode <> 0 THEN // rslt = 0 // arg_msg = '行:'+String(ll_i)+',删除原有物料清单失败,'+sqlca.SQLErrText // GOTO ext // END IF //NEXT Int li_ifpackpro Select ifpackpro Into :li_ifpackpro From u_mtrldef Where mtrlid = :ins_mtrlid; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '查询主产品包件产品属性失败,'+sqlca.SQLErrText Goto ext End If For ll_i = 1 To dw_1.RowCount() If dw_1.Object.lp[ll_i] = 1 Then If dw_1.Object.u_prdpf_sonscale[ll_i] < 0 Then dw_1.SelectRow(0,False) dw_1.SetRow(ll_i) dw_1.SelectRow(ll_i,True) arg_msg = '不合理组成数量!在 '+String(dw_1.Object.u_mtrldef_mtrlcode[ll_i])+' ,请核对!' rslt = 0 Goto ext End If If dw_1.Object.u_prdpf_sonloss[ll_i] < 0 Or dw_1.Object.u_prdpf_sonloss[ll_i] >= 1 Then dw_1.SelectRow(0,False) dw_1.SetRow(ll_i) dw_1.SelectRow(ll_i,True) arg_msg = '不合理损耗率!在 '+String(dw_1.Object.u_mtrldef_mtrlcode[ll_i])+' ,请核对!' rslt = 0 Goto ext End If If dw_1.Object.u_prdpf_sondecloss[ll_i] < 0 Then dw_1.SelectRow(0,False) dw_1.SetRow(ll_i) dw_1.SelectRow(ll_i,True) arg_msg = '不合理附加损耗量!在 '+String(dw_1.Object.u_mtrldef_mtrlcode[ll_i])+' ,请核对!' rslt = 0 Goto ext End If If dw_1.Object.u_prdpf_wrkgrpid[ll_i] = 0 Then dw_1.SelectRow(0,False) dw_1.SetRow(ll_i) dw_1.SelectRow(ll_i,True) arg_msg = '请先选择领用工组' rslt = 0 Goto ext End If If dw_1.Object.u_mtrldef_mtrlid[ll_i] = 0 Then ll_mtrlid_son = dw_1.Object.newid[ll_i] Else ll_mtrlid_son = dw_1.Object.u_mtrldef_mtrlid[ll_i] End If ld_sonscale = dw_1.Object.u_prdpf_sonscale[ll_i] ld_sonloss = dw_1.Object.u_prdpf_sonloss[ll_i] ld_sondecloss = dw_1.Object.u_prdpf_sondecloss[ll_i] ld_sonahead = dw_1.Object.u_prdpf_sonahead[ll_i] ls_status = dw_1.Object.u_prdpf_status[ll_i] ls_woodcode = dw_1.Object.u_prdpf_woodcode[ll_i] ls_pcode = dw_1.Object.u_prdpf_pcode[ll_i] ls_sonpfcode = dw_1.Object.u_prdpf_sonpfcode[ll_i] ll_printid = dw_1.Object.u_prdpf_printid[ll_i] ls_pfgroup = dw_1.Object.u_prdpf_pfgroup[ll_i] ld_pfgroupqty = dw_1.Object.u_prdpf_pfgroupqty[ll_i] ls_pfgroupmode = dw_1.Object.u_prdpf_pfgroupmode[ll_i] ls_pfklmode = dw_1.Object.u_prdpf_pfklmode[ll_i] ls_dscrp_pf = dw_1.Object.u_prdpf_dscrp[ll_i] ld_scllloss = dw_1.Object.u_prdpf_scllloss[ll_i] ld_sclldecloss = dw_1.Object.u_prdpf_sclldecloss[ll_i] ll_ifover = dw_1.Object.u_prdpf_ifover[ll_i] ll_dipztype = dw_1.Object.u_prdpf_dipztype[ll_i] ld_buyarg = dw_1.Object.u_prdpf_buyarg[ll_i] ll_wrkgrpid = dw_1.Object.u_prdpf_wrkgrpid[ll_i] ls_promode = dw_1.Object.u_prdpf_promode[ll_i] ll_modleid = dw_1.Object.u_prdpf_modleid[ll_i] ls_modlename = dw_1.Object.u_prdpf_modlename[ll_i] ls_wenli = dw_1.Object.u_prdpf_wenli[ll_i] ls_fengbian = dw_1.Object.u_prdpf_fengbian[ll_i] ls_paikong = dw_1.Object.u_prdpf_paikong[ll_i] ls_luoji = dw_1.Object.u_prdpf_luoji[ll_i] ls_penyou = dw_1.Object.u_prdpf_penyou[ll_i] ls_azcode = dw_1.Object.u_prdpf_azcode[ll_i] If li_ifpackpro = 5 And ll_dipztype <> 3 Then dw_1.SelectRow(0,False) dw_1.SetRow(ll_i) dw_1.SelectRow(ll_i,True) arg_msg = '全订制板式家具包件产品下级包件按配置运算或拆装必须选择"配置+配置1"' rslt = 0 Goto ext End If Insert Into u_prdpf ( mtrlid, pfcode, sonmtrlid, sonscale, sonloss, sondecloss, sonahead, status, woodcode, pcode, sonpfcode, printid, pfgroup, pfgroupqty, pfgroupmode, pfklmode, dscrp, scllloss, sclldecloss, ifover, dipztype, buyarg, wrkgrpid, promode, modleid, modlename, wenli, fengbian, paikong, luoji, penyou, azcode) Values ( :ins_mtrlid, :ins_pfcode, :ll_mtrlid_son, :ld_sonscale, :ld_sonloss, :ld_sondecloss, :ld_sonahead, :ls_status, :ls_woodcode, :ls_pcode, :ls_sonpfcode, :ll_printid, :ls_pfgroup, :ld_pfgroupqty, :ls_pfgroupmode, :ls_pfklmode, :ls_dscrp_pf, :ld_scllloss, :ld_sclldecloss, :ll_ifover, :ll_dipztype, :ld_buyarg, :ll_wrkgrpid, :ls_promode, :ll_modleid, :ls_modlename, :ls_wenli, :ls_fengbian, :ls_paikong, :ls_luoji, :ls_penyou, :ls_azcode) ; If sqlca.SQLCode <> 0 Then If Pos(sqlca.SQLErrText,'PK_u_PrdPF') > 0 Then arg_msg = '插入主产品物料清单失败,发现重复信息,在'+String(dw_1.Object.u_mtrldef_mtrlcode[ll_i])+' ,请核对!' Else arg_msg = '插入清单失败(主产品),'+sqlca.SQLErrText End If dw_1.SelectRow(0,False) dw_1.SetRow(ll_i) dw_1.SelectRow(ll_i,True) rslt = 0 Goto ext End If End If Next //2.建立新建物料清单 For ll_i = 1 To dw_1.RowCount() If dw_1.Object.lp[ll_i] = 0 Then Continue If dw_1.Object.u_mtrldef_mtrlid[ll_i] = 0 And dw_1.Object.newid[ll_i] = 0 Then Continue ll_lp = dw_1.Object.lp[ll_i] If dw_1.Object.u_mtrldef_mtrlid[ll_i] = 0 Then ll_mtrlid = dw_1.Object.newid[ll_i] ls_pfcode = dw_1.Object.u_prdpf_sonpfcode[ll_i] Else If ins_if_saletask = 1 And dw_1.Object.u_prdpf_sonpfcode[ll_i] = ins_pfcode Then //使用圆方全订制导入,包件清单号按产品清单 ll_mtrlid = dw_1.Object.u_mtrldef_mtrlid[ll_i] ls_pfcode = ins_pfcode Select count(*) Into :cnt From u_mtrl_pf Where mtrlid = :ll_mtrlid And pfcode = :ls_pfcode; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '查询产品物料清单信息失败,'+sqlca.SQLErrText Goto ext End If If cnt = 0 Then Insert Into u_mtrl_pf(mtrlid,pfcode,if_saletask,moddate,modemp,inuse,dscrp) Values (:ll_mtrlid,:ls_pfcode,1,getdate(),:publ_operator,1,:ins_pfdscrp); If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = "添加物料清单失败,"+sqlca.SQLErrText Goto ext End If If uo_pf.uof_audit(ll_mtrlid,ls_pfcode,1,arg_msg,False) = 0 Then arg_msg = "审核清单用料明细物料的物料清单失败,"+arg_msg rslt = 0 Goto ext End If End If Else ll_mtrlid = dw_1.Object.u_mtrldef_mtrlid[ll_i] ls_pfcode = dw_1.Object.u_prdpf_sonpfcode[ll_i] If Trim(ls_pfcode) = '' Then ls_pfcode = f_get_dft_pf(ll_mtrlid) End If Select count(*) Into :cnt From u_mtrl_pf Where mtrlid = :ll_mtrlid And pfcode = :ls_pfcode; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '查询产品物料清单信息失败,'+sqlca.SQLErrText Goto ext End If If cnt = 0 Then Insert Into u_mtrl_pf(mtrlid,pfcode,if_saletask,moddate,modemp,inuse,dscrp) Values (:ll_mtrlid,:ls_pfcode,1,getdate(),:publ_operator,1,:ins_pfdscrp); If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = "添加物料清单失败,"+sqlca.SQLErrText Goto ext End If If uo_pf.uof_audit(ll_mtrlid,ls_pfcode,1,arg_msg,False) = 0 Then arg_msg = "审核清单用料明细物料的物料清单失败,"+arg_msg rslt = 0 Goto ext End If End If End If End If ld_sonscale_p = dw_1.Object.u_prdpf_sonscale[ll_i] ld_sonloss_p = dw_1.Object.u_prdpf_sonloss[ll_i] ld_sondecloss_p = dw_1.Object.u_prdpf_sondecloss[ll_i] Select cmpqty Into :ld_cmpqty_p From u_mtrldef Where mtrlid = :ll_mtrlid; If sqlca.SQLCode <> 0 Then ld_cmpqty_p = 1 ld_qty = Round(((ld_sonscale_p/(1 - ld_sonloss_p)+ ld_sondecloss_p) / ld_cmpqty_p),sys_option_produce_dec) If ld_sonscale_p <= 0 Then dw_1.SelectRow(0,False) dw_1.SetRow(ll_i) dw_1.SelectRow(ll_i,True) arg_msg = '不合理组成数量!在 '+String(dw_1.Object.u_mtrldef_mtrlcode[ll_i])+' ,请核对!' rslt = 0 Goto ext End If Delete From u_prdpf Where ( u_prdpf.mtrlid = :ll_mtrlid ) And ( u_prdpf.pfcode = :ls_pfcode ); If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '行:'+String(ll_i)+',删除原有物料清单失败,'+sqlca.SQLErrText Goto ext End If For ll_j = ll_i + 1 To dw_1.RowCount() If dw_1.Object.lp[ll_j] <= ll_lp Then Exit If dw_1.Object.lp[ll_j] = ll_lp + 1 Then If dw_1.Object.u_prdpf_sonscale[ll_j] <= 0 Then dw_1.SelectRow(0,False) dw_1.SetRow(ll_j) dw_1.SelectRow(ll_j,True) arg_msg = '不合理组成数量!在 '+String(dw_1.Object.u_mtrldef_mtrlcode[ll_j])+' ,请核对!' rslt = 0 Goto ext End If If dw_1.Object.u_prdpf_sonloss[ll_j] < 0 Or dw_1.Object.u_prdpf_sonloss[ll_j] >= 1 Then dw_1.SelectRow(0,False) dw_1.SetRow(ll_j) dw_1.SelectRow(ll_j,True) arg_msg = '不合理损耗率!在 '+String(dw_1.Object.u_mtrldef_mtrlcode[ll_j])+' ,请核对!' rslt = 0 Goto ext End If If dw_1.Object.u_prdpf_sondecloss[ll_j] < 0 Then dw_1.SelectRow(0,False) dw_1.SetRow(ll_j) dw_1.SelectRow(ll_j,True) arg_msg = '不合理附加损耗量!在 '+String(dw_1.Object.u_mtrldef_mtrlcode[ll_j])+' ,请核对!' rslt = 0 Goto ext End If If dw_1.Object.u_prdpf_wrkgrpid[ll_j] = 0 Then dw_1.SelectRow(0,False) dw_1.SetRow(ll_j) dw_1.SelectRow(ll_j,True) arg_msg = '请先选择领用工组' rslt = 0 Goto ext End If If dw_1.Object.u_mtrldef_mtrlid[ll_j] = 0 Then ll_mtrlid_son = dw_1.Object.newid[ll_j] Else ll_mtrlid_son = dw_1.Object.u_mtrldef_mtrlid[ll_j] End If ld_sonscale = dw_1.Object.u_prdpf_sonscale[ll_j] ld_sonloss = dw_1.Object.u_prdpf_sonloss[ll_j] ld_sondecloss = dw_1.Object.u_prdpf_sondecloss[ll_j] ld_sonahead = dw_1.Object.u_prdpf_sonahead[ll_j] ls_status = dw_1.Object.u_prdpf_status[ll_j] ls_woodcode = dw_1.Object.u_prdpf_woodcode[ll_j] ls_pcode = dw_1.Object.u_prdpf_pcode[ll_j] ls_sonpfcode = dw_1.Object.u_prdpf_sonpfcode[ll_j] ll_printid = dw_1.Object.u_prdpf_printid[ll_j] ls_pfgroup = dw_1.Object.u_prdpf_pfgroup[ll_j] ld_pfgroupqty = dw_1.Object.u_prdpf_pfgroupqty[ll_j] ls_pfgroupmode = dw_1.Object.u_prdpf_pfgroupmode[ll_j] ls_pfklmode = dw_1.Object.u_prdpf_pfklmode[ll_j] ls_dscrp_pf = dw_1.Object.u_prdpf_dscrp[ll_j] ld_scllloss = dw_1.Object.u_prdpf_scllloss[ll_j] ld_sclldecloss = dw_1.Object.u_prdpf_sclldecloss[ll_j] ll_ifover = dw_1.Object.u_prdpf_ifover[ll_j] ll_dipztype = dw_1.Object.u_prdpf_dipztype[ll_j] ld_buyarg = dw_1.Object.u_prdpf_buyarg[ll_j] ll_wrkgrpid = dw_1.Object.u_prdpf_wrkgrpid[ll_j] ls_promode = dw_1.Object.u_prdpf_promode[ll_j] ll_modleid = dw_1.Object.u_prdpf_modleid[ll_j] ls_modlename = dw_1.Object.u_prdpf_modlename[ll_j] ld_sonscale = ld_sonscale / ld_qty ls_wenli = dw_1.Object.u_prdpf_wenli[ll_j] ls_fengbian = dw_1.Object.u_prdpf_fengbian[ll_j] ls_paikong = dw_1.Object.u_prdpf_paikong[ll_j] ls_luoji = dw_1.Object.u_prdpf_luoji[ll_j] ls_penyou = dw_1.Object.u_prdpf_penyou[ll_j] ls_azcode = dw_1.Object.u_prdpf_azcode[ll_j] Insert Into u_prdpf ( mtrlid, pfcode, sonmtrlid, sonscale, sonloss, sondecloss, sonahead, status, woodcode, pcode, sonpfcode, printid, pfgroup, pfgroupqty, pfgroupmode, pfklmode, dscrp, scllloss, sclldecloss, ifover, dipztype, buyarg, wrkgrpid, promode, modleid, modlename, wenli, fengbian, paikong, luoji, penyou, azcode) Values ( :ll_mtrlid, :ls_pfcode, :ll_mtrlid_son, :ld_sonscale, :ld_sonloss, :ld_sondecloss, :ld_sonahead, :ls_status, :ls_woodcode, :ls_pcode, :ls_sonpfcode, :ll_printid, :ls_pfgroup, :ld_pfgroupqty, :ls_pfgroupmode, :ls_pfklmode, :ls_dscrp_pf, :ld_scllloss, :ld_sclldecloss, :ll_ifover, :ll_dipztype, :ld_buyarg, :ll_wrkgrpid, :ls_promode, :ll_modleid, :ls_modlename, :ls_wenli, :ls_fengbian, :ls_paikong, :ls_luoji, :ls_penyou, :ls_azcode) ; If sqlca.SQLCode <> 0 Then If Pos(sqlca.SQLErrText,'PK_u_PrdPF') > 0 Then arg_msg = '插入'+String(dw_1.Object.u_mtrldef_mtrlcode[ll_i])+' 物料清单失败,发现重复信息,在'+String(dw_1.Object.u_mtrldef_mtrlcode[ll_j])+' ,请核对!' Else arg_msg = '插入'+String(dw_1.Object.u_mtrldef_mtrlcode[ll_i])+' 物料清单失败,在'+String(dw_1.Object.u_mtrldef_mtrlcode[ll_j])+' ,'+sqlca.SQLErrText End If dw_1.SelectRow(0,False) dw_1.SetRow(ll_i) dw_1.SelectRow(ll_i,True) rslt = 0 Goto ext End If End If Next Update u_mtrl_pf Set moddate = getdate() , modemp = :publ_operator Where mtrlid = :ll_mtrlid And pfcode = :ls_pfcode; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = String(dw_1.Object.u_mtrldef_mtrlcode[ll_i])+' 更新物料清单构成修改时间失败,'+arg_msg Goto ext End If //计算物料清单用料列表 If uo_pf.f_clearprdpfmx(ll_mtrlid,ls_pfcode,arg_msg,False) = 0 Then rslt = 0 arg_msg = String(dw_1.Object.u_mtrldef_mtrlcode[ll_i])+' 清除原用料列表失败,'+arg_msg Goto ext End If If uo_pf.f_cmpprdpf(ll_mtrlid,ll_mtrlid,ls_pfcode,ls_pfcode,1,1,1,arg_msg,False,0) = 0 Then rslt = 0 arg_msg = String(dw_1.Object.u_mtrldef_mtrlcode[ll_i])+' 计算新用料列表失败,'+arg_msg Goto ext End If Next Update u_mtrl_pf Set moddate = getdate() , modemp = :publ_operator Where mtrlid = :ins_mtrlid And pfcode = :ins_pfcode; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '更新主产品物料清单构成修改时间失败,'+arg_msg Goto ext End If //计算主产品物料清单用料列表 If uo_pf.f_clearprdpfmx(ins_mtrlid,ins_pfcode,arg_msg,False) = 0 Then rslt = 0 arg_msg = '清除主产品原用料列表失败,'+arg_msg Goto ext End If If uo_pf.f_cmpprdpf(ins_mtrlid,ins_mtrlid,ins_pfcode,ins_pfcode,1,1,1,arg_msg,False,0) = 0 Then rslt = 0 arg_msg = '计算主产品新用料列表失败,'+arg_msg Goto ext End If //3.建立工价表 //4.建立工组流程 dw_copy.SetFilter('') dw_copy.Filter() dw_copy_wkp.SetFilter('') dw_copy_wkp.Filter() dw_copy.AcceptText() dw_copy_wkp.AcceptText() For ll_i = 1 To dw_1.RowCount() If dw_1.Object.u_mtrldef_mtrlid[ll_i] = 0 And dw_1.Object.newid[ll_i] = 0 Then Continue If dw_1.Object.ifmod_wp[ll_i] = 1 Then If dw_1.Object.u_mtrldef_mtrlid[ll_i] > 0 Then ll_mtrlid_wp = dw_1.Object.u_mtrldef_mtrlid[ll_i] Else ll_mtrlid_wp = dw_1.Object.newid[ll_i] End If ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_i] ls_wpcode = f_get_dft_wp(ll_mtrlid_wp) If u_wrkprice.updatebegin(ll_mtrlid_wp,ls_wpcode,dw_1.Object.u_mtrldef_dftwrkgrpid[ll_i],arg_msg) = 0 Then arg_msg = '物料:'+ls_mtrlcode+','+arg_msg rslt = 0 Goto ext End If u_wrkprice.mtrlid = ll_mtrlid_wp u_wrkprice.wpmtrlid = 0 u_wrkprice.wprate = 0 cnt = 0 For ll_j = 1 To dw_copy.RowCount() If dw_copy.Object.u_mtrldef_mtrlcode[ll_j] = ls_mtrlcode Then If Trim(dw_copy.Object.procode[ll_j]) <> '' Then //And dw_copy.Object.auditflag[ll_j] = 0 THEN If u_wrkprice.acceptmx(dw_copy.Object.proid[ll_j],& dw_copy.Object.procode[ll_j],& dw_copy.Object.u_sc_workprice_proname[ll_j],& dw_copy.Object.workqty[ll_j],& dw_copy.Object.workprice[ll_j],& dw_copy.Object.wrkgrpid[ll_j],& Upper(dw_copy.Object.worklevel[ll_j]),& Upper(dw_copy.Object.techlevel[ll_j]),& dw_copy.Object.workhour[ll_j],& dw_copy.Object.dscrp[ll_j],& dw_copy.Object.lastflag[ll_j],& dw_copy.Object.proorder[ll_j],& 0,& dw_copy.Object.lsxtype[ll_j],& dw_copy.Object.u_sc_workprice_ifstandard[ll_j],& dw_copy.Object.u_sc_workprice_status[ll_j],& dw_copy.Object.u_sc_workprice_ifjd[ll_j],& dw_copy.Object.u_sc_workprice_utcode[ll_j],& dw_copy.Object.u_sc_workprice_sctype[ll_j],& dw_copy.Object.u_sc_workprice_equipmentid[ll_j],& dw_copy.Object.u_sc_workprice_workdays[ll_j],& dw_copy.Object.u_sc_workprice_beforehour_minute[ll_j],& dw_copy.Object.u_sc_workprice_afterhour_minute[ll_j],& dw_copy.Object.u_sc_workprice_pricestr[ll_j],& dw_copy.Object.u_sc_workprice_partname[ll_j],& dw_copy.Object.u_sc_workprice_eqworkhour_minute[ll_j],& dw_copy.Object.u_sc_workprice_worktype[ll_j],& 0,0,0,0,0,0,0,0,0,& dw_copy.Object.u_sc_workprice_eq_empnum[ll_j],0,0,& dw_copy.Object.u_sc_workprice_workqtystr[ll_j],& 0,& dw_copy.Object.u_sc_workprice_u_workqty[ll_j],& dw_copy.Object.u_sc_workprice_u_workprice[ll_j],& dw_copy.Object.u_sc_workprice_u_workqtystr[ll_j],& dw_copy.Object.u_sc_workprice_u_pricestr[ll_j],'',0,0,0,0,& arg_msg) = 0 Then rslt = 0 arg_msg = '建立工价表失败,物料:'+ls_mtrlcode+','+arg_msg Goto ext End If cnt++ End If End If Next If cnt > 0 Then If u_wrkprice.Save(False,arg_msg) = 0 Then arg_msg = '建立工价表失败,物料:'+ls_mtrlcode+','+arg_msg rslt = 0 Goto ext End If End If End If If dw_1.Object.ifmod_wkp[ll_i] = 1 Then If dw_1.Object.u_mtrldef_mtrlid[ll_i] > 0 Then ll_mtrlid_wp = dw_1.Object.u_mtrldef_mtrlid[ll_i] Else ll_mtrlid_wp = dw_1.Object.newid[ll_i] End If ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_i] Delete From u_mtrl_wkp Where mtrlid = :ll_mtrlid_wp; If sqlca.SQLCode <> 0 Then arg_msg = '物料:'+ls_mtrlcode+',删除原工组流程失败,'+sqlca.SQLErrText rslt = 0 Goto ext End If For ll_j = 1 To dw_copy_wkp.RowCount() If dw_copy_wkp.Object.u_mtrldef_mtrlcode[ll_j] = ls_mtrlcode Then printid_wkp = dw_copy_wkp.Object.printid[ll_j] wkpname_wkp = dw_copy_wkp.Object.wkpname[ll_j] groupstr_wkp = dw_copy_wkp.Object.groupstr[ll_j] swkpid_wkp = dw_copy_wkp.Object.swkpid[ll_j] owkpid_wkp = dw_copy_wkp.Object.owkpid[ll_j] iflast_wkp = dw_copy_wkp.Object.iflast[ll_j] lasthour_wkp = dw_copy_wkp.Object.lasthour[ll_j] lastdays_wkp = dw_copy_wkp.Object.lastdays[ll_j] minlasthour_wkp = dw_copy_wkp.Object.minlasthour[ll_j] uprate_wkp = dw_copy_wkp.Object.uprate[ll_j] dscrp_wkp = dw_copy_wkp.Object.dscrp[ll_j] lp_wkp = dw_copy_wkp.Object.lp[ll_j] printlp_wkp = dw_copy_wkp.Object.printlp[ll_j] workhour_wkp = dw_copy_wkp.Object.workhour[ll_j] beforehour_wkp = dw_copy_wkp.Object.beforehour[ll_j] afterhour_wkp = dw_copy_wkp.Object.afterhour[ll_j] workgroupid_wkp = dw_copy_wkp.Object.workgroupid[ll_j] gydscrp_wkp = dw_copy_wkp.Object.gydscrp[ll_j] Insert Into u_mtrl_wkp (mtrlid, printid, wkpname, groupstr, swkpid, owkpid, iflast, lasthour, lastdays, minlasthour, uprate, dscrp, lp, printlp, workhour, beforehour, afterhour, workgroupid, gydscrp) Values (:ll_mtrlid_wp, :printid_wkp, :wkpname_wkp, :groupstr_wkp, :swkpid_wkp, :owkpid_wkp, :iflast_wkp, :lasthour_wkp, :lastdays_wkp, :minlasthour_wkp, :uprate_wkp, :dscrp_wkp, :lp_wkp, :printlp_wkp, :workhour_wkp, :beforehour_wkp, :afterhour_wkp, :workgroupid_wkp, :gydscrp_wkp); If sqlca.SQLCode <> 0 Then arg_msg = '物料:'+ls_mtrlcode+',插入工组流程失败,'+sqlca.SQLErrText rslt = 0 Goto ext End If End If Next End If Next If ins_if_saletask = 1 Then If li_ifpackpro <> 5 Then Update u_SaleTaskMx Set pfcode = :ins_pfcode Where scid = :ins_scid And taskid = :ins_taskid And printid = :ins_printid; If sqlca.SQLCode <> 0 Then arg_msg = '更新订单明细物料清单号失败,'+sqlca.SQLErrText rslt = 0 Goto ext End If Else Update u_SaleTaskMx Set pfcode = :ins_pfcode, status = :ins_pfcode Where scid = :ins_scid And taskid = :ins_taskid And printid = :ins_printid; If sqlca.SQLCode <> 0 Then arg_msg = '更新订单明细物料清单号失败,'+sqlca.SQLErrText rslt = 0 Goto ext End If End If End If If cbx_wp_pack.Checked Then If wf_auto_wp(cbx_wp_add.Checked,arg_msg) = 0 Then arg_msg = '按清单说明自动生成包件工价表失败,'+sqlca.SQLErrText rslt = 0 Goto ext End If End If ext: If rslt = 1 Then Commit; ElseIf rslt = 0 Then Rollback; End If Return rslt end function public function integer wf_addmx (long arg_mtrlid, string arg_pfcode, long arg_lp, decimal arg_qty, ref string arg_msg);Int rslt = 1 Decimal ld_cmpqty String ls_mtrlcode Long count,ll_i Decimal ld_qty Long ll_row Select mtrlcode,cmpqty Into :ls_mtrlcode,:ld_cmpqty From u_mtrldef Where mtrlid = :arg_mtrlid; If sqlca.SQLCode <> 0 Then arg_msg = '查询物料清单基数失败,ID:'+String(arg_mtrlid)+','+sqlca.SQLErrText rslt = 0 Goto ext End If If ld_cmpqty <= 0 Then arg_msg = '不合理的物料清单基数,物料:'+ls_mtrlcode rslt = 0 Goto ext End If String mtrlcode[] Long mtrlprp[] Long wrkgrpid[] Decimal Sonscale[],SonLoss[],SonDECLosS[] String status[],woodcode[],pcode[] Decimal Sonahead[] String mtrlname[],unit[],mtrlmode[],mtrlsectype[],zxmtrlmode[],wrkGrpName[] Long statusflag[],statustype[],woodcodeflag[],woodcodetype[],pcodeflag[],pcodetype[] String usermtrlmode[] Long Mtrlorigin[] String sonpfcode[] Long SonMtrlid[],printid[] String pfgroup[] Decimal pfgroupqty[] String pfgroupmode[],pfklmode[],dscrp[] Decimal baseqty[],scllloss[],sclldecloss[] Long ifover[],dipztype[] Decimal buyarg[],orderdays[],buydays[],wfjgdays[] Long dftwrkgrpid[] Long mtrltypeid[],scid[] String promode[] Int ordertype[],ifselforder[] Long modleid[] String modlename[],wenli[],fengbian[],paikong[],luoji[],penyou[] String wenli_mtrl[],fengbian_mtrl[],paikong_mtrl[],luoji_mtrl[],penyou_mtrl[],promode_mtrl[],gydscrp_mtrl[],pfklmode_mtrl[] int outtype[],ifpack[],direction[],bantype[] decimal midu[] string ls_dscrp_mtrl[] decimal ld_long,ld_height,ld_width,ld_cubage Declare cur_pf Cursor For Select u_mtrldef.mtrlcode, u_mtrldef.mtrlprp, u_PrdPF.wrkgrpid, u_PrdPF.Sonscale, u_PrdPF.SonLoss, u_PrdPF.SonDECLosS, u_PrdPF.status, u_PrdPF.woodcode, u_PrdPF.pcode, u_PrdPF.Sonahead, u_mtrldef.mtrlname, u_mtrldef.unit, u_mtrldef.mtrlmode, u_mtrldef.mtrlsectype, u_mtrldef.zxmtrlmode, u_sc_wkp.wrkGrpName, u_mtrldef.statusflag, u_mtrldef.statustype, u_mtrldef.woodcodeflag, u_mtrldef.woodcodetype, u_mtrldef.pcodeflag, u_mtrldef.pcodetype, u_mtrldef.usermtrlmode, u_mtrldef.Mtrlorigin, u_PrdPF.sonpfcode, u_PrdPF.SonMtrlid, u_PrdPF.printid, u_prdpf.pfgroup, u_prdpf.pfgroupqty, u_prdpf.pfgroupmode, u_prdpf.pfklmode, u_prdpf.dscrp, u_prdpf.baseqty, u_prdpf.scllloss, u_prdpf.sclldecloss, u_prdpf.ifover, u_prdpf.dipztype, u_prdpf.buyarg, u_mtrldef.orderdays, u_mtrldef.buydays, u_mtrldef.wfjgdays, u_mtrldef.dftwrkgrpid, u_mtrldef.scid, u_mtrldef.mtrltypeid, u_prdpf.promode, u_mtrldef.ifselforder, u_mtrldef.ordertype, u_prdpf.modleid, u_prdpf.modlename, u_PrdPF.wenli, u_PrdPF.fengbian, u_PrdPF.paikong, u_PrdPF.luoji, u_PrdPF.penyou, isnull(u_mtrldef_ban.promode,'') as promode, isnull(u_mtrldef_ban.wenli,'') as wenli, isnull(u_mtrldef_ban.fengbian,'') as fengbian, isnull(u_mtrldef_ban.paikong,'') as paikong, isnull(u_mtrldef_ban.luoji,'') as luoji, isnull(u_mtrldef_ban.penyou,'') as penyou, isnull(u_mtrldef_ban.gydscrp,'') as gydscrp, u_mtrldef.outtype, u_mtrldef.ifpack, isnull(u_mtrldef_ban.direction,0) as direction, u_mtrldef.midu, isnull(u_mtrldef_ban.pfklmode,0) as pfklmode, u_mtrldef.dscrp, u_mtrldef.bantype From u_PrdPF Inner JOIN u_mtrldef ON u_PrdPF.SonMtrlid = u_mtrldef.mtrlid LEFT Outer JOIN u_mtrldef_ban ON u_mtrldef.mtrlid = u_mtrldef_ban.mtrlid LEFT Outer JOIN u_sc_wkp ON u_mtrldef.dftwrkGrpid = u_sc_wkp.wrkGrpid Where u_prdpf.mtrlid = :arg_mtrlid And u_prdpf.pfcode = :arg_pfcode Order By u_PrdPF.printid; Open cur_pf; count = 1 Fetch cur_pf Into :mtrlcode[count],:mtrlprp[count],:wrkgrpid[count],& :Sonscale[count],:SonLoss[count],:SonDECLosS[count],:status[count],& :woodcode[count],:pcode[count],:Sonahead[count],:mtrlname[count],:unit[count],& :mtrlmode[count],:mtrlsectype[count],:zxmtrlmode[count],:wrkGrpName[count],& :statusflag[count],:statustype[count],:woodcodeflag[count],:woodcodetype[count],& :pcodeflag[count],:pcodetype[count],:usermtrlmode[count],:Mtrlorigin[count],& :sonpfcode[count],:SonMtrlid[count],:printid[count],& :pfgroup[count],:pfgroupqty[count],:pfgroupmode[count],:pfklmode[count],:dscrp[count],& :baseqty[count],:scllloss[count],:sclldecloss[count],:ifover[count],:dipztype[count],& :buyarg[count],:orderdays[count],:buydays[count],:wfjgdays[count],& :dftwrkgrpid[count],:scid[count],:mtrltypeid[count],:promode[count],& :ifselforder[count],:ordertype[count],:modleid[count],:modlename[count],& :wenli[count], :fengbian[count], :paikong[count], :luoji[count], :penyou[count],& :promode_mtrl[count],:wenli_mtrl[count],:fengbian_mtrl[count],:paikong_mtrl[count],:luoji_mtrl[count],:penyou_mtrl[count],:gydscrp_mtrl[count],:outtype[count],& :ifpack[count],:direction[count],:midu[count],:pfklmode_mtrl[count],:ls_dscrp_mtrl[count],:bantype[count]; Do While sqlca.SQLCode = 0 count++ Fetch cur_pf Into :mtrlcode[count],:mtrlprp[count],:wrkgrpid[count],& :Sonscale[count],:SonLoss[count],:SonDECLosS[count],:status[count],& :woodcode[count],:pcode[count],:Sonahead[count],:mtrlname[count],:unit[count],& :mtrlmode[count],:mtrlsectype[count],:zxmtrlmode[count],:wrkGrpName[count],& :statusflag[count],:statustype[count],:woodcodeflag[count],:woodcodetype[count],& :pcodeflag[count],:pcodetype[count],:usermtrlmode[count],:Mtrlorigin[count],& :sonpfcode[count],:SonMtrlid[count],:printid[count],& :pfgroup[count],:pfgroupqty[count],:pfgroupmode[count],:pfklmode[count],:dscrp[count],& :baseqty[count],:scllloss[count],:sclldecloss[count],:ifover[count],:dipztype[count],& :buyarg[count],:orderdays[count],:buydays[count],:wfjgdays[count],& :dftwrkgrpid[count],:scid[count],:mtrltypeid[count],:promode[count],& :ifselforder[count],:ordertype[count],:modleid[count],:modlename[count],& :wenli[count], :fengbian[count], :paikong[count], :luoji[count], :penyou[count],& :promode_mtrl[count],:wenli_mtrl[count],:fengbian_mtrl[count],:paikong_mtrl[count],:luoji_mtrl[count],:penyou_mtrl[count],:gydscrp_mtrl[count],:outtype[count],& :ifpack[count],:direction[count],:midu[count],:pfklmode_mtrl[count],:ls_dscrp_mtrl[count],:bantype[count]; Loop count = count - 1 Close cur_pf; For ll_i = 1 To count ld_qty = Round(((Sonscale[ll_i]/(1 - SonLoss[ll_i])+ SonDECLosS[ll_i]) / ld_cmpqty) * arg_qty,sys_option_produce_dec) ll_row = dw_1.InsertRow(0) dw_1.Object.u_mtrldef_mtrlcode[ll_row] = mtrlcode[ll_i] dw_1.Object.u_mtrldef_mtrlprp[ll_row] = mtrlprp[ll_i] dw_1.Object.u_PrdPF_wrkgrpid[ll_row] = wrkgrpid[ll_i] dw_1.Object.u_PrdPF_Sonscale[ll_row] = Sonscale[ll_i] * arg_qty dw_1.Object.u_PrdPF_Sonscale_ori[ll_row] = Sonscale[ll_i] * arg_qty dw_1.Object.u_PrdPF_SonLoss[ll_row] = SonLoss[ll_i] dw_1.Object.u_PrdPF_SonDECLosS[ll_row] = SonDECLosS[ll_i] dw_1.Object.u_PrdPF_status[ll_row] = status[ll_i] dw_1.Object.u_PrdPF_woodcode[ll_row] = woodcode[ll_i] dw_1.Object.u_PrdPF_pcode[ll_row] = pcode[ll_i] dw_1.Object.u_PrdPF_Sonahead[ll_row] = Sonahead[ll_i] dw_1.Object.u_mtrldef_mtrlname[ll_row] = mtrlname[ll_i] dw_1.Object.u_mtrldef_unit[ll_row] = unit[ll_i] dw_1.Object.u_mtrldef_mtrlmode[ll_row] = mtrlmode[ll_i] dw_1.Object.u_mtrldef_mtrlsectype[ll_row] = mtrlsectype[ll_i] dw_1.Object.u_mtrldef_zxmtrlmode[ll_row] = zxmtrlmode[ll_i] dw_1.Object.u_sc_wkp_wrkGrpName[ll_row] = wrkGrpName[ll_i] dw_1.Object.u_mtrldef_statusflag[ll_row] = statusflag[ll_i] dw_1.Object.u_mtrldef_statustype[ll_row] = statustype[ll_i] dw_1.Object.u_mtrldef_woodcodeflag[ll_row] = woodcodeflag[ll_i] dw_1.Object.u_mtrldef_woodcodetype[ll_row] = woodcodetype[ll_i] dw_1.Object.u_mtrldef_pcodeflag[ll_row] = pcodeflag[ll_i] dw_1.Object.u_mtrldef_pcodetype[ll_row] = pcodetype[ll_i] dw_1.Object.u_mtrldef_usermtrlmode[ll_row] = usermtrlmode[ll_i] dw_1.Object.u_mtrldef_Mtrlorigin[ll_row] = Mtrlorigin[ll_i] dw_1.Object.u_mtrldef_ifselforder[ll_row] = ifselforder[ll_i] dw_1.Object.u_mtrldef_ordertype[ll_row] = ordertype[ll_i] dw_1.Object.lp[ll_row] = arg_lp If arg_lp = 1 Then dw_1.Object.iflock[ll_row] = 0 End If dw_1.Object.u_mtrldef_mtrlid[ll_row] = SonMtrlid[ll_i] dw_1.Object.u_prdpf_sonmtrlid[ll_row] = SonMtrlid[ll_i] dw_1.Object.pmtrlid[ll_row] = arg_mtrlid dw_1.Object.u_prdpf_printid[ll_row] = printid[ll_i] dw_1.Object.u_prdpf_sonpfcode[ll_row] = sonpfcode[ll_i] dw_1.Object.u_prdpf_pfgroup[ll_row] = pfgroup[ll_i] dw_1.Object.u_prdpf_pfgroupqty[ll_row] = pfgroupqty[ll_i] dw_1.Object.u_prdpf_pfgroupmode[ll_row] = pfgroupmode[ll_i] dw_1.Object.u_prdpf_pfklmode[ll_row] = pfklmode[ll_i] dw_1.Object.u_prdpf_dscrp[ll_row] = dscrp[ll_i] dw_1.Object.u_prdpf_baseqty[ll_row] = baseqty[ll_i] dw_1.Object.u_prdpf_scllloss[ll_row] = scllloss[ll_i] dw_1.Object.u_prdpf_sclldecloss[ll_row] = sclldecloss[ll_i] dw_1.Object.u_prdpf_ifover[ll_row] = ifover[ll_i] dw_1.Object.u_prdpf_dipztype[ll_row] = dipztype[ll_i] dw_1.Object.u_prdpf_buyarg[ll_row] = buyarg[ll_i] dw_1.Object.u_mtrldef_orderdays[ll_row] = orderdays[ll_i] dw_1.Object.u_mtrldef_buydays[ll_row] = buydays[ll_i] dw_1.Object.u_mtrldef_wfjgdays[ll_row] = wfjgdays[ll_i] dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row] = dftwrkgrpid[ll_i] dw_1.Object.u_mtrldef_scid[ll_row] = scid[ll_i] dw_1.Object.u_mtrldef_mtrltypeid[ll_row] = mtrltypeid[ll_i] dw_1.Object.u_prdpf_promode[ll_row] = promode[ll_i] dw_1.Object.u_prdpf_modleid[ll_row] = modleid[ll_i] dw_1.Object.u_prdpf_modlename[ll_row] = modlename[ll_i] dw_1.Object.u_PrdPF_wenli[ll_row] = wenli[ll_i] dw_1.Object.u_PrdPF_fengbian[ll_row] = fengbian[ll_i] dw_1.Object.u_PrdPF_paikong[ll_row] = paikong[ll_i] dw_1.Object.u_PrdPF_luoji[ll_row] = luoji[ll_i] dw_1.Object.u_PrdPF_penyou[ll_row] = penyou[ll_i] dw_1.Object.u_mtrldef_ban_promode[ll_row] = promode_mtrl[ll_i] dw_1.Object.u_mtrldef_ban_wenli[ll_row] = wenli_mtrl[ll_i] dw_1.Object.u_mtrldef_ban_fengbian[ll_row] = fengbian_mtrl[ll_i] dw_1.Object.u_mtrldef_ban_paikong[ll_row] = paikong_mtrl[ll_i] dw_1.Object.u_mtrldef_ban_luoji[ll_row] = luoji_mtrl[ll_i] dw_1.Object.u_mtrldef_ban_penyou[ll_row] = penyou_mtrl[ll_i] dw_1.Object.u_mtrldef_ban_gydscrp[ll_row] = gydscrp_mtrl[ll_i] dw_1.Object.u_mtrldef_ban_pfklmode[ll_row] = pfklmode_mtrl[ll_i] dw_1.Object.u_mtrldef_dscrp[ll_row] = ls_dscrp_mtrl[ll_i] dw_1.Object.u_mtrldef_ban_direction[ll_row] = direction[ll_i] dw_1.Object.u_mtrldef_outtype[ll_row] = outtype[ll_i] dw_1.Object.u_mtrldef_ifpack[ll_row] = ifpack[ll_i] dw_1.Object.u_mtrldef_midu[ll_row] = midu[ll_i] f_mtrlmode_trans(mtrlmode[ll_i],ld_long,ld_width,ld_height) ld_cubage = ld_long * ld_width * ld_height / 1000000000 dw_1.Object.cubage[ll_row] = ld_cubage dw_1.Object.length[ll_row] = ld_long dw_1.Object.width[ll_row] = ld_width dw_1.Object.u_mtrldef_bantype[ll_row] = bantype[ll_i] If wf_addmx(SonMtrlid[ll_i],sonpfcode[ll_i],arg_lp + 1,ld_qty,arg_msg) = 0 Then rslt = 0 Goto ext End If Next ext: Return rslt end function public function integer wf_addmx_row (long arg_mtrlid, string arg_pfcode, long arg_lp, long arg_row, decimal arg_qty, ref string arg_msg);Int rslt = 1 Decimal ld_cmpqty String ls_mtrlcode Long count,ll_i Decimal ld_qty Long ll_row Select mtrlcode,cmpqty Into :ls_mtrlcode,:ld_cmpqty From u_mtrldef Where mtrlid = :arg_mtrlid; If sqlca.SQLCode <> 0 Then arg_msg = '查询物料清单基数失败,ID:'+String(arg_mtrlid)+','+sqlca.SQLErrText rslt = 0 Goto ext End If If ld_cmpqty <= 0 Then arg_msg = '不合理的物料清单基数,物料:'+ls_mtrlcode rslt = 0 Goto ext End If If arg_pfcode = '' Then arg_pfcode = f_get_dft_pf(arg_mtrlid) End If String mtrlcode[] Long mtrlprp[] Long wrkgrpid[] Decimal Sonscale[],SonLoss[],SonDECLosS[] String status[],woodcode[],pcode[] Decimal Sonahead[] String mtrlname[],unit[],mtrlmode[],mtrlsectype[],zxmtrlmode[],wrkGrpName[] Long statusflag[],statustype[],woodcodeflag[],woodcodetype[],pcodeflag[],pcodetype[] String usermtrlmode[] Long Mtrlorigin[] String sonpfcode[] Long SonMtrlid[],printid[] String pfgroup[] Decimal pfgroupqty[] String pfgroupmode[],pfklmode[],dscrp[] Decimal baseqty[],scllloss[],sclldecloss[] Long ifover[],dipztype[] Decimal buyarg[],orderdays[],buydays[],wfjgdays[] Int ordertype[],ifselforder[],ifpack[] Long ll_mtrltypeid[],ll_dftwrkgrpid[] Decimal ld_cubage,ld_long,ld_width,ld_height String wenli_mtrl[],fengbian_mtrl[],paikong_mtrl[],luoji_mtrl[],penyou_mtrl[],promode_mtrl[],gydscrp_mtrl[] Int direction[] Decimal midu[] string pfklmode_mtrl[] string ls_dscrp_mtrl[] int bantype[] Declare cur_pf Cursor For Select u_mtrldef.mtrlcode, u_mtrldef.mtrlprp, u_PrdPF.wrkgrpid, u_PrdPF.Sonscale, u_PrdPF.SonLoss, u_PrdPF.SonDECLosS, u_PrdPF.status, u_PrdPF.woodcode, u_PrdPF.pcode, u_PrdPF.Sonahead, u_mtrldef.mtrlname, u_mtrldef.unit, u_mtrldef.mtrlmode, u_mtrldef.mtrlsectype, u_mtrldef.zxmtrlmode, u_sc_wkp.wrkGrpName, u_mtrldef.statusflag, u_mtrldef.statustype, u_mtrldef.woodcodeflag, u_mtrldef.woodcodetype, u_mtrldef.pcodeflag, u_mtrldef.pcodetype, u_mtrldef.usermtrlmode, u_mtrldef.Mtrlorigin, u_PrdPF.sonpfcode, u_PrdPF.SonMtrlid, u_PrdPF.printid, u_prdpf.pfgroup, u_prdpf.pfgroupqty, u_prdpf.pfgroupmode, u_prdpf.pfklmode, u_prdpf.dscrp, u_prdpf.baseqty, u_prdpf.scllloss, u_prdpf.sclldecloss, u_prdpf.ifover, u_prdpf.dipztype, u_prdpf.buyarg, u_mtrldef.orderdays, u_mtrldef.buydays, u_mtrldef.wfjgdays, u_mtrldef.ordertype, u_mtrldef.ifselforder, u_mtrldef.mtrltypeid, u_mtrldef.dftwrkgrpid, u_mtrldef.ifpack, isnull(u_mtrldef_ban.promode,'') as promode, isnull(u_mtrldef_ban.wenli,'') as wenli, isnull(u_mtrldef_ban.fengbian,'') as fengbian, isnull(u_mtrldef_ban.paikong,'') as paikong, isnull(u_mtrldef_ban.luoji,'') as luoji, isnull(u_mtrldef_ban.penyou,'') as penyou, isnull(u_mtrldef_ban.gydscrp,'') as gydscrp, isnull(u_mtrldef_ban.direction,0) as direction, u_mtrldef.midu, isnull(u_mtrldef_ban.pfklmode,'') as pfklmode, u_mtrldef.dscrp, u_mtrldef.bantype From u_PrdPF Inner JOIN u_mtrldef ON u_PrdPF.SonMtrlid = u_mtrldef.mtrlid LEFT Outer JOIN u_sc_wkp ON u_mtrldef.dftwrkGrpid = u_sc_wkp.wrkGrpid LEFT Outer JOIN u_mtrldef_ban ON u_mtrldef.mtrlid = u_mtrldef_ban.mtrlid Where u_prdpf.mtrlid = :arg_mtrlid And u_prdpf.pfcode = :arg_pfcode Order By u_PrdPF.printid Desc; Open cur_pf; count = 1 Fetch cur_pf Into :mtrlcode[count],:mtrlprp[count],:wrkgrpid[count],& :Sonscale[count],:SonLoss[count],:SonDECLosS[count],:status[count],& :woodcode[count],:pcode[count],:Sonahead[count],:mtrlname[count],:unit[count],& :mtrlmode[count],:mtrlsectype[count],:zxmtrlmode[count],:wrkGrpName[count],& :statusflag[count],:statustype[count],:woodcodeflag[count],:woodcodetype[count],& :pcodeflag[count],:pcodetype[count],:usermtrlmode[count],:Mtrlorigin[count],& :sonpfcode[count],:SonMtrlid[count],:printid[count],& :pfgroup[count],:pfgroupqty[count],:pfgroupmode[count],:pfklmode[count],:dscrp[count],& :baseqty[count],:scllloss[count],:sclldecloss[count],:ifover[count],:dipztype[count],& :buyarg[count],:orderdays[count],:buydays[count],:wfjgdays[count],& :ordertype[count],:ifselforder[count],:ll_mtrltypeid[count],:ll_dftwrkgrpid[count],:ifpack[count],& :promode_mtrl[count],:wenli_mtrl[count],:fengbian_mtrl[count],:paikong_mtrl[count],:luoji_mtrl[count],:penyou_mtrl[count],:gydscrp_mtrl[count],& :direction[count],:midu[count],:pfklmode_mtrl[count],:ls_dscrp_mtrl[count],:bantype[count]; Do While sqlca.SQLCode = 0 count++ Fetch cur_pf Into :mtrlcode[count],:mtrlprp[count],:wrkgrpid[count],& :Sonscale[count],:SonLoss[count],:SonDECLosS[count],:status[count],& :woodcode[count],:pcode[count],:Sonahead[count],:mtrlname[count],:unit[count],& :mtrlmode[count],:mtrlsectype[count],:zxmtrlmode[count],:wrkGrpName[count],& :statusflag[count],:statustype[count],:woodcodeflag[count],:woodcodetype[count],& :pcodeflag[count],:pcodetype[count],:usermtrlmode[count],:Mtrlorigin[count],& :sonpfcode[count],:SonMtrlid[count],:printid[count],& :pfgroup[count],:pfgroupqty[count],:pfgroupmode[count],:pfklmode[count],:dscrp[count],& :baseqty[count],:scllloss[count],:sclldecloss[count],:ifover[count],:dipztype[count],& :buyarg[count],:orderdays[count],:buydays[count],:wfjgdays[count],& :ordertype[count],:ifselforder[count],:ll_mtrltypeid[count],:ll_dftwrkgrpid[count],:ifpack[count],& :promode_mtrl[count],:wenli_mtrl[count],:fengbian_mtrl[count],:paikong_mtrl[count],:luoji_mtrl[count],:penyou_mtrl[count],:gydscrp_mtrl[count],& :direction[count],:midu[count],:pfklmode_mtrl[count],:ls_dscrp_mtrl[count],:bantype[count]; Loop count = count - 1 Close cur_pf; For ll_i = 1 To count ld_qty = Round(((Sonscale[ll_i]/(1 - SonLoss[ll_i])+ SonDECLosS[ll_i]) / ld_cmpqty) * arg_qty,sys_option_produce_dec) ll_row = dw_1.InsertRow(arg_row) dw_1.Object.u_mtrldef_mtrlcode[ll_row] = mtrlcode[ll_i] dw_1.Object.u_mtrldef_mtrlprp[ll_row] = mtrlprp[ll_i] dw_1.Object.u_PrdPF_wrkgrpid[ll_row] = wrkgrpid[ll_i] dw_1.Object.u_PrdPF_Sonscale[ll_row] = ld_qty //Sonscale[ll_i] dw_1.Object.u_PrdPF_Sonscale_ori[ll_row] = ld_qty //Sonscale[ll_i] dw_1.Object.u_PrdPF_SonLoss[ll_row] = SonLoss[ll_i] dw_1.Object.u_PrdPF_SonDECLosS[ll_row] = SonDECLosS[ll_i] dw_1.Object.u_PrdPF_status[ll_row] = status[ll_i] dw_1.Object.u_PrdPF_woodcode[ll_row] = woodcode[ll_i] dw_1.Object.u_PrdPF_pcode[ll_row] = pcode[ll_i] dw_1.Object.u_PrdPF_Sonahead[ll_row] = Sonahead[ll_i] dw_1.Object.u_mtrldef_mtrlname[ll_row] = mtrlname[ll_i] dw_1.Object.u_mtrldef_unit[ll_row] = unit[ll_i] dw_1.Object.u_mtrldef_mtrlmode[ll_row] = mtrlmode[ll_i] dw_1.Object.u_mtrldef_mtrlsectype[ll_row] = mtrlsectype[ll_i] dw_1.Object.u_mtrldef_zxmtrlmode[ll_row] = zxmtrlmode[ll_i] dw_1.Object.u_sc_wkp_wrkGrpName[ll_row] = wrkGrpName[ll_i] dw_1.Object.u_mtrldef_statusflag[ll_row] = statusflag[ll_i] dw_1.Object.u_mtrldef_statustype[ll_row] = statustype[ll_i] dw_1.Object.u_mtrldef_woodcodeflag[ll_row] = woodcodeflag[ll_i] dw_1.Object.u_mtrldef_woodcodetype[ll_row] = woodcodetype[ll_i] dw_1.Object.u_mtrldef_pcodeflag[ll_row] = pcodeflag[ll_i] dw_1.Object.u_mtrldef_pcodetype[ll_row] = pcodetype[ll_i] dw_1.Object.u_mtrldef_usermtrlmode[ll_row] = usermtrlmode[ll_i] dw_1.Object.u_mtrldef_Mtrlorigin[ll_row] = Mtrlorigin[ll_i] dw_1.Object.lp[ll_row] = arg_lp dw_1.Object.u_mtrldef_mtrlid[ll_row] = SonMtrlid[ll_i] dw_1.Object.u_prdpf_sonmtrlid[ll_row] = SonMtrlid[ll_i] dw_1.Object.pmtrlid[ll_row] = arg_mtrlid dw_1.Object.u_prdpf_printid[ll_row] = printid[ll_i] dw_1.Object.u_prdpf_sonpfcode[ll_row] = sonpfcode[ll_i] dw_1.Object.u_prdpf_pfgroup[ll_row] = pfgroup[ll_i] dw_1.Object.u_prdpf_pfgroupqty[ll_row] = pfgroupqty[ll_i] dw_1.Object.u_prdpf_pfgroupmode[ll_row] = pfgroupmode[ll_i] dw_1.Object.u_prdpf_pfklmode[ll_row] = pfklmode[ll_i] dw_1.Object.u_prdpf_dscrp[ll_row] = dscrp[ll_i] dw_1.Object.u_prdpf_baseqty[ll_row] = baseqty[ll_i] dw_1.Object.u_prdpf_scllloss[ll_row] = scllloss[ll_i] dw_1.Object.u_prdpf_sclldecloss[ll_row] = sclldecloss[ll_i] dw_1.Object.u_prdpf_ifover[ll_row] = ifover[ll_i] dw_1.Object.u_prdpf_dipztype[ll_row] = dipztype[ll_i] dw_1.Object.u_prdpf_buyarg[ll_row] = buyarg[ll_i] dw_1.Object.u_mtrldef_orderdays[ll_row] = orderdays[ll_i] dw_1.Object.u_mtrldef_buydays[ll_row] = buydays[ll_i] dw_1.Object.u_mtrldef_wfjgdays[ll_row] = wfjgdays[ll_i] dw_1.Object.u_mtrldef_ifselforder[ll_row] = ifselforder[ll_i] dw_1.Object.u_mtrldef_ordertype[ll_row] = ordertype[ll_i] dw_1.Object.u_mtrldef_mtrltypeid[ll_row] = ll_mtrltypeid[ll_i] dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row] = ll_dftwrkgrpid[ll_i] dw_1.Object.u_mtrldef_ifpack[ll_row] = ifpack[ll_i] f_mtrlmode_trans(mtrlmode[ll_i],ld_long,ld_width,ld_height) ld_cubage = ld_long * ld_width * ld_height / 1000000000 dw_1.Object.cubage[ll_row] = ld_cubage dw_1.Object.Length[ll_row] = ld_long dw_1.Object.Width[ll_row] = ld_width dw_1.Object.u_mtrldef_ban_promode[ll_row] = promode_mtrl[ll_i] dw_1.Object.u_mtrldef_ban_wenli[ll_row] = wenli_mtrl[ll_i] dw_1.Object.u_mtrldef_ban_fengbian[ll_row] = fengbian_mtrl[ll_i] dw_1.Object.u_mtrldef_ban_paikong[ll_row] = paikong_mtrl[ll_i] dw_1.Object.u_mtrldef_ban_luoji[ll_row] = luoji_mtrl[ll_i] dw_1.Object.u_mtrldef_ban_penyou[ll_row] = penyou_mtrl[ll_i] dw_1.Object.u_mtrldef_ban_gydscrp[ll_row] = gydscrp_mtrl[ll_i] dw_1.Object.u_mtrldef_ban_pfklmode[ll_row] = pfklmode_mtrl[ll_i] dw_1.Object.u_mtrldef_ban_direction[ll_row] = direction[ll_i] dw_1.Object.u_mtrldef_midu[ll_row] = midu[ll_i] dw_1.Object.u_mtrldef_dscrp[ll_row] = ls_dscrp_mtrl[ll_i] dw_1.Object.u_mtrldef_bantype[ll_row] = bantype[ll_i] If wf_addmx_row(SonMtrlid[ll_i],sonpfcode[ll_i],arg_lp + 1,arg_row + 1 ,ld_qty,arg_msg) = 0 Then rslt = 0 Goto ext End If Next ext: Return rslt end function public function integer wf_face_wp ();Int LS_INT IF ins_ifmod_wp THEN cb_save_wp.Enabled = TRUE cb_edit_wp.Text = '放弃' cb_edit_wp.normalpicname = 'Undo.bmp' cb_addmx_wp.Enabled = TRUE cb_delmx_wp.Enabled = TRUE rb_1.enabled = false rb_2.enabled = false cb_templet_ch.enabled = true FOR LS_INT = 1 TO 26 dw_2.SetTabOrder (LS_INT,LS_INT*10 ) NEXT FOR LS_INT = 1 TO 17 dw_3.SetTabOrder (LS_INT,LS_INT*10 ) NEXT ELSE cb_save_wp.Enabled = FALSE cb_edit_wp.Text = '修改' cb_edit_wp.normalpicname = 'open.bmp' cb_addmx_wp.Enabled = FALSE cb_delmx_wp.Enabled = FALSE rb_1.enabled = true rb_2.enabled = true cb_templet_ch.enabled = false FOR LS_INT = 1 TO 26 dw_2.SetTabOrder (LS_INT, 0) NEXT FOR LS_INT = 1 TO 17 dw_3.SetTabOrder (LS_INT, 0) NEXT END IF cb_edit_wp.of_init_draw() cb_edit_wp.of_paint() cb_edit_wp.TriggerEvent('ue_textchange') RETURN 1 end function public subroutine wf_re_mtrl (integer arg_if_addmx);String ls_mtrlcode,ls_mtrlname,ls_pfcode,arg_msg IF ins_mtrlid = 0 THEN st_mtrl.Text = '' st_mtrl_pf.Text = '' RETURN END IF IF ins_if_saletask = 0 and ins_pfcode = '' THEN ins_pfcode = f_get_dft_pf(ins_mtrlid_pf) IF ins_pfcode = '' THEN MessageBox('系统提示','目标产品未设置默认清单,请检查') RETURN END IF END IF SELECT mtrlcode,mtrlname INTO :ls_mtrlcode,:ls_mtrlname FROM u_mtrldef Where mtrlid = :ins_mtrlid_pf; IF sqlca.SQLCode <> 0 THEN st_mtrl.Text = '查询物料信息失败' st_mtrl_pf.Text = '查询物料信息失败' ELSE st_mtrl.Text = '['+ls_mtrlcode+']'+ls_mtrlname + ' | ' + ins_pfcode st_mtrl_pf.Text = '['+ls_mtrlcode+']'+ls_mtrlname ins_mtrlcode = ls_mtrlcode ins_mtrlname = ls_mtrlname END IF IF ins_mtrlid > 0 THEN dw_1.SetRedraw(False) dw_1.Reset() String mtrlcode Long mtrlprp Long wrkgrpid String mtrlname,unit,mtrlmode,mtrlsectype,zxmtrlmode,wrkGrpName Long statusflag,statustype,woodcodeflag,woodcodetype,pcodeflag,pcodetype String usermtrlmode Long Mtrlorigin Decimal buyarg,orderdays,buydays,wfjgdays Long mtrltypeid,scid,dftwrkgrpid Int ordertype,ifselforder Long ll_row int ifpack decimal ld_cubage,ld_long , ld_width , ld_height int li_bantype SELECT u_mtrldef.mtrlcode, u_mtrldef.mtrlprp, u_mtrldef.mtrlname, u_mtrldef.unit, u_mtrldef.mtrlmode, u_mtrldef.mtrlsectype, u_mtrldef.zxmtrlmode, u_sc_wkp.wrkGrpName, u_mtrldef.statusflag, u_mtrldef.statustype, u_mtrldef.woodcodeflag, u_mtrldef.woodcodetype, u_mtrldef.pcodeflag, u_mtrldef.pcodetype, u_mtrldef.usermtrlmode, u_mtrldef.Mtrlorigin, u_mtrldef.orderdays, u_mtrldef.buydays, u_mtrldef.wfjgdays, u_mtrldef.mtrltypeid, u_mtrldef.scid, u_mtrldef.dftwrkgrpid, u_mtrldef.ifselforder, u_mtrldef.ordertype, u_mtrldef.ifpack, u_mtrldef.bantype INTO :mtrlcode, :mtrlprp, :mtrlname, :unit, :mtrlmode, :mtrlsectype, :zxmtrlmode, :wrkGrpName, :statusflag, :statustype, :woodcodeflag, :woodcodetype, :pcodeflag, :pcodetype, :usermtrlmode, :Mtrlorigin, :orderdays, :buydays, :wfjgdays, :mtrltypeid, :scid, :dftwrkgrpid, :ifselforder, :ordertype, :ifpack, :li_bantype FROM u_mtrldef LEFT OUTER JOIN u_sc_wkp ON u_mtrldef.dftwrkGrpid = u_sc_wkp.wrkGrpid Where u_mtrldef.mtrlid = :ins_mtrlid; IF sqlca.SQLCode <> 0 THEN MessageBox('Error','查询物料信息失败,'+sqlca.SQLErrText) RETURN END IF ll_row = dw_1.InsertRow(0) dw_1.Object.u_mtrldef_mtrlcode[ll_row] = mtrlcode dw_1.Object.u_mtrldef_mtrlprp[ll_row] = mtrlprp dw_1.Object.u_PrdPF_wrkgrpid[ll_row] = wrkgrpid dw_1.Object.u_PrdPF_Sonscale[ll_row] = 1 dw_1.Object.u_PrdPF_Sonscale_ori[ll_row] = 1 dw_1.Object.u_PrdPF_SonLoss[ll_row] = 0 dw_1.Object.u_PrdPF_SonDECLosS[ll_row] = 0 dw_1.Object.u_PrdPF_status[ll_row] = '' dw_1.Object.u_PrdPF_woodcode[ll_row] = '' dw_1.Object.u_PrdPF_pcode[ll_row] = '' dw_1.Object.u_PrdPF_Sonahead[ll_row] = 0 dw_1.Object.u_mtrldef_mtrlname[ll_row] = mtrlname dw_1.Object.u_mtrldef_unit[ll_row] = unit dw_1.Object.u_mtrldef_mtrlmode[ll_row] = mtrlmode dw_1.Object.u_mtrldef_mtrlsectype[ll_row] = mtrlsectype dw_1.Object.u_mtrldef_zxmtrlmode[ll_row] = zxmtrlmode dw_1.Object.u_sc_wkp_wrkGrpName[ll_row] = wrkGrpName dw_1.Object.u_mtrldef_statusflag[ll_row] = statusflag dw_1.Object.u_mtrldef_statustype[ll_row] = statustype dw_1.Object.u_mtrldef_woodcodeflag[ll_row] = woodcodeflag dw_1.Object.u_mtrldef_woodcodetype[ll_row] = woodcodetype dw_1.Object.u_mtrldef_pcodeflag[ll_row] = pcodeflag dw_1.Object.u_mtrldef_pcodetype[ll_row] = pcodetype dw_1.Object.u_mtrldef_usermtrlmode[ll_row] = usermtrlmode dw_1.Object.u_mtrldef_Mtrlorigin[ll_row] = Mtrlorigin dw_1.Object.lp[ll_row] = 0 dw_1.Object.u_mtrldef_mtrlid[ll_row] = ins_mtrlid dw_1.Object.u_prdpf_sonmtrlid[ll_row] = ins_mtrlid dw_1.Object.pmtrlid[ll_row] = 0 dw_1.Object.u_prdpf_printid[ll_row] = 1 dw_1.Object.u_prdpf_sonpfcode[ll_row] = ins_pfcode dw_1.Object.u_mtrldef_orderdays[ll_row] = orderdays dw_1.Object.u_mtrldef_buydays[ll_row] = buydays dw_1.Object.u_mtrldef_wfjgdays[ll_row] = wfjgdays dw_1.Object.u_mtrldef_mtrltypeid[ll_row] = mtrltypeid dw_1.Object.u_mtrldef_scid[ll_row] = scid dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row] = dftwrkgrpid dw_1.Object.u_mtrldef_ordertype[ll_row] = ordertype dw_1.Object.u_mtrldef_ifselforder[ll_row] = ifselforder dw_1.Object.iflock[ll_row] = 1 dw_1.Object.u_prdpf_sonpfcode[ll_row] = ins_pfcode dw_1.Object.u_mtrldef_ifpack[ll_row] = ifpack f_mtrlmode_trans(mtrlmode,ld_long,ld_width,ld_height) ld_cubage = ld_long * ld_width * ld_height / 1000000000 dw_1.Object.cubage[ll_row] = ld_cubage dw_1.Object.length[ll_row] = ld_long dw_1.Object.width[ll_row] = ld_width dw_1.Object.u_mtrldef_bantype[ll_row] = li_bantype IF arg_if_addmx = 1 THEN IF wf_addmx(ins_mtrlid,ins_pfcode,1,1,arg_msg) = 0 THEN MessageBox('Error',arg_msg) END IF This.TriggerEvent('ue_allowedit') This.TriggerEvent('ue_retrieve_workprice') END IF dw_1.SetRedraw(True) END IF end subroutine public function integer wf_cmpprdpf (long arg_mtrlid, string arg_pfcode);String arg_msg w_sys_wait.Show() IF uo_pf.f_clearprdpfmx(arg_mtrlid,arg_pfcode,arg_msg,FALSE) = 0 THEN MessageBox ("系统提示",arg_msg,exclamation!,ok!) RETURN 0 END IF uo_pf.deep_count = 0 uo_pf.il_printid = 0 IF uo_pf.f_cmpprdpf(arg_mtrlid,arg_mtrlid,arg_pfcode,arg_pfcode,1,1,1,arg_msg,FALSE,0) = 0 THEN MessageBox ("系统提示",arg_msg,exclamation!,ok!) RETURN 0 END IF COMMIT; w_sys_wait.hide() RETURN 1 end function public function integer wf_check_wkp (ref string arg_msg);Int rslt = 1 Long j,ll_mtrlid,ll_last_cnt Long ll_maxlp = 0 String ls_mtrlcode String ls_errmsg IF dw_1.GetRow() <= 0 THEN rslt = 0 arg_msg = '请选择物料' GOTO ext END IF redel: dw_3.AcceptText() FOR j = 1 To dw_3.RowCount() IF dw_3.Object.swkpid[j] = 0 Or dw_3.Object.owkpid[j] = 0 And dw_3.Object.iflast[j] = 0 THEN dw_3.DeleteRow(j) GOTO redel END IF NEXT dw_3.AcceptText() FOR j = 1 To dw_3.RowCount() IF dw_3.Object.swkpid[j] = dw_3.Object.owkpid[j] THEN rslt = 0 arg_msg = '第'+String(j)+'行,调出工组与调入工组相同,不能保存' GOTO ext END IF IF sys_option_use_sc_date = 0 THEN IF dw_3.Object.lastdays[j] < 0 THEN rslt = 0 arg_msg = '第'+String(j)+'行,标准生产天数少于0,不能保存' GOTO ext END IF IF Mod(dw_3.Object.lastdays[j],0.5) <> 0 THEN rslt = 0 arg_msg = '第'+String(j)+'行,标准生产天数只能是0.5的倍数,请检查' GOTO ext END IF dw_3.Object.lasthour[j] = dw_3.Object.lastdays[j] * 8 ELSE IF dw_3.Object.lasthour[j] < 0 THEN rslt = 0 arg_msg = '第'+String(j)+'行,标准生产时数少于0,不能保存' GOTO ext END IF dw_3.Object.lasthour[j] = Int(dw_3.Object.lasthour[j] ) dw_3.Object.lastdays[j] = dw_3.Object.lasthour[j] / 8 END IF IF dw_3.Object.iflast[j] = 1 THEN ll_last_cnt++ END IF NEXT IF ll_last_cnt > 1 THEN rslt = 0 arg_msg = '不能设置2个最后流程,请检查' GOTO ext END IF FOR j = 1 To dw_3.RowCount() IF dw_3.Object.iflast[j] = 1 THEN dw_3.Object.owkpid[j] = 0 END IF ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[dw_1.GetRow()] dw_3.Object.u_mtrldef_mtrlcode[j] = ls_mtrlcode dw_3.Object.printid[j] = j NEXT dw_3.SetSort('printid') dw_3.Sort() ext: RETURN rslt end function public function integer wf_add_row (long arg_mtrlid, string arg_pfcode, long arg_lp, decimal arg_qty, ref string arg_msg, ref long arg_row);Int rslt = 1 Long ll_row Long cnt Long ll_cnt Long ll_mtrlid_p String ls_mtrlcode_p String ls_pfcode Long ll_mtrlid String ls_mtrlcode String ls_mtrlname Int li_mtrlprp String ls_mtrlmode String ls_unit String ls_zxmtrlmode String ls_mtrlsectype Int li_statusflag Int li_statustype Int li_woodcodeflag Int li_woodcodetype Int li_pcodeflag Int li_pcodetype String ls_usermtrlmode Int li_Mtrlorigin Long ll_dftwrkgrpid Long ll_scid Long ll_mtrltypeid String ls_wrkGrpName Decimal ld_sonscale, lde_qty Long ll_wrkgrpid_scll Long ll_dftscllwkpid Long ll_newrow Decimal ld_midu Int li_ifpack,li_outtype Int ifselforder,ordertype,bantype String ls_promode,ls_wenli,ls_fengbian,ls_paikong,ls_luoji,ls_penyou,ls_gydscrp,ls_pfklmode Int ll_direction string ls_dscrp arg_row = 0 Select u_mtrldef.mtrlid, u_mtrldef.mtrlcode, u_mtrldef.mtrlname, u_mtrldef.mtrlprp, u_mtrldef.mtrlmode, u_mtrldef.unit, u_mtrldef.zxmtrlmode, u_mtrldef.mtrlsectype, u_mtrldef.statusflag, u_mtrldef.statustype, u_mtrldef.woodcodeflag, u_mtrldef.woodcodetype, u_mtrldef.pcodeflag, u_mtrldef.pcodetype, u_mtrldef.usermtrlmode, u_mtrldef.Mtrlorigin, u_mtrldef.dftwrkgrpid, u_mtrldef.scid, u_mtrldef.mtrltypeid, isnull(u_sc_wkp.wrkGrpName,''), u_mtrldef.dftscllwkpid, u_mtrldef.midu, u_mtrldef.ifpack, u_mtrldef.outtype, u_mtrldef.ifselforder, u_mtrldef.ordertype, u_mtrldef.bantype, isnull(u_mtrldef_ban.promode,'') as promode, isnull(u_mtrldef_ban.wenli,'') as wenli, isnull(u_mtrldef_ban.fengbian,'') as fengbian, isnull(u_mtrldef_ban.paikong,'') as paikong, isnull(u_mtrldef_ban.luoji,'') as luoji, isnull(u_mtrldef_ban.penyou,'') as penyou, isnull(u_mtrldef_ban.gydscrp,'') as gydscrp, isnull(u_mtrldef_ban.direction,0) as direction, isnull(u_mtrldef_ban.pfklmode,0) as pfklmode, u_mtrldef.dscrp Into :ll_mtrlid, :ls_mtrlcode, :ls_mtrlname, :li_mtrlprp, :ls_mtrlmode, :ls_unit, :ls_zxmtrlmode, :ls_mtrlsectype, :li_statusflag, :li_statustype, :li_woodcodeflag, :li_woodcodetype, :li_pcodeflag, :li_pcodetype, :ls_usermtrlmode, :li_Mtrlorigin, :ll_dftwrkgrpid, :ll_scid, :ll_mtrltypeid, :ls_wrkGrpName, :ll_dftscllwkpid, :ld_midu, :li_ifpack, :li_outtype, :ifselforder, :ordertype, :bantype, :ls_promode, :ls_wenli, :ls_fengbian, :ls_paikong, :ls_luoji, :ls_penyou, :ls_gydscrp, :ll_direction, :ls_pfklmode, :ls_dscrp From u_mtrldef left Outer join u_sc_wkp on u_mtrldef.dftwrkgrpid = u_sc_wkp.wrkgrpid LEFT Outer JOIN u_mtrldef_ban ON u_mtrldef.mtrlid = u_mtrldef_ban.mtrlid Where u_mtrldef.mtrlid = :arg_mtrlid; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '查询资料定义表失败,可能资料未定义' + sqlca.SQLErrText Goto ext End If //插入材料 ll_newrow = dw_1.InsertRow(0) arg_qty = Round(arg_qty,sys_option_produce_dec) dw_1.Object.u_mtrldef_mtrlcode[ll_newrow] = ls_mtrlcode dw_1.Object.u_mtrldef_mtrlprp[ll_newrow] = li_mtrlprp dw_1.Object.u_PrdPF_wrkgrpid[ll_newrow] = ll_wrkgrpid_scll dw_1.Object.u_PrdPF_Sonscale[ll_newrow] = arg_qty dw_1.Object.u_PrdPF_Sonscale_ori[ll_newrow] = arg_qty dw_1.Object.u_PrdPF_SonLoss[ll_newrow] = 0 dw_1.Object.u_PrdPF_SonDECLosS[ll_newrow] = 0 dw_1.Object.u_PrdPF_status[ll_newrow] = '' dw_1.Object.u_PrdPF_woodcode[ll_newrow] = '' dw_1.Object.u_PrdPF_pcode[ll_newrow] = '' dw_1.Object.u_PrdPF_Sonahead[ll_newrow] = 0 dw_1.Object.u_mtrldef_mtrlname[ll_newrow] = ls_mtrlname dw_1.Object.u_mtrldef_unit[ll_newrow] = ls_unit dw_1.Object.u_mtrldef_mtrlmode[ll_newrow] = ls_mtrlmode dw_1.Object.u_mtrldef_mtrlsectype[ll_newrow] = ls_mtrlsectype dw_1.Object.u_mtrldef_zxmtrlmode[ll_newrow] = ls_zxmtrlmode dw_1.Object.u_sc_wkp_wrkGrpName[ll_newrow] = ls_wrkGrpName dw_1.Object.u_mtrldef_statusflag[ll_newrow] = li_statusflag dw_1.Object.u_mtrldef_statustype[ll_newrow] = li_statustype dw_1.Object.u_mtrldef_woodcodeflag[ll_newrow] = li_woodcodeflag dw_1.Object.u_mtrldef_woodcodetype[ll_newrow] = li_woodcodetype dw_1.Object.u_mtrldef_pcodeflag[ll_newrow] = li_pcodeflag dw_1.Object.u_mtrldef_pcodetype[ll_newrow] = li_pcodetype dw_1.Object.u_mtrldef_usermtrlmode[ll_newrow] = ls_usermtrlmode dw_1.Object.u_mtrldef_Mtrlorigin[ll_newrow] = li_Mtrlorigin dw_1.Object.lp[ll_newrow] = arg_lp If ll_wrkgrpid_scll = 0 Then dw_1.Object.iflock[ll_newrow] = 0 Else dw_1.Object.iflock[ll_newrow] = 1 End If dw_1.Object.pmtrlid[ll_newrow] = ll_mtrlid_p dw_1.Object.u_mtrldef_mtrlid[ll_newrow] = ll_mtrlid dw_1.Object.u_prdpf_sonmtrlid[ll_newrow] = ll_mtrlid dw_1.Object.u_prdpf_printid[ll_newrow] = ll_newrow If arg_pfcode = '' Then dw_1.Object.u_prdpf_sonpfcode[ll_newrow] = f_get_dft_pf(ll_mtrlid) Else dw_1.Object.u_prdpf_sonpfcode[ll_newrow] = arg_pfcode End If dw_1.Object.u_prdpf_pfgroup[ll_newrow] = '' dw_1.Object.u_prdpf_pfgroupqty[ll_newrow] = 0 dw_1.Object.u_prdpf_pfgroupmode[ll_newrow] = '' dw_1.Object.u_prdpf_pfklmode[ll_newrow] = '' dw_1.Object.u_prdpf_dscrp[ll_newrow] = '' dw_1.Object.u_prdpf_baseqty[ll_newrow] = 1 dw_1.Object.u_prdpf_scllloss[ll_newrow] = 0 dw_1.Object.u_prdpf_sclldecloss[ll_newrow] = 0 dw_1.Object.u_prdpf_ifover[ll_newrow] = 0 dw_1.Object.u_prdpf_dipztype[ll_newrow] = 0 dw_1.Object.u_prdpf_buyarg[ll_newrow] = 0 dw_1.Object.u_mtrldef_orderdays[ll_newrow] = 0 dw_1.Object.u_mtrldef_buydays[ll_newrow] = 0 dw_1.Object.u_mtrldef_wfjgdays[ll_newrow] = 0 dw_1.Object.u_mtrldef_dftwrkgrpid[ll_newrow] = ll_dftwrkgrpid dw_1.Object.u_mtrldef_scid[ll_newrow] = ll_scid dw_1.Object.u_mtrldef_mtrltypeid[ll_newrow] = ll_mtrltypeid dw_1.Object.u_PrdPF_wrkgrpid[ll_newrow] = ll_dftscllwkpid dw_1.Object.u_mtrldef_midu[ll_newrow] = ld_midu dw_1.Object.u_mtrldef_ifpack[ll_newrow] = li_ifpack dw_1.Object.u_mtrldef_outtype[ll_newrow] = li_outtype dw_1.Object.u_mtrldef_ifselforder[ll_newrow] = ifselforder dw_1.Object.u_mtrldef_ordertype[ll_newrow] = ordertype dw_1.Object.u_mtrldef_bantype[ll_newrow] = bantype dw_1.Object.u_mtrldef_ban_promode[ll_newrow] = ls_promode dw_1.Object.u_mtrldef_ban_wenli[ll_newrow] = ls_wenli dw_1.Object.u_mtrldef_ban_fengbian[ll_newrow] = ls_fengbian dw_1.Object.u_mtrldef_ban_paikong[ll_newrow] = ls_paikong dw_1.Object.u_mtrldef_ban_luoji[ll_newrow] = ls_luoji dw_1.Object.u_mtrldef_ban_penyou[ll_newrow] = ls_penyou dw_1.Object.u_mtrldef_ban_gydscrp[ll_newrow] = ls_gydscrp dw_1.Object.u_mtrldef_ban_pfklmode[ll_newrow] = ls_pfklmode dw_1.Object.u_mtrldef_ban_direction[ll_newrow] = ll_direction dw_1.Object.u_mtrldef_dscrp[ll_newrow] = ls_dscrp arg_row = ll_newrow ext: Return rslt end function public function integer wf_add_row_null (string arg_mtrlname, long arg_lp, decimal arg_qty, ref string arg_msg, ref long arg_row);Int rslt = 1 Long ll_row Long cnt Long ll_cnt Long ll_mtrlid_p String ls_mtrlcode_p String ls_pfcode Long ll_mtrlid String ls_mtrlcode String ls_mtrlname Int li_mtrlprp String ls_mtrlmode String ls_unit String ls_zxmtrlmode String ls_mtrlsectype Int li_statusflag Int li_statustype Int li_woodcodeflag Int li_woodcodetype Int li_pcodeflag Int li_pcodetype String ls_usermtrlmode Int li_Mtrlorigin Long ll_dftwrkgrpid Long ll_scid Long ll_mtrltypeid String ls_wrkGrpName Decimal ld_sonscale, lde_qty Long ll_wrkgrpid_scll Long ll_newrow arg_row = 0 //插入材料 ll_newrow = dw_1.InsertRow(0) arg_qty = round(arg_qty,sys_option_produce_dec) dw_1.Object.u_mtrldef_mtrlcode[ll_newrow] = ls_mtrlcode if arg_lp = 1 then //自制,半成品 dw_1.Object.u_mtrldef_mtrlprp[ll_newrow] = 1 dw_1.Object.u_mtrldef_Mtrlorigin[ll_newrow] = 0 else//采购 dw_1.Object.u_mtrldef_mtrlprp[ll_newrow] = 2 dw_1.Object.u_mtrldef_Mtrlorigin[ll_newrow] = 2 end if dw_1.Object.u_PrdPF_wrkgrpid[ll_newrow] = ll_wrkgrpid_scll dw_1.Object.u_PrdPF_Sonscale[ll_newrow] = arg_qty dw_1.Object.u_PrdPF_Sonscale_ori[ll_newrow] = arg_qty dw_1.Object.u_PrdPF_SonLoss[ll_newrow] = 0 dw_1.Object.u_PrdPF_SonDECLosS[ll_newrow] = 0 dw_1.Object.u_PrdPF_status[ll_newrow] = '' dw_1.Object.u_PrdPF_woodcode[ll_newrow] = '' dw_1.Object.u_PrdPF_pcode[ll_newrow] = '' dw_1.Object.u_PrdPF_Sonahead[ll_newrow] = 0 dw_1.Object.u_mtrldef_mtrlname[ll_newrow] = arg_mtrlname dw_1.Object.u_mtrldef_unit[ll_newrow] = ls_unit dw_1.Object.u_mtrldef_mtrlmode[ll_newrow] = ls_mtrlmode dw_1.Object.u_mtrldef_mtrlsectype[ll_newrow] = ls_mtrlsectype dw_1.Object.u_mtrldef_zxmtrlmode[ll_newrow] = ls_zxmtrlmode dw_1.Object.u_sc_wkp_wrkGrpName[ll_newrow] = ls_wrkGrpName dw_1.Object.u_mtrldef_statusflag[ll_newrow] = li_statusflag dw_1.Object.u_mtrldef_statustype[ll_newrow] = li_statustype dw_1.Object.u_mtrldef_woodcodeflag[ll_newrow] = li_woodcodeflag dw_1.Object.u_mtrldef_woodcodetype[ll_newrow] = li_woodcodetype dw_1.Object.u_mtrldef_pcodeflag[ll_newrow] = li_pcodeflag dw_1.Object.u_mtrldef_pcodetype[ll_newrow] = li_pcodetype dw_1.Object.u_mtrldef_usermtrlmode[ll_newrow] = ls_usermtrlmode dw_1.Object.lp[ll_newrow] = arg_lp dw_1.Object.iflock[ll_newrow] = 0 dw_1.Object.ifmod[ll_newrow] = 1 dw_1.Object.pmtrlid[ll_newrow] = ll_mtrlid_p dw_1.Object.u_mtrldef_mtrlid[ll_newrow] = ll_mtrlid dw_1.Object.u_prdpf_sonmtrlid[ll_newrow] = ll_mtrlid dw_1.Object.u_prdpf_printid[ll_newrow] = ll_newrow dw_1.Object.u_prdpf_sonpfcode[ll_newrow] = '' dw_1.Object.u_prdpf_pfgroup[ll_newrow] = '' dw_1.Object.u_prdpf_pfgroupqty[ll_newrow] = 0 dw_1.Object.u_prdpf_pfgroupmode[ll_newrow] = '' dw_1.Object.u_prdpf_pfklmode[ll_newrow] = '' dw_1.Object.u_prdpf_dscrp[ll_newrow] = '' dw_1.Object.u_prdpf_baseqty[ll_newrow] = 1 dw_1.Object.u_prdpf_scllloss[ll_newrow] = 0 dw_1.Object.u_prdpf_sclldecloss[ll_newrow] = 0 dw_1.Object.u_prdpf_ifover[ll_newrow] = 0 dw_1.Object.u_prdpf_dipztype[ll_newrow] = 0 dw_1.Object.u_prdpf_buyarg[ll_newrow] = 0 dw_1.Object.u_mtrldef_orderdays[ll_newrow] = 0 dw_1.Object.u_mtrldef_buydays[ll_newrow] = 0 dw_1.Object.u_mtrldef_wfjgdays[ll_newrow] = 0 dw_1.Object.u_mtrldef_dftwrkgrpid[ll_newrow] = ll_dftwrkgrpid dw_1.Object.u_mtrldef_scid[ll_newrow] = ll_scid dw_1.Object.u_mtrldef_mtrltypeid[ll_newrow] = ll_mtrltypeid arg_row = ll_newrow RETURN rslt end function public function integer wf_auto_wp (boolean arg_ifwpadd, ref string arg_msg);Int rslt = 1 Long ll_sonmtrlid_arr[] String ls_sonpfcode_arr[] Long ll_mxbt = 1,ll_i,ll_j,ll_k,ll_l String ls_dscrp,ls_wpcode String ls_procode_arr[],ls_proname_arr[],ls_empty_arr[] String ls_mtrlcode_arr[] Decimal ld_workprice_arr[],ld_empty_arr[] Long ll_wrkgrpid_arr[],ll_empty_arr[] Long cnt String ls_promode,ls_pfgroup,ls_mtrlcode Int li_ifpack Long ll_rowcnt = 0 String ls_pricestr_arr[] s_workpricetable arg_s_mx[],arg_s_empty[] If ins_mtrlid = 0 Then rslt = 0 Goto ext End If Select ifpack,mtrlcode Into :li_ifpack,:ls_mtrlcode From u_mtrldef Where mtrlid = :ins_mtrlid; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '查询产品属性失败,'+sqlca.SQLErrText Goto ext End If datastore ds_dscrp ds_dscrp = Create datastore ds_dscrp.DataObject = 'ds_prdpf_dscrp' ds_dscrp.SetTransObject(sqlca) If li_ifpack = 0 Then Declare cur_pf Cursor For Select u_PrdPF.SonMtrlid, u_PrdPF.sonpfcode,u_mtrldef.mtrlcode From u_PrdPF Inner JOIN u_mtrldef ON u_PrdPF.SonMtrlid = u_mtrldef.mtrlid Where (u_mtrldef.ifpack <> 0) And (u_PrdPF.mtrlid = :ins_mtrlid) And (u_PrdPF.pfcode = :ins_pfcode); Open cur_pf; Fetch cur_pf Into :ll_sonmtrlid_arr[ll_mxbt],:ls_sonpfcode_arr[ll_mxbt],:ls_mtrlcode_arr[ll_mxbt]; Do While sqlca.SQLCode = 0 ll_mxbt++ Fetch cur_pf Into :ll_sonmtrlid_arr[ll_mxbt],:ls_sonpfcode_arr[ll_mxbt],:ls_mtrlcode_arr[ll_mxbt]; Loop Close cur_pf; ll_rowcnt = ll_mxbt - 1 Else ll_mxbt = 1 ll_sonmtrlid_arr[ll_mxbt] = ins_mtrlid ls_sonpfcode_arr[ll_mxbt] = ins_pfcode ls_mtrlcode_arr[ll_mxbt] = ls_mtrlcode ll_rowcnt = 1 End If For ll_i = 1 To ll_rowcnt ds_dscrp.Retrieve(ll_sonmtrlid_arr[ll_i],ls_sonpfcode_arr[ll_i]) If ds_dscrp.RowCount() = 0 Then Continue ls_procode_arr = ls_empty_arr ls_proname_arr = ls_empty_arr ld_workprice_arr = ld_empty_arr ll_wrkgrpid_arr = ll_empty_arr cnt = 0 For ll_j = 1 To ds_dscrp.RowCount() ls_dscrp = ds_dscrp.Object.dscrp[ll_j] ls_promode = ds_dscrp.Object.promode[ll_j] ls_pfgroup = ds_dscrp.Object.pfgroup[ll_j] arg_s_mx = arg_s_empty f_cmp_proname(ls_dscrp,arg_s_mx) For ll_k = 1 To UpperBound(arg_s_mx) cnt++ ls_procode_arr[cnt] = arg_s_mx[ll_k].procode + '_' + ls_promode ls_proname_arr[cnt] = arg_s_mx[ll_k].proname + '_' + ls_pfgroup ld_workprice_arr[cnt] = arg_s_mx[ll_k].workprice ll_wrkgrpid_arr[cnt] = arg_s_mx[ll_k].wrkgrpid ls_pricestr_arr[cnt] = arg_s_mx[ll_k].pricestr Next Next ls_wpcode = f_get_dft_wp(ll_sonmtrlid_arr[ll_i]) //2014-06-28 需求变更:改为不清空原工价表(优适), 屏蔽以下代码 // Delete From u_sc_workprice // Where mtrlid = :ll_sonmtrlid_arr[ll_i] // And wpcode = :ls_wpcode; // If sqlca.SQLCode <> 0 Then // rslt = 0 // arg_msg = '物料:'+ls_mtrlcode_arr[ll_i]+',删除原有工价表失败,'+sqlca.SQLErrText // Goto ext // End If For ll_l = 1 To cnt Update u_sc_workprice Set workPrice = :ld_workprice_arr[ll_l], pricestr = :ls_pricestr_arr[ll_l] Where mtrlid = :ll_sonmtrlid_arr[ll_i] And wpcode = :ls_wpcode And procode = :ls_procode_arr[ll_l]; If sqlca.SQLCode = 0 Then //2014-09-15 需求变更: 模板工价表没有的工序,即使备注有,也不插入(优适), 屏蔽以下代码 //2014-09-20 需求再变更: 旧模式要插入,新模式不插入,所以增加cbx由用户自由控制,解除屏蔽以下代码 If arg_ifwpadd Then If sqlca.SQLNRows = 0 Then Insert Into u_sc_workprice (Mtrlid, wpcode, Proorder, procode, Proname, workPrice, wrkGrpid, lsxtype, workqty, pricestr) Values (:ll_sonmtrlid_arr[ll_i], :ls_wpcode, :ll_l, :ls_procode_arr[ll_l], :ls_proname_arr[ll_l], :ld_workprice_arr[ll_l], :ll_wrkgrpid_arr[ll_l], 1, 1, :ls_pricestr_arr[ll_l]); If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '物料:'+ls_mtrlcode_arr[ll_i]+',插入新工价表失败,工序号:'+ls_procode_arr[ll_i]+','+sqlca.SQLErrText Goto ext End If End If End If Else rslt = 0 arg_msg = '物料:'+ls_mtrlcode_arr[ll_i]+',更新工价表失败,工序号:'+ls_procode_arr[ll_i]+','+sqlca.SQLErrText Goto ext End If Next Next ext: Destroy ds_dscrp Return rslt end function public function integer wf_addmx_up (long arg_mtrlid, string arg_pfcode, long arg_pmtrlid, long arg_lp, long arg_row, ref string arg_msg);Int rslt = 1 Decimal ld_cmpqty String ls_mtrlcode Long count,ll_i Decimal ld_qty Long ll_row Select mtrlcode,cmpqty Into :ls_mtrlcode,:ld_cmpqty From u_mtrldef Where mtrlid = :arg_mtrlid; If sqlca.SQLCode <> 0 Then arg_msg = '查询物料清单基数失败,ID:'+String(arg_mtrlid)+','+sqlca.SQLErrText rslt = 0 Goto ext End If If ld_cmpqty <= 0 Then arg_msg = '不合理的物料清单基数,物料:'+ls_mtrlcode rslt = 0 Goto ext End If String mtrlcode Long mtrlprp Long wrkgrpid String mtrlname,unit,mtrlmode,mtrlsectype,zxmtrlmode,wrkGrpName Long statusflag,statustype,woodcodeflag,woodcodetype,pcodeflag,pcodetype String usermtrlmode Long Mtrlorigin Decimal buyarg,orderdays,buydays,wfjgdays Int ifselforder,ordertype,outtype,ifpack Long ll_mtrltypeid,ll_dftwrkgrpid,ll_dftscllwkpid Decimal ld_cubage,ld_long,ld_width,ld_height String ls_promode,ls_wenli,ls_fengbian,ls_paikong,ls_luoji,ls_penyou,ls_gydscrp,ls_pfklmode Int ll_direction string ls_dscrp_mtrl Select u_mtrldef.mtrlcode, u_mtrldef.mtrlprp, u_mtrldef.mtrlname, u_mtrldef.unit, u_mtrldef.mtrlmode, u_mtrldef.mtrlsectype, u_mtrldef.zxmtrlmode, u_sc_wkp.wrkGrpName, u_mtrldef.statusflag, u_mtrldef.statustype, u_mtrldef.woodcodeflag, u_mtrldef.woodcodetype, u_mtrldef.pcodeflag, u_mtrldef.pcodetype, u_mtrldef.usermtrlmode, u_mtrldef.Mtrlorigin, u_mtrldef.orderdays, u_mtrldef.buydays, u_mtrldef.wfjgdays, u_mtrldef.ifselforder, u_mtrldef.ordertype, u_mtrldef.mtrltypeid, u_mtrldef.dftwrkgrpid, u_mtrldef.dftscllwkpid, u_mtrldef.outtype, u_mtrldef.ifpack, isnull(u_mtrldef_ban.promode,'') as promode, isnull(u_mtrldef_ban.wenli,'') as wenli, isnull(u_mtrldef_ban.fengbian,'') as fengbian, isnull(u_mtrldef_ban.paikong,'') as paikong, isnull(u_mtrldef_ban.luoji,'') as luoji, isnull(u_mtrldef_ban.penyou,'') as penyou, isnull(u_mtrldef_ban.gydscrp,'') as gydscrp, isnull(u_mtrldef_ban.direction,0) as direction, isnull(u_mtrldef_ban.pfklmode,0) as pfklmode, u_mtrldef.dscrp Into :mtrlcode, :mtrlprp, :mtrlname, :unit, :mtrlmode, :mtrlsectype, :zxmtrlmode, :wrkGrpName, :statusflag, :statustype, :woodcodeflag, :woodcodetype, :pcodeflag, :pcodetype, :usermtrlmode, :Mtrlorigin, :orderdays, :buydays, :wfjgdays, :ifselforder, :ordertype, :ll_mtrltypeid, :ll_dftwrkgrpid, :ll_dftscllwkpid, :outtype, :ifpack, :ls_promode, :ls_wenli, :ls_fengbian, :ls_paikong, :ls_luoji, :ls_penyou, :ls_gydscrp, :ll_direction, :ls_pfklmode, :ls_dscrp_mtrl From u_mtrldef LEFT Outer JOIN u_sc_wkp ON u_mtrldef.dftwrkGrpid = u_sc_wkp.wrkGrpid LEFT Outer JOIN u_mtrldef_ban ON u_mtrldef.mtrlid = u_mtrldef_ban.mtrlid Where u_mtrldef.mtrlid = :arg_mtrlid; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '查询物料信息失败,'+ls_mtrlcode+','+sqlca.SQLErrText Goto ext End If dw_1.Object.pmtrlid[arg_row] = arg_mtrlid //本级及下级的物料层次推后 dw_1.Object.lp[arg_row] = dw_1.Object.lp[arg_row] + 1 For ll_i = arg_row + 1 To dw_1.RowCount() If dw_1.Object.lp[ll_i] <= arg_lp Then Exit dw_1.Object.lp[ll_i] = dw_1.Object.lp[ll_i] + 1 Next ll_row = dw_1.InsertRow(arg_row) dw_1.Object.mb_mtrlcode[ll_row] = mtrlcode dw_1.Object.mb_mtrlid[ll_row] = arg_mtrlid dw_1.Object.u_mtrldef_mtrlcode[ll_row] = mtrlcode dw_1.Object.u_mtrldef_mtrlprp[ll_row] = mtrlprp dw_1.Object.u_PrdPF_wrkgrpid[ll_row] = wrkgrpid dw_1.Object.u_PrdPF_Sonscale[ll_row] = 1 dw_1.Object.u_PrdPF_Sonscale_ori[ll_row] = 1 dw_1.Object.u_PrdPF_SonLoss[ll_row] = 0 dw_1.Object.u_PrdPF_SonDECLosS[ll_row] = 0 dw_1.Object.u_PrdPF_status[ll_row] = '' dw_1.Object.u_PrdPF_woodcode[ll_row] = '' dw_1.Object.u_PrdPF_pcode[ll_row] = '' dw_1.Object.u_PrdPF_Sonahead[ll_row] = 0 dw_1.Object.u_mtrldef_mtrlname[ll_row] = mtrlname dw_1.Object.u_mtrldef_unit[ll_row] = unit dw_1.Object.u_mtrldef_mtrlmode[ll_row] = mtrlmode dw_1.Object.u_mtrldef_mtrlsectype[ll_row] = mtrlsectype dw_1.Object.u_mtrldef_zxmtrlmode[ll_row] = zxmtrlmode dw_1.Object.u_sc_wkp_wrkGrpName[ll_row] = wrkGrpName dw_1.Object.u_mtrldef_statusflag[ll_row] = statusflag dw_1.Object.u_mtrldef_statustype[ll_row] = statustype dw_1.Object.u_mtrldef_woodcodeflag[ll_row] = woodcodeflag dw_1.Object.u_mtrldef_woodcodetype[ll_row] = woodcodetype dw_1.Object.u_mtrldef_pcodeflag[ll_row] = pcodeflag dw_1.Object.u_mtrldef_pcodetype[ll_row] = pcodetype dw_1.Object.u_mtrldef_usermtrlmode[ll_row] = usermtrlmode dw_1.Object.u_mtrldef_Mtrlorigin[ll_row] = Mtrlorigin dw_1.Object.lp[ll_row] = arg_lp dw_1.Object.u_mtrldef_mtrlid[ll_row] = arg_mtrlid dw_1.Object.u_prdpf_sonmtrlid[ll_row] = arg_mtrlid dw_1.Object.pmtrlid[ll_row] = arg_pmtrlid dw_1.Object.u_prdpf_printid[ll_row] = 1 dw_1.Object.u_prdpf_sonpfcode[ll_row] = arg_pfcode dw_1.Object.u_mtrldef_orderdays[ll_row] = orderdays dw_1.Object.u_mtrldef_buydays[ll_row] = buydays dw_1.Object.u_mtrldef_wfjgdays[ll_row] = wfjgdays dw_1.Object.u_mtrldef_ifselforder[ll_row] = ifselforder dw_1.Object.u_mtrldef_ordertype[ll_row] = ordertype dw_1.Object.u_mtrldef_mtrltypeid[ll_row] = ll_mtrltypeid dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row] = ll_dftwrkgrpid dw_1.Object.u_PrdPF_wrkgrpid[ll_row] = ll_dftscllwkpid dw_1.Object.u_mtrldef_outtype[ll_row] = outtype dw_1.Object.u_mtrldef_ifpack[ll_row] = ifpack dw_1.Object.iflock[ll_row] = 0 f_mtrlmode_trans(mtrlmode,ld_long,ld_width,ld_height) ld_cubage = ld_long * ld_width * ld_height / 1000000000 dw_1.Object.cubage[ll_row] = ld_cubage dw_1.Object.Length[ll_row] = ld_long dw_1.Object.Width[ll_row] = ld_width dw_1.Object.u_mtrldef_ban_promode[ll_row] = ls_promode dw_1.Object.u_mtrldef_ban_wenli[ll_row] = ls_wenli dw_1.Object.u_mtrldef_ban_fengbian[ll_row] = ls_fengbian dw_1.Object.u_mtrldef_ban_paikong[ll_row] = ls_paikong dw_1.Object.u_mtrldef_ban_luoji[ll_row] = ls_luoji dw_1.Object.u_mtrldef_ban_penyou[ll_row] = ls_penyou dw_1.Object.u_mtrldef_ban_gydscrp[ll_row] = ls_gydscrp dw_1.Object.u_mtrldef_ban_pfklmode[ll_row] = ls_pfklmode dw_1.Object.u_mtrldef_ban_direction[ll_row] = ll_direction dw_1.Object.u_mtrldef_dscrp[ll_row] = ls_dscrp_mtrl ext: Return rslt end function public function integer wf_addmx_next (long arg_mtrlid, string arg_pfcode, long arg_pmtrlid, long arg_lp, long arg_row, ref string arg_msg, decimal arg_qty, decimal arg_pfgroupqty);Int rslt = 1 Decimal ld_cmpqty String ls_mtrlcode Long count,ll_i Decimal ld_qty Long ll_row Select mtrlcode,cmpqty Into :ls_mtrlcode,:ld_cmpqty From u_mtrldef Where mtrlid = :arg_mtrlid; If sqlca.SQLCode <> 0 Then arg_msg = '查询物料清单基数失败,ID:'+String(arg_mtrlid)+','+sqlca.SQLErrText rslt = 0 Goto ext End If If ld_cmpqty <= 0 Then arg_msg = '不合理的物料清单基数,物料:'+ls_mtrlcode rslt = 0 Goto ext End If String mtrlcode Long mtrlprp Long wrkgrpid String mtrlname,unit,mtrlmode,mtrlsectype,zxmtrlmode,wrkGrpName Long statusflag,statustype,woodcodeflag,woodcodetype,pcodeflag,pcodetype String usermtrlmode Long Mtrlorigin Decimal buyarg,orderdays,buydays,wfjgdays Int ifselforder,ordertype,outtype,ifpack Long ll_mtrltypeid,ll_dftwrkgrpid,ll_dftscllwkpid Decimal ld_cubage,ld_long,ld_width,ld_height String ls_promode,ls_wenli,ls_fengbian,ls_paikong,ls_luoji,ls_penyou,ls_gydscrp,ls_pfklmode Int ll_direction,li_bantype decimal ld_midu string ls_dscrp_mtrl Select u_mtrldef.mtrlcode, u_mtrldef.mtrlprp, u_mtrldef.mtrlname, u_mtrldef.unit, u_mtrldef.mtrlmode, u_mtrldef.mtrlsectype, u_mtrldef.zxmtrlmode, u_sc_wkp.wrkGrpName, u_mtrldef.statusflag, u_mtrldef.statustype, u_mtrldef.woodcodeflag, u_mtrldef.woodcodetype, u_mtrldef.pcodeflag, u_mtrldef.pcodetype, u_mtrldef.usermtrlmode, u_mtrldef.Mtrlorigin, u_mtrldef.orderdays, u_mtrldef.buydays, u_mtrldef.wfjgdays, u_mtrldef.ifselforder, u_mtrldef.ordertype, u_mtrldef.mtrltypeid, u_mtrldef.dftwrkgrpid, u_mtrldef.dftscllwkpid, u_mtrldef.outtype, u_mtrldef.ifpack, isnull(u_mtrldef_ban.promode,'') as promode, isnull(u_mtrldef_ban.wenli,'') as wenli, isnull(u_mtrldef_ban.fengbian,'') as fengbian, isnull(u_mtrldef_ban.paikong,'') as paikong, isnull(u_mtrldef_ban.luoji,'') as luoji, isnull(u_mtrldef_ban.penyou,'') as penyou, isnull(u_mtrldef_ban.gydscrp,'') as gydscrp, isnull(u_mtrldef_ban.direction,0) as direction, u_mtrldef.midu, isnull(u_mtrldef_ban.pfklmode,'') as pfklmode, u_mtrldef.dscrp, u_mtrldef.bantype Into :mtrlcode, :mtrlprp, :mtrlname, :unit, :mtrlmode, :mtrlsectype, :zxmtrlmode, :wrkGrpName, :statusflag, :statustype, :woodcodeflag, :woodcodetype, :pcodeflag, :pcodetype, :usermtrlmode, :Mtrlorigin, :orderdays, :buydays, :wfjgdays, :ifselforder, :ordertype, :ll_mtrltypeid, :ll_dftwrkgrpid, :ll_dftscllwkpid, :outtype, :ifpack, :ls_promode, :ls_wenli, :ls_fengbian, :ls_paikong, :ls_luoji, :ls_penyou, :ls_gydscrp, :ll_direction, :ld_midu, :ls_pfklmode, :ls_dscrp_mtrl, :li_bantype From u_mtrldef LEFT Outer JOIN u_sc_wkp ON u_mtrldef.dftwrkGrpid = u_sc_wkp.wrkGrpid LEFT Outer JOIN u_mtrldef_ban ON u_mtrldef.mtrlid = u_mtrldef_ban.mtrlid Where u_mtrldef.mtrlid = :arg_mtrlid; If sqlca.SQLCode <> 0 Then rslt = 0 arg_msg = '查询物料信息失败,'+ls_mtrlcode+','+sqlca.SQLErrText Goto ext End If ll_row = dw_1.InsertRow(arg_row) dw_1.Object.u_mtrldef_mtrlcode[ll_row] = mtrlcode dw_1.Object.u_mtrldef_mtrlprp[ll_row] = mtrlprp dw_1.Object.u_PrdPF_wrkgrpid[ll_row] = wrkgrpid dw_1.Object.u_PrdPF_Sonscale[ll_row] = 1 dw_1.Object.u_PrdPF_Sonscale_ori[ll_row] = 1 dw_1.Object.u_PrdPF_SonLoss[ll_row] = 0 dw_1.Object.u_PrdPF_SonDECLosS[ll_row] = 0 dw_1.Object.u_PrdPF_status[ll_row] = '' dw_1.Object.u_PrdPF_woodcode[ll_row] = '' dw_1.Object.u_PrdPF_pcode[ll_row] = '' dw_1.Object.u_PrdPF_Sonahead[ll_row] = 0 dw_1.Object.u_mtrldef_mtrlname[ll_row] = mtrlname dw_1.Object.u_mtrldef_unit[ll_row] = unit dw_1.Object.u_mtrldef_mtrlmode[ll_row] = mtrlmode dw_1.Object.u_mtrldef_mtrlsectype[ll_row] = mtrlsectype dw_1.Object.u_mtrldef_zxmtrlmode[ll_row] = zxmtrlmode dw_1.Object.u_sc_wkp_wrkGrpName[ll_row] = wrkGrpName dw_1.Object.u_mtrldef_statusflag[ll_row] = statusflag dw_1.Object.u_mtrldef_statustype[ll_row] = statustype dw_1.Object.u_mtrldef_woodcodeflag[ll_row] = woodcodeflag dw_1.Object.u_mtrldef_woodcodetype[ll_row] = woodcodetype dw_1.Object.u_mtrldef_pcodeflag[ll_row] = pcodeflag dw_1.Object.u_mtrldef_pcodetype[ll_row] = pcodetype dw_1.Object.u_mtrldef_usermtrlmode[ll_row] = usermtrlmode dw_1.Object.u_mtrldef_Mtrlorigin[ll_row] = Mtrlorigin dw_1.Object.lp[ll_row] = arg_lp dw_1.Object.u_mtrldef_mtrlid[ll_row] = arg_mtrlid dw_1.Object.u_prdpf_sonmtrlid[ll_row] = arg_mtrlid dw_1.Object.pmtrlid[ll_row] = arg_pmtrlid dw_1.Object.u_prdpf_printid[ll_row] = 1 dw_1.Object.u_prdpf_sonpfcode[ll_row] = arg_pfcode dw_1.Object.u_mtrldef_orderdays[ll_row] = orderdays dw_1.Object.u_mtrldef_buydays[ll_row] = buydays dw_1.Object.u_mtrldef_wfjgdays[ll_row] = wfjgdays dw_1.Object.u_mtrldef_ifselforder[ll_row] = ifselforder dw_1.Object.u_mtrldef_ordertype[ll_row] = ordertype dw_1.Object.u_mtrldef_mtrltypeid[ll_row] = ll_mtrltypeid dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row] = ll_dftwrkgrpid dw_1.Object.u_PrdPF_wrkgrpid[ll_row] = ll_dftscllwkpid dw_1.Object.u_mtrldef_outtype[ll_row] = outtype dw_1.Object.u_mtrldef_ifpack[ll_row] = ifpack dw_1.Object.iflock[ll_row] = 0 f_mtrlmode_trans(mtrlmode,ld_long,ld_width,ld_height) ld_cubage = ld_long * ld_width * ld_height / 1000000000 dw_1.Object.cubage[ll_row] = ld_cubage dw_1.Object.Length[ll_row] = ld_long dw_1.Object.Width[ll_row] = ld_width dw_1.Object.u_mtrldef_ban_promode[ll_row] = ls_promode dw_1.Object.u_mtrldef_ban_wenli[ll_row] = ls_wenli dw_1.Object.u_mtrldef_ban_fengbian[ll_row] = ls_fengbian dw_1.Object.u_mtrldef_ban_paikong[ll_row] = ls_paikong dw_1.Object.u_mtrldef_ban_luoji[ll_row] = ls_luoji dw_1.Object.u_mtrldef_ban_penyou[ll_row] = ls_penyou dw_1.Object.u_mtrldef_ban_gydscrp[ll_row] = ls_gydscrp dw_1.Object.u_mtrldef_ban_pfklmode[ll_row] = ls_pfklmode dw_1.Object.u_mtrldef_ban_direction[ll_row] = ll_direction dw_1.Object.u_mtrldef_midu[ll_row] = ld_midu dw_1.Object.u_mtrldef_dscrp[ll_row] = ls_dscrp_mtrl dw_1.Object.u_prdpf_sonscale[ll_row] = arg_qty dw_1.Object.u_prdpf_pfgroupqty[ll_row] = arg_pfgroupqty dw_1.Object.u_mtrldef_bantype[ll_row] = li_bantype If wf_addmx_row(arg_mtrlid,arg_pfcode,arg_lp + 1,arg_row + 1 ,arg_qty,arg_msg) = 0 Then rslt = 0 Goto ext End If ext: Return rslt end function on w_mtrldef_prdpf_padd.create int iCurrent call super::create this.dw_1=create dw_1 this.st_2=create st_2 this.st_mtrl=create st_mtrl this.cb_mod_bcp=create cb_mod_bcp this.cb_save_bcp=create cb_save_bcp this.cb_other_bom=create cb_other_bom this.cb_save=create cb_save this.st_1=create st_1 this.st_mtrl_pf=create st_mtrl_pf this.cb_delmx=create cb_delmx this.mle_log=create mle_log this.dw_2=create dw_2 this.cb_addmx_wp=create cb_addmx_wp this.cb_delmx_wp=create cb_delmx_wp this.cb_save_wp=create cb_save_wp this.cb_edit_wp=create cb_edit_wp this.dw_copy=create dw_copy this.cb_cmpl_pfklmode=create cb_cmpl_pfklmode this.st_arg=create st_arg this.em_arg=create em_arg this.cbx_cmp_qty=create cbx_cmp_qty this.cb_re_mtrl=create cb_re_mtrl this.cbx_pfgroup=create cbx_pfgroup this.cb_import=create cb_import this.cb_1=create cb_1 this.cb_moban=create cb_moban this.cb_change=create cb_change this.cb_print=create cb_print this.cbx_save_close=create cbx_save_close this.rb_1=create rb_1 this.rb_2=create rb_2 this.dw_3=create dw_3 this.dw_copy_wkp=create dw_copy_wkp this.dw_copy_main=create dw_copy_main this.cb_copy_paste=create cb_copy_paste this.cb_bom=create cb_bom this.cb_tmp_save=create cb_tmp_save this.cb_tmp_read=create cb_tmp_read this.cb_templet_ch=create cb_templet_ch this.dw_buffer=create dw_buffer this.cb_pack=create cb_pack this.cb_all_ch=create cb_all_ch this.cb_fan_ch=create cb_fan_ch this.cbx_ifreset=create cbx_ifreset this.cb_autocode=create cb_autocode this.cbx_wp_pack=create cbx_wp_pack this.cb_2=create cb_2 this.cb_fj_edit=create cb_fj_edit this.cbx_wp_add=create cbx_wp_add this.cb_old_to_new=create cb_old_to_new this.cb_add_mtrl=create cb_add_mtrl this.ln_bar=create ln_bar this.ln_bar2=create ln_bar2 this.r_bar=create r_bar this.ln_7=create ln_7 this.ln_8=create ln_8 this.ln_1=create ln_1 this.ln_2=create ln_2 this.ln_3=create ln_3 this.ln_4=create ln_4 this.ln_5=create ln_5 this.ln_6=create ln_6 this.ln_9=create ln_9 this.ln_10=create ln_10 this.ln_11=create ln_11 this.ln_12=create ln_12 iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.dw_1 this.Control[iCurrent+2]=this.st_2 this.Control[iCurrent+3]=this.st_mtrl this.Control[iCurrent+4]=this.cb_mod_bcp this.Control[iCurrent+5]=this.cb_save_bcp this.Control[iCurrent+6]=this.cb_other_bom this.Control[iCurrent+7]=this.cb_save this.Control[iCurrent+8]=this.st_1 this.Control[iCurrent+9]=this.st_mtrl_pf this.Control[iCurrent+10]=this.cb_delmx this.Control[iCurrent+11]=this.mle_log this.Control[iCurrent+12]=this.dw_2 this.Control[iCurrent+13]=this.cb_addmx_wp this.Control[iCurrent+14]=this.cb_delmx_wp this.Control[iCurrent+15]=this.cb_save_wp this.Control[iCurrent+16]=this.cb_edit_wp this.Control[iCurrent+17]=this.dw_copy this.Control[iCurrent+18]=this.cb_cmpl_pfklmode this.Control[iCurrent+19]=this.st_arg this.Control[iCurrent+20]=this.em_arg this.Control[iCurrent+21]=this.cbx_cmp_qty this.Control[iCurrent+22]=this.cb_re_mtrl this.Control[iCurrent+23]=this.cbx_pfgroup this.Control[iCurrent+24]=this.cb_import this.Control[iCurrent+25]=this.cb_1 this.Control[iCurrent+26]=this.cb_moban this.Control[iCurrent+27]=this.cb_change this.Control[iCurrent+28]=this.cb_print this.Control[iCurrent+29]=this.cbx_save_close this.Control[iCurrent+30]=this.rb_1 this.Control[iCurrent+31]=this.rb_2 this.Control[iCurrent+32]=this.dw_3 this.Control[iCurrent+33]=this.dw_copy_wkp this.Control[iCurrent+34]=this.dw_copy_main this.Control[iCurrent+35]=this.cb_copy_paste this.Control[iCurrent+36]=this.cb_bom this.Control[iCurrent+37]=this.cb_tmp_save this.Control[iCurrent+38]=this.cb_tmp_read this.Control[iCurrent+39]=this.cb_templet_ch this.Control[iCurrent+40]=this.dw_buffer this.Control[iCurrent+41]=this.cb_pack this.Control[iCurrent+42]=this.cb_all_ch this.Control[iCurrent+43]=this.cb_fan_ch this.Control[iCurrent+44]=this.cbx_ifreset this.Control[iCurrent+45]=this.cb_autocode this.Control[iCurrent+46]=this.cbx_wp_pack this.Control[iCurrent+47]=this.cb_2 this.Control[iCurrent+48]=this.cb_fj_edit this.Control[iCurrent+49]=this.cbx_wp_add this.Control[iCurrent+50]=this.cb_old_to_new this.Control[iCurrent+51]=this.cb_add_mtrl this.Control[iCurrent+52]=this.ln_bar this.Control[iCurrent+53]=this.ln_bar2 this.Control[iCurrent+54]=this.r_bar this.Control[iCurrent+55]=this.ln_7 this.Control[iCurrent+56]=this.ln_8 this.Control[iCurrent+57]=this.ln_1 this.Control[iCurrent+58]=this.ln_2 this.Control[iCurrent+59]=this.ln_3 this.Control[iCurrent+60]=this.ln_4 this.Control[iCurrent+61]=this.ln_5 this.Control[iCurrent+62]=this.ln_6 this.Control[iCurrent+63]=this.ln_9 this.Control[iCurrent+64]=this.ln_10 this.Control[iCurrent+65]=this.ln_11 this.Control[iCurrent+66]=this.ln_12 end on on w_mtrldef_prdpf_padd.destroy call super::destroy destroy(this.dw_1) destroy(this.st_2) destroy(this.st_mtrl) destroy(this.cb_mod_bcp) destroy(this.cb_save_bcp) destroy(this.cb_other_bom) destroy(this.cb_save) destroy(this.st_1) destroy(this.st_mtrl_pf) destroy(this.cb_delmx) destroy(this.mle_log) destroy(this.dw_2) destroy(this.cb_addmx_wp) destroy(this.cb_delmx_wp) destroy(this.cb_save_wp) destroy(this.cb_edit_wp) destroy(this.dw_copy) destroy(this.cb_cmpl_pfklmode) destroy(this.st_arg) destroy(this.em_arg) destroy(this.cbx_cmp_qty) destroy(this.cb_re_mtrl) destroy(this.cbx_pfgroup) destroy(this.cb_import) destroy(this.cb_1) destroy(this.cb_moban) destroy(this.cb_change) destroy(this.cb_print) destroy(this.cbx_save_close) destroy(this.rb_1) destroy(this.rb_2) destroy(this.dw_3) destroy(this.dw_copy_wkp) destroy(this.dw_copy_main) destroy(this.cb_copy_paste) destroy(this.cb_bom) destroy(this.cb_tmp_save) destroy(this.cb_tmp_read) destroy(this.cb_templet_ch) destroy(this.dw_buffer) destroy(this.cb_pack) destroy(this.cb_all_ch) destroy(this.cb_fan_ch) destroy(this.cbx_ifreset) destroy(this.cb_autocode) destroy(this.cbx_wp_pack) destroy(this.cb_2) destroy(this.cb_fj_edit) destroy(this.cbx_wp_add) destroy(this.cb_old_to_new) destroy(this.cb_add_mtrl) destroy(this.ln_bar) destroy(this.ln_bar2) destroy(this.r_bar) destroy(this.ln_7) destroy(this.ln_8) destroy(this.ln_1) destroy(this.ln_2) destroy(this.ln_3) destroy(this.ln_4) destroy(this.ln_5) destroy(this.ln_6) destroy(this.ln_9) destroy(this.ln_10) destroy(this.ln_11) destroy(this.ln_12) end on event open;call super::open;dw_1.SetTransObject(sqlca) dw_2.SetTransObject(sqlca) dw_3.SetTransObject(sqlca) dw_copy.SetTransObject(sqlca) uo_mtrl = Create uo_mtrldef uo_pf = Create uo_mtrl_pf u_wrkprice = Create uo_workpricetable s_tran = Message.PowerObjectParm IF s_tran.b_long = 0 THEN //物料资料调用 IF Not IsNull(s_tran) THEN ins_mtrlid = s_tran.c_long ins_pfcode = s_tran.b_string ins_mtrlid_pf = ins_mtrlid ins_if_saletask = s_tran.g_long ins_scid = s_tran.d_long ins_taskid = s_tran.e_long ins_printid = s_tran.f_long ins_pfdscrp = s_tran.c_string ELSE ins_mtrlid = 0 ins_mtrlid_pf = 0 ins_pfcode = '' ins_if_saletask = 0 ins_scid = 0 ins_taskid = 0 ins_printid = 0 END IF wf_re_mtrl(1) ELSEIF s_tran.b_long = 1 THEN END IF cb_re_mtrl.enabled = (ins_if_saletask = 0) end event event resize;call super::resize;ln_bar.EndX = THIS.Width ln_bar2.EndX = THIS.Width ln_3.EndX = THIS.Width ln_4.EndX = THIS.Width r_bar.Width = THIS.Width dw_1.Width = THIS.Width - dw_1.X - 40 dw_1.Height = THIS.Height - dw_1.Y - 150 - mle_log.height mle_log.y = dw_1.y + dw_1.height + 8 rb_1.y = mle_log.y + 12 rb_2.y = rb_1.y dw_2.y = mle_log.y + 84 dw_2.width = dw_1.Width - mle_log.Width + 5 dw_3.y = dw_2.y dw_3.x = dw_2.x dw_3.width = dw_2.width dw_3.height = dw_2.height cb_edit_wp.y = dw_2.y + dw_2.height + 16 cb_save_wp.y = cb_edit_wp.y cb_addmx_wp.y = cb_edit_wp.y cb_delmx_wp.y = cb_edit_wp.y cb_templet_ch.y = cb_edit_wp.y end event event close;call super::close;DESTROY uo_mtrl DESTROY uo_pf DESTROY u_wrkprice end event event key;call super::key;this.triggerevent('user_key') end event type cb_func from w_publ_base`cb_func within w_mtrldef_prdpf_padd boolean visible = false end type type cb_exit from w_publ_base`cb_exit within w_mtrldef_prdpf_padd integer x = 5371 integer width = 165 integer height = 164 integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type type dw_1 from u_dw_rbtnfilter within w_mtrldef_prdpf_padd event ue_dwndropdown pbm_dwndropdown integer y = 352 integer width = 3589 integer height = 932 integer taborder = 20 boolean bringtotop = true string dataobject = "dw_mtrldef_prdpf_padd" boolean hscrollbar = true boolean vscrollbar = true boolean hsplitscroll = true boolean rbutton_setposition_use = true end type event ue_dwndropdown; String ls_col_pz,ls_col_mtrlid String ls_pz_ch 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) // ll_mtrlid = dw_1.object.u_prdpf_sonmtrlid[ll_row] ls_col_pz = THIS.GetColumnName( ) 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 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 rowfocuschanged;call super::rowfocuschanged;IF ins_ifmod THEN RETURN IF ins_ifmod_wp THEN RETURN IF currentrow > 0 THEN THIS.SelectRow(0,FALSE) THIS.SetRow(currentrow) THIS.SelectRow(currentrow,TRUE) PARENT.TriggerEvent('ue_retrieve_workprice') PARENT.TriggerEvent('ue_retrieve_wkp') parent.triggerevent('ue_allowedit') END IF end event event clicked;call super::clicked;IF ins_ifmod THEN RETURN IF ins_ifmod_wp THEN RETURN IF row > 0 THEN THIS.SelectRow(0,FALSE) THIS.SetRow(row) THIS.SelectRow(row,TRUE) END IF end event event doubleclicked;call super::doubleclicked;If dwo.Name = 'u_prdpf_modlename' Then Open(w_sc_mtrlwkp_modle_ch) s_mtrl_wkp_tech_modle s_return s_return = Message.PowerObjectParm If s_return.modleid > 0 Then dw_1.Object.u_prdpf_modleid[row] = s_return.modleid dw_1.Object.u_prdpf_modlename[row] = s_return.modlename End If End If If ins_ifmod_wp Then Return If Not ins_ifmod Then Return If dwo.Name = 'u_mtrldef_mtrltypeid' Then Open(w_mtrltype_ch) s_mtrltype s_type s_type = Message.PowerObjectParm If s_type.mtrltypeid > 0 Then //正常返回值则可以取以下值 dw_1.SetRedraw(False) dw_1.Object.u_mtrldef_mtrltypeid[row] = s_type.mtrltypeid dw_1.SetRedraw(True) End If end if end event event dwnkey;call super::dwnkey;IF Key = KeyEnter! THEN // keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab RETURN 1 END IF parent.triggerevent('user_key') end event event itemchanged;call super::itemchanged;If row <= 0 Then Return Long ll_lp Long ll_i Decimal ld_sonscale,ld_sonscale_ori This.AcceptText() If dwo.Name = 'u_prdpf_sonscale' Then ll_lp = dw_1.Object.lp[row] ld_sonscale_ori = dw_1.Object.u_prdpf_sonscale_ori[row] ld_sonscale = dw_1.Object.u_prdpf_sonscale[row] If IsNull(ld_sonscale_ori) Then ld_sonscale_ori = 1 If ld_sonscale_ori = 0 Then ld_sonscale_ori = 1 dw_1.SetRedraw(False) For ll_i = row + 1 To dw_1.RowCount() If dw_1.Object.lp[ll_i] <= ll_lp Then Exit dw_1.Object.u_prdpf_sonscale[ll_i] = dw_1.Object.u_prdpf_sonscale_ori[ll_i] * (ld_sonscale / ld_sonscale_ori ) Next dw_1.SetRedraw(True) ElseIf dwo.Name = 'ch' Then dw_1.SetRedraw(False) If dw_1.Object.ch[row] = 1 Then //反选 For ll_i = row + 1 To dw_1.RowCount() If dw_1.Object.lp[ll_i] <= dw_1.Object.lp[row] Then Exit dw_1.Object.ch[ll_i] = 0 Next If Trim(dw_1.Object.u_prdpf_pfgroup[row]) <> '' Then For ll_i = row + 1 To dw_1.RowCount() If Pos(dw_1.Object.u_prdpf_pfgroup[ll_i],dw_1.Object.u_prdpf_pfgroup[row]) > 0 Then dw_1.Object.ch[ll_i] = 0 End If Next End If Else //选中 For ll_i = row + 1 To dw_1.RowCount() If dw_1.Object.lp[ll_i] <= dw_1.Object.lp[row] Then Exit dw_1.Object.ch[ll_i] = 1 Next If Trim(dw_1.Object.u_prdpf_pfgroup[row]) <> '' Then For ll_i = row + 1 To dw_1.RowCount() If dw_1.Object.u_prdpf_pfgroup[ll_i] = Trim(dw_1.Object.u_prdpf_pfgroup[row]) + '封边带' Then dw_1.Object.ch[ll_i] = 1 End If Next End If End If dw_1.SetRedraw(True) End If end event type st_2 from statictext within w_mtrldef_prdpf_padd integer x = 18 integer y = 280 integer width = 480 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 = right! boolean focusrectangle = false end type type st_mtrl from statictext within w_mtrldef_prdpf_padd integer x = 494 integer y = 204 integer width = 1563 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 = "none" boolean focusrectangle = false end type type cb_mod_bcp from uo_imflatbutton within w_mtrldef_prdpf_padd integer x = 1038 integer width = 306 integer height = 164 integer taborder = 30 boolean bringtotop = true string text = "编辑半成品" string normalpicname = "open.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;IF ins_ifmod_wp THEN MessageBox('系统提示','正在编辑工价表,不能执行本操作') RETURN END IF Long ll_row Long ll_mtrlid dw_1.AcceptText() ll_row = dw_1.GetRow() IF ll_row <= 0 THEN MessageBox('系统提示','请选择要编辑的半成品') RETURN END IF IF NOT ins_ifmod THEN // IF dw_1.Object.u_mtrldef_mtrlprp[ll_row] <> 1 THEN // MessageBox('系统提示','只能编辑半成品属性的物料') // RETURN // END IF IF dw_1.Object.lp[ll_row] = 0 THEN MessageBox('系统提示','主产品资料不能编辑') RETURN END IF dw_1.Object.ifmod[ll_row] = 1 ins_mtrlcode_ori = dw_1.Object.u_mtrldef_mtrlcode[ll_row] ins_mtrlname_ori = dw_1.Object.u_mtrldef_mtrlname[ll_row] ins_mtrlmode_ori = dw_1.Object.u_mtrldef_mtrlmode[ll_row] ins_unit_ori = dw_1.Object.u_mtrldef_unit[ll_row] ins_mtrlsectype_ori = dw_1.Object.u_mtrldef_mtrlsectype[ll_row] ins_zxmtrlmode_ori = dw_1.Object.u_mtrldef_zxmtrlmode[ll_row] ins_usermtrlmode_ori = dw_1.Object.u_mtrldef_usermtrlmode[ll_row] ins_mtrltypeid_ori = dw_1.Object.u_mtrldef_mtrltypeid[ll_row] ins_scid_ori = dw_1.Object.u_mtrldef_scid[ll_row] ins_dftwrkgrpid_ori = dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row] ins_orderdays_ori = dw_1.Object.u_mtrldef_orderdays[ll_row] ins_buydays_ori = dw_1.Object.u_mtrldef_buydays[ll_row] ins_wfjgdays_ori = dw_1.Object.u_mtrldef_wfjgdays[ll_row] ins_mb_mtrlcode = dw_1.Object.mb_mtrlcode[ll_row] dw_1.AcceptText() ELSE dw_1.SetRedraw(FALSE) dw_1.Object.u_mtrldef_mtrlcode[ll_row] = ins_mtrlcode_ori dw_1.Object.u_mtrldef_mtrlname[ll_row] = ins_mtrlname_ori dw_1.Object.u_mtrldef_mtrlmode[ll_row] = ins_mtrlmode_ori dw_1.Object.u_mtrldef_unit[ll_row] = ins_unit_ori dw_1.Object.u_mtrldef_mtrlsectype[ll_row] = ins_mtrlsectype_ori dw_1.Object.u_mtrldef_zxmtrlmode[ll_row] = ins_zxmtrlmode_ori dw_1.Object.u_mtrldef_usermtrlmode[ll_row] = ins_usermtrlmode_ori dw_1.Object.u_mtrldef_mtrltypeid[ll_row] = ins_mtrltypeid_ori dw_1.Object.u_mtrldef_scid[ll_row] = ins_scid_ori dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row] = ins_dftwrkgrpid_ori dw_1.Object.u_mtrldef_orderdays[ll_row] = ins_orderdays_ori dw_1.Object.u_mtrldef_buydays[ll_row] = ins_buydays_ori dw_1.Object.u_mtrldef_wfjgdays[ll_row] = ins_wfjgdays_ori dw_1.Object.mb_mtrlcode[ll_row] = ins_mb_mtrlcode dw_1.Object.ifmod[ll_row] = 0 dw_1.SetRedraw(TRUE) dw_1.AcceptText() END IF ins_ifmod = NOT ins_ifmod wf_face() end event type cb_save_bcp from uo_imflatbutton within w_mtrldef_prdpf_padd integer x = 2258 integer width = 133 integer height = 164 integer taborder = 10 boolean bringtotop = true boolean enabled = false string normalpicname = "ok.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;Long ll_row String ls_mtrlcode Long cnt,ll_lp,ll_i,ll_mtrlid String ls_mtrlcode_p,ls_procode Long ll_k,ll_row_find,ll_j ll_row = dw_1.GetRow() IF ll_row <= 0 THEN MessageBox('系统提示','请选择要编辑的半成品') RETURN END IF dw_1.AcceptText() ll_mtrlid = dw_1.Object.u_prdpf_sonmtrlid[ll_row] IF dw_1.Object.u_mtrldef_mtrlid[ll_row] > 0 THEN IF dw_1.Object.u_mtrldef_mtrlcode[ll_row] = ins_mtrlcode_ori THEN MessageBox('系统提示','物料编辑没有修改,不能保存') RETURN END IF END IF ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_row] IF Trim(ls_mtrlcode) = '' THEN MessageBox('系统提示','请输入物料编码') dw_1.SetFocus() dw_1.SetColumn("u_mtrldef_mtrlcode") RETURN END IF SELECT count(*) INTO :cnt FROM u_mtrldef Where mtrlcode = :ls_mtrlcode; IF sqlca.SQLCode <> 0 THEN MessageBox('Error','查询新编码是否已存在失败') RETURN END IF IF cnt > 0 THEN MessageBox('系统提示','新输入的编码已存在,请重新输入') dw_1.SetFocus() dw_1.SetColumn("u_mtrldef_mtrlcode") RETURN END IF IF trim(dw_1.Object.u_mtrldef_unit[ll_row]) = '' THEN MessageBox('系统提示','请输入库存单位') dw_1.SetFocus() dw_1.SetColumn("u_mtrldef_unit") RETURN END IF IF dw_1.Object.u_mtrldef_mtrltypeid[ll_row] = 0 THEN MessageBox('系统提示','请选择类别') dw_1.SetFocus() dw_1.SetColumn("u_mtrldef_mtrltypeid") RETURN END IF IF dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row] = 0 THEN MessageBox('系统提示','请选择默认制造车间') dw_1.SetFocus() dw_1.SetColumn("u_mtrldef_dftwrkgrpid") RETURN END IF dw_1.Object.u_mtrldef_mtrlid[ll_row] = 0 dw_1.Object.ifnewadd[ll_row] = 1 dw_1.Object.iflock[ll_row] = 0 IF cbx_pfgroup.Checked THEN dw_1.Object.u_prdpf_pfgroup[ll_row] = dw_1.Object.u_mtrldef_mtrlname[ll_row] END IF ll_lp = dw_1.Object.lp[ll_row] dw_1.SetRedraw(False) FOR ll_i = ll_row + 1 To dw_1.RowCount() IF dw_1.Object.lp[ll_i] = ll_lp + 1 then //And dw_1.Object.pmtrlid[ll_i] = ll_mtrlid THEN dw_1.Object.iflock[ll_i] = 0 END IF if dw_1.Object.lp[ll_i] <= ll_lp then exit NEXT dw_1.SetRedraw(True) dw_1.Object.ifmod[ll_row] = 0 ins_ifmod = False dw_1.AcceptText() dw_1.SetColumn("u_sc_wkp_wrkgrpname") FOR ll_i = 1 To dw_copy.RowCount() IF dw_copy.Object.u_mtrldef_mtrlcode[ll_i] = ins_mtrlcode_ori THEN dw_copy.Object.u_mtrldef_mtrlcode[ll_i] = dw_1.Object.u_mtrldef_mtrlcode[ll_row] END IF NEXT dw_copy.AcceptText() ls_mtrlcode_p = dw_1.Object.u_mtrldef_mtrlcode[ll_row] FOR ll_i = 1 To dw_2.RowCount() ls_procode = dw_2.Object.procode[ll_i] dw_2.Object.u_mtrldef_mtrlcode[ll_i] = ls_mtrlcode_p dw_2.AcceptText() FOR ll_k = 1 To dw_copy.RowCount() ll_row_find = dw_copy.Find("u_mtrldef_mtrlcode = '"+ls_mtrlcode_p + "' and procode = '"+ls_procode+"'", ll_k, dw_copy.RowCount()) IF ll_row_find > 0 THEN dw_copy.DeleteRow(ll_row_find) ll_k = 1 END IF NEXT IF dw_copy.Find("u_mtrldef_mtrlcode = '"+ls_mtrlcode_p + "' and procode = '"+ls_procode+"'", 1, dw_copy.RowCount()) > 0 THEN CONTINUE ll_j++ dw_2.RowsCopy (ll_i,ll_i,Primary!,dw_copy,ll_j,Primary!) NEXT IF dw_2.RowCount() > 0 THEN dw_1.Object.ifmod_wp[ll_row] = 1 END IF wf_face() ins_cnt++ IF Trim(ins_mtrlcode_ori) <> Trim(dw_1.Object.u_mtrldef_mtrlcode[ll_row]) THEN mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.编辑半成品:原编码:'+ ins_mtrlcode_ori +' 编辑为新编码:'+dw_1.Object.u_mtrldef_mtrlcode[ll_row] END IF end event type cb_other_bom from uo_imflatbutton within w_mtrldef_prdpf_padd integer x = 265 integer width = 457 integer height = 164 integer taborder = 10 boolean bringtotop = true string text = "选择其它物料清单" string normalpicname = "p1.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;IF ins_ifmod_wp THEN MessageBox('系统提示','正在编辑工价表,不能执行本操作') RETURN END IF IF ins_ifmod THEN MessageBox('系统提示','正在编辑半成品,不能执行本操作') RETURN END IF Long ll_i Boolean lb_ifmod = FALSE String ls_mtrlcode,ls_mtrlname,ls_pfcode,arg_msg FOR ll_i = 1 TO dw_1.RowCount() IF dw_1.Object.u_mtrldef_mtrlid[ll_i] = 0 THEN lb_ifmod = TRUE EXIT END IF NEXT IF lb_ifmod THEN IF MessageBox('询问','选择其他物料清单会导致你当前的修改全部丢失,是否继续?',question!,yesno!) = 2 THEN RETURN END IF 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 = 0 s_ch_tran.c_long = -1 s_ch_tran.f_long = 0 THIS.Enabled = FALSE OpenWithParm(w_mtrldef_edit,s_ch_tran) THIS.Enabled = TRUE s_mtrldef_array s_inscust s_inscust = Message.PowerObjectParm IF UpperBound(s_inscust.mtrlid) = 1 AND s_inscust.mtrlid[1] > 0 THEN ins_mtrlid_pf = s_inscust.mtrlid[1] st_mtrl_pf.Text = '['+s_inscust.mtrlcode[1]+']'+s_inscust.mtrlname[1] IF ins_mtrlid_pf > 0 THEN ls_pfcode = f_get_dft_pf(ins_mtrlid_pf) dw_1.SetRedraw(FALSE) FOR ll_i = dw_1.RowCount() TO 2 STEP -1 dw_1.DeleteRow(ll_i) NEXT IF wf_addmx(ins_mtrlid_pf,ls_pfcode,1,1,arg_msg) = 0 THEN MessageBox('Error',arg_msg) END IF dw_1.SetRedraw(TRUE) ins_cnt++ mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.选择 ' + s_inscust.mtrlcode[1] + ' 的物料清单,重新生成明细内容' dw_copy.Reset() END IF END IF END IF end event type cb_save from uo_imflatbutton within w_mtrldef_prdpf_padd integer x = 4914 integer width = 251 integer height = 164 integer taborder = 20 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;IF ins_ifmod_wp THEN MessageBox('系统提示','正在编辑工价表,不能执行本操作') RETURN END IF IF ins_ifmod THEN MessageBox('系统提示','正在编辑半成品,不能执行本操作') RETURN END IF String arg_msg IF MessageBox('询问','确定要按当前内容生成物料及相关清单、工价表吗?',question!,yesno!) = 2 THEN RETURN IF wf_checkrand(arg_msg) = 0 THEN MessageBox('Error',arg_msg) RETURN END IF IF wf_save(arg_msg) = 0 THEN MessageBox('Error',arg_msg) RETURN END IF MessageBox('系统提示','操作成功!') IF cbx_save_close.Checked THEN Close(Parent) ELSE wf_re_mtrl(1) END IF end event type st_1 from statictext within w_mtrldef_prdpf_padd integer x = 69 integer y = 204 integer width = 425 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 = right! boolean focusrectangle = false end type type st_mtrl_pf from statictext within w_mtrldef_prdpf_padd integer x = 494 integer y = 280 integer width = 1563 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 = "none" boolean focusrectangle = false end type type cb_delmx from uo_imflatbutton within w_mtrldef_prdpf_padd integer x = 3086 integer width = 197 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;m_Dfc_Control_PopupMenu dmPopupMenu String menustr menustr = "Text=勾选删除~tEvent=ue_del_ch" menustr = menustr + "|" + "Text=删除本级(下级层次前移)~tEvent=ue_del_this" 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 mle_log from multilineedit within w_mtrldef_prdpf_padd integer y = 1292 integer width = 1545 integer height = 992 integer taborder = 30 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 string text = "------------------------操作记录-----------------------" boolean autovscroll = true boolean displayonly = true borderstyle borderstyle = stylelowered! end type type dw_2 from u_dw_rbtnfilter within w_mtrldef_prdpf_padd integer x = 1550 integer y = 1376 integer width = 2039 integer height = 788 integer taborder = 20 boolean bringtotop = true string dataobject = "dw_workpricetable_padd_edit" boolean hscrollbar = true boolean vscrollbar = true boolean hsplitscroll = true end type event rowfocuschanged;call super::rowfocuschanged; IF currentrow > 0 THEN THIS.SelectRow(0,FALSE) THIS.SetRow(currentrow) THIS.SelectRow(currentrow,TRUE) END IF end event event doubleclicked;call super::doubleclicked;IF ins_ifmod_wp THEN IF dwo.Name = 'u_sc_workprice_status' THEN Parent.TriggerEvent('ue_wp_status') ELSEIF dwo.Name = 'u_sc_workprice_pricestr' THEN Parent.TriggerEvent('ue_wp_pricestr') ELSEIF dwo.Name = 'u_sc_workprice_workqtystr' THEN Parent.TriggerEvent('ue_wp_workqtystr') ELSEIF dwo.Name = 'u_sc_workprice_u_workqtystr' THEN Parent.TriggerEvent('ue_wp_u_workqtystr') ELSEIF dwo.Name = 'u_sc_workprice_u_pricestr' THEN Parent.TriggerEvent('ue_wp_u_pricestr') ELSE Parent.TriggerEvent('ue_wp_procode') END IF END IF end event event clicked;call super::clicked;IF row > 0 THEN THIS.SelectRow(0,FALSE) THIS.SetRow(row) THIS.SelectRow(row,TRUE) END IF end event event dwnkey;call super::dwnkey;parent.triggerevent('user_key') end event type cb_addmx_wp from uo_imflatbutton within w_mtrldef_prdpf_padd integer x = 2149 integer y = 2180 integer width = 288 integer height = 88 integer taborder = 30 boolean bringtotop = true boolean enabled = false string text = "增明细" string normalpicname = "mx1.BMP" integer picsize = 16 end type event clicked;call super::clicked;IF Not ins_ifmod_wp THEN RETURN IF rb_1.Checked THEN Parent.TriggerEvent('ue_wp_procode') ELSEIF rb_2.Checked THEN Long li_row,ll_row String ls_mtrlcode ll_row = dw_1.GetRow() IF ll_row <= 0 THEN MessageBox('系统提示','没有正确的物料内容') RETURN END IF ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_row] li_row = dw_3.InsertRow(0) dw_3.Object.u_mtrldef_mtrlcode[li_row] = ls_mtrlcode dw_3.SelectRow(0,False) dw_3.SetRow(li_row) dw_3.ScrollToRow(li_row) dw_3.SelectRow(li_row,True) dw_3.SetColumn ('printid') END IF end event type cb_delmx_wp from uo_imflatbutton within w_mtrldef_prdpf_padd integer x = 2441 integer y = 2180 integer width = 288 integer height = 88 integer taborder = 40 boolean bringtotop = true boolean enabled = false string text = "删明细" string normalpicname = "mx2.BMP" integer picsize = 16 end type event clicked;call super::clicked;IF Not ins_ifmod_wp THEN MessageBox('系统提示','非编辑状态下不可用') RETURN END IF IF MessageBox ("询问","是否确定要删除当前明细记录?",Question!,YesNo! ) = 2 THEN RETURN IF rb_1.Checked THEN IF dw_2.GetRow() = 0 THEN MessageBox('提示','请选择删除的行对象!') RETURN END IF dw_2.DeleteRow (dw_2.GetRow()) ELSEIF rb_2.Checked THEN IF dw_3.GetRow() = 0 THEN MessageBox('提示','请选择删除的行对象!') RETURN END IF dw_3.DeleteRow (dw_3.GetRow()) END IF end event type cb_save_wp from uo_imflatbutton within w_mtrldef_prdpf_padd integer x = 1842 integer y = 2180 integer width = 261 integer height = 88 integer taborder = 40 boolean bringtotop = true boolean enabled = false string text = "保存" string normalpicname = "save.bmp" integer picsize = 16 end type event clicked;call super::clicked;IF Not ins_ifmod_wp THEN MessageBox('系统提示','非编辑状态下不能使用') RETURN END IF Long ll_i,ll_j,ll_row,ll_k,ll_row_find String arg_msg String ls_mtrlcode,ls_procode,ls_mtrlcode_p String ls_wkpname Long ll_swkpid,ll_owkpid ll_j = 0 dw_1.AcceptText() dw_2.AcceptText() ll_row = dw_1.GetRow() IF ll_row <= 0 THEN MessageBox('系统提示','没有正确的物料内容') RETURN END IF ls_mtrlcode_p = dw_1.Object.u_mtrldef_mtrlcode[ll_row] IF rb_1.Checked THEN FOR ll_k = dw_copy.RowCount() To 1 Step -1 ll_row_find = dw_copy.Find("u_mtrldef_mtrlcode = '"+ls_mtrlcode_p + "'", ll_k, dw_copy.RowCount()) IF ll_row_find > 0 THEN dw_copy.DeleteRow(ll_row_find) END IF NEXT dw_2.SetRedraw(False) FOR ll_i = 1 To dw_2.RowCount() ls_procode = dw_2.Object.procode[ll_i] dw_2.Object.u_mtrldef_mtrlcode[ll_i] = ls_mtrlcode_p dw_2.AcceptText() IF dw_copy.Find("u_mtrldef_mtrlcode = '"+ls_mtrlcode_p + "' and procode = '"+ls_procode+"'", 1, dw_copy.RowCount()) > 0 THEN CONTINUE ll_j++ dw_2.RowsCopy (ll_i,ll_i,Primary!,dw_copy,ll_j,Primary!) NEXT dw_2.SetRedraw(True) dw_1.Object.ifmod_wp[ll_row] = 1 dw_1.AcceptText() mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.编辑物料 '+ls_mtrlcode_p+' 工价表 ' ELSEIF rb_2.Checked THEN FOR ll_k = dw_copy_wkp.RowCount() To 1 Step -1 ll_row_find = dw_copy_wkp.Find("u_mtrldef_mtrlcode = '"+ls_mtrlcode_p + "'", ll_k, dw_copy_wkp.RowCount()) IF ll_row_find > 0 THEN dw_copy_wkp.DeleteRow(ll_row_find) END IF NEXT IF wf_check_wkp(arg_msg) = 0 THEN MessageBox('Error',arg_msg) RETURN END IF dw_3.SetRedraw(False) FOR ll_i = 1 To dw_3.RowCount() ls_wkpname = dw_3.Object.wkpname[ll_i] ll_swkpid = dw_3.Object.swkpid[ll_i] ll_owkpid = dw_3.Object.owkpid[ll_i] dw_3.Object.u_mtrldef_mtrlcode[ll_i] = ls_mtrlcode_p dw_3.AcceptText() IF dw_copy_wkp.Find("u_mtrldef_mtrlcode = '"+ls_mtrlcode_p + "' and wkpname = '"+ls_wkpname+"' and swkpid = "+String(ll_swkpid) + " and owkpid = "+String(ll_owkpid), 1, dw_copy_wkp.RowCount()) > 0 THEN CONTINUE ll_j++ dw_3.RowsCopy (ll_i,ll_i,Primary!,dw_copy_wkp,ll_j,Primary!) NEXT dw_3.SetRedraw(True) dw_1.Object.ifmod_wkp[ll_row] = 1 dw_1.AcceptText() mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.编辑物料 '+ls_mtrlcode_p+' 工组流程 ' END IF ins_ifmod_wp = Not ins_ifmod_wp wf_face_wp() end event type cb_edit_wp from uo_imflatbutton within w_mtrldef_prdpf_padd integer x = 1577 integer y = 2180 integer width = 261 integer height = 88 integer taborder = 40 boolean bringtotop = true string text = "修改" string normalpicname = "open.BMP" integer picsize = 16 end type event clicked;call super::clicked;IF ins_ifmod THEN MessageBox('系统提示','正在编辑半成品,不能执行本操作') RETURN END IF Long ll_row IF Not ins_ifmod_wp THEN ll_row = dw_1.GetRow() IF ll_row <= 0 THEN MessageBox('系统提示','没有正确的物料内容') RETURN END IF IF Trim( dw_1.Object.u_mtrldef_mtrlcode[ll_row]) = '' THEN MessageBox('系统提示','请先填写半成品编码') RETURN END IF IF dw_1.Object.u_mtrldef_mtrlorigin[ll_row] <> 0 THEN MessageBox('系统提示','只有自制来源的产品及半成品才能编辑工价表明细或工组流利明细,请检查') RETURN END IF ELSE Parent.TriggerEvent('ue_retrieve_workprice') Parent.TriggerEvent('ue_retrieve_wkp') END IF ins_ifmod_wp = Not ins_ifmod_wp wf_face_wp() end event type dw_copy from datawindow within w_mtrldef_prdpf_padd boolean visible = false integer x = 2784 integer y = 1828 integer width = 773 integer height = 392 integer taborder = 20 boolean bringtotop = true string title = "none" string dataobject = "dw_workpricetable_padd_edit" boolean hscrollbar = true boolean vscrollbar = true boolean hsplitscroll = true boolean livescroll = true borderstyle borderstyle = stylelowered! end type type cb_cmpl_pfklmode from commandbutton within w_mtrldef_prdpf_padd integer x = 2107 integer y = 196 integer width = 315 integer height = 68 integer taborder = 200 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" string text = "计算用料量" end type event clicked;m_Dfc_Control_PopupMenu dmPopupMenu String menustr menustr = "Text=按开料规格~tEvent=ue_cmp_pfklmode" menustr = menustr + "|" + "Text=按部件规格~tEvent=ue_cmp_pfgroupmode" 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 st_arg from statictext within w_mtrldef_prdpf_padd integer x = 2423 integer y = 204 integer width = 201 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 = "÷参数" boolean focusrectangle = false end type type em_arg from editmask within w_mtrldef_prdpf_padd integer x = 2624 integer y = 188 integer width = 494 integer height = 84 integer taborder = 210 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 string text = "1" borderstyle borderstyle = stylelowered! string mask = "###############.00########" end type type cbx_cmp_qty from checkbox within w_mtrldef_prdpf_padd integer x = 2107 integer y = 276 integer width = 631 integer height = 60 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 type cb_re_mtrl from uo_imflatbutton within w_mtrldef_prdpf_padd integer width = 265 integer height = 164 integer taborder = 20 boolean bringtotop = true string text = "选择产品" string normalpicname = "p2.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;IF ins_ifmod_wp THEN MessageBox('系统提示','正在编辑工价表,不能执行本操作') RETURN END IF IF ins_ifmod THEN MessageBox('系统提示','正在编辑半成品,不能执行本操作') RETURN END IF Long ll_i Boolean lb_ifmod = FALSE String ls_mtrlcode,ls_mtrlname,ls_pfcode,arg_msg FOR ll_i = 1 TO dw_1.RowCount() IF dw_1.Object.u_mtrldef_mtrlid[ll_i] = 0 THEN lb_ifmod = TRUE EXIT END IF NEXT IF lb_ifmod THEN IF MessageBox('询问','重新选择产品会导致你当前的修改全部丢失,是否继续?',question!,yesno!) = 2 THEN RETURN END IF 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 = 0 s_ch_tran.c_long = -1 s_ch_tran.f_long = 0 THIS.Enabled = FALSE OpenWithParm(w_mtrldef_edit,s_ch_tran) THIS.Enabled = TRUE s_mtrldef_array s_inscust s_inscust = Message.PowerObjectParm IF UpperBound(s_inscust.mtrlid) = 1 AND s_inscust.mtrlid[1] > 0 THEN IF s_inscust.mtrlorigin[1] = 2 THEN MessageBox('系统提示','目标产品来源不能为采购') RETURN END IF ins_mtrlid_pf = s_inscust.mtrlid[1] ins_mtrlid = ins_mtrlid_pf wf_re_mtrl(1) END IF END IF end event type cbx_pfgroup from checkbox within w_mtrldef_prdpf_padd integer x = 2766 integer y = 276 integer width = 795 integer height = 60 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;Int if_pfgroup IF THIS.Checked THEN if_pfgroup = 1 ELSE if_pfgroup = 0 END IF f_SetProfileString (sys_empid,'w_mtrldef_prdpf_padd', "if_pfgroup", String(if_pfgroup)) end event event constructor;Int if_pfgroup if_pfgroup = Integer(f_ProfileString (sys_empid,'w_mtrldef_prdpf_add', "if_pfgroup", '0')) IF if_pfgroup = 1 THEN THIS.Checked = TRUE ELSE THIS.Checked = FALSE END IF end event type cb_import from uo_imflatbutton within w_mtrldef_prdpf_padd integer x = 727 integer width = 279 integer height = 164 integer taborder = 10 boolean bringtotop = true string text = "Excel导入" string normalpicname = "excel.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 String ls_bar ls_bar = "|" menustr = "" If Integer(f_ProfileString (0,'excel_menu','龙嘉标准物料清单导入格式', '1')) = 1 Then menustr = menustr + "Text=龙嘉标准物料清单导入格式~tEvent=ue_import_xls_3" End If If Integer(f_ProfileString (0,'excel_menu','圆方板式家具物料清单报价明细格式', '1')) = 1 Then If menustr = '' Then ls_bar = '' Else ls_bar = "|" End If menustr = menustr + ls_bar + "Text=圆方板式家具物料清单报价明细格式~tEvent=ue_import_xls_2" End If If Integer(f_ProfileString (0,'excel_menu','圆方板式家具全订制板式家具包件产品格式', '1')) = 1 Then If menustr = '' Then ls_bar = '' Else ls_bar = "|" End If menustr = menustr + ls_bar + "Text=圆方板式家具全订制板式家具包件产品格式~tEvent=ue_import_xls_4" End If If Integer(f_ProfileString (0,'excel_menu','圆方板式家具包件格式', '1')) = 1 Then If menustr = '' Then ls_bar = '' Else ls_bar = "|" End If If menustr <> '' Then menustr = menustr + ls_bar + "Text=-" End If menustr = menustr + ls_bar + "Text=圆方板式家具包件格式~tEvent=ue_import_xls_5" //YS End If If Integer(f_ProfileString (0,'excel_menu','圆方板式家具包件产品格式', '1')) = 1 Then If menustr = '' Then ls_bar = '' Else ls_bar = "|" End If If menustr <> '' Then menustr = menustr + ls_bar + "Text=-" End If menustr = menustr + ls_bar + "Text=圆方板式家具包件产品格式~tEvent=ue_import_xls_6" //HY End If If Integer(f_ProfileString (0,'excel_menu','圆方板式家具包件产品格式2', '1')) = 1 Then If menustr = '' Then ls_bar = '' Else ls_bar = "|" End If menustr = menustr + ls_bar + "Text=圆方板式家具包件产品格式2~tEvent=ue_import_xls_7" //HY End If 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_1 from uo_imflatbutton within w_mtrldef_prdpf_padd integer x = 1344 integer width = 297 integer height = 164 integer taborder = 20 boolean bringtotop = true string text = "选物料类别" string normalpicname = "p2.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;IF ins_ifmod_wp THEN MessageBox('系统提示','正在编辑工价表,不能执行本操作') RETURN END IF IF ins_ifmod THEN MessageBox('系统提示','正在编辑半成品,不能执行本操作') RETURN END IF Long row Long ll_mtrlid row = dw_1.GetRow() IF row <= 0 THEN MessageBox('系统提示','请选择行') RETURN END IF IF dw_1.Object.ifnewadd[row] = 0 THEN MessageBox('系统提示','只有新建的半成品资料才能重新选择类别') RETURN END IF //ll_mtrlid = dw_1.Object.u_prdpf_sonmtrlid[row] // //IF ll_mtrlid > 0 THEN // MessageBox('系统提示','只有没有记录的资料才能选择物料类别') // RETURN //END IF Open(w_mtrltype_ch) s_mtrltype s_type s_type = Message.PowerObjectParm IF s_type.mtrltypeid > 0 THEN //正常返回值则可以取以下值 dw_1.SetRedraw(False) dw_1.Object.u_mtrldef_mtrltypeid[row] = s_type.mtrltypeid dw_1.SetRedraw(True) END IF end event type cb_moban from uo_imflatbutton within w_mtrldef_prdpf_padd integer x = 1911 integer width = 347 integer height = 164 integer taborder = 10 boolean bringtotop = true boolean enabled = false string text = "引用模板编码" string normalpicname = "open.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;IF Not ins_ifmod THEN MessageBox('系统提示','非编辑半成品状态下,不能执行本操作') RETURN END IF Long ll_row Long ll_mtrlid dw_1.AcceptText() ll_row = dw_1.GetRow() IF ll_row <= 0 THEN MessageBox('系统提示','请选择要编辑的半成品') RETURN END IF 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 = 0 s_ch_tran.c_long = -1 s_ch_tran.f_long = 0 This.Enabled = False OpenWithParm(w_mtrldef_edit,s_ch_tran) This.Enabled = True s_mtrldef_array s_inscust s_inscust = Message.PowerObjectParm IF UpperBound(s_inscust.mtrlid) = 1 And s_inscust.mtrlid[1] > 0 THEN IF s_inscust.mtrlorigin[1] = 2 THEN MessageBox('系统提示','目标产品来源不能为采购') RETURN END IF dw_1.Object.u_mtrldef_unit[ll_row] = s_inscust.unit[1] dw_1.Object.u_mtrldef_mtrltypeid[ll_row] = s_inscust.mtrltypeid[1] dw_1.Object.u_mtrldef_mtrlsectype[ll_row] = s_inscust.mtrlsectype[1] dw_1.Object.u_mtrldef_zxmtrlmode[ll_row] = s_inscust.zxmtrlmode[1] dw_1.Object.u_mtrldef_usermtrlmode[ll_row] = s_inscust.usermtrlmode[1] dw_1.Object.u_mtrldef_piccode[ll_row] = s_inscust.piccode[1] dw_1.Object.u_mtrldef_ifselforder[ll_row] = s_inscust.ifselforder[1] dw_1.Object.u_mtrldef_ordertype[ll_row] = s_inscust.ordertype[1] dw_1.Object.u_mtrldef_scid[ll_row] = s_inscust.scid[1] dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row] = s_inscust.dftwrkgrpid[1] dw_1.Object.mb_mtrlcode[ll_row] = s_inscust.mtrlcode[1] dw_1.Object.u_mtrldef_orderdays[ll_row] = s_inscust.orderdays[1] dw_1.Object.u_mtrldef_buydays[ll_row] = s_inscust.buydays[1] dw_1.Object.u_mtrldef_wfjgdays[ll_row] = s_inscust.wfjgdays[1] dw_1.Object.mb_mtrlid[ll_row] = s_inscust.mtrlid[1] PARENT.TriggerEvent('ue_retrieve_workprice') PARENT.TriggerEvent('ue_retrieve_wkp') END IF END IF end event type cb_change from uo_imflatbutton within w_mtrldef_prdpf_padd integer x = 2875 integer width = 201 integer height = 164 integer taborder = 30 boolean bringtotop = true string text = "换料" string normalpicname = "update2.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;IF ins_ifmod_wp THEN MessageBox('系统提示','正在编辑工价表,不能执行本操作') RETURN END IF IF ins_ifmod THEN MessageBox('系统提示','正在编辑半成品,不能执行本操作') RETURN END IF Long ll_i String ls_mtrlcode,ls_mtrlname,ls_pfcode,arg_msg Long ll_row,ll_row_add Long ll_pmtrlid,ll_lp Long ll_mtrlid Long ll_mtrlorigin Long ll_mtrlid_pf String arg_msg_str decimal ld_sonscale,ld_pfgroupqty ll_row = dw_1.GetRow() IF ll_row > 0 THEN ll_pmtrlid = dw_1.Object.pmtrlid[ll_row] ll_lp = dw_1.Object.lp[ll_row] ll_mtrlid = dw_1.Object.u_mtrldef_mtrlid[ll_row] ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[ll_row] ll_mtrlorigin = dw_1.Object.u_mtrldef_mtrlorigin[ll_row] ld_pfgroupqty = dw_1.Object.u_prdpf_pfgroupqty[ll_row] ld_sonscale = dw_1.Object.u_prdpf_sonscale[ll_row] ELSE ll_pmtrlid = ins_mtrlid ll_lp = 0 ld_pfgroupqty = 1 ld_sonscale = 1 END IF IF ll_lp = 0 THEN MessageBox('系统提示','主产品不能更换') RETURN END IF //IF ll_mtrlorigin <> 2 THEN // MessageBox('系统提示','只能更换采购来源的材料,请检查') // RETURN //END IF IF ll_mtrlorigin = 2 THEN //换原料 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 = 2 This.Enabled = False OpenWithParm(w_mtrldef_edit,s_ch_tran) This.Enabled = True s_mtrldef_array s_inscust s_inscust = Message.PowerObjectParm IF UpperBound(s_inscust.mtrlid) <> 1 THEN RETURN IF s_inscust.mtrlid[1] = 0 THEN RETURN ll_mtrlid = s_inscust.mtrlid[1] IF s_inscust.Mtrlorigin[1] <> 2 THEN MessageBox('系统提示','只能选择采购来源的物料') RETURN END IF IF ll_mtrlid > 0 THEN ls_pfcode = f_get_dft_pf(ll_mtrlid) dw_1.SetRedraw(False) dw_1.Object.u_mtrldef_mtrlcode[ll_row] = s_inscust.mtrlcode[1] dw_1.Object.u_mtrldef_mtrlprp[ll_row] = s_inscust.mtrlprp[1] dw_1.Object.u_mtrldef_mtrlname[ll_row] = s_inscust.mtrlname[1] dw_1.Object.u_mtrldef_unit[ll_row] = s_inscust.unit[1] dw_1.Object.u_mtrldef_mtrlmode[ll_row] = s_inscust.mtrlmode[1] dw_1.Object.u_mtrldef_mtrlsectype[ll_row] = s_inscust.mtrlsectype[1] dw_1.Object.u_mtrldef_zxmtrlmode[ll_row] = s_inscust.zxmtrlmode[1] dw_1.Object.u_mtrldef_statusflag[ll_row] = s_inscust.statusflag[1] dw_1.Object.u_mtrldef_statustype[ll_row] = s_inscust.statustype[1] dw_1.Object.u_mtrldef_woodcodeflag[ll_row] = s_inscust.woodcodeflag[1] dw_1.Object.u_mtrldef_woodcodetype[ll_row] = s_inscust.woodcodetype[1] dw_1.Object.u_mtrldef_pcodeflag[ll_row] = s_inscust.pcodeflag[1] dw_1.Object.u_mtrldef_pcodetype[ll_row] = s_inscust.pcodetype[1] dw_1.Object.u_mtrldef_usermtrlmode[ll_row] = s_inscust.usermtrlmode[1] dw_1.Object.u_mtrldef_mtrlorigin[ll_row] = s_inscust.Mtrlorigin[1] dw_1.Object.u_mtrldef_mtrlid[ll_row] = ll_mtrlid dw_1.Object.u_prdpf_sonmtrlid[ll_row] = ll_mtrlid dw_1.Object.u_prdpf_sonpfcode[ll_row] = f_get_dft_pf(ll_mtrlid) dw_1.Object.u_mtrldef_orderdays[ll_row] = s_inscust.orderdays[1] dw_1.Object.u_mtrldef_buydays[ll_row] = s_inscust.buydays[1] dw_1.Object.u_mtrldef_wfjgdays[ll_row] = s_inscust.wfjgdays[1] dw_1.Object.u_mtrldef_dftwrkgrpid[ll_row] = s_inscust.dftwrkgrpid[1] dw_1.Object.u_mtrldef_scid[ll_row] = s_inscust.scid[1] dw_1.Object.u_mtrldef_mtrltypeid[ll_row] = s_inscust.mtrltypeid[1] dw_1.Object.u_prdpf_pfgroup[ll_row] = s_inscust.mtrlname[1] dw_1.Object.u_prdpf_pfgroupmode[ll_row] = s_inscust.mtrlmode[1] dw_1.SetRedraw(True) ELSE RETURN END IF END IF ELSE //换半成品 dw_1.Object.ifdel[ll_row] = 1 ll_lp = dw_1.Object.lp[ll_row] FOR ll_i = ll_row + 1 To dw_1.RowCount() IF dw_1.Object.lp[ll_i] <= ll_lp THEN EXIT dw_1.Object.ifdel[ll_i] = 1 NEXT IF ll_row = dw_1.RowCount() THEN ll_row_add = ll_row ELSE FOR ll_i = ll_row + 1 To dw_1.RowCount() IF dw_1.Object.lp[ll_i] <= ll_lp THEN ll_row_add = ll_i - 1 EXIT END IF NEXT IF ll_row_add = 0 THEN ll_row_add = dw_1.RowCount() END IF END IF IF Not IsValid(w_mtrldef_edit) THEN s_edit_index_tran s_ch_tran_add //传递参数使用 s_ch_tran_add.if_retrieve_all = False //是否一次retrieve所有行 s_ch_tran_add.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式 s_ch_tran_add.arg_pkid = 0 //目标定位pkid (备用) s_ch_tran_add.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选 s_ch_tran_add.if_select_all = false s_ch_tran_add.b_long = 0 s_ch_tran_add.c_long = -1 s_ch_tran_add.f_long = 1 This.Enabled = False OpenWithParm(w_mtrldef_edit,s_ch_tran_add) This.Enabled = True s_mtrldef_array s_inscust_add s_inscust_add = Message.PowerObjectParm IF UpperBound(s_inscust_add.mtrlid) <> 1 THEN RETURN IF s_inscust_add.mtrlid[1] = 0 THEN RETURN dw_1.SetRedraw(False) FOR ll_i = 1 To UpperBound(s_inscust_add.mtrlid) ll_mtrlid_pf = s_inscust_add.mtrlid[ll_i] IF ll_mtrlid_pf > 0 THEN ls_pfcode = f_get_dft_pf(ll_mtrlid_pf) IF wf_addmx_next(ll_mtrlid_pf,ls_pfcode,ll_pmtrlid,ll_lp ,ll_row_add + 1 ,arg_msg,ld_sonscale,ld_pfgroupqty) = 0 THEN arg_msg_str = arg_msg_str + arg_msg + '~r~n' END IF // ins_cnt++ // IF ls_mtrlcode <> '' THEN // mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.对 '+ls_mtrlcode+' 增加下级物料 '+s_inscust_add.mtrlcode[ll_i] // ELSE // mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.增加物料 '+s_inscust_add.mtrlcode[ll_i] // END IF END IF NEXT dw_1.AcceptText() FOR ll_i = dw_1.RowCount() To 1 Step -1 IF dw_1.Object.ifdel[ll_i] = 1 THEN dw_1.DeleteRow(ll_i) END IF NEXT dw_1.SetRedraw(True) IF Trim(arg_msg_str) <> '' THEN MessageBox('Error',arg_msg_str) END IF END IF END IF ins_cnt++ IF ls_mtrlcode <> '' THEN IF ll_mtrlorigin = 2 THEN mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.更新原料,原:'+ls_mtrlcode+',新:'+s_inscust.mtrlcode[1] ELSE mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.更新半成品,原:'+ls_mtrlcode+',新:'+s_inscust_add.mtrlcode[1] END IF ELSE mle_log.Text = mle_log.Text + '~r~n' + String(ins_cnt)+'.增加物料 '+s_inscust.mtrlcode[1] END IF end event type cb_print from uo_imflatbutton within w_mtrldef_prdpf_padd integer x = 5170 integer width = 192 integer height = 164 integer taborder = 40 boolean bringtotop = true string text = "打印&P" string normalpicname = "print.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_viewprint_gy" menustr=menustr + "|" + "Text=-" menustr=menustr + "|" + "Text=产品物料清单[用料]~tEvent=ue_viewprint_yl" menustr=menustr + "|" + "Text=-" menustr=menustr + "|" + "Text=产品物料清单[树型结构]~tEvent=ue_viewprint_tree" menustr=menustr + "|" + "Text=-" menustr=menustr + "|" + "Text=产品物料清单[车间]~tEvent=ue_viewprint_yl_wrk" menustr=menustr + "|" + "Text=-" menustr=menustr + "|" + "Text=产品加工说明书~tEvent=ue_viewprint_dy" 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 cbx_save_close from checkbox within w_mtrldef_prdpf_padd integer x = 3173 integer y = 196 integer width = 576 integer height = 60 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;int if_close IF THIS.Checked THEN if_close = 1 ELSE if_close = 0 END IF f_SetProfileString (sys_empid,'w_mtrldef_prdpf_padd', "if_close", String(if_close)) end event event constructor;int if_close if_close = Integer(f_ProfileString (sys_empid,'w_mtrldef_prdpf_padd', "if_close", '0')) IF if_close = 0 THEN This.Checked = False ELSE This.Checked = True END IF end event type rb_1 from radiobutton within w_mtrldef_prdpf_padd integer x = 1582 integer y = 1304 integer width = 293 integer height = 60 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 = "工价表" boolean checked = true end type event clicked;dw_2.visible = true dw_3.visible = false cb_templet_ch.visible = true end event type rb_2 from radiobutton within w_mtrldef_prdpf_padd integer x = 1929 integer y = 1304 integer width = 334 integer height = 60 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;dw_2.visible = false dw_3.visible = true cb_templet_ch.visible = false end event type dw_3 from u_dw_rbtnfilter within w_mtrldef_prdpf_padd boolean visible = false integer x = 2679 integer y = 1432 integer height = 568 integer taborder = 20 boolean bringtotop = true string dataobject = "dw_mtrl_wkp_padd_edit" boolean hscrollbar = true boolean vscrollbar = true boolean hsplitscroll = true end type event clicked;call super::clicked;IF row > 0 THEN THIS.SelectRow(0,FALSE) THIS.SetRow(row) THIS.SelectRow(row,TRUE) END IF IF row > 0 THEN IF dwo.Name = 'gydscrplen' THEN Parent.TriggerEvent('ue_gydscrp') END IF END IF end event event rowfocuschanged;call super::rowfocuschanged;IF currentrow > 0 THEN THIS.SelectRow(0,FALSE) THIS.SetRow(currentrow) THIS.SelectRow(currentrow,TRUE) END IF end event event doubleclicked;call super::doubleclicked;IF NOT ins_ifmod_wp THEN RETURN IF row <= 0 THEN RETURN IF dwo.Name = 'workgroupid' THEN Long ll_wrkgrpid ll_wrkgrpid = dw_3.Object.swkpid[row] OpenWithParm(w_workgrop_ch_withwrkid,ll_wrkgrpid) s_workgroup s_ch s_ch = Message.PowerObjectParm IF IsNull(s_ch.wrkgrpid) THEN s_ch.wrkgrpid = 0 IF s_ch.wrkgrpid = 0 THEN RETURN dw_3.Object.workgroupid[row] = s_ch.wrkgrpid END IF end event event dwnkey;call super::dwnkey;PARENT.TriggerEvent('user_key') String ls_procode,ls_proname,ls_techlevel,ls_worklevel Long ls_proid Dec ls_workhour Long child_row Long ls_null SetNull(ls_null) IF dw_edit_mode THEN IF KeyDown(Keydownarrow!) THEN Long li_row IF dw_3.GetRow() = dw_3.RowCount() THEN PARENT.TriggerEvent("insert_childrow") END IF ELSE IF Key = KeyEnter! THEN IF dw_3.GetRow() = dw_3.RowCount() AND dw_3.GetColumnName() = 'dscrp' THEN PARENT.TriggerEvent("ue_addmx") dw_3.SetColumn('swkpid') ELSE keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab RETURN 1 END IF END IF END IF END IF end event type dw_copy_wkp from datawindow within w_mtrldef_prdpf_padd boolean visible = false integer x = 2679 integer y = 764 integer width = 1243 integer height = 400 integer taborder = 30 boolean bringtotop = true string title = "none" string dataobject = "dw_mtrl_wkp_padd_edit" boolean hscrollbar = true boolean vscrollbar = true boolean livescroll = true borderstyle borderstyle = stylelowered! end type type dw_copy_main from datawindow within w_mtrldef_prdpf_padd boolean visible = false integer x = 2235 integer y = 964 integer width = 686 integer height = 400 integer taborder = 40 boolean bringtotop = true string title = "none" string dataobject = "dw_mtrldef_prdpf_padd" boolean livescroll = true borderstyle borderstyle = stylelowered! end type type cb_copy_paste from uo_imflatbutton within w_mtrldef_prdpf_padd integer x = 3282 integer width = 247 integer height = 164 integer taborder = 30 boolean bringtotop = true string text = "复制粘贴" string normalpicname = "COPY.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_copy_mx" menustr = menustr + "|" + "Text=复制物料清单(含本级)~tEvent=ue_copy_mx_this" menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=粘贴到下级~tEvent=ue_paste_mx" menustr = menustr + "|" + "Text=粘贴到同级~tEvent=ue_paste_mx_same" 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_bom from uo_imflatbutton within w_mtrldef_prdpf_padd integer x = 2414 integer width = 270 integer height = 164 integer taborder = 20 boolean bringtotop = true string text = "物料清单" string normalpicname = "update2.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;IF ins_ifmod THEN MessageBox('系统提示','编辑状态下不能使用') RETURN END IF IF ins_ifmod_wp THEN MessageBox('系统提示','编辑明细状态下不能使用') RETURN END IF Long ll_row,ll_i,ll_lp Long ll_mtrlid String ls_pfcode,arg_msg ll_row = dw_1.GetRow() IF ll_row <= 0 THEN MessageBox('系统提示','请先选择物料') RETURN END IF IF dw_1.Object.lp[ll_row] = 0 THEN MessageBox('系统提示','主产品不能使用本功能') RETURN END IF IF dw_1.Object.u_mtrldef_mtrlorigin[ll_row] <> 0 THEN MessageBox('系统提示','只有自制来源的资料才能执行本功能') RETURN END IF IF dw_1.Object.ifnewadd[ll_row] <> 0 THEN MessageBox('系统提示','新建的资料不能执行本功能') RETURN END IF ll_lp = dw_1.Object.lp[ll_row] ll_mtrlid = dw_1.Object.u_prdpf_sonmtrlid[ll_row] ls_pfcode = dw_1.Object.u_prdpf_sonpfcode[ll_row] s_edit_index_tran s_ch_tran_bom s_ch_tran_bom.if_retrieve_all = False //是否一次RETRIEVE所有行 s_ch_tran_bom.work_mode = 0 //0-单纯编辑模式 1-选择\编辑模式 s_ch_tran_bom.arg_pkid = 0 //目标定位PKID (备用) s_ch_tran_bom.arg_string_code = dw_1.Object.u_mtrldef_mtrlcode[ll_row] s_ch_tran_bom.if_select_all = True OpenWithParm(w_mtrl_structure_response,s_ch_tran_bom) dw_1.SetRedraw(False) FOR ll_i = ll_row + 1 To dw_1.RowCount() IF dw_1.Object.lp[ll_i] <= ll_lp THEN EXIT dw_1.Object.ifdel[ll_i] = 1 NEXT dw_1.AcceptText() FOR ll_i = dw_1.RowCount() To 1 Step -1 IF dw_1.Object.ifdel[ll_i] = 1 THEN dw_1.DeleteRow(ll_i) END IF NEXT dw_1.SetRedraw(True) IF wf_addmx_row(ll_mtrlid,ls_pfcode,ll_lp + 1,ll_row + 1 ,1,arg_msg) = 0 THEN MessageBox('Error',arg_msg) RETURN END IF end event type cb_tmp_save from uo_imflatbutton within w_mtrldef_prdpf_padd integer x = 4544 integer width = 165 integer height = 164 integer taborder = 40 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;IF ins_ifmod_wp THEN MessageBox('系统提示','正在编辑工价表,不能执行本操作') RETURN END IF IF ins_ifmod THEN MessageBox('系统提示','正在编辑半成品,不能执行本操作') RETURN END IF IF ins_mtrlid = 0 THEN MessageBox('系统提示','请先选择主产品') RETURN END IF String Pathname_dw1,Pathname_dw2,Pathname_dw3 Blob ls_filedata_dw1,ls_filedata_dw2,ls_filedata_dw3 String errmsg,ls_dscrp,ls_msg_log Long ll_printid Open(w_prdpf_temp_save_dscrp) s_edit_index_tran s_ch_dscrp s_ch_dscrp = Message.PowerObjectParm IF s_ch_dscrp.c_long = 0 THEN RETURN ls_dscrp = s_ch_dscrp.c_string ls_msg_log = mle_log.Text Pathname_dw1 = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ins_mtrlcode+'_dw_1.xml' IF IsNull(Pathname_dw1) Or Len(Trim(Pathname_dw1)) < 3 THEN RETURN Pathname_dw2 = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ins_mtrlcode+'_dw_2.xml' IF IsNull(Pathname_dw2) Or Len(Trim(Pathname_dw2)) < 3 THEN RETURN Pathname_dw3 = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ins_mtrlcode+'_dw_3.xml' IF IsNull(Pathname_dw3) Or Len(Trim(Pathname_dw3)) < 3 THEN RETURN dw_1.SaveAs(Pathname_dw1, XML!, False) dw_copy.SaveAs(Pathname_dw2, XML!, False) dw_copy_wkp.SaveAs(Pathname_dw3, XML!, False) IF f_filetoblob(Pathname_dw1,ls_filedata_dw1,errmsg) = 0 THEN MessageBox('系统提示',errmsg) GOTO _del END IF IF f_filetoblob(Pathname_dw2,ls_filedata_dw2,errmsg) = 0 THEN MessageBox('系统提示',errmsg) GOTO _del END IF IF f_filetoblob(Pathname_dw3,ls_filedata_dw3,errmsg) = 0 THEN MessageBox('系统提示',errmsg) GOTO _del END IF SELECT max(printid) INTO :ll_printid FROM u_prdpf_temp_save Where mtrlid = :ins_mtrlid; IF sqlca.SQLCode <> 0 THEN ll_printid = 0 IF IsNull(ll_printid) THEN ll_printid = 0 ll_printid++ INSERT INTO u_prdpf_temp_save (mtrlid, printid, msg_log, opemp, opdate, dscrp) VALUES (:ins_mtrlid, :ll_printid, :ls_msg_log, :publ_operator, getdate(), :ls_dscrp); IF sqlca.SQLCode <> 0 THEN ROLLBACK; MessageBox('Error','保存信息失败,'+sqlca.SQLErrText) GOTO _del END IF UpdateBlob u_prdpf_temp_save Set dw_main = :ls_filedata_dw1 Where mtrlid = :ins_mtrlid And printid = :ll_printid; IF sqlca.SQLCode <> 0 THEN ROLLBACK; MessageBox('Error','保存临时信息(主表)失败,'+sqlca.SQLErrText) GOTO _del END IF UpdateBlob u_prdpf_temp_save Set dw_workprice = :ls_filedata_dw2 Where mtrlid = :ins_mtrlid And printid = :ll_printid; IF sqlca.SQLCode <> 0 THEN ROLLBACK; MessageBox('Error','保存临时信息(工价表)失败,'+sqlca.SQLErrText) GOTO _del END IF UpdateBlob u_prdpf_temp_save Set dw_wkp = :ls_filedata_dw3 Where mtrlid = :ins_mtrlid And printid = :ll_printid; IF sqlca.SQLCode <> 0 THEN ROLLBACK; MessageBox('Error','保存临时信息(工组流程)失败,'+sqlca.SQLErrText) GOTO _del END IF commit; messagebox('系统提示','存档成功!') _del: FileDelete(Pathname_dw1) FileDelete(Pathname_dw2) FileDelete(Pathname_dw3) end event type cb_tmp_read from uo_imflatbutton within w_mtrldef_prdpf_padd integer x = 4704 integer width = 165 integer height = 164 integer taborder = 40 boolean bringtotop = true string text = "读档" string normalpicname = "OPEN.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;IF ins_ifmod_wp THEN MessageBox('系统提示','正在编辑工价表,不能执行本操作') RETURN END IF IF ins_ifmod THEN MessageBox('系统提示','正在编辑半成品,不能执行本操作') RETURN END IF Long ll_mtrlid_parm IF ins_if_saletask = 1 THEN IF ins_mtrlid = 0 THEN MessageBox('系统提示','请先选择主产品') RETURN END IF ll_mtrlid_parm = ins_mtrlid ELSE ll_mtrlid_parm = -1 END IF IF ins_mtrlid > 0 THEN IF MessageBox('询问','读取存档将会覆盖你现有的修改,是否继续?',question!,yesno!) = 2 THEN RETURN END IF OpenWithParm(w_prdpf_temp_save_ch,ll_mtrlid_parm) Long ll_printid,ll_mtrlid String ls_mtrlcode,ls_mtrlname s_edit_index_tran s_ch_tran s_ch_tran = Message.PowerObjectParm ll_mtrlid = s_ch_tran.b_long ll_printid = s_ch_tran.c_long IF ll_printid = 0 THEN RETURN IF ll_mtrlid = 0 THEN RETURN IF ins_if_saletask = 0 THEN ins_mtrlid = ll_mtrlid ins_mtrlid_pf = ll_mtrlid ins_pfcode = f_get_dft_pf(ins_mtrlid_pf) IF ins_pfcode = '' THEN MessageBox('系统提示','目标产品未设置默认清单,请检查') RETURN END IF SELECT mtrlcode,mtrlname INTO :ls_mtrlcode,:ls_mtrlname FROM u_mtrldef Where mtrlid = :ll_mtrlid; IF sqlca.SQLCode <> 0 THEN st_mtrl.Text = '查询物料信息失败' st_mtrl_pf.Text = '查询物料信息失败' ELSE st_mtrl.Text = '['+ls_mtrlcode+']'+ls_mtrlname + ' | ' + ins_pfcode st_mtrl_pf.Text = '['+ls_mtrlcode+']'+ls_mtrlname ins_mtrlcode = ls_mtrlcode END IF END IF String ls_msg_log Blob lb_dw_1,lb_dw_2,lb_dw_3 String Pathname_dw1,Pathname_dw2,Pathname_dw3 String arg_msg SELECT msg_log INTO :ls_msg_log FROM u_prdpf_temp_save WHERE mtrlid = :ins_mtrlid And printid = :ll_printid; IF sqlca.SQLCode <> 0 THEN MessageBox('Error','查询临时保存信息(操作记录)失败,'+sqlca.SQLErrText) RETURN END IF SelectBlob dw_main Into :lb_dw_1 From u_prdpf_temp_save Where mtrlid = :ins_mtrlid And printid = :ll_printid; IF sqlca.SQLCode <> 0 THEN MessageBox('Error','查询临时保存信息(主数据窗口)失败,'+sqlca.SQLErrText) RETURN END IF SelectBlob dw_workprice Into :lb_dw_2 From u_prdpf_temp_save Where mtrlid = :ins_mtrlid And printid = :ll_printid; IF sqlca.SQLCode <> 0 THEN MessageBox('Error','查询临时保存信息(工价表数据窗口)失败,'+sqlca.SQLErrText) RETURN END IF SelectBlob dw_wkp Into :lb_dw_3 From u_prdpf_temp_save Where mtrlid = :ins_mtrlid And printid = :ll_printid; IF sqlca.SQLCode <> 0 THEN MessageBox('Error','查询临时保存信息(工组流程数据窗口)失败,'+sqlca.SQLErrText) RETURN END IF Pathname_dw1 = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ins_mtrlcode+'_dw_1_down.xml' IF IsNull(Pathname_dw1) Or Len(Trim(Pathname_dw1)) < 3 THEN RETURN Pathname_dw2 = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ins_mtrlcode+'_dw_2_down.xml' IF IsNull(Pathname_dw2) Or Len(Trim(Pathname_dw2)) < 3 THEN RETURN Pathname_dw3 = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ins_mtrlcode+'_dw_3_down.xml' IF IsNull(Pathname_dw3) Or Len(Trim(Pathname_dw3)) < 3 THEN RETURN IF f_blobtofile(Pathname_dw1,lb_dw_1,arg_msg) = 0 THEN MessageBox('Error',arg_msg) GOTO _del END IF IF f_blobtofile(Pathname_dw2,lb_dw_2,arg_msg) = 0 THEN MessageBox('Error',arg_msg) GOTO _del END IF IF f_blobtofile(Pathname_dw3,lb_dw_3,arg_msg) = 0 THEN MessageBox('Error',arg_msg) GOTO _del END IF dw_1.Reset() dw_copy.Reset() dw_copy_wkp.Reset() dw_1.ImportFile(Pathname_dw1) dw_copy.ImportFile(Pathname_dw2) dw_copy_wkp.ImportFile(Pathname_dw3) mle_log.Text = ls_msg_log IF dw_1.RowCount() > 0 THEN dw_1.SelectRow(0,False) dw_1.SetRow(1) dw_1.SelectRow(1,True) Parent.TriggerEvent('ue_retrieve_workprice') Parent.TriggerEvent('ue_retrieve_wkp') Parent.TriggerEvent('ue_allowedit') END IF _del: FileDelete(Pathname_dw1) FileDelete(Pathname_dw2) FileDelete(Pathname_dw3) end event type cb_templet_ch from uo_imflatbutton within w_mtrldef_prdpf_padd integer x = 2752 integer y = 2180 integer width = 466 integer height = 88 integer taborder = 40 boolean bringtotop = true boolean enabled = false string text = "引用工价模板" string normalpicname = "p2.BMP" integer picsize = 16 end type event clicked;call super::clicked;parent.triggerevent('ue_templet_ch') end event type dw_buffer from datawindow within w_mtrldef_prdpf_padd boolean visible = false integer x = 2505 integer y = 1312 integer width = 1984 integer height = 400 integer taborder = 50 boolean bringtotop = true string title = "none" string dataobject = "dw_mtrldef_prdpf_padd" boolean hscrollbar = true boolean vscrollbar = true boolean livescroll = true borderstyle borderstyle = stylelowered! end type type cb_pack from uo_imflatbutton within w_mtrldef_prdpf_padd integer x = 3557 integer width = 247 integer height = 164 integer taborder = 40 boolean bringtotop = true string text = "分包件" string normalpicname = "update2.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;dw_1.AcceptText() If dw_1.Find('ch = 1',2,dw_1.RowCount()) = 0 Then MessageBox('系统提示','请先勾选要分包件的明细行') Return End If Long ll_i,ll_j,ll_k String ls_mtrlcode_pack,arg_msg Long ll_row_p,ll_row_insert Long ll_mtrlid Int li_ifset_qty Long ll_lp_min Decimal ld_rate decimal ld_qty_pack dw_buffer.Reset() For ll_i = dw_1.RowCount() To 2 Step -1 If dw_1.Object.ch[ll_i] = 1 Then dw_1.RowsCopy(ll_i,ll_i,Primary!, dw_buffer, 1, Primary!) End If Next s_edit_index_tran s_inscust_pack,s_return s_inscust_pack.b_long = ins_mtrlid s_inscust_pack.b_string = ins_pfcode s_inscust_pack.arg_dw = dw_buffer OpenWithParm(w_pack_ch,s_inscust_pack) s_return = Message.PowerObjectParm ls_mtrlcode_pack = s_return.c_string li_ifset_qty = s_return.c_long ld_qty_pack = s_return.c_decimal If ls_mtrlcode_pack = '-1' Then Return ll_row_p = dw_1.Find('u_mtrldef_mtrlcode = "'+ls_mtrlcode_pack+'"',2,dw_1.RowCount()) If ll_row_p = 0 Then Select mtrlid Into :ll_mtrlid From u_mtrldef Where mtrlcode = :ls_mtrlcode_pack; If sqlca.SQLCode <> 0 Then MessageBox('Error','查询包件 '+ls_mtrlcode_pack+' 信息失败,可能是包件编码未建立,请检查') Return End If wf_add_row(ll_mtrlid,ins_pfcode,1,ld_qty_pack,arg_msg,ll_row_p) dw_1.Object.u_prdpf_pfgroupqty[ll_row_p] = ld_qty_pack dw_1.Object.u_prdpf_dipztype[ll_row_p] = 3 dw_1.Object.u_prdpf_ifover[ll_row_p] = 1 ll_row_insert = ll_row_p + 1 Else For ll_i = ll_row_p + 1 To dw_1.RowCount() If dw_1.Object.lp[ll_i] = 1 Then ll_row_insert = ll_i Exit End If Next If ll_row_insert = 0 Then ll_row_insert = dw_1.RowCount() + 1 End If End If dw_buffer.AcceptText() ll_lp_min = 999 For ll_i = 1 To dw_buffer.RowCount() If dw_buffer.Object.lp[ll_i] < ll_lp_min Then ll_lp_min = dw_buffer.Object.lp[ll_i] End If Next If li_ifset_qty = 1 Then For ll_i = 1 To UpperBound(s_return.arr_string) If s_return.arr_dec[ll_i] = s_return.arr_dec2[ll_i] Then Continue //没有改数量 For ll_j = 1 To dw_buffer.RowCount() If ll_lp_min = dw_buffer.Object.lp[ll_j] And & s_return.arr_string[ll_i] = dw_buffer.Object.u_prdpf_promode[ll_j] And & s_return.arr_string2[ll_i] = dw_buffer.Object.u_prdpf_pfgroup[ll_j] And & s_return.arr_string3[ll_i] = dw_buffer.Object.u_mtrldef_mtrlcode[ll_j] Then ld_rate = s_return.arr_dec[ll_i] / s_return.arr_dec2[ll_i] dw_buffer.Object.u_prdpf_pfgroupqty[ll_j] = s_return.arr_dec[ll_i] dw_buffer.Object.u_prdpf_sonscale[ll_j] = Round(dw_buffer.Object.u_prdpf_sonscale[ll_j] * ld_rate,sys_option_produce_dec) For ll_k = ll_j + 1 To dw_buffer.RowCount() If dw_buffer.Object.lp[ll_k] <= dw_buffer.Object.lp[ll_j] Then ll_j = ll_k - 1 Exit end if dw_buffer.Object.u_prdpf_pfgroupqty[ll_k] = Round(dw_buffer.Object.u_prdpf_pfgroupqty[ll_k] * ld_rate,sys_option_produce_dec) dw_buffer.Object.u_prdpf_sonscale[ll_k] = Round(dw_buffer.Object.u_prdpf_sonscale[ll_k] * ld_rate,sys_option_produce_dec) dw_buffer.Object.u_prdpf_sonscale_ori[ll_k] = Round(dw_buffer.Object.u_prdpf_sonscale_ori[ll_k] * ld_rate,sys_option_produce_dec) Next End If Next Next End If For ll_i = 1 To dw_buffer.RowCount() dw_buffer.Object.ch[ll_i] = 0 dw_buffer.Object.lp[ll_i] = dw_buffer.Object.lp[ll_i] + ( 2 - ll_lp_min) Next dw_buffer.RowsCopy(1,dw_buffer.RowCount(),Primary!, dw_1, ll_row_insert, Primary!) dw_1.SetRedraw(False) If li_ifset_qty = 1 Then For ll_i = 1 To UpperBound(s_return.arr_string) If s_return.arr_dec[ll_i] >= s_return.arr_dec2[ll_i] Then Continue //没有改数量 或 增加数量,则删除原勾选的数据 For ll_j = 2 To dw_1.RowCount() if dw_1.object.ch[ll_j] = 0 then continue If ll_lp_min = dw_1.Object.lp[ll_j] And & s_return.arr_string[ll_i] = dw_1.Object.u_prdpf_promode[ll_j] And & s_return.arr_string2[ll_i] = dw_1.Object.u_prdpf_pfgroup[ll_j] And & s_return.arr_string3[ll_i] = dw_1.Object.u_mtrldef_mtrlcode[ll_j] Then ld_rate = 1 - s_return.arr_dec[ll_i] / s_return.arr_dec2[ll_i] dw_1.Object.u_prdpf_pfgroupqty[ll_j] = dw_1.Object.u_prdpf_pfgroupqty[ll_j] - s_return.arr_dec[ll_i] dw_1.Object.u_prdpf_sonscale[ll_j] = Round(dw_1.Object.u_prdpf_sonscale[ll_j] * ld_rate,sys_option_produce_dec) dw_1.Object.u_prdpf_sonscale_ori[ll_j] = Round(dw_1.Object.u_prdpf_sonscale_ori[ll_j] * ld_rate,sys_option_produce_dec) dw_1.Object.ch[ll_j] = 0 //不删除 For ll_k = ll_j + 1 To dw_1.RowCount() If dw_1.Object.lp[ll_k] <= dw_1.Object.lp[ll_j] Then ll_j = ll_k - 1 Exit end if dw_1.Object.ch[ll_k] = 0 //不删除 dw_1.Object.u_prdpf_pfgroupqty[ll_k] = Round(dw_1.Object.u_prdpf_pfgroupqty[ll_k] * ld_rate,sys_option_produce_dec) dw_1.Object.u_prdpf_sonscale[ll_k] = Round(dw_1.Object.u_prdpf_sonscale[ll_k] * ld_rate,sys_option_produce_dec) dw_1.Object.u_prdpf_sonscale_ori[ll_k] = Round(dw_1.Object.u_prdpf_sonscale_ori[ll_k] * ld_rate,sys_option_produce_dec) Next End If Next Next end if For ll_i = dw_1.RowCount() To 2 Step -1 //ch = 1 的删除 If dw_1.Object.ch[ll_i] = 1 Then dw_1.DeleteRow(ll_i) End If Next dw_1.SetRedraw(True) end event type cb_all_ch from commandbutton within w_mtrldef_prdpf_padd integer x = 3621 integer y = 264 integer width = 183 integer height = 72 integer taborder = 210 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" string text = "全选" end type event clicked;long ll_i dw_1.setredraw(false) for ll_i = 2 to dw_1.rowcount() dw_1.object.ch[ll_i] = 1 next dw_1.setredraw(true) end event type cb_fan_ch from commandbutton within w_mtrldef_prdpf_padd integer x = 3835 integer y = 264 integer width = 183 integer height = 72 integer taborder = 220 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" string text = "反选" end type event clicked;long ll_i dw_1.accepttext() dw_1.setredraw(false) for ll_i = 2 to dw_1.rowcount() dw_1.object.ch[ll_i] = 1 - dw_1.object.ch[ll_i] next dw_1.setredraw(true) end event type cbx_ifreset from checkbox within w_mtrldef_prdpf_padd integer x = 4073 integer y = 196 integer width = 713 integer height = 60 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 = "导入excel不清除原来明细" end type event clicked;int if_reset IF THIS.Checked THEN if_reset = 1 ELSE if_reset = 0 END IF f_SetProfileString (sys_empid,'w_mtrldef_prdpf_padd', "if_reset", String(if_reset)) end event event constructor;int if_reset if_reset = Integer(f_ProfileString (sys_empid,'w_mtrldef_prdpf_padd', "if_reset", '0')) IF if_reset = 0 THEN This.Checked = False ELSE This.Checked = True END IF end event type cb_autocode from uo_imflatbutton within w_mtrldef_prdpf_padd integer x = 1646 integer width = 261 integer height = 164 integer taborder = 40 boolean bringtotop = true boolean enabled = false string text = "自动编码" string normalpicname = "p2.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;If Not ins_ifmod Then MessageBox('系统提示','非编辑半成品状态下,不能执行本操作') Return End If Long row String ls_mtrlcode_ori,ls_mtrlcode_new row = dw_1.GetRow() If row <= 0 Then MessageBox('系统提示','请选择行') Return End If dw_1.AcceptText() ls_mtrlcode_ori = dw_1.Object.u_mtrldef_mtrlcode[row] OpenWithParm(w_auto_mtrlcode_prdpf,ls_mtrlcode_ori) ls_mtrlcode_new = Message.StringParm if trim(ls_mtrlcode_new) = '' then return dw_1.Object.u_mtrldef_mtrlcode[row] = ls_mtrlcode_new end event type cbx_wp_pack from checkbox within w_mtrldef_prdpf_padd integer x = 4073 integer y = 272 integer width = 773 integer height = 60 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;int if_wp_pack IF THIS.Checked THEN if_wp_pack = 1 ELSE if_wp_pack = 0 END IF cbx_wp_add.enabled = THIS.Checked f_SetProfileString (sys_empid,'w_mtrldef_prdpf_padd', "if_wp_pack", String(if_wp_pack)) end event event constructor;int if_wp_pack if_wp_pack = Integer(f_ProfileString (sys_empid,'w_mtrldef_prdpf_padd', "if_wp_pack", '0')) IF if_wp_pack = 0 THEN This.Checked = False ELSE This.Checked = True END IF cbx_wp_add.enabled = THIS.Checked end event type cb_2 from uo_imflatbutton within w_mtrldef_prdpf_padd integer x = 3813 integer width = 494 integer height = 164 integer taborder = 40 boolean bringtotop = true string text = "包件体积重量信息" string normalpicname = "update2.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;parent.triggerevent('ue_cmp_packinfo') end event type cb_fj_edit from uo_imflatbutton within w_mtrldef_prdpf_padd integer x = 4343 integer width = 165 integer height = 164 integer taborder = 50 boolean bringtotop = true string text = "附件" string normalpicname = "update.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;IF Not f_power_ind(4199,sys_msg_pow) THEN MessageBox(publ_operator,sys_msg_pow) RETURN END IF IF dw_edit_mode THEN MessageBox('提示','编辑状态下不可用') RETURN END IF s_edit_index_tran s_pic Long ll_ConnectionID String arg_msg Long ls_row Long ll_cnt if ins_mtrlid = 0 then messagebox('系统提示','请先选择物料清单') return end if IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN MessageBox('提示','没有指定附件数据库连接'+arg_msg) RETURN END IF s_pic.f_long = 202 //物料清单 mainID s_pic.f_string = ins_pfcode s_pic.g_long = ins_mtrlid s_pic.d_long = 0 //relid_mx s_pic.d_string = '' //relcode_mx s_pic.e_long = 0 // scid s_pic.sqltransaction = sys_filedb_sqlca OpenWithParm(w_fj_bill_mng,s_pic) end event type cbx_wp_add from checkbox within w_mtrldef_prdpf_padd integer x = 4841 integer y = 272 integer width = 850 integer height = 60 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;int if_wp_add IF THIS.Checked THEN if_wp_add = 1 ELSE if_wp_add = 0 END IF f_SetProfileString (sys_empid,'w_mtrldef_prdpf_padd', "if_wp_add", String(if_wp_add)) end event event constructor;int if_wp_add if_wp_add = Integer(f_ProfileString (sys_empid,'w_mtrldef_prdpf_padd', "if_wp_add", '0')) IF if_wp_add = 0 THEN This.Checked = False ELSE This.Checked = True END IF end event type cb_old_to_new from commandbutton within w_mtrldef_prdpf_padd integer x = 4891 integer y = 188 integer width = 494 integer height = 76 integer taborder = 220 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" string text = "辅助生成板件编码" end type event clicked;parent.triggerevent('ue_old_to_new') end event type cb_add_mtrl from uo_imflatbutton within w_mtrldef_prdpf_padd integer x = 2683 integer width = 192 integer height = 164 integer taborder = 20 boolean bringtotop = true string text = "增物料" string normalpicname = "mx1.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=增同级F7~tEvent=ue_add_same" menustr = menustr + "|" + "Text=增下级F8~tEvent=ue_add_next" menustr = menustr + "|" + "Text=增上级~tEvent=ue_add_up" 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 ln_bar from line within w_mtrldef_prdpf_padd long linecolor = 268435456 integer linethickness = 4 integer beginy = 176 integer endx = 3323 integer endy = 176 end type type ln_bar2 from line within w_mtrldef_prdpf_padd long linecolor = 16777215 integer linethickness = 4 integer beginy = 180 integer endx = 3323 integer endy = 180 end type type r_bar from rectangle within w_mtrldef_prdpf_padd long linecolor = 16777215 long fillcolor = 1073741824 integer x = 5253 integer width = 73 integer height = 172 end type event constructor;this.fillcolor = 14215660 this.linecolor = 14215660 this.x = -1 this.y = -1 this.height = ln_bar2.beginy - 5 end event type ln_7 from line within w_mtrldef_prdpf_padd long linecolor = 16777215 integer linethickness = 4 integer beginx = 1024 integer endx = 1024 integer endy = 176 end type type ln_8 from line within w_mtrldef_prdpf_padd long linecolor = 268435456 integer linethickness = 4 integer beginx = 1019 integer endx = 1019 integer endy = 176 end type type ln_1 from line within w_mtrldef_prdpf_padd long linecolor = 16777215 integer linethickness = 4 integer beginx = 4325 integer endx = 4325 integer endy = 176 end type type ln_2 from line within w_mtrldef_prdpf_padd long linecolor = 268435456 integer linethickness = 4 integer beginx = 4320 integer endx = 4320 integer endy = 176 end type type ln_3 from line within w_mtrldef_prdpf_padd long linecolor = 268435456 integer linethickness = 4 integer beginy = 344 integer endx = 2016 integer endy = 344 end type type ln_4 from line within w_mtrldef_prdpf_padd long linecolor = 16777215 integer linethickness = 4 integer beginy = 348 integer endx = 2048 integer endy = 348 end type type ln_5 from line within w_mtrldef_prdpf_padd long linecolor = 268435456 integer linethickness = 4 integer beginx = 2400 integer endx = 2400 integer endy = 176 end type type ln_6 from line within w_mtrldef_prdpf_padd long linecolor = 16777215 integer linethickness = 4 integer beginx = 2405 integer endx = 2405 integer endy = 176 end type type ln_9 from line within w_mtrldef_prdpf_padd long linecolor = 16777215 integer linethickness = 4 integer beginx = 4878 integer endx = 4878 integer endy = 176 end type type ln_10 from line within w_mtrldef_prdpf_padd long linecolor = 268435456 integer linethickness = 4 integer beginx = 4873 integer endx = 4873 integer endy = 176 end type type ln_11 from line within w_mtrldef_prdpf_padd long linecolor = 16777215 integer linethickness = 4 integer beginx = 3543 integer endx = 3543 integer endy = 176 end type type ln_12 from line within w_mtrldef_prdpf_padd long linecolor = 268435456 integer linethickness = 4 integer beginx = 3538 integer endx = 3538 integer endy = 176 end type