$PBExportHeader$w_wfjg_sptpdb.srw forward global type w_wfjg_sptpdb from w_publ_easyq end type type cb_3 from uo_imflatbutton within w_wfjg_sptpdb end type type cb_edit from uo_imflatbutton within w_wfjg_sptpdb end type type cb_del from uo_imflatbutton within w_wfjg_sptpdb end type type cb_4 from uo_imflatbutton within w_wfjg_sptpdb end type type cb_5 from uo_imflatbutton within w_wfjg_sptpdb end type type st_5 from statictext within w_wfjg_sptpdb end type type cb_addmx from uo_imflatbutton within w_wfjg_sptpdb end type type cb_delmx from uo_imflatbutton within w_wfjg_sptpdb end type type ddlb_1 from dropdownlistbox within w_wfjg_sptpdb end type type ddlb_sptid from uo_ddlb_wfjg_sptid within w_wfjg_sptpdb end type type ddlb_scid from uo_ddlb_scid within w_wfjg_sptpdb end type type st_1 from statictext within w_wfjg_sptpdb end type type cb_audit from uo_imflatbutton within w_wfjg_sptpdb end type type cb_caudit from uo_imflatbutton within w_wfjg_sptpdb end type type cbx_auto_audit from checkbox within w_wfjg_sptpdb end type type cb_6 from uo_imflatbutton within w_wfjg_sptpdb end type end forward global type w_wfjg_sptpdb from w_publ_easyq integer width = 3611 integer height = 2380 string title = "外协商盘点表" boolean resizable = false event ue_f8 ( ) event ue_unit_ch ( ) event ue_pdqty ( ) event ue_unit_buy ( ) event ue_unit_scll ( ) event ue_unit_sale ( ) event ue_unit ( ) cb_3 cb_3 cb_edit cb_edit cb_del cb_del cb_4 cb_4 cb_5 cb_5 st_5 st_5 cb_addmx cb_addmx cb_delmx cb_delmx ddlb_1 ddlb_1 ddlb_sptid ddlb_sptid ddlb_scid ddlb_scid st_1 st_1 cb_audit cb_audit cb_caudit cb_caudit cbx_auto_audit cbx_auto_audit cb_6 cb_6 end type global w_wfjg_sptpdb w_wfjg_sptpdb type variables long cur_sptid = -1 String ins_pdbdate = '' string cur_sptname = '' long il_scid end variables forward prototypes public function integer wf_face () public subroutine wf_del () public function integer wf_init_pdb () public function integer wf_check_ifmtrlware (ref string arg_msg) public function integer wf_inspt (date arg_enddate) public function integer wf_audit (long arg_scid, long arg_sptid, string arg_pdbdate, string arg_opemp, ref string arg_msg, boolean arg_ifcommit) public function integer wf_caudit (long arg_scid, long arg_sptid, string arg_pdbdate, ref string arg_msg, boolean arg_ifcommit) public subroutine wf_flagstatus_rf (long arg_scid, long arg_sptid, string arg_pdbdate) public subroutine wf_init_spt () end prototypes event ue_f8();IF NOT dw_edit_mode THEN RETURN Long child_row String ls_sptname = '' Long ls_sptid,ls_warepdbid child_row = dw_1.GetRow() IF cur_sptid = 0 OR IsNull(cur_sptid) THEN MessageBox(publ_operator,'请先选择外协商') RETURN END IF IF ins_pdbdate = '' OR IsNull(ins_pdbdate) THEN MessageBox(publ_operator,'请先选择盘点日') RETURN END IF SELECT name INTO :ls_sptname FROM u_spt Where sptid = :cur_sptid USING sqlca; IF sqlca.SQLCode <> 0 THEN MessageBox('系统提示','查询外协商操作失败!') RETURN END IF IF NOT IsValid(w_add_mtrlware_spt) 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 = -1 s_ch_tran.c_long = cur_sptid OpenWithParm(w_add_mtrlware_spt,s_ch_tran) s_mtrlware_noalloc_array S_INSCUST S_INSCUST = Message.PowerObjectParm IF UpperBound(S_INSCUST.mtrlwareid[]) > 0 THEN IF S_INSCUST.mtrlwareid[1] > 0 THEN child_row = dw_1.InsertRow( 0) dw_1.Object.ow_wfjg_sptpdb_mtrlwareid[child_row] = S_INSCUST.mtrlwareid[1] dw_1.Object.mtrlid[child_row] = S_INSCUST.mtrlid[1] dw_1.Object.ow_wfjg_sptpdb_plancode[child_row] = S_INSCUST.plancode[1] dw_1.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST.u_mtrldef_mtrlcode[1] dw_1.Object.u_mtrldef_unit[child_row] = S_INSCUST.u_mtrldef_unit[1] dw_1.Object.ow_wfjg_sptpdb_sptid[child_row] = cur_sptid dw_1.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST.u_mtrldef_mtrlname[1] dw_1.Object.ow_wfjg_sptpdb_status[child_row] = S_INSCUST.status[1] dw_1.Object.sptname[child_row] = ls_sptname dw_1.Object.factqty[child_row] = S_INSCUST.noallocqty[1] dw_1.Object.qty[child_row] = 0 dw_1.Object.ow_wfjg_sptpdb_woodcode[child_row] = S_INSCUST.woodcode[1] dw_1.Object.ow_wfjg_sptpdb_pcode[child_row] = S_INSCUST.pcode[1] dw_1.Object.ow_wfjg_sptpdb_pdbdate[child_row] = ins_pdbdate dw_1.Object.ow_wfjg_sptpdb_scid[child_row] = il_scid dw_1.Object.ow_wfjg_sptpdb_wareamt[child_row] = S_INSCUST.cost[1] * S_INSCUST.noallocqty[1] dw_1.Object.ow_wfjg_sptpdb_uqty[child_row] = 0 dw_1.Object.ow_wfjg_sptpdb_unit[child_row] = S_INSCUST.u_mtrldef_unit[1] dw_1.Object.ow_wfjg_sptpdb_rate[child_row] = 1 END IF END IF dw_1.SetFocus() END IF end event event ue_unit_ch();IF NOT dw_edit_mode THEN RETURN Long ll_mtrlid IF NOT IsValid(w_unit_ch) THEN IF dw_1.GetRow() < 1 THEN RETURN ll_mtrlid = dw_1.Object.mtrlid[dw_1.GetRow()] OpenWithParm(w_unit_ch,ll_mtrlid) s_unit s_inscust s_inscust = Message.PowerObjectParm //接受返回结构 dw_1.accepttext() IF s_inscust.unit <> '' THEN dw_1.Object.ow_wfjg_sptpdb_uqty[dw_1.GetRow()] = (dw_1.Object.ow_wfjg_sptpdb_uqty[dw_1.GetRow()] * dw_1.Object.ow_wfjg_sptpdb_rate[dw_1.GetRow()]) / s_inscust.rate dw_1.Object.ow_wfjg_sptpdb_rate[dw_1.GetRow()] = s_inscust.rate dw_1.Object.unit_qty[dw_1.GetRow()] = dw_1.Object.qty[dw_1.GetRow()] / s_inscust.rate dw_1.Object.ow_wfjg_sptpdb_unit[dw_1.GetRow()] = s_inscust.unit END IF END IF end event event ue_pdqty();IF NOT dw_edit_mode THEN MessageBox('系统提示','非编辑状态下不可使用') RETURN END IF IF MessageBox("询问","你确定要将列表中的盘点数据按库存数填写到盘点数吗?",Exclamation!, OKCancel!, 2) = 2 THEN RETURN dw_1.AcceptText() Long ll_i = 1 dw_1.SetRedraw(FALSE) FOR ll_i = 1 TO dw_1.RowCount() dw_1.Object.factqty[ll_i] = dw_1.Object.qty[ll_i] dw_1.Object.pypkqty[ll_i] = 0 dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] = dw_1.Object.unit_qty[ll_i] dw_1.Object.pypkqty_unit[ll_i] = 0 NEXT dw_1.SetRedraw(TRUE) dw_1.AcceptText() end event event ue_unit_buy();IF NOT dw_edit_mode THEN MessageBox('系统提示','非编辑状态下不可使用') RETURN END IF Long ll_i Long ll_mtrlid String ls_unit_buy,ls_unit Decimal ld_rate dw_1.accepttext() dw_1.setredraw(false) FOR ll_i = 1 TO dw_1.RowCount() ll_mtrlid = dw_1.Object.mtrlid[ll_i] SELECT unit,unit_buy,rate_buy INTO :ls_unit,:ls_unit_buy,:ld_rate FROM u_mtrldef Where mtrlid = :ll_mtrlid; IF sqlca.SQLCode <> 0 THEN ld_rate = 0 ls_unit = dw_1.object.u_mtrldef_unit[ll_i] END IF IF ld_rate = 0 THEN dw_1.Object.ow_wfjg_sptpdb_unit[ll_i] = ls_unit dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] = dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] * dw_1.Object.ow_wfjg_sptpdb_rate[ll_i] dw_1.Object.ow_wfjg_sptpdb_rate[ll_i] = 1 ELSE dw_1.Object.ow_wfjg_sptpdb_unit[ll_i] = ls_unit_buy dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] = (dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] * dw_1.Object.ow_wfjg_sptpdb_rate[ll_i]) / ld_rate dw_1.Object.ow_wfjg_sptpdb_rate[ll_i] = ld_rate END IF NEXT dw_1.setredraw(true) end event event ue_unit_scll();IF NOT dw_edit_mode THEN MessageBox('系统提示','非编辑状态下不可使用') RETURN END IF Long ll_i Long ll_mtrlid String ls_unit_scll,ls_unit Decimal ld_rate dw_1.accepttext() dw_1.setredraw(false) FOR ll_i = 1 TO dw_1.RowCount() ll_mtrlid = dw_1.Object.mtrlid[ll_i] SELECT unit,unit_scll,rate_scll INTO :ls_unit,:ls_unit_scll,:ld_rate FROM u_mtrldef Where mtrlid = :ll_mtrlid; IF sqlca.SQLCode <> 0 THEN ld_rate = 0 ls_unit = dw_1.object.u_mtrldef_unit[ll_i] END IF IF ld_rate = 0 THEN dw_1.Object.ow_wfjg_sptpdb_unit[ll_i] = ls_unit dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] = dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] * dw_1.Object.ow_wfjg_sptpdb_rate[ll_i] dw_1.Object.ow_wfjg_sptpdb_rate[ll_i] = 1 ELSE dw_1.Object.ow_wfjg_sptpdb_unit[ll_i] = ls_unit_scll dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] = (dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] * dw_1.Object.ow_wfjg_sptpdb_rate[ll_i]) / ld_rate dw_1.Object.ow_wfjg_sptpdb_rate[ll_i] = ld_rate END IF NEXT dw_1.setredraw(true) end event event ue_unit_sale();IF NOT dw_edit_mode THEN MessageBox('系统提示','非编辑状态下不可使用') RETURN END IF Long ll_i Long ll_mtrlid String ls_unit_sale,ls_unit Decimal ld_rate dw_1.accepttext() dw_1.setredraw(false) FOR ll_i = 1 TO dw_1.RowCount() ll_mtrlid = dw_1.Object.mtrlid[ll_i] SELECT unit,unit_sale,rate_sale INTO :ls_unit,:ls_unit_sale,:ld_rate FROM u_mtrldef Where mtrlid = :ll_mtrlid; IF sqlca.SQLCode <> 0 THEN ld_rate = 0 ls_unit = dw_1.object.u_mtrldef_unit[ll_i] END IF IF ld_rate = 0 THEN dw_1.Object.ow_wfjg_sptpdb_unit[ll_i] = ls_unit dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] = dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] * dw_1.Object.ow_wfjg_sptpdb_rate[ll_i] dw_1.Object.ow_wfjg_sptpdb_rate[ll_i] = 1 ELSE dw_1.Object.ow_wfjg_sptpdb_unit[ll_i] = ls_unit_sale dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] = (dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] * dw_1.Object.ow_wfjg_sptpdb_rate[ll_i]) / ld_rate dw_1.Object.ow_wfjg_sptpdb_rate[ll_i] = ld_rate END IF NEXT dw_1.setredraw(true) end event event ue_unit();IF NOT dw_edit_mode THEN MessageBox('系统提示','非编辑状态下不可使用') RETURN END IF Long ll_i String ls_unit dw_1.accepttext() dw_1.setredraw(false) FOR ll_i = 1 TO dw_1.RowCount() ls_unit = dw_1.Object.u_mtrldef_unit[ll_i] dw_1.Object.ow_wfjg_sptpdb_unit[ll_i] = ls_unit dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] = dw_1.Object.ow_wfjg_sptpdb_uqty[ll_i] * dw_1.Object.ow_wfjg_sptpdb_rate[ll_i] dw_1.Object.ow_wfjg_sptpdb_rate[ll_i] = 1 NEXT dw_1.setredraw(true) end event public function integer wf_face ();IF dw_edit_mode THEN dw_1.SetFocus() dw_1.SetTabOrder("ow_wfjg_sptpdb_unit",10) dw_1.SetTabOrder("ow_wfjg_sptpdb_uqty",20) cb_edit.Text = '保存' cb_del.Enabled = TRUE cb_addmx.Enabled = TRUE cb_delmx.Enabled = TRUE cb_3.Enabled = false cb_4.Enabled = false cb_5.Enabled = false ddlb_sptid.Enabled = false ddlb_1.Enabled = false ELSE dw_1.SetTabOrder("ow_wfjg_sptpdb_unit",0) dw_1.SetTabOrder("ow_wfjg_sptpdb_uqty",0) cb_edit.Text = '修改' cb_del.Enabled = FALSE cb_addmx.Enabled = false cb_delmx.Enabled = false cb_3.Enabled = true cb_4.Enabled = true cb_5.Enabled = true ddlb_sptid.Enabled = true ddlb_1.Enabled = true END IF cb_edit.TriggerEvent('ue_textchange') RETURN 1 end function public subroutine wf_del ();String arg_msg Int cnt = 0 IF MessageBox("IF","你是否要删除盘点日为"+trim(ins_pdbdate)+",外协商:"+Trim(ddlb_sptid.Text)+",分部:"+trim(ddlb_scid.text)+"的盘点表吗?",Exclamation!, OKCancel!, 2) = 2 THEN RETURN END IF SELECT count(*) INTO :cnt FROM ow_wfjg_sptpdb WHERE ow_wfjg_sptpdb.sptid = :cur_sptid AND ow_wfjg_sptpdb.pdbdate = :ins_pdbdate and ow_wfjg_sptpdb.scid = :il_scid AND ow_wfjg_sptpdb.flag = 1 USING sqlca; IF sqlca.SQLCode <> 0 THEN MessageBox('系统提示:','查询操作失败,在盘点日:'+trim(String(ins_pdbdate))+',外协商:'+Trim(ddlb_sptid.Text)+',分部:'+trim(ddlb_scid.text)+'的数据资料!') RETURN ELSE IF cnt > 0 THEN MessageBox('系统提示:','盘点日:'+trim(String(ins_pdbdate))+',外协商:'+Trim(ddlb_sptid.Text)+',分部:'+trim(ddlb_scid.text)+'的盘点数据已经审核,不能删除!') RETURN END IF END IF IF cur_sptid <= 0 THEN MessageBox('系统提示','请选择要盘点的外协商?') RETURN END IF DELETE FROM ow_wfjg_sptpdb Where pdbdate = :ins_pdbdate AND sptid = :cur_sptid and scid = :il_scid; IF sqlca.SQLCode <> 0 THEN MessageBox('系统提示','删除当前期的盘点表失败!') ROLLBACK; RETURN END IF COMMIT; MessageBox('系统提示','删除'+Trim(ddlb_1.Text)+'的盘点表成功!') end subroutine public function integer wf_init_pdb ();String ls_pdbdate ddlb_1.setredraw(false) ddlb_1.reset() DECLARE pdbdate_cur CURSOR FOR SELECT DISTINCT (pdbdate) FROM ow_wfjg_sptpdb Where (ow_wfjg_sptpdb.sptid = :cur_sptid) and (ow_wfjg_sptpdb.scid = :il_scid or :il_scid = -1 ) order by pdbdate desc; OPEN pdbdate_cur; FETCH pdbdate_cur INTO :ls_pdbdate; ins_pdbdate = ls_pdbdate DO WHILE sqlca.SQLCode = 0 //循环读取明细数据 ddlb_1.AddItem (ls_pdbdate) FETCH pdbdate_cur INTO :ls_pdbdate; LOOP CLOSE pdbdate_cur; ddlb_1.Text = ins_pdbdate ddlb_1.setredraw(true) return 1 end function public function integer wf_check_ifmtrlware (ref string arg_msg);// // Long i,rowcnt,rslt = 1 Long ls_mtrlwareid,ls_mtrlid,ls_sptid String ls_mtrlcode String ls_plancode String ls_status,ls_woodcode,ls_pcode Decimal ls_qty rowcnt = dw_1.RowCount( ) ls_sptid = cur_sptid Open(w_sys_wait_jdt) //初始化进度条 w_sys_wait_jdt.Show() w_sys_wait_jdt.wf_accepttol(dw_1.RowCount()) //初始化进度条1 FOR i = 1 TO rowcnt w_sys_wait_jdt.st_msg.Text = "处理:"+ls_mtrlcode //进度信息 w_sys_wait_jdt.wf_inc(i) //进度 ls_mtrlwareid = dw_1.Object.ow_wfjg_sptpdb_mtrlwareid[i] ls_mtrlid = dw_1.Object.mtrlid[i] ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[i] ls_plancode = dw_1.Object.ow_wfjg_sptpdb_plancode[i] ls_status = dw_1.Object.ow_wfjg_sptpdb_status[i] ls_woodcode = dw_1.Object.ow_wfjg_sptpdb_woodcode[i] ls_pcode = dw_1.Object.ow_wfjg_sptpdb_pcode[i] ls_qty = dw_1.Object.qty[i] IF ls_mtrlwareid > 0 THEN CONTINUE IF f_insert_0_sptware(il_scid,ls_mtrlwareid,ls_mtrlid,ls_mtrlcode,ls_sptid,ls_status,ls_woodcode,ls_pcode,ls_plancode,0,arg_msg) = 0 THEN rslt = 0 GOTO ext ELSE dw_1.Object.ow_wfjg_sptpdb_mtrlwareid[i] = ls_mtrlwareid END IF NEXT dw_1.AcceptText( ) ext: Close(w_sys_wait_jdt) RETURN rslt end function public function integer wf_inspt (date arg_enddate);String ls_waredate String arg_msg DateTime st_date,ed_date,ls_serverdate IF MessageBox("IF","你是否要盘点"+String(arg_enddate,'yyyy-mm-dd')+"的库存吗?",Exclamation!, OKCancel!, 2) = 2 THEN GOTO ext END IF ls_waredate = String(arg_enddate,'yyyymmdd') IF cur_sptid <= 0 THEN MessageBox('系统提示:','请选择要盘点的外协商') RETURN 0 END IF SELECT Top 1 getdate() INTO :ls_serverdate FROM u_user ; //取得系统时间,借用操作员表 IF sqlca.SQLCode <> 0 THEN MessageBox('系统提示:','查询操作失败,日期'+sqlca.SQLErrText) RETURN 0 END IF //********************************************************** st_date = DateTime(RelativeDate(Date(arg_enddate),1),Time('0:0')) ed_date = DateTime(RelativeDate(Date(ls_serverdate),1),Time('0:0')) IF st_date > ed_date THEN MessageBox('系统提示:','盘点日期不能大过于当前日期'+sqlca.SQLErrText) RETURN 0 END IF //选择单位 Long li_unit //0-库存单位,1-辅单位1 ,2-辅单位2,3-辅单位3 , -1 - 取消 Open(w_mtrl_unit_ch) li_unit = Message.DoubleParm IF li_unit = -1 THEN RETURN 0 // // DELETE u_parm_balcdate_sptpdb ; IF sqlca.SQLCode <> 0 THEN ROLLBACK ; MessageBox(publ_operator,"因网络或其它原因导致操作失败,请重试!") RETURN 0 END IF INSERT INTO u_parm_balcdate_sptpdb (first_date,end_date) Values (:st_date,:ed_date) ; IF sqlca.SQLCode <> 0 THEN ROLLBACK ; MessageBox(publ_operator,"因网络或其它原因导致操作失败,请重试!") RETURN 0 ELSE COMMIT ; END IF INSERT INTO ow_wfjg_sptpdb ( scid, flag, pdbdate, mtrlwareid, mtrlid, sptid, plancode, Status, planprice, newprice, woodcode, pcode, cost, qty, factqty, wareamt, uqty, unit, rate) SELECT :il_scid, 0, :ls_waredate , ow_wfjgware.mtrlwareid, ow_wfjgware.mtrlid, ow_wfjgware.sptid, ow_wfjgware.plancode, ow_wfjgware.status, u_mtrldef.planprice, ow_wfjgware.newprice, ow_wfjgware.woodcode, ow_wfjgware.pcode, ow_wfjgware.cost, ow_wfjgware.noallocqty + ISNULL(uv_pdb_outware_sptpdb.desqty, 0) - ISNULL(uv_pdb_inware_sptpdb.incqty, 0) , 0, ow_wfjgware.wareamt + ISNULL(uv_pdb_outware_sptpdb.desamt, 0) - ISNULL(uv_pdb_inware_sptpdb.incamt, 0) , 0 , case :li_unit when 0 then (u_mtrldef.unit) when 1 then (case u_mtrldef.rate_buy when 0 then u_mtrldef.unit else u_mtrldef.unit_buy END ) when 2 then (case u_mtrldef.rate_scll when 0 then u_mtrldef.unit else u_mtrldef.unit_scll END) when 3 then (case u_mtrldef.rate_sale when 0 then u_mtrldef.unit else u_mtrldef.unit_sale END) END , case :li_unit when 0 then (1) when 1 then (case u_mtrldef.rate_buy when 0 then 1 else u_mtrldef.rate_buy END ) when 2 then (case u_mtrldef.rate_scll when 0 then 1 else u_mtrldef.rate_scll END) when 3 then (case u_mtrldef.rate_sale when 0 then 1 else u_mtrldef.rate_sale END) END FROM ow_wfjgware INNER JOIN u_mtrldef ON ow_wfjgware.mtrlid = u_mtrldef.mtrlid LEFT OUTER JOIN uv_pdb_outware_sptpdb ON ow_wfjgware.sptid = uv_pdb_outware_sptpdb.sptid AND ow_wfjgware.mtrlid = uv_pdb_outware_sptpdb.mtrlid AND ow_wfjgware.plancode = uv_pdb_outware_sptpdb.plancode AND ow_wfjgware.status = uv_pdb_outware_sptpdb.status AND ow_wfjgware.woodcode = uv_pdb_outware_sptpdb.woodcode AND ow_wfjgware.pcode = uv_pdb_outware_sptpdb.pcode LEFT OUTER JOIN uv_pdb_inware_sptpdb ON ow_wfjgware.sptid = uv_pdb_inware_sptpdb.sptid AND ow_wfjgware.mtrlid = uv_pdb_inware_sptpdb.mtrlid AND ow_wfjgware.plancode = uv_pdb_inware_sptpdb.plancode AND ow_wfjgware.status = uv_pdb_inware_sptpdb.status AND ow_wfjgware.woodcode = uv_pdb_inware_sptpdb.woodcode AND ow_wfjgware.pcode = uv_pdb_inware_sptpdb.pcode WHERE ow_wfjgware.sptid = :cur_sptid AND ow_wfjgware.scid = :il_scid; IF sqlca.SQLCode <> 0 THEN IF Pos(sqlca.SQLErrText,'Cannot insert duplicate key in') > 0 THEN arg_msg = '该外协商当前日期的盘点表已经存!' ELSE arg_msg = '' END IF MessageBox('系统提示','生成当前期的盘点表失败!~n原因是:'+sqlca.SQLErrText) ROLLBACK; GOTO ext END IF COMMIT; MessageBox('系统提示','生成'+String(arg_enddate,'yyyy-mm-dd')+'的盘点表成功!') ext: RETURN 1 end function public function integer wf_audit (long arg_scid, long arg_sptid, string arg_pdbdate, string arg_opemp, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 Long cnt SELECT count(*) INTO :cnt FROM u_scdef Where scid = :arg_scid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询分部资料失败'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF cnt <> 1 THEN arg_msg = '分部资料不存在或重复,请检查' rslt = 0 GOTO ext END IF cnt = 0 SELECT count(*) INTO :cnt FROM u_spt Where sptid = :arg_sptid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询外协商资料失败'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF cnt <> 1 THEN arg_msg = '外协商资料不存在或重复,请检查' rslt = 0 GOTO ext END IF cnt = 0 SELECT count(*) INTO :cnt FROM ow_wfjg_sptpdb WHERE sptid = :arg_sptid AND pdbdate = :arg_pdbdate AND scid = :arg_scid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询盘点表失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF cnt = 0 THEN arg_msg = '盘点表没有盘点内容,不能审核' rslt = 0 GOTO ext END IF cnt = 0 SELECT count(*) INTO :cnt FROM ow_wfjg_sptpdb WHERE sptid = :arg_sptid AND pdbdate = :arg_pdbdate AND scid = :arg_scid AND flag = 1; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询盘点表是否已审核失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF cnt > 0 THEN arg_msg = '盘点表已审核,不能审核' rslt = 0 GOTO ext END IF UPDATE ow_wfjg_sptpdb SET flag = 1, auditemp = :arg_opemp, auditdate = getdate() WHERE sptid = :arg_sptid AND pdbdate = :arg_pdbdate AND scid = :arg_scid; IF sqlca.SQLCode <> 0 THEN arg_msg = '更新盘点表审核标记失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF RETURN rslt end function public function integer wf_caudit (long arg_scid, long arg_sptid, string arg_pdbdate, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 Long cnt datetime null_dt setnull(null_dt) SELECT count(*) INTO :cnt FROM u_scdef Where scid = :arg_scid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询分部资料失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF cnt <> 1 THEN arg_msg = '分部资料不存在或重复,请检查' rslt = 0 GOTO ext END IF SELECT count(*) INTO :cnt FROM u_spt Where sptid = :arg_sptid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询外协商资料失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF cnt <> 1 THEN arg_msg = '外协商资料不存在或重复,请检查' rslt = 0 GOTO ext END IF cnt = 0 SELECT count(*) INTO :cnt FROM ow_wfjg_sptpdb WHERE sptid = :arg_sptid and scid = :arg_scid AND pdbdate = :arg_pdbdate; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询盘点表失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF cnt = 0 THEN arg_msg = '盘点表没有盘点内容,不能撤审' rslt = 0 GOTO ext END IF cnt = 0 SELECT count(*) INTO :cnt FROM ow_wfjg_sptpdb WHERE sptid = :arg_sptid and scid = :Arg_scid AND pdbdate = :arg_pdbdate AND flag = 0; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询盘点表是否未审核失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF cnt > 0 THEN arg_msg = '盘点表未审核,不能撤审' rslt = 0 GOTO ext END IF long ll_inwareid_pk,ll_scid_pk,ll_outwareid_py,ll_scid_py //撤审删除自动类型盘盈亏单据 uo_wfjg_py uo_ware_py uo_ware_py = Create uo_wfjg_py uo_ware_py.commit_transaction = sqlca uo_inware_wfjg uo_ware_pk uo_ware_pk = Create uo_inware_wfjg uo_ware_pk.commit_transaction = sqlca Open(w_sys_wait_2jdt) //初始化进度条 w_sys_wait_2jdt.wf_inc(1) //进度 w_sys_wait_2jdt.st_msg.Text = "正在取消外协商盘亏单......" SELECT count(*) INTO :cnt FROM ow_wfjg_in WHERE billtype = 9 AND dscrp = '电脑生成的'+:ins_pdbdate+'的盘亏单' And sptid = :cur_sptid; IF sqlca.SQLNRows <= 0 THEN arg_msg = '查询外协商盘亏单id失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF cnt > 0 THEN SELECT inwareid,scid INTO :ll_inwareid_pk,:ll_scid_pk FROM ow_wfjg_in WHERE billtype = 9 AND dscrp = '电脑生成的'+:ins_pdbdate+'的盘亏单' And sptid = :cur_sptid; IF sqlca.SQLNRows <= 0 THEN arg_msg = '查询外协商盘亏单id失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF uo_ware_pk.getinfo(ll_scid_pk,ll_inwareid_pk,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF IF uo_ware_pk.c_auditing(False,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF IF uo_ware_pk.del(ll_scid_pk,ll_inwareid_pk,arg_msg,False) = 0 THEN rslt = 0 GOTO ext END IF END IF w_sys_wait_2jdt.wf_inc(2) //进度 w_sys_wait_2jdt.st_msg.Text = "正在取消外协商盘盈单......" SELECT count(*) INTO :cnt FROM ow_wfjg_out WHERE billtype = 9 AND dscrp = '电脑生成的'+:ins_pdbdate+'的盘盈单' And sptid = :cur_sptid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询外协商盘盈单id失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF cnt > 0 THEN SELECT outwareid,scid INTO :ll_outwareid_py,:ll_scid_py FROM ow_wfjg_out WHERE billtype = 9 AND dscrp = '电脑生成的'+:ins_pdbdate+'的盘盈单' And sptid = :cur_sptid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询外协商盘盈单id失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF uo_ware_py.getinfo(ll_scid_py,ll_outwareid_py,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF IF uo_ware_py.c_auditing(False,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF IF uo_ware_py.del(ll_scid_py,ll_outwareid_py,arg_msg,False) = 0 THEN rslt = 0 GOTO ext END IF END IF Close(w_sys_wait_2jdt)//关闭进度条 UPDATE ow_wfjg_sptpdb SET flag = 0, auditemp = '', auditdate = :null_dt WHERE sptid = :arg_sptid and scid = :arg_scid AND pdbdate = :arg_pdbdate; IF sqlca.SQLCode <> 0 THEN arg_msg = '更新盘点表审核标记失败,'+sqlca.SQLErrText rslt = 0 GOTO ext END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF RETURN rslt end function public subroutine wf_flagstatus_rf (long arg_scid, long arg_sptid, string arg_pdbdate); IF arg_scid = - 1 OR arg_sptid = -1 or arg_pdbdate = '' THEN IF arg_scid = - 1 or arg_sptid = -1 THEN cb_3.Enabled = FALSE ELSE cb_3.Enabled = TRUE END IF cb_5.Enabled = FALSE cb_edit.Enabled = FALSE cb_del.Enabled = FALSE cb_addmx.Enabled = FALSE cb_delmx.Enabled = FALSE cb_4.Enabled = FALSE cb_audit.Enabled = FALSE cb_caudit.Enabled = FALSE ELSE Long ll_audit_cnt SELECT count(*) INTO :ll_audit_cnt FROM ow_wfjg_sptpdb WHERE sptid = :arg_sptid and scid = :arg_scid AND pdbdate = :arg_pdbdate AND flag = 1; IF sqlca.SQLCode <> 0 THEN ll_audit_cnt = -1 IF IsNull(ll_audit_cnt) THEN ll_audit_cnt = -1 IF ll_audit_cnt > 0 THEN ll_audit_cnt = 1 CHOOSE CASE ll_audit_cnt CASE 0 cb_3.Enabled = TRUE cb_5.Enabled = TRUE cb_edit.Enabled = TRUE cb_del.Enabled = FALSE cb_addmx.Enabled = FALSE cb_delmx.Enabled = FALSE cb_4.Enabled = TRUE cb_audit.Enabled = TRUE cb_caudit.Enabled = FALSE CASE 1 cb_3.Enabled = TRUE cb_5.Enabled = FALSE cb_edit.Enabled = FALSE cb_del.Enabled = FALSE cb_addmx.Enabled = FALSE cb_delmx.Enabled = FALSE cb_4.Enabled = FALSE cb_audit.Enabled = FALSE cb_caudit.Enabled = TRUE CASE -1 cb_3.Enabled = TRUE cb_5.Enabled = FALSE cb_edit.Enabled = FALSE cb_del.Enabled = FALSE cb_addmx.Enabled = FALSE cb_delmx.Enabled = FALSE cb_4.Enabled = FALSE cb_audit.Enabled = FALSE cb_caudit.Enabled = FALSE END CHOOSE END IF end subroutine public subroutine wf_init_spt ();Long ls_sptid String ls_sptname Long cnt = 0 long ll_i string ls_space int li_spacenum ddlb_sptid.setredraw(false) ddlb_sptid.reset() DECLARE find_wfjgspt CURSOR FOR SELECT DISTINCT DERIVEDTBL.sptid, u_spt.name FROM (SELECT DISTINCT sptid FROM ow_wfjgware where (scid = :il_scid or :il_scid = -1) UNION ALL SELECT DISTINCT sptid FROM ow_wfjgbalc where (scid = :il_scid or :il_scid = -1)) DERIVEDTBL INNER JOIN u_spt ON DERIVEDTBL.sptid = u_spt.sptid; open find_wfjgspt; fetch find_wfjgspt into :ls_sptid,:ls_sptname ; do while sqlca.sqlcode =0 li_spacenum = 50 - len(trim(ls_sptname)) - 2 - len(string(ls_sptid)) ls_space = fill(' ',li_spacenum) ddlb_sptid.AddItem (ls_sptname+ls_space+'['+String(ls_sptid)+']') fetch find_wfjgspt into :ls_sptid,:ls_sptname ; loop close find_wfjgspt; ddlb_sptid.uo_sptid = ls_sptid ddlb_sptid.Text = ls_sptname+ls_space+'['+String(ls_sptid)+']' cur_sptid = ls_sptid SELECT count(*) into :cnt FROM ow_wfjgbalc where ow_wfjgbalc.balcdateint = 0 and (scid = :il_scid or :il_scid = -1); IF cnt > 1 THEN ddlb_sptid.AddItem ('[全部]') END IF ddlb_sptid.setredraw(true) end subroutine on w_wfjg_sptpdb.create int iCurrent call super::create this.cb_3=create cb_3 this.cb_edit=create cb_edit this.cb_del=create cb_del this.cb_4=create cb_4 this.cb_5=create cb_5 this.st_5=create st_5 this.cb_addmx=create cb_addmx this.cb_delmx=create cb_delmx this.ddlb_1=create ddlb_1 this.ddlb_sptid=create ddlb_sptid this.ddlb_scid=create ddlb_scid this.st_1=create st_1 this.cb_audit=create cb_audit this.cb_caudit=create cb_caudit this.cbx_auto_audit=create cbx_auto_audit this.cb_6=create cb_6 iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.cb_3 this.Control[iCurrent+2]=this.cb_edit this.Control[iCurrent+3]=this.cb_del this.Control[iCurrent+4]=this.cb_4 this.Control[iCurrent+5]=this.cb_5 this.Control[iCurrent+6]=this.st_5 this.Control[iCurrent+7]=this.cb_addmx this.Control[iCurrent+8]=this.cb_delmx this.Control[iCurrent+9]=this.ddlb_1 this.Control[iCurrent+10]=this.ddlb_sptid this.Control[iCurrent+11]=this.ddlb_scid this.Control[iCurrent+12]=this.st_1 this.Control[iCurrent+13]=this.cb_audit this.Control[iCurrent+14]=this.cb_caudit this.Control[iCurrent+15]=this.cbx_auto_audit this.Control[iCurrent+16]=this.cb_6 end on on w_wfjg_sptpdb.destroy call super::destroy destroy(this.cb_3) destroy(this.cb_edit) destroy(this.cb_del) destroy(this.cb_4) destroy(this.cb_5) destroy(this.st_5) destroy(this.cb_addmx) destroy(this.cb_delmx) destroy(this.ddlb_1) destroy(this.ddlb_sptid) destroy(this.ddlb_scid) destroy(this.st_1) destroy(this.cb_audit) destroy(this.cb_caudit) destroy(this.cbx_auto_audit) destroy(this.cb_6) end on event open;call super::open;s_hide_col s_col s_col.col_1 = 'ow_wfjg_sptpdb_wareamt' //f_hide_col(121,dw_1,s_col) f_hide_col(1448,dw_1,s_col) wf_init_pdb() cb_1.triggerevent(clicked!) end event event ue_before_open;call super::ue_before_open; if_ue_filter=true if_ue_sort=true if_ue_sentdataout=true end event type cb_func from w_publ_easyq`cb_func within w_wfjg_sptpdb integer x = 1911 integer width = 165 end type type cb_exit from w_publ_easyq`cb_exit within w_wfjg_sptpdb integer x = 2638 integer width = 165 end type type cb_2 from w_publ_easyq`cb_2 within w_wfjg_sptpdb integer x = 2331 integer width = 165 integer taborder = 100 boolean bringtotop = true end type type cb_psetup from w_publ_easyq`cb_psetup within w_wfjg_sptpdb integer x = 2075 boolean bringtotop = true end type type cb_1 from w_publ_easyq`cb_1 within w_wfjg_sptpdb integer width = 165 boolean bringtotop = true end type event cb_1::clicked;call super::clicked;dw_1.retrieve(il_scid,cur_sptid,ins_pdbdate) wf_flagstatus_rf(il_scid,cur_sptid,ins_pdbdate) end event type st_3 from w_publ_easyq`st_3 within w_wfjg_sptpdb boolean visible = false integer x = 0 integer y = 328 end type type st_4 from w_publ_easyq`st_4 within w_wfjg_sptpdb integer x = 750 integer y = 204 integer width = 206 boolean enabled = true string text = "外协商:" end type type em_1 from w_publ_easyq`em_1 within w_wfjg_sptpdb boolean visible = false integer x = 210 integer y = 324 integer taborder = 110 end type type em_2 from w_publ_easyq`em_2 within w_wfjg_sptpdb boolean visible = false integer x = 667 integer y = 316 integer taborder = 120 end type type ddlb_yl from w_publ_easyq`ddlb_yl within w_wfjg_sptpdb integer x = 3310 integer y = 36 end type type cbx_yl from w_publ_easyq`cbx_yl within w_wfjg_sptpdb integer x = 3104 integer y = 36 end type type dw_1 from w_publ_easyq`dw_1 within w_wfjg_sptpdb integer y = 300 integer width = 3278 integer height = 1064 string dataobject = "dw_rp_wfjg_sptpdb" end type event dw_1::rowfocuschanged;call super::rowfocuschanged;IF currentrow <=0 THEN RETURN this.selectrow(0,false) this.selectrow(currentrow,true) end event event dw_1::clicked;call super::clicked;IF row > 0 THEN THIS.SelectRow(0,FALSE) THIS.SelectRow(row,TRUE) this.setrow(row) END IF end event event dw_1::doubleclicked;call super::doubleclicked;IF dw_edit_mode THEN IF row > 0 THEN IF dwo.Name = 'ow_wfjg_sptpdb_unit' THEN PARENT.TriggerEvent('ue_unit_ch') END IF END IF END IF end event type sle_mtrl from w_publ_easyq`sle_mtrl within w_wfjg_sptpdb end type type sle_cust from w_publ_easyq`sle_cust within w_wfjg_sptpdb end type type st_mtrl from w_publ_easyq`st_mtrl within w_wfjg_sptpdb end type type st_cust from w_publ_easyq`st_cust within w_wfjg_sptpdb end type type cbx_loginretr from w_publ_easyq`cbx_loginretr within w_wfjg_sptpdb end type type pb_em1 from w_publ_easyq`pb_em1 within w_wfjg_sptpdb boolean visible = false integer x = 823 integer y = 296 end type type pb_em2 from w_publ_easyq`pb_em2 within w_wfjg_sptpdb boolean visible = false integer x = 1102 integer y = 308 end type type pb_2 from w_publ_easyq`pb_2 within w_wfjg_sptpdb boolean visible = false integer x = 1280 integer y = 296 end type type cb_help from w_publ_easyq`cb_help within w_wfjg_sptpdb integer x = 2496 end type type cb_copyself from w_publ_easyq`cb_copyself within w_wfjg_sptpdb end type type gb_1 from w_publ_easyq`gb_1 within w_wfjg_sptpdb integer x = 0 integer y = 456 integer width = 3278 integer height = 260 end type type ln_bar from w_publ_easyq`ln_bar within w_wfjg_sptpdb integer beginx = -46 integer endx = 1961 end type type ln_bar2 from w_publ_easyq`ln_bar2 within w_wfjg_sptpdb integer beginx = -46 integer endx = 1993 end type type r_bar from w_publ_easyq`r_bar within w_wfjg_sptpdb integer x = 2779 end type type ln_1 from w_publ_easyq`ln_1 within w_wfjg_sptpdb end type type ln_2 from w_publ_easyq`ln_2 within w_wfjg_sptpdb end type type ln_3 from w_publ_easyq`ln_3 within w_wfjg_sptpdb end type type ln_4 from w_publ_easyq`ln_4 within w_wfjg_sptpdb end type type cb_3 from uo_imflatbutton within w_wfjg_sptpdb integer x = 165 integer width = 165 integer height = 164 integer taborder = 20 boolean bringtotop = true string text = "盘点" string normalpicname = "other.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked; IF NOT f_power_ind(1431) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF String ls_pdb Date ld_pdbdate DateTime ldt_pdbdate Long cnt String arg_msg IF il_scid < 0 THEN MessageBox('系统提示',"请选择分部") RETURN END IF IF cur_sptid <= 0 THEN MessageBox('系统提示',"请选择外协商") RETURN END IF OpenWithParm(w_pdb_date,'盘点日期') s_edit_index_tran s_tran8 s_tran8 = Message.PowerObjectParm ls_pdb = s_tran8.b_string IF ls_pdb = '' THEN RETURN ld_pdbdate = Date(Trim(ls_pdb)) ldt_pdbdate = DateTime(ld_pdbdate,Time('23:59:59')) IF Year(ld_pdbdate) < 2000 OR IsNull(ld_pdbdate) THEN MessageBox('系统提示',"缺少盘点发生时间或不合理") RETURN END IF cnt = 0 SELECT count(*) INTO :cnt FROM ow_wfjg_out WHERE sptid = :cur_sptid AND scid = :il_scid AND outdate > :ldt_pdbdate AND flag = 1; IF sqlca.SQLCode <> 0 THEN MessageBox('系统提示',"查询盘点发生时间"+String(ld_pdbdate,'yyyy-mm-dd')+"后是否有外协出仓单审核操作失败") RETURN END IF IF cnt > 0 THEN IF MessageBox ("IF","盘点发生时间"+String(ld_pdbdate,'yyyy-mm-dd')+"后有外协出仓单已审核,是否继续盘点?",Question!,YesNo! ) = 2 THEN RETURN END IF //检查单据 IF uf_spt_warebalc_check_inoutflag(il_scid,cur_sptid,ldt_pdbdate,arg_msg) = 0 THEN MessageBox('系统提示',arg_msg) RETURN END IF wf_inspt(ld_pdbdate) wf_init_pdb() cb_1.TriggerEvent(Clicked!) end event type cb_edit from uo_imflatbutton within w_wfjg_sptpdb integer x = 585 integer width = 165 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 NOT f_power_ind(1432) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF Int cnt = 0 String arg_msg SELECT count(*) INTO :cnt FROM ow_wfjg_sptpdb WHERE ow_wfjg_sptpdb.sptid = :cur_sptid AND ow_wfjg_sptpdb.scid = :il_scid AND ow_wfjg_sptpdb.pdbdate = :ins_pdbdate AND flag = 1 USING sqlca; IF sqlca.SQLCode < 0 THEN MessageBox('系统提示:','查询操作失败,在盘点日:'+String(ins_pdbdate)+',外协商:'+Trim(ddlb_sptid.Text)+'的数据资料!') RETURN ELSE IF cnt > 0 THEN MessageBox('系统提示:','盘点日:'+String(ins_pdbdate)+',外协商:'+Trim(ddlb_sptid.Text)+'的盘点数据已经审核,不能修改!') RETURN END IF END IF Long ll_i IF dw_edit_mode THEN dw_1.accepttext() dw_1.SetFilter('') dw_1.Filter() IF wf_check_ifmtrlware( arg_msg) = 0 THEN MessageBox('系统提示:',arg_msg) RETURN END IF //按转换率计算库存盘点数 FOR ll_i = 1 TO dw_1.RowCount() dw_1.object.factqty[ll_i] = dw_1.object.ow_wfjg_sptpdb_uqty[ll_i] * dw_1.object.ow_wfjg_sptpdb_rate[ll_i] NEXT // IF dw_1.Update() = -1 THEN ROLLBACK; MessageBox('系统提示:','当前盘点表保存失败!') RETURN ELSE COMMIT; MessageBox('系统提示:','当前盘点表保存成功!') END IF END IF dw_edit_mode = NOT dw_edit_mode wf_face() IF NOT dw_edit_mode THEN cb_1.TriggerEvent(Clicked!) end event type cb_del from uo_imflatbutton within w_wfjg_sptpdb integer x = 750 integer width = 165 integer height = 164 integer taborder = 40 boolean bringtotop = true boolean enabled = false string text = "取消" string normalpicname = "undo.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;dw_edit_mode=false wf_face() cb_1.triggerevent(clicked!) end event type cb_4 from uo_imflatbutton within w_wfjg_sptpdb integer x = 1568 integer width = 178 integer height = 164 integer taborder = 90 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 NOT f_power_ind(1431) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF Int rslt = 1 Long i,ls_sptid,ls_warepdbid,ls_mtrlid String arg_msg long cnt = 0 Decimal ld_cost String ls_status,ls_plancode,ls_mtrlcode,ls_unit Long ls_mtrlwareid String ls_woodcode,ls_pcode Decimal ls_planprice,ls_qty Long ll_pycnt,ll_pkcnt IF MessageBox ("if","是否确定要审核当前盘点?",question!,yesno! ) = 2 THEN RETURN dw_1.SetRedraw( FALSE ) dw_1.SetFilter('') dw_1.Filter() dw_1.SetRedraw( TRUE ) IF cur_sptid <= 0 THEN arg_msg = '请选择要盘点的外协商' rslt = 0 GOTO ext END IF IF ins_pdbdate = '' THEN arg_msg = '请选择盘点日' rslt = 0 GOTO ext END IF SELECT count(*) INTO :cnt FROM ow_wfjg_sptpdb WHERE ow_wfjg_sptpdb.sptid = :cur_sptid AND ow_wfjg_sptpdb.pdbdate = :ins_pdbdate AND flag = 0 USING sqlca; IF sqlca.SQLCode < 0 THEN arg_msg = '查询操作失败,在盘点日:'+String(ins_pdbdate)+',外协商:'+Trim(ddlb_sptid.Text)+'的数据资料!' rslt = 0 GOTO ext ELSE IF cnt <= 0 THEN arg_msg = '盘点日:'+String(ins_pdbdate)+',外协商:'+Trim(ddlb_sptid.Text)+'的盘点数据已经审核!' rslt = 0 GOTO ext END IF END IF FOR i = 1 TO dw_1.RowCount() IF dw_1.Object.pypkqty[i] > 0 THEN ll_pycnt++ ELSEIF dw_1.Object.pypkqty[i] < 0 THEN ll_pkcnt++ END IF NEXT IF ll_pycnt > 0 THEN uo_outware_wfjg uo_py uo_py = CREATE uo_outware_wfjg IF uo_py.newbegin(il_scid,9,arg_msg) = 0 THEN arg_msg = 'error!/盘盈单'+arg_msg rslt = 0 GOTO ext END IF uo_py.outdate = DateTime(Date(Left(ins_pdbdate,4)+'-'+Mid(ins_pdbdate,5,2)+'-'+Right(ins_pdbdate,2)),Time(0)) uo_py.outrep = publ_operator uo_py.part = '' uo_py.dscrp = '电脑生成的'+ins_pdbdate+'的盘盈单' uo_py.sptid = cur_sptid uo_py.sptname = cur_sptname uo_py.commit_transaction = sqlca uo_py.if_getid_ture = FALSE END IF IF ll_pkcnt > 0 THEN uo_inware_wfjg uo_pk uo_pk = CREATE uo_inware_wfjg IF uo_pk.newbegin(il_scid,9,arg_msg) = 0 THEN arg_msg = 'error!/盘亏单'+arg_msg rslt = 0 GOTO ext END IF uo_pk.indate = DateTime(Date(Left(ins_pdbdate,4)+'-'+Mid(ins_pdbdate,5,2)+'-'+Right(ins_pdbdate,2)),Time(0)) uo_pk.inrep = publ_operator uo_pk.part = '' uo_pk.dscrp = '电脑生成的'+ins_pdbdate+'的盘亏单' uo_pk.sptid = cur_sptid uo_pk.sptname = cur_sptname uo_pk.commit_transaction = sqlca uo_pk.if_getid_ture = FALSE END IF Open(w_sys_wait_jdt) //初始化进度条 w_sys_wait_jdt.Show() w_sys_wait_jdt.wf_accepttol(dw_1.RowCount()) //初始化进度条1 FOR i = 1 TO dw_1.RowCount() ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[i] ls_unit = dw_1.Object.u_mtrldef_unit[i] w_sys_wait_jdt.st_msg.Text = "处理:"+ls_mtrlcode //进度信息 IF dw_1.Object.mtrlid[i] <= 0 THEN CONTINUE IF dw_1.Object.pypkqty[i] = 0 THEN CONTINUE ls_mtrlwareid = dw_1.Object.ow_wfjg_sptpdb_mtrlwareid[i] ls_mtrlid = dw_1.Object.mtrlid[i] ls_sptid = dw_1.Object.ow_wfjg_sptpdb_sptid[i] ls_plancode = dw_1.Object.ow_wfjg_sptpdb_plancode[i] ls_status = dw_1.Object.ow_wfjg_sptpdb_status[i] ls_woodcode = dw_1.Object.ow_wfjg_sptpdb_woodcode[i] ls_pcode = dw_1.Object.ow_wfjg_sptpdb_pcode[i] ls_qty = dw_1.Object.qty[i] SELECT planprice INTO :ls_planprice FROM u_mtrldef Where mtrlid = :ls_mtrlid; IF sqlca.SQLCode <> 0 THEN arg_msg = 'error!/查询计划价失败'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF dw_1.Object.pypkqty[i] > 0 THEN IF ll_pycnt > 0 THEN IF uo_py.acceptmx(0,& dw_1.Object.pypkqty[i],& dw_1.Object.u_mtrldef_unit[i],& dw_1.Object.pypkqty[i],& '',& i,& arg_msg,0,0,0,& dw_1.Object.mtrlid[i],0,0,& ls_plancode,& dw_1.Object.u_mtrldef_mtrlcode[i],& ls_status,ls_woodcode,ls_pcode,& ls_planprice,1,0,& 1,'','') = 0 THEN arg_msg = 'error!/盘盈单'+arg_msg rslt = 0 GOTO ext END IF END IF ELSEIF dw_1.Object.pypkqty[i] < 0 THEN IF ll_pkcnt > 0 THEN IF uo_pk.acceptmx_bef(ls_mtrlwareid,& Abs(dw_1.Object.pypkqty[i]),0,& '',& i,arg_msg,& '',dw_1.Object.pypkqty[i],1 ) = 0 THEN MessageBox('error!',arg_msg) ROLLBACK; RETURN END IF END IF END IF w_sys_wait_jdt.wf_inc(i) //进度 NEXT IF ll_pycnt > 0 THEN IF uo_py.Save(FALSE,arg_msg) = 0 THEN arg_msg = 'error!/盘盈单'+arg_msg rslt = 0 GOTO ext END IF IF uo_py.getinfo(il_scid,uo_py.outwareid,arg_msg) = 0 THEN arg_msg = 'error!/盘盈单'+arg_msg rslt = 0 GOTO ext END IF IF uo_py.auditing(FALSE,arg_msg) = 0 THEN arg_msg = 'error!/盘盈单'+arg_msg rslt = 0 GOTO ext END IF END IF IF ll_pkcnt > 0 THEN IF uo_pk.Save(FALSE,arg_msg) = 0 THEN arg_msg = 'error!/盘亏单'+arg_msg rslt = 0 GOTO ext END IF IF uo_pk.getinfo(il_scid,uo_pk.inwareid,arg_msg) = 0 THEN arg_msg = 'error!/盘亏单'+arg_msg rslt = 0 GOTO ext END IF IF uo_pk.auditing(FALSE,arg_msg) = 0 THEN arg_msg = 'error!/盘亏单'+arg_msg rslt = 0 GOTO ext END IF END IF //IF cbx_auto_audit.Checked THEN IF wf_audit(il_scid,cur_sptid,ins_pdbdate,publ_operator,arg_msg,TRUE) = 0 THEN arg_msg = '审核盘点表失败,'+arg_msg rslt = 0 GOTO ext END IF wf_init_pdb() cb_1.TriggerEvent(Clicked!) //END IF ext: IF rslt = 0 THEN ROLLBACK; ELSE arg_msg = '生成盘盈单/盘亏单成功! 审核盘点表成功!' COMMIT; END IF Close(w_sys_wait_jdt) DESTROY uo_py DESTROY uo_pk MessageBox(publ_operator,arg_msg) end event type cb_5 from uo_imflatbutton within w_wfjg_sptpdb integer x = 329 integer width = 256 integer height = 164 integer taborder = 90 boolean bringtotop = true string text = "删盘点表" string normalpicname = "delete.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked; IF NOT f_power_ind(1433) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF wf_del() wf_init_pdb() cb_1.triggerevent(clicked!) end event type st_5 from statictext within w_wfjg_sptpdb integer x = 1911 integer y = 204 integer width = 210 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 = "盘点日:" alignment alignment = right! boolean focusrectangle = false end type type cb_addmx from uo_imflatbutton within w_wfjg_sptpdb integer x = 914 integer width = 192 integer height = 164 integer taborder = 80 boolean bringtotop = true boolean enabled = false string text = "增明细" string normalpicname = "mx1.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;parent.triggerevent('ue_f8') dw_1.SetFocus() end event type cb_delmx from uo_imflatbutton within w_wfjg_sptpdb integer x = 1106 integer width = 192 integer height = 164 integer taborder = 20 boolean bringtotop = true boolean enabled = false string text = "删明细" string normalpicname = "mx2.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;IF MessageBox ("IF","是否确定要删除当前细目记录?",Question!,YesNo! ) = 2 THEN RETURN IF dw_1.GetRow() = 0 THEN MessageBox('NO','请选择删除的行对象!') RETURN END IF dw_1.DeleteRow (0) dw_1.TriggerEvent (RowFocusChanged!) end event type ddlb_1 from dropdownlistbox within w_wfjg_sptpdb integer x = 2121 integer y = 188 integer width = 594 integer height = 856 integer taborder = 130 boolean bringtotop = true integer textsize = -10 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 boolean sorted = false boolean vscrollbar = true borderstyle borderstyle = stylelowered! end type event selectionchanged;ins_pdbdate = Trim(ddlb_1.Text) cb_1.triggerevent(clicked!) end event type ddlb_sptid from uo_ddlb_wfjg_sptid within w_wfjg_sptpdb integer x = 960 integer y = 188 integer width = 937 integer height = 856 integer taborder = 20 boolean bringtotop = true end type event constructor;call super::constructor;cur_sptid = this.uo_sptid end event event selectionchanged;call super::selectionchanged;cur_sptid = this.uo_sptid cur_sptname = Trim(this.Text) wf_init_pdb() cb_1.triggerevent(clicked!) end event type ddlb_scid from uo_ddlb_scid within w_wfjg_sptpdb integer x = 169 integer y = 188 integer width = 558 integer height = 856 integer taborder = 20 boolean bringtotop = true end type event selectionchanged;call super::selectionchanged;il_scid=this.uo_scid wf_init_spt() wf_init_pdb() cb_1.triggerevent(clicked!) end event event constructor;call super::constructor;il_scid=this.uo_scid end event type st_1 from statictext within w_wfjg_sptpdb integer y = 204 integer width = 169 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 = "分部:" alignment alignment = right! boolean focusrectangle = false end type type cb_audit from uo_imflatbutton within w_wfjg_sptpdb string tag = "只审核盘点表不生成盘盈亏单" boolean visible = false integer x = 2798 integer width = 169 integer height = 164 integer taborder = 70 boolean bringtotop = true string text = "审核" string normalpicname = "audit.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;IF NOT f_power_ind(1434) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF IF MessageBox ("if","是否确定要审核当前盘点表?",question!,yesno! ) = 2 THEN RETURN String arg_msg IF wf_audit(il_scid,cur_sptid,ins_pdbdate,publ_operator,arg_msg,TRUE) = 0 THEN MessageBox('提示','审核盘点表失败,'+arg_msg) RETURN END IF MessageBox('提示','审核盘点表成功') wf_init_pdb() cb_1.TriggerEvent(Clicked!) end event type cb_caudit from uo_imflatbutton within w_wfjg_sptpdb integer x = 1742 integer width = 174 integer height = 164 integer taborder = 100 boolean bringtotop = true string text = "撤审" string normalpicname = "caudit.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;IF NOT f_power_ind(1435) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF IF MessageBox ("if","是否确定要撤审当前盘点表?",question!,yesno! ) = 2 THEN RETURN String arg_msg IF wf_caudit(il_scid,cur_sptid,ins_pdbdate,arg_msg,TRUE) = 0 THEN MessageBox('提示','审核盘点表失败,'+arg_msg) RETURN END IF MessageBox('提示','撤审盘点表成功') wf_init_pdb() cb_1.TriggerEvent(Clicked!) end event type cbx_auto_audit from checkbox within w_wfjg_sptpdb boolean visible = false integer x = 2729 integer y = 200 integer width = 878 integer height = 56 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 boolean enabled = false string text = "生成盘盈/盘亏后自动审核盘点表" boolean checked = true end type type cb_6 from uo_imflatbutton within w_wfjg_sptpdb integer x = 1298 integer width = 274 integer height = 164 integer taborder = 80 boolean bringtotop = true string text = "辅助功能" string normalpicname = "other.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_pdqty" menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=批转换为辅单位1~tEvent=ue_unit_buy" menustr = menustr + "|" + "Text=批转换为辅单位2~tEvent=ue_unit_scll" menustr = menustr + "|" + "Text=批转换为辅单位3~tEvent=ue_unit_sale" menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=批转换为库存单位~tEvent=ue_unit" 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