$PBExportHeader$w_ware_pdb.srw forward global type w_ware_pdb from w_publ_easyq end type type st_1 from statictext within w_ware_pdb end type type em_3 from editmask within w_ware_pdb end type type st_2 from statictext within w_ware_pdb end type type cb_3 from uo_imflatbutton within w_ware_pdb end type type cb_edit from uo_imflatbutton within w_ware_pdb end type type cb_del from uo_imflatbutton within w_ware_pdb end type type cb_5 from uo_imflatbutton within w_ware_pdb end type type st_5 from statictext within w_ware_pdb end type type cb_mx from uo_imflatbutton within w_ware_pdb end type type ddlb_storageid from uo_ddlb_storageid within w_ware_pdb end type type ddlb_1 from dropdownlistbox within w_ware_pdb end type type tv_1 from uo_tv_mtrltype within w_ware_pdb end type type cb_audit from uo_imflatbutton within w_ware_pdb end type type cb_caudit from uo_imflatbutton within w_ware_pdb end type type cb_8 from uo_imflatbutton within w_ware_pdb end type type p_resize from picture within w_ware_pdb end type type cbx_1 from checkbox within w_ware_pdb end type type cbx_packqty_cmpl from checkbox within w_ware_pdb end type type dw_2 from datawindow within w_ware_pdb end type end forward global type w_ware_pdb from w_publ_easyq integer width = 3611 integer height = 2380 string title = "盘点表" boolean resizable = false event ue_f8 ( ) event ue_copy_qty ( ) event ue_copy_addqty ( ) event ue_delmx ( ) event ue_create_outware_scll ( ) event ue_audit ( ) event ue_audit_c ( ) event ue_update_scllflag ( ) event ue_set_dytitle ( ) event ue_insert_execltodw ( ) event ue_sentdataout_ware ( ) st_1 st_1 em_3 em_3 st_2 st_2 cb_3 cb_3 cb_edit cb_edit cb_del cb_del cb_5 cb_5 st_5 st_5 cb_mx cb_mx ddlb_storageid ddlb_storageid ddlb_1 ddlb_1 tv_1 tv_1 cb_audit cb_audit cb_caudit cb_caudit cb_8 cb_8 p_resize p_resize cbx_1 cbx_1 cbx_packqty_cmpl cbx_packqty_cmpl dw_2 dw_2 end type global w_ware_pdb w_ware_pdb type variables Long cur_storageid = 0 Long cur_storageid_arr[] String ins_pdbdate = '' boolean ins_dispmtrltype String ls_handtype = '' int ii_packqty_cmpl end variables forward prototypes public function integer wf_face () public function integer wf_instorage () public subroutine wf_del () public function integer wf_init_pdb () public function integer wf_check_ifmtrlware (ref string arg_msg) public subroutine wf_face_change () public function integer wf_openfile (datawindow arg_dw) end prototypes event ue_f8();IF NOT dw_edit_mode THEN RETURN Long child_row String ls_storagename = '' Long ls_warepdbid child_row = dw_1.GetRow() IF cur_storageid = 0 OR IsNull(cur_storageid) THEN MessageBox('提示','请先选择仓库',information!,ok!) RETURN END IF IF ins_pdbdate = '' OR IsNull(ins_pdbdate) THEN MessageBox('提示','请先选择盘点日',information!,ok!) RETURN END IF SELECT storagename INTO :ls_storagename FROM u_storage Where storageid = :cur_storageid USING sqlca; IF sqlca.SQLCode <> 0 THEN MessageBox('错误','查询仓库操作失败!',stopsign!,ok!) RETURN END IF IF NOT IsValid(w_add_mtrlware) 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_storageid OpenWithParm(w_add_mtrlware,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.u_warepdb_mtrlwareid[child_row] = S_INSCUST.mtrlwareid[1] dw_1.Object.mtrlid[child_row] = S_INSCUST.mtrlid[1] dw_1.Object.u_warepdb_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.u_warepdb_storageid[child_row] = cur_storageid dw_1.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST.u_mtrldef_mtrlname[1] dw_1.Object.u_warepdb_status[child_row] = S_INSCUST.status[1] dw_1.Object.u_warepdb_woodcode[child_row] = S_INSCUST.woodcode[1] dw_1.Object.u_warepdb_pcode[child_row] = S_INSCUST.pcode[1] dw_1.Object.u_storage_storagename[child_row]= ls_storagename dw_1.Object.factqty[child_row] = S_INSCUST.noallocqty[1] dw_1.Object.u_warepdb_factaddqty[child_row] = S_INSCUST.allocqty[1] dw_1.Object.u_warepdb_pdbdate[child_row] = ins_pdbdate dw_1.Object.u_warepdb_cost[child_row] = S_INSCUST.cost[1] dw_1.Object.u_warepdb_Sptid[child_row] = S_INSCUST.sptid[1] dw_1.Object.sptcode[child_row] = S_INSCUST.sptcode[1] dw_1.Object.sptname[child_row] = S_INSCUST.sptname[1] END IF END IF dw_1.SetFocus() END IF end event event ue_copy_qty();IF dw_edit_mode THEN IF MessageBox ("询问","是否要复制盘点数量等于库存数量?",question!,yesno! ) = 2 THEN RETURN dw_1.accepttext() long i for i = 1 to dw_1.rowcount() dw_1.object.factqty[i] = dw_1.object.qty[i] next END IF end event event ue_copy_addqty();IF dw_edit_mode THEN IF MessageBox ("询问","是否要复制盘点辅数等于库存辅数?",question!,yesno! ) = 2 THEN RETURN dw_1.accepttext() long i for i = 1 to dw_1.rowcount() dw_1.object.u_warepdb_factaddqty[i] = dw_1.object.u_warepdb_addqty[i] next END IF end event event ue_delmx();IF MessageBox ("询问","是否确定要删除当前细目记录?",Question!,YesNo! ) = 2 THEN RETURN IF dw_1.GETROW()=0 THEN MESSAGEBOX('提示','请选择删除的行对象!',information!,ok!) RETURN END IF dw_1.DeleteRow (0) dw_1.TriggerEvent (rowfocuschanged!) end event event ue_create_outware_scll();////无用了 //IF Not f_power_ind(246) THEN // MessageBox('提示','你没有使用权限!',information!,ok!) // RETURN //END IF // //Int rslt = 1 //Long i //String arg_msg //Int cnt = 0 //Decimal ld_cost //String ls_unit // //String ls_outwarecode //Long ll_printid //Long ls_wrkgrpid //Long ls_mtrlwareid,ls_scid,ls_mtrlid,ls_scllflag //,ls_storageid,ls_dxflag,ls_warepdbid,ls_sptid //String ls_mtrlcode ////String ls_plancode ////String ls_status,ls_woodcode,ls_pcode ////Decimal ls_qty //String ls_dscrp // //IF MessageBox ("询问","是否要辅助生成领料单?",question!,yesno! ) = 2 THEN RETURN // //dw_1.SetRedraw( FALSE ) //dw_1.SetFilter('') //dw_1.Filter() //dw_1.SetRedraw( TRUE ) // //IF cur_storageid <= 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 u_warepdb // Where u_warepdb.storageid = :cur_storageid // And u_warepdb.pdbdate = :ins_pdbdate // And flag = 0 Using sqlca; //IF sqlca.SQLCode < 0 THEN // arg_msg = '查询操作失败,在盘点日:'+String(ins_pdbdate)+',仓库:'+Trim(ddlb_storageid.Text)+'的数据资料!' // rslt = 0 // GOTO ext //ELSE // IF cnt <= 0 THEN // arg_msg = '盘点日:'+String(ins_pdbdate)+',仓库:'+Trim(ddlb_storageid.Text)+'的盘点数据已经审核!' // rslt = 0 // GOTO ext // END IF //END IF // // // //SELECT scid INTO :ls_scid // FROM u_storage // Where storageid = :cur_storageid; //IF sqlca.SQLCode <> 0 THEN // arg_msg = '盘点日:'+'查询仓库所属分部失败' // rslt = 0 // GOTO ext //END IF // //SELECT top 1 wrkgrpid INTO :ls_wrkgrpid // From u_sc_workgroup; //IF sqlca.SQLCode <> 0 THEN // arg_msg = '盘点日:'+'查询工组失败' // rslt = 0 // GOTO ext //END IF // //ls_dscrp = '盘点日:'+String(ins_pdbdate)+',盘亏辅助生成领料单' // //cnt = 0 //SELECT top 1 outwareid , outwarecode // INTO :cnt, :ls_outwarecode // FROM u_outware // WHERE storageid = :cur_storageid // AND dscrp = :ls_dscrp // And billtype = 3; //IF sqlca.SQLCode <> 0 THEN // cnt = 0 //END IF // //IF cnt > 0 THEN // IF MessageBox ("系统提示","已经建立相关领料单,单号["+ls_outwarecode+"],是否继续生成?",question!,yesno! ) = 2 THEN RETURN //END IF // //uo_outware uo_ware_scll //uo_ware_scll = Create uo_outware //uo_ware_scll.commit_transaction = sqlca //uo_ware_scll.if_getid_ture = False // //IF uo_ware_scll.newbegin(ls_scid,3,arg_msg) = 0 THEN // rslt = 0 // GOTO ext //END IF // // //uo_ware_scll.outdate = DateTime(Date(Left(ins_pdbdate,4)+'-'+Mid(ins_pdbdate,5,2)+'-'+Right(ins_pdbdate,2)),Time(0)) //uo_ware_scll.outrep = publ_operator //uo_ware_scll.part = '' //uo_ware_scll.dscrp = ls_dscrp //uo_ware_scll.storageid = cur_storageid //uo_ware_scll.relid = ls_wrkgrpid // // //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 //进度信息 // w_sys_wait_jdt.wf_inc(i) //进度 // // ls_mtrlwareid = dw_1.Object.u_warepdb_mtrlwareid[i] // ls_mtrlid = dw_1.Object.mtrlid[i] // // ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[i] // // // // ls_plancode = dw_1.Object.u_warepdb_plancode[i] // // ls_dxflag = dw_1.Object.u_warepdb_dxflag[i] // // ls_sptid= dw_1.Object.u_warepdb_sptid[i] // // // ls_status = dw_1.Object.u_warepdb_status[i] // // ls_woodcode = dw_1.Object.u_warepdb_woodcode[i] // // ls_pcode = dw_1.Object.u_warepdb_pcode[i] // // // ls_qty = dw_1.Object.qty[i] // // ls_scllflag = dw_1.Object.u_warepdb_scllflag[i] // // IF ls_scllflag = 0 Or ls_mtrlid = 0 Or ls_mtrlwareid = 0 THEN CONTINUE // // IF dw_1.Object.pypkqty[i] < 0 THEN //只有盘亏的才生成领料单 // ll_printid++ // IF uo_ware_scll.acceptmx(ls_mtrlwareid,& // Abs(dw_1.Object.pypkqty[i]),& // Abs(dw_1.Object.pypkaddqty[i]),& // ld_cost,& // 1,& // '',& // ll_printid,& // arg_msg,0,0,0,0,0,0,0,& // dw_1.Object.u_mtrldef_unit[i],1,'','') = 0 THEN // arg_msg = "行["+String(i)+"],"+arg_msg // rslt = 0 // GOTO ext // END IF // END IF // //NEXT // // // //IF uo_ware_scll.Save(False,arg_msg) = 0 THEN // rslt = 0 // GOTO ext //END IF // // //IF uo_ware_scll.getinfo(ls_scid,uo_ware_scll.outwareid,arg_msg) = 0 THEN // rslt = 0 // GOTO ext //END IF // //IF uo_ware_scll.auditing(False,arg_msg) = 0 THEN // rslt = 0 // GOTO ext //END IF // //ext: //IF rslt = 0 THEN // ROLLBACK; //ELSE // arg_msg = '生成领料单成功!领料单号['+uo_ware_scll.outwarecode+']' // COMMIT; //END IF // //Close(w_sys_wait_jdt) // //Destroy uo_ware_scll //MessageBox('提示',arg_msg,information!,ok!) // // // // // // // // // // // // // // // end event event ue_audit();IF Not f_power_ind(1034) THEN MessageBox('提示','你没有使用权限!',information!,ok!) RETURN END IF Int rslt = 1 Long i,ls_storageid,ls_warepdbid,ls_mtrlid String arg_msg Long cnt = 0 Decimal ld_cost,ld_cost_mtrlware, ld_cost_pdb String ls_status,ls_plancode,ls_mtrlcode,ls_unit Long ll_scid,ls_dxflag, ll_wrkgrpid Long ls_mtrlwareid,ls_sptid String ls_woodcode,ls_pcode Decimal ls_planprice,ls_qty Int li_mtrlprp, li_ifbalc String ld_waredscrp DateTime ld_inworkdate DateTime ldt_balcdate string ls_u_warepdb_waredscrp dw_1.AcceptText() ldt_balcdate = DateTime(Date(Left(ins_pdbdate,4)+'-'+Mid(ins_pdbdate,5,2)+'-'+Right(ins_pdbdate,2)),Time(23:59:59)) IF cur_storageid <= 0 THEN arg_msg = '请选择要盘点的仓库' rslt = 0 GOTO ext END IF IF ins_pdbdate = '' THEN arg_msg = '请选择盘点日' rslt = 0 GOTO ext END IF SELECT scid, mtrlprp, ifbalc INTO :ll_scid, :li_mtrlprp, :li_ifbalc FROM u_storage Where storageid = :cur_storageid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询仓库所属分部失败' rslt = 0 GOTO ext END IF IF li_ifbalc = 0 THEN IF MessageBox ("询问","是否确定要审核当前盘点?",question!,yesno! ) = 2 THEN RETURN ELSE IF MessageBox ("询问","是否确定要审核当前盘点并且按盘点日期自动结存当前仓库?",question!,yesno! ) = 2 THEN RETURN END IF uo_inware uo_ware_py uo_ware_py = Create uo_inware uo_ware_py.commit_transaction = sqlca uo_ware_py.if_getid_ture = False uo_ware_py.sysautobuild = True uo_outware uo_ware_pk uo_ware_pk = Create uo_outware uo_ware_pk.commit_transaction = sqlca uo_ware_pk.if_getid_ture = False uo_ware_pk.sysautobuild = True uo_outware_scll uo_ware_scll uo_ware_scll = Create uo_outware_scll uo_ware_scll.commit_transaction = sqlca uo_ware_scll.if_getid_ture = False uo_ware_scll.sysautobuild = True uo_ware_pdb_balc uo_pdb uo_pdb = Create uo_ware_pdb_balc datastore ds_1 ds_1 = Create datastore ds_1.DataObject = dw_1.DataObject ds_1.SetTransObject(sqlca) cnt = 0 SELECT count(*) INTO :cnt FROM u_warepdb_bill WHERE storageid = :cur_storageid AND (CONVERT(Char(8), billdate, 112) = :ins_pdbdate) AND flag = 1 Using sqlca ; IF sqlca.SQLCode < 0 THEN arg_msg = '盘点单查询操作失败,在盘点日:'+ins_pdbdate+',仓库:'+Trim(ddlb_storageid.Text)+'的数据资料!' rslt = 0 GOTO ext ELSE IF cnt > 0 THEN arg_msg = '盘点单,盘点日:'+ins_pdbdate+',仓库:'+Trim(ddlb_storageid.Text)+'的盘点数据已经审核!' rslt = 0 GOTO ext END IF END IF cnt = 0 SELECT count(*) INTO :cnt FROM u_warepdb WHERE u_warepdb.storageid = :cur_storageid AND u_warepdb.pdbdate = :ins_pdbdate AND flag = 0 Using sqlca; IF sqlca.SQLCode < 0 THEN arg_msg = '盘点表查询操作失败,在盘点日:'+String(ins_pdbdate)+',仓库:'+Trim(ddlb_storageid.Text)+'的数据资料!' rslt = 0 GOTO ext END IF IF cnt <= 0 THEN arg_msg = '盘点表,盘点日:'+String(ins_pdbdate)+',仓库:'+Trim(ddlb_storageid.Text)+'的盘点数据已经审核!' rslt = 0 GOTO ext END IF ds_1.Retrieve(cur_storageid_arr,ins_pdbdate,'',0) //ds_1.SetFilter('') //ds_1.Filter( ) //pypkqty[i] < 0 Or ds_1.Object.pypkaddqty < 0 IF ds_1.Find("u_warepdb_scllflag = 1", 1, ds_1.RowCount()) > 0 THEN SELECT top 1 wrkgrpid INTO :ll_wrkgrpid From u_sc_workgroup; IF sqlca.SQLCode <> 0 THEN arg_msg = '盘点日:'+'查询领料工作中心失败' rslt = 0 GOTO ext END IF END IF IF uo_ware_py.newbegin(ll_scid,9,arg_msg) = 0 THEN arg_msg = 'error!/盘盈单'+arg_msg rslt = 0 GOTO ext END IF IF uo_ware_pk.newbegin(ll_scid,9,arg_msg) = 0 THEN arg_msg = 'error!/盘亏单'+arg_msg rslt = 0 GOTO ext END IF IF uo_ware_scll.newbegin(ll_scid,3,arg_msg) = 0 THEN arg_msg = 'error!/生产领料单'+arg_msg rslt = 0 GOTO ext END IF //以下3个dscrp均用作删除的主键信息,要修改时必须同步修改ue_audit_c() uo_ware_py.indate = DateTime(Date(Left(ins_pdbdate,4)+'-'+Mid(ins_pdbdate,5,2)+'-'+Right(ins_pdbdate,2)),Time(0)) uo_ware_py.inrep = publ_operator uo_ware_py.part = String(ins_pdbdate) uo_ware_py.dscrp = '盘点表审核自动生成盘盈单' uo_ware_py.storageid = cur_storageid uo_ware_pk.outdate = DateTime(Date(Left(ins_pdbdate,4)+'-'+Mid(ins_pdbdate,5,2)+'-'+Right(ins_pdbdate,2)),Time(0)) uo_ware_pk.outrep = publ_operator uo_ware_pk.part = String(ins_pdbdate) uo_ware_pk.dscrp = '盘点表审核自动生成盘亏单' uo_ware_pk.storageid = cur_storageid uo_ware_scll.outdate = DateTime(Date(Left(ins_pdbdate,4)+'-'+Mid(ins_pdbdate,5,2)+'-'+Right(ins_pdbdate,2)),Time(0)) uo_ware_scll.outrep = publ_operator uo_ware_scll.part = String(ins_pdbdate) uo_ware_scll.dscrp = '盘点表审核盘亏自动生成生产领料单' uo_ware_scll.storageid = cur_storageid uo_ware_scll.relid = ll_wrkgrpid Open(w_sys_wait_jdt) //初始化进度条 w_sys_wait_jdt.Show() w_sys_wait_jdt.wf_accepttol(ds_1.RowCount()) //初始化进度条1 FOR i = 1 To ds_1.RowCount() ls_mtrlcode = ds_1.Object.u_mtrldef_mtrlcode[i] ls_unit = ds_1.Object.u_mtrldef_unit[i] w_sys_wait_jdt.st_msg.Text = "正在处理:"+ls_mtrlcode //进度信息 IF ds_1.Object.mtrlid[i] <= 0 THEN CONTINUE IF ds_1.Object.pypkqty[i] = 0 And ds_1.Object.pypkaddqty[i] = 0 THEN CONTINUE //IF ds_1.Object.u_warepdb_scllflag[i] = 1 And ds_1.Object.pypkqty[i] < 0 THEN CONTINUE //只有盘亏的领料才不考虑 ls_mtrlwareid = ds_1.Object.u_warepdb_mtrlwareid[i] ls_mtrlid = ds_1.Object.mtrlid[i] ls_sptid = ds_1.Object.u_warepdb_sptid[i] ls_plancode = ds_1.Object.u_warepdb_plancode[i] ls_dxflag = ds_1.Object.u_warepdb_dxflag[i] ls_status = ds_1.Object.u_warepdb_status[i] ls_woodcode = ds_1.Object.u_warepdb_woodcode[i] ls_pcode = ds_1.Object.u_warepdb_pcode[i] ls_qty = ds_1.Object.qty[i] ld_cost_pdb = ds_1.Object.u_warepdb_cost[i] SELECT cost , waredscrp, inworkdate INTO :ld_cost_mtrlware, :ld_waredscrp, :ld_inworkdate FROM u_mtrlware WHERE scid = :ll_scid And mtrlwareid = :ls_mtrlwareid; IF sqlca.SQLCode <> 0 THEN arg_msg = '物料:'+ls_mtrlcode+',查询库存成本价失败'+sqlca.SQLErrText rslt = 0 GOTO ext END IF SELECT planprice INTO :ls_planprice FROM u_mtrldef Where mtrlid = :ls_mtrlid; IF sqlca.SQLCode <> 0 THEN arg_msg = '物料:'+ls_mtrlcode+',查询计划价失败'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF li_mtrlprp = 0 Or li_mtrlprp = 1 Or li_mtrlprp = 2 THEN IF ld_cost_mtrlware = 0 THEN ld_cost = ls_planprice ELSE ld_cost = ld_cost_mtrlware END IF ELSE ld_cost = 0 END IF if ld_cost = 0 then ld_cost = ld_cost_pdb end if IF ds_1.Object.pypkqty[i] > 0 Or ds_1.Object.pypkaddqty[i] > 0 THEN // IF uo_ware_py.acceptmx(i,& // ds_1.Object.mtrlid[i],& // ds_1.Object.u_mtrldef_mtrlcode[i],& // ls_plancode,& // ls_status,& // ds_1.Object.pypkqty[i],& // ds_1.Object.pypkaddqty[i],& // ld_cost,& // 1,& // '',& // arg_msg,0,0,0,0,ls_woodcode,ls_pcode,'',ls_sptid,ls_unit,1,'',ld_waredscrp,ld_inworkdate) = 0 THEN IF uo_ware_py.acceptmx(i,& ds_1.Object.mtrlid[i],& ds_1.Object.u_mtrldef_mtrlcode[i],& ls_plancode,& ls_status,& ds_1.Object.pypkqty[i],& ds_1.Object.pypkaddqty[i],& ld_cost,& 1,& '',& arg_msg,0,0,0,0,ls_woodcode,ls_pcode,'',ls_sptid,ls_unit,1,'',ds_1.Object.u_warepdb_waredscrp[i],ld_inworkdate,0) = 0 THEN arg_msg = "行["+String(i)+"],盘盈单,接受明细,"+arg_msg rslt = 0 GOTO ext END IF ELSEIF ds_1.Object.u_warepdb_scllflag[i] = 0 And ( ds_1.Object.pypkqty[i] < 0 Or ds_1.Object.pypkaddqty[i] < 0 ) THEN IF uo_ware_pk.acceptmx(ls_mtrlwareid,& Abs(ds_1.Object.pypkqty[i]),& Abs(ds_1.Object.pypkaddqty[i]),& ld_cost_mtrlware,& 1,& '',& i,& arg_msg,0,0,0,0,0,0,0,& ds_1.Object.u_mtrldef_unit[i],1,'','') = 0 THEN arg_msg = "行["+String(i)+"],盘亏单,接受明细,"+arg_msg rslt = 0 GOTO ext END IF ELSEIF ds_1.Object.u_warepdb_scllflag[i] = 1 And ( ds_1.Object.pypkqty[i] < 0 Or ds_1.Object.pypkaddqty[i] < 0 ) THEN IF uo_ware_scll.acceptmx(ls_mtrlwareid,& Abs(ds_1.Object.pypkqty[i]),& Abs(ds_1.Object.pypkaddqty[i]),& ld_cost_mtrlware,& 1,& '',& i,& arg_msg,0,0,0,0,0,0,0,& ds_1.Object.u_mtrldef_unit[i],1,'','') = 0 THEN arg_msg = "行["+String(i)+"],生产领料单,接受明细,"+arg_msg rslt = 0 GOTO ext END IF END IF w_sys_wait_jdt.wf_inc(i) //进度 NEXT //自动生成盘盈单 IF uo_ware_py.it_mxbt > 0 THEN w_sys_wait_jdt.st_msg.Text = "正在保存盘盈单..." //进度信息 IF uo_ware_py.Save(False,arg_msg) = 0 THEN arg_msg = 'error!/盘盈单'+arg_msg rslt = 0 GOTO ext END IF IF uo_ware_py.getinfo(ll_scid,uo_ware_py.inwareid,arg_msg) = 0 THEN arg_msg = 'error!/盘盈单'+arg_msg rslt = 0 GOTO ext END IF w_sys_wait_jdt.st_msg.Text = "正在审核盘盈单..." //进度信息 IF uo_ware_py.auditing(False,arg_msg) = 0 THEN arg_msg = 'error!/盘盈单'+arg_msg rslt = 0 GOTO ext END IF END IF //自动生成盘亏单 IF uo_ware_pk.it_mxbt > 0 THEN w_sys_wait_jdt.st_msg.Text = "正在保存盘亏单..." //进度信息 IF uo_ware_pk.Save(False,arg_msg) = 0 THEN arg_msg = 'error!/盘亏单'+arg_msg rslt = 0 GOTO ext END IF IF uo_ware_pk.getinfo(ll_scid,uo_ware_pk.outwareid,arg_msg) = 0 THEN arg_msg = 'error!/盘亏单'+arg_msg rslt = 0 GOTO ext END IF w_sys_wait_jdt.st_msg.Text = "正在审核盘亏单..." //进度信息 IF uo_ware_pk.auditing(False,arg_msg) = 0 THEN arg_msg = 'error!/盘亏单'+arg_msg rslt = 0 GOTO ext END IF END IF //自动生成领料单 IF uo_ware_scll.it_mxbt > 0 THEN w_sys_wait_jdt.st_msg.Text = "正在保存生产领料单..." //进度信息 IF uo_ware_scll.Save(False,arg_msg) = 0 THEN arg_msg = '保存生产领料单,'+arg_msg rslt = 0 GOTO ext END IF IF uo_ware_scll.getinfo(ll_scid,uo_ware_scll.outwareid,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF w_sys_wait_jdt.st_msg.Text = "正在审核生产领料单..." //进度信息 IF uo_ware_scll.auditing(False,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF END IF //更新库存摘要 20180831 for i = 1 to ds_1.RowCount() ls_mtrlwareid = ds_1.Object.u_warepdb_mtrlwareid[i] ls_u_warepdb_waredscrp = ds_1.Object.u_warepdb_waredscrp[i] UPDATE u_mtrlware SET u_mtrlware.waredscrp = :ls_u_warepdb_waredscrp WHERE ( scid = :ll_scid ) AND ( mtrlwareid = :ls_mtrlwareid ) ; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "因网络或其它原因导致更新库存摘要操作失败"+"~n"+sqlca.SQLErrText GOTO ext END IF next //自动审核盘点表 w_sys_wait_jdt.st_msg.Text = "正在审核盘点表..." //进度信息 IF uo_pdb.uof_pdb_audit(cur_storageid,ins_pdbdate,publ_operator,arg_msg,False) = 0 THEN arg_msg = '审核盘点表失败,'+arg_msg rslt = 0 GOTO ext END IF //自动结存仓库 IF li_ifbalc = 1 THEN w_sys_wait_jdt.st_msg.Text = "正在结存仓库..." //进度信息 IF uf_warebalc(1,0,cur_storageid,ldt_balcdate,arg_msg) = 0 THEN arg_msg = '审核盘点表自动结存仓库失败,'+arg_msg rslt = 0 GOTO ext END IF END IF ext: IF rslt = 0 THEN ROLLBACK; ELSE arg_msg = '生成盘盈单/盘亏单成功!' COMMIT; wf_init_pdb() cb_1.TriggerEvent(Clicked!) END IF Close(w_sys_wait_jdt) Destroy uo_ware_py Destroy uo_ware_pk Destroy uo_ware_scll Destroy uo_pdb Destroy ds_1 MessageBox('提示',arg_msg,information!,ok!) end event event ue_audit_c();IF NOT f_power_ind(1035) THEN MessageBox('提示','你没有使用权限!',information!,ok!) RETURN END IF Int rslt = 1 IF MessageBox ("询问","是否确定要撤审当前盘点表?",question!,yesno! ) = 2 THEN RETURN uo_inware uo_ware_py uo_ware_py = CREATE uo_inware uo_ware_py.commit_transaction = sqlca uo_ware_py.if_getid_ture = FALSE uo_ware_py.sysautobuild = true uo_outware uo_ware_pk uo_ware_pk = CREATE uo_outware uo_ware_pk.commit_transaction = sqlca uo_ware_pk.if_getid_ture = FALSE uo_ware_pk.sysautobuild = true uo_outware_scll uo_ware_scll uo_ware_scll = CREATE uo_outware_scll uo_ware_scll.commit_transaction = sqlca uo_ware_scll.if_getid_ture = FALSE uo_ware_scll.sysautobuild = true uo_ware_pdb_balc uo_pdb uo_pdb = CREATE uo_ware_pdb_balc Long cnt String arg_msg Long ll_scid, ll_inwareid, ll_outwareid String ls_inwarecode, ls_outwarecode String ls_part, ls_dscrp, ls_tmpdscrp ls_part = ins_pdbdate ls_dscrp = '盘点表审核自动生成盘盈单' //兼容旧的,以后可删 20120713 ls_tmpdscrp = '电脑生成的'+ins_pdbdate+'的盘亏单' //1.撤审,删除盘盈单, SELECT count(*) INTO :cnt FROM u_inware WHERE storageid = :cur_storageid AND ((dscrp = :ls_dscrp and part = :ls_part ) or dscrp = :ls_tmpdscrp) AND billtype = 9; IF sqlca.SQLCode <> 0 THEN cnt = 0 END IF IF cnt > 1 THEN rslt = 0 arg_msg = "当前盘点表已生成多张盘盈单,请先手动删除" GOTO ext ELSEIF cnt = 1 THEN SELECT scid, inwareid , inwarecode INTO :ll_scid, :ll_inwareid, :ls_inwarecode FROM u_inware WHERE storageid = :cur_storageid AND ((dscrp = :ls_dscrp and part = :ls_part ) or dscrp = :ls_tmpdscrp) AND billtype = 9; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "查询当前盘点表相关盘盈单失败,"+sqlca.SQLErrText GOTO ext END IF IF uo_ware_py.getinfo(ll_scid,ll_inwareid,arg_msg) = 0 THEN arg_msg = 'error!/盘盈单'+arg_msg rslt = 0 GOTO ext END IF IF uo_ware_py.c_auditing(FALSE,arg_msg) = 0 THEN arg_msg = 'error!/盘盈单'+arg_msg rslt = 0 GOTO ext END IF IF uo_ware_py.del(ll_scid,ll_inwareid,arg_msg,FALSE) = 0 THEN arg_msg = 'error!/盘盈单'+arg_msg rslt = 0 GOTO ext END IF END IF //2.撤审,删除盘亏单 ls_part = ins_pdbdate ls_dscrp = '盘点表审核自动生成盘亏单' ls_tmpdscrp = '电脑生成的'+ins_pdbdate+'的盘亏单' SELECT count(*) INTO :cnt FROM u_outware WHERE storageid = :cur_storageid AND ((dscrp = :ls_dscrp and part = :ls_part ) or dscrp = :ls_tmpdscrp) AND billtype = 9; IF sqlca.SQLCode <> 0 THEN cnt = 0 END IF IF cnt > 1 THEN rslt = 0 arg_msg = "当前盘点表已生成多张盘亏单,请先手动删除" GOTO ext ELSEIF cnt = 1 THEN SELECT scid, outwareid , outwarecode INTO :ll_scid, :ll_outwareid, :ls_outwarecode FROM u_outware WHERE storageid = :cur_storageid AND ((dscrp = :ls_dscrp and part = :ls_part ) or dscrp = :ls_tmpdscrp) AND billtype = 9; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "查询当前盘点表相关盘亏单失败,"+sqlca.SQLErrText GOTO ext END IF IF uo_ware_pk.getinfo(ll_scid,ll_outwareid,arg_msg) = 0 THEN arg_msg = 'error!/盘亏单'+arg_msg rslt = 0 GOTO ext END IF IF uo_ware_pk.c_auditing(FALSE,arg_msg) = 0 THEN arg_msg = 'error!/盘亏单'+arg_msg rslt = 0 GOTO ext END IF IF uo_ware_pk.del(ll_scid,ll_outwareid,arg_msg,FALSE) = 0 THEN arg_msg = 'error!/盘亏单'+arg_msg rslt = 0 GOTO ext END IF END IF //uo_ware_scll.outdate = DateTime(Date(Left(ins_pdbdate,4)+'-'+Mid(ins_pdbdate,5,2)+'-'+Right(ins_pdbdate,2)),Time(0)) //uo_ware_scll.outrep = publ_operator //uo_ware_scll.part = '' //uo_ware_scll.dscrp = '盘点日:'+String(ins_pdbdate)+',盘亏辅助生成领料单' //uo_ware_scll.storageid = cur_storageid //uo_ware_scll.relid = ll_wrkgrpid //撤审删除生产领料单 ls_part = ins_pdbdate ls_dscrp = '盘点表审核盘亏自动生成生产领料单' ls_tmpdscrp = '盘点日:'+String(ins_pdbdate)+',盘亏辅助生产领料单' SELECT count(*) INTO :cnt FROM u_outware WHERE storageid = :cur_storageid AND ((dscrp = :ls_dscrp and part = :ls_part ) or dscrp = :ls_tmpdscrp) AND billtype = 3; IF sqlca.SQLCode <> 0 THEN cnt = 0 END IF IF cnt > 1 THEN rslt = 0 arg_msg = "当前盘点表已生成多张生产领料单,请先手动删除" GOTO ext ELSEIF cnt = 1 THEN SELECT scid, outwareid , outwarecode INTO :ll_scid, :ll_outwareid, :ls_outwarecode FROM u_outware WHERE storageid = :cur_storageid AND ((dscrp = :ls_dscrp and part = :ls_part ) or dscrp = :ls_tmpdscrp) AND billtype = 3; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "查询当前盘点表相关盘亏单失败,"+sqlca.SQLErrText GOTO ext END IF IF uo_ware_pk.getinfo(ll_scid,ll_outwareid,arg_msg) = 0 THEN arg_msg = 'error!/生产领料单'+arg_msg rslt = 0 GOTO ext END IF IF uo_ware_pk.c_auditing(FALSE,arg_msg) = 0 THEN arg_msg = 'error!/生产领料单'+arg_msg rslt = 0 GOTO ext END IF IF uo_ware_pk.del(ll_scid,ll_outwareid,arg_msg,FALSE) = 0 THEN arg_msg = 'error!/生产领料单'+arg_msg rslt = 0 GOTO ext END IF END IF //3.撤审盘点表 IF uo_pdb.uof_pdb_caudit(cur_storageid,ins_pdbdate,arg_msg,FALSE) = 0 THEN rslt = 0 arg_msg = '撤审盘点表失败,'+arg_msg GOTO ext END IF ext: IF rslt = 0 THEN ROLLBACK; MessageBox('ERROR',arg_msg,information!,ok!) ELSE COMMIT; MessageBox('提示','撤审盘点表成功',information!,ok!) cb_1.TriggerEvent(Clicked!) END IF DESTROY uo_ware_py DESTROY uo_ware_pk DESTROY uo_ware_scll DESTROY uo_pdb end event event ue_update_scllflag(); IF MessageBox ("询问","是否要更新当前盘点表盘亏领料标记",question!,yesno! ) = 2 THEN RETURN DateTime ld_balcdate String ls_balcdate Int li_ifbalc Int rst Long ll_balcdateint String arg_msg ls_balcdate = Left(String(ins_pdbdate),4) + '-' + Left(Right(String(ins_pdbdate),4),2) +'-'+ Right(String(ins_pdbdate),2) ld_balcdate = DateTime(Date(ls_balcdate),Time(0)) ll_balcdateint = Year(Date(ld_balcdate)) * 10000 + Month(Date(ld_balcdate)) * 100 + Day(Date(ld_balcdate)) uo_ware_pdb_balc uo_pdb uo_pdb = CREATE uo_ware_pdb_balc IF uo_pdb.uof_pdb_update_scllflag(cur_storageid,ins_pdbdate,arg_msg,true) = 0 THEN MessageBox('错误','更新当前盘点表盘亏领料标记失败,'+arg_msg,stopsign!,ok!) RETURN END IF DESTROY uo_pdb MessageBox('提示','更新当前盘点表盘亏领料标记成功',information!,ok!) //wf_init_pdb() cb_1.TriggerEvent(Clicked!) end event event ue_set_dytitle();Long ll_d_col_count,i,j = 1 String ls_col_name s_dytitle_ware_pdb ss_dytitle_ware_pdb //col_name ll_d_col_count = Long(dw_2.Object.datawindow.Column.Count) FOR i = 1 To ll_d_col_count ls_col_name = dw_2.Describe('#' + String(i) + '.Name') ss_dytitle_ware_pdb.col_name[j] = ls_col_name ss_dytitle_ware_pdb.title_name[j] = dw_2.describe(ls_col_name + '_t.Text') j++ //END IF NEXT openwithparm(w_dytitle_ware_pdb,ss_dytitle_ware_pdb) end event event ue_insert_execltodw();Long i,ll_cnt,j SELECT count(*) Into :ll_cnt From u_dytitle_ware_pdb; IF ll_cnt = 0 THEN MessageBox('Error','明细标题与execl标题对应关系没有设置,请先执行设置') This.TriggerEvent('ue_set_dytitle') RETURN END IF dw_2.setredraw(false) wf_openfile(dw_2) dw_2.AcceptText() Long row String arg_msg String mtrlcode,status,woodcode,pcode,plancode FOR i = 1 To dw_2.RowCount() mtrlcode = String(dw_2.Object.u_mtrldef_mtrlcode[i]) status = String(dw_2.Object.u_warepdb_status[i]) woodcode = String(dw_2.Object.u_warepdb_woodcode[i]) pcode = String(dw_2.Object.u_warepdb_pcode[i]) plancode = String(dw_2.Object.u_warepdb_plancode[i]) row = dw_1.find(' u_mtrldef_mtrlcode = "' + mtrlcode + '" and u_warepdb_status ="'+status + '" and u_warepdb_woodcode = "'+ woodcode+ '" and u_warepdb_pcode = "'+ pcode + '" and u_warepdb_plancode = "'+ plancode+'"' ,1,dw_1.rowcount()) IF row > 0 THEN dw_1.object.factqty[row] = dw_2.Object.factqty[i] dw_1.object.u_warepdb_packqty[row] = dw_2.Object.u_warepdb_packqty[i] dw_1.object.u_warepdb_factaddqty[row] = dw_2.Object.u_warepdb_factaddqty[i] dw_1.object.u_warepdb_waredscrp[row] = dw_2.Object.u_warepdb_waredscrp[i] END IF NEXT end event event ue_sentdataout_ware();IF NOT if_power_sendout THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF int rtr_zeronoallocqty IF cbx_1.Checked THEN rtr_zeronoallocqty = 0 ELSE rtr_zeronoallocqty = 1 END IF dw_2.retrieve(cur_storageid_arr,ins_pdbdate,ls_handtype,rtr_zeronoallocqty) OpenWithParm(w_sentdataout,DW_2) end event public function integer wf_face ();IF dw_edit_mode THEN dw_1.SetFocus() dw_1.SetTabOrder("factqty",10) dw_1.SetTabOrder("u_warepdb_factaddqty",20) dw_1.SetTabOrder("u_warepdb_packqty",30) dw_1.SetTabOrder("u_warepdb_waredscrp",40) // dw_1.SetTabOrder("u_warepdb_scllflag",30) cb_edit.enabled = true cb_edit.Text = '保存' cb_edit.normalpicname = 'Save.bmp' cb_del.Enabled = TRUE cb_mx.Enabled = TRUE cb_3.Enabled = FALSE cb_5.Enabled = FALSE cb_audit.Enabled = FALSE cb_caudit.Enabled = FALSE ddlb_storageid.Enabled = FALSE ddlb_1.Enabled = FALSE ELSE dw_1.SetTabOrder("factqty",0) dw_1.SetTabOrder("u_warepdb_factaddqty",0) dw_1.SetTabOrder("u_warepdb_packqty",0) dw_1.SetTabOrder("u_warepdb_waredscrp",0) // dw_1.SetTabOrder("u_warepdb_scllflag",0) cb_edit.Text = '修改' cb_edit.normalpicname = 'open.bmp' cb_del.Enabled = FALSE cb_mx.Enabled = TRUE cb_3.Enabled = TRUE cb_5.Enabled = TRUE cb_audit.Enabled = TRUE cb_caudit.Enabled = TRUE ddlb_storageid.Enabled = TRUE ddlb_1.Enabled = TRUE IF dw_1.RowCount() > 0 THEN IF dw_1.Object.u_warepdb_flag[1] = 0 THEN cb_audit.Enabled = TRUE cb_caudit.Enabled = FALSE cb_edit.enabled = true cb_5.enabled = true ELSE cb_audit.Enabled = FALSE cb_caudit.Enabled = TRUE cb_edit.enabled = FALSE cb_5.enabled = FALSE END IF ELSE cb_audit.Enabled = FALSE cb_caudit.Enabled = FALSE cb_edit.enabled = FALSE cb_5.enabled = FALSE END IF END IF cb_edit.of_init_draw() cb_edit.of_paint() cb_edit.TriggerEvent('ue_textchange') RETURN 1 end function public function integer wf_instorage ();String ls_waredate String arg_msg Long ls_scid DateTime st_date,ed_date,ls_serverdate Date ls_enddate IF MessageBox("询问","你是否要盘点"+Trim(em_3.Text)+"的库存吗?",Exclamation!, yesno!, 2) = 2 THEN GOTO ext END IF ls_waredate = String(Date(Trim(em_3.Text)),'yyyymmdd') IF cur_storageid <= 0 THEN MessageBox('提示','请选择要盘点的仓库?',information!,ok!) RETURN 0 END IF SELECT scid INTO :ls_scid FROM u_storage Where storageid = :cur_storageid; IF sqlca.SQLCode <> 0 THEN MessageBox('系统提示:','查询仓库分部失败'+sqlca.SQLErrText) RETURN 0 END IF datetime ldt_pdbdate long cnt ldt_pdbdate = datetime(Date(Trim(em_3.Text)),Time('23:59:59')) cnt = 0 SELECT count(*) INTO :cnt FROM u_warepdb_bill Where storageid = :cur_storageid And billdate = :ldt_pdbdate USING sqlca ; IF sqlca.SQLCode = -1 THEN MessageBox('错误','盘点单查询操作失败,在盘点日:'+String(ldt_pdbdate,"yyyy-mm-dd")+',仓库:'+String(cur_storageid)+'的数据资料!',stopsign!,ok!) return 1 ELSE IF cnt > 0 THEN MessageBox('错误','盘点单,已存在盘点日:'+String(ldt_pdbdate,"yyyy-mm-dd")+',仓库:'+String(cur_storageid)+'的盘点数据!',stopsign!,ok!) return 1 END IF END IF SELECT Top 1 getdate() INTO :ls_serverdate FROM u_user ; //取得系统时间,借用操作员表 IF sqlca.SQLCode <> 0 THEN MessageBox('错误','查询操作失败,日期'+sqlca.SQLErrText,stopsign!,ok!) RETURN 0 END IF //********************************************************** ls_enddate = Date(em_3.Text) st_date = DateTime(RelativeDate(date(ls_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,information!,ok!) RETURN 0 END IF DELETE u_parm_balcdate ; IF sqlca.SQLCode <> 0 THEN ROLLBACK ; MessageBox('错误',"因网络或其它原因导致操作失败,请重试!",stopsign!,ok!) RETURN 0 END IF INSERT INTO u_parm_balcdate (first_date,end_date) Values (:st_date,:ed_date) ; IF sqlca.SQLCode <> 0 THEN ROLLBACK ; MessageBox('错误',"因网络或其它原因导致操作失败,请重试!",stopsign!,ok!) RETURN 0 ELSE COMMIT ; END IF //********************************************************** //INSERT INTO u_warepdb ( // flag, // pdbdate, // storageid, // mtrlid, // plancode, // status, // woodcode, // pcode, // dxflag, // sptid, // scid, // mtrlwareid, // qty, // factqty) // SELECT // :ls_scid, // :ls_waredate, // storageid, // mtrlid, // plancode, // status, // woodcode, // pcode, // dxflag, // sptid, // scid, // mtrlwareid, // noallocqty, // 0 // FROM u_mtrlware // WHERE u_mtrlware.storageid = :cur_storageid AND // u_mtrlware.scid = 0; INSERT INTO u_warepdb ( flag, pdbdate, scid, mtrlwareid, mtrlid, storageid, plancode, Status, planprice, Sptid, Dxflag, newprice, woodcode, pcode, cost, qty, addqty, factqty, wareamt, scllflag, sys_changetime,waredscrp) SELECT 0, :ls_waredate , u_mtrlware.scid, u_mtrlware.mtrlwareid, u_mtrlware.mtrlid, u_mtrlware.storageid, u_mtrlware.plancode, u_mtrlware.Status, u_mtrldef.planprice, u_mtrlware.Sptid, u_mtrlware.Dxflag, u_mtrlware.newprice, u_mtrlware.woodcode, u_mtrlware.pcode, u_mtrlware.cost, u_mtrlware.noallocqty + ISNULL(uv_pdb_outware.desqty, 0) - ISNULL(uv_pdb_inware.incqty, 0) ,u_mtrlware.noallocaddqty,0,u_mtrlware.wareamt + ISNULL(uv_pdb_outware.desamt, 0) - ISNULL(uv_pdb_inware.incamt,0) ,u_mtrldef.scllflag,getdate(),u_mtrlware.waredscrp FROM uv_pdb_inware RIGHT OUTER JOIN u_mtrlware ON uv_pdb_inware.storageid = u_mtrlware.storageid AND uv_pdb_inware.mtrlid = u_mtrlware.mtrlid AND uv_pdb_inware.plancode = u_mtrlware.plancode AND uv_pdb_inware.status = u_mtrlware.Status AND uv_pdb_inware.cusid = u_mtrlware.Sptid AND uv_pdb_inware.Dxflag = u_mtrlware.Dxflag AND uv_pdb_inware.pcode = u_mtrlware.pcode AND uv_pdb_inware.woodcode = u_mtrlware.woodcode LEFT OUTER JOIN uv_pdb_outware ON u_mtrlware.storageid = uv_pdb_outware.StorageID AND u_mtrlware.mtrlid = uv_pdb_outware.mtrlid AND u_mtrlware.plancode = uv_pdb_outware.plancode AND u_mtrlware.Status = uv_pdb_outware.status AND u_mtrlware.Sptid = uv_pdb_outware.Sptid AND u_mtrlware.Dxflag = uv_pdb_outware.Dxflag AND u_mtrlware.woodcode = uv_pdb_outware.woodcode AND u_mtrlware.pcode = uv_pdb_outware.pcode, u_mtrldef Where u_mtrldef.mtrlid=u_mtrlware.mtrlid and u_mtrlware.storageid = :cur_storageid AND u_mtrlware.scid = :ls_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,information!,ok!) ROLLBACK; GOTO ext END IF COMMIT; MessageBox('提示','生成'+Trim(em_3.Text)+'的盘点表成功!',information!,ok!) ext: RETURN 1 end function public subroutine wf_del ();String arg_msg Int cnt = 0 IF MessageBox("询问","你是否要删除盘点"+ins_pdbdate+"的库存吗?",Exclamation!, YESNO!, 2) = 2 THEN RETURN END IF SELECT count(*) INTO :cnt FROM u_warepdb WHERE u_warepdb.storageid = :cur_storageid AND u_warepdb.pdbdate = :ins_pdbdate AND flag = 1 USING sqlca; IF sqlca.SQLCode <> 0 THEN MessageBox('错误','查询操作失败,在盘点日:'+String(ins_pdbdate)+',仓库:'+Trim(ddlb_storageid.Text)+'的数据资料!',stopsign!,ok!) RETURN ELSE IF cnt > 0 THEN MessageBox('提示','盘点日:'+String(ins_pdbdate)+',仓库:'+Trim(ddlb_storageid.Text)+'的盘点数据已经审核,不能删除!',information!,ok!) RETURN END IF END IF IF cur_storageid <= 0 THEN MessageBox('提示','请选择要盘点的仓库?',information!,ok!) RETURN END IF DELETE FROM u_warepdb Where pdbdate = :ins_pdbdate AND storageid = :cur_storageid; IF sqlca.SQLCode <> 0 THEN MessageBox('错误','删除当前期的盘点表失败!',stopsign!,ok!) ROLLBACK; RETURN END IF COMMIT; MessageBox('提示','删除'+Trim(ddlb_1.Text)+'的盘点表成功!',information!,ok!) 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 u_warepdb Where u_warepdb.storageid = :cur_storageid 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_storageid,ls_dxflag String ls_mtrlcode String ls_plancode String ls_status,ls_woodcode,ls_pcode Decimal ls_qty Long ls_sptid rowcnt = dw_1.RowCount( ) ls_storageid = cur_storageid 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.u_warepdb_mtrlwareid[i] ls_mtrlid = dw_1.Object.mtrlid[i] ls_mtrlcode = dw_1.Object.u_mtrldef_mtrlcode[i] ls_plancode = dw_1.Object.u_warepdb_plancode[i] ls_dxflag = dw_1.Object.u_warepdb_dxflag[i] ls_sptid = dw_1.Object.u_warepdb_sptid[i] ls_status = dw_1.Object.u_warepdb_status[i] ls_woodcode = dw_1.Object.u_warepdb_woodcode[i] ls_pcode = dw_1.Object.u_warepdb_pcode[i] ls_qty = dw_1.Object.qty[i] if ls_mtrlwareid>0 then continue IF f_insert_0_mtrlware(ls_mtrlwareid,ls_mtrlid,ls_mtrlcode,ls_storageid,ls_sptid,ls_status,ls_woodcode,ls_pcode,ls_plancode,0,arg_msg) = 0 THEN rslt = 0 GOTO ext ELSE dw_1.Object.u_warepdb_mtrlwareid[i] = ls_mtrlwareid END IF NEXT dw_1.AcceptText( ) ext: Close(w_sys_wait_jdt) RETURN rslt end function public subroutine wf_face_change (); IF p_resize.PictureName = 'w_resize_2.bmp' THEN tv_1.Visible = TRUE p_resize.X = tv_1.X+tv_1.Width+5 ELSE tv_1.Visible = FALSE p_resize.X = 0 END IF dw_1.X = p_resize.X + p_resize.Width + 5 dw_1.Width = THIS.Width - dw_1.X - 40 end subroutine public function integer wf_openfile (datawindow arg_dw); String str_savename,named,s_grxh Int excelok,li_net Long li_count,i,ll_hang oleobject excelserver excelserver = Create oleobject excelok = excelserver.ConnectToNewObject("excel.application") //检查返回值,以确保已成功地连接到了Excel IF excelok <> 0 THEN MessageBox("提示","连接EXCEL失败,请检查计算机中是否安装了EXCEL!", Information!, OK! ) RETURN -1 END IF li_net = GetFileOpenName("选择文件", str_savename,named,"xls","Excel文件(*.xls),*.xls") IF li_net > 0 THEN IF str_savename = "" THEN RETURN -1 arg_dw.SetTransObject(sqlca) arg_dw.InsertRow(0) arg_dw.Reset() excelserver.workbooks.Open(str_savename) excelserver.activesheet.cells.Copy datastore ds_col100 /////////////建立映射//////////////////// // ds_col100 = Create datastore ds_col100.DataObject = 'dw_col100' ds_col100.ImportClipboard(1) Long ll_s_col_count = 100 Long ll_d_col_count String ls_execltitlename,ls_filtername s_dytitle_filter ss_dytitle_filter[] Long k = 1,m Long li_argcnt = 1 String ls_cmd,ls_arg[] ll_d_col_count = Long(arg_dw.Object.datawindow.Column.Count) Long ll_map[] // 目标表与原表的映射,0为没有映射 String ls_colType[] // 目标表列类型 Long col_d, col_s SELECT Top 1 hang Into :ll_hang From u_dytitle_ware_pdb; FOR col_d = 1 To ll_d_col_count String ls_col_title, ls_col_name ls_col_name = arg_dw.Describe('#' + String(col_d) + '.Name') ls_colType[col_d] = arg_dw.Describe('#' + String(col_d) + '.ColType') ls_col_title = arg_dw.Describe(ls_col_name + '_t.Text') //数据窗口的标题名称 ll_map[col_d] = 0 FOR col_s = 1 To ll_s_col_count String ls_s_title ls_s_title = ds_col100.GetItemString(ll_hang , col_s) //execl表的标题名称 // SELECT execltitlename,filtername Into :ls_execltitlename,:ls_filtername From u_dytitle_ware_pdb Where Name = :ls_col_name; // // if lower(trim(ls_col_title)) = lower(trim(ls_s_title)) then IF Lower(Trim(ls_execltitlename)) = Lower(Trim(ls_s_title)) THEN ll_map[col_d] = col_s IF ls_filtername <> '' THEN //记录过滤 ss_dytitle_filter[k].num = col_s ss_dytitle_filter[k].filtername = ls_filtername k++ END IF EXIT END IF NEXT NEXT // TODO: 人工干预,设置映射 Long row_s, row_d String lk_temp FOR row_s = ll_hang + 1 To ds_col100.RowCount( ) //ll_hang + 1 //过滤 FOR k = 1 To UpperBound(ss_dytitle_filter) lk_temp = String( Trim(ds_col100.GetItemString(row_s, ss_dytitle_filter[k].num))) // ls_cmd = ss_dytitle_filter[k].filtername IF Pos(ls_cmd,',') > 0 THEN //如果是多少个过滤字眼 DO WHILE Len(ls_cmd) > 0 i = Pos( ls_cmd, ",") IF i = 0 THEN i = Len(ls_cmd) + 1 ls_arg[li_argcnt] = Left(ls_cmd, i - 1) li_argcnt = li_argcnt + 1 ls_cmd = Replace(ls_cmd, 1, i, "") LOOP FOR m = 1 To UpperBound(ls_arg) IF Pos(lk_temp,ls_arg[m]) > 0 THEN GOTO ext END IF NEXT ELSE //一个过滤字眼 IF Pos(lk_temp,ss_dytitle_filter[k].filtername) > 0 THEN GOTO ext END IF END IF // NEXT //过滤 row_d = arg_dw.InsertRow(0) FOR col_d = 1 To ll_d_col_count IF ll_map[col_d] = 0 THEN CONTINUE Any Value String ls_value ls_value = Trim(ds_col100.GetItemString(row_s, ll_map[col_d])) IF Lower(Left(ls_colType[col_d], 4)) = 'char' THEN Value = ls_value ELSEIF Lower(Left(ls_colType[col_d], 4)) = 'long' & Or Lower(Left(ls_colType[col_d], 3)) = 'int' & Or Lower(Left(ls_colType[col_d], 3)) = 'num' & Or Lower(Left(ls_colType[col_d], 5)) = 'ulong' THEN Value = Long(ls_value) ELSEIF Lower(Left(ls_colType[col_d], 4)) = 'deci' & Or Lower(Left(ls_colType[col_d], 4)) = 'real' THEN Value = Dec(ls_value) ELSEIF Lower(Left(ls_colType[col_d], 4)) = 'date' THEN Value = DateTime(Date(Left(ls_value, 10)), Time(Mid(ls_value, 12))) END IF arg_dw.SetItem(row_d, col_d, Value) NEXT ext: NEXT Destroy ds_col100 ///////////////////////////////////// // // li_count = arg_dw.ImportClipboard(2) //导入数据 (从第几行开始导入) Clipboard("") excelserver.quit() excelserver.DisconnectObject() Destroy excelserver FOR i = 1 To arg_dw.RowCount( ) // arg_dw.Object.repeat[i] = 0 NEXT arg_dw.AcceptText( ) RETURN 1 ELSE MessageBox('提示','没有指定导入文件!', Information!, OK! ) RETURN -1 END IF end function on w_ware_pdb.create int iCurrent call super::create this.st_1=create st_1 this.em_3=create em_3 this.st_2=create st_2 this.cb_3=create cb_3 this.cb_edit=create cb_edit this.cb_del=create cb_del this.cb_5=create cb_5 this.st_5=create st_5 this.cb_mx=create cb_mx this.ddlb_storageid=create ddlb_storageid this.ddlb_1=create ddlb_1 this.tv_1=create tv_1 this.cb_audit=create cb_audit this.cb_caudit=create cb_caudit this.cb_8=create cb_8 this.p_resize=create p_resize this.cbx_1=create cbx_1 this.cbx_packqty_cmpl=create cbx_packqty_cmpl this.dw_2=create dw_2 iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.st_1 this.Control[iCurrent+2]=this.em_3 this.Control[iCurrent+3]=this.st_2 this.Control[iCurrent+4]=this.cb_3 this.Control[iCurrent+5]=this.cb_edit this.Control[iCurrent+6]=this.cb_del this.Control[iCurrent+7]=this.cb_5 this.Control[iCurrent+8]=this.st_5 this.Control[iCurrent+9]=this.cb_mx this.Control[iCurrent+10]=this.ddlb_storageid this.Control[iCurrent+11]=this.ddlb_1 this.Control[iCurrent+12]=this.tv_1 this.Control[iCurrent+13]=this.cb_audit this.Control[iCurrent+14]=this.cb_caudit this.Control[iCurrent+15]=this.cb_8 this.Control[iCurrent+16]=this.p_resize this.Control[iCurrent+17]=this.cbx_1 this.Control[iCurrent+18]=this.cbx_packqty_cmpl this.Control[iCurrent+19]=this.dw_2 end on on w_ware_pdb.destroy call super::destroy destroy(this.st_1) destroy(this.em_3) destroy(this.st_2) destroy(this.cb_3) destroy(this.cb_edit) destroy(this.cb_del) destroy(this.cb_5) destroy(this.st_5) destroy(this.cb_mx) destroy(this.ddlb_storageid) destroy(this.ddlb_1) destroy(this.tv_1) destroy(this.cb_audit) destroy(this.cb_caudit) destroy(this.cb_8) destroy(this.p_resize) destroy(this.cbx_1) destroy(this.cbx_packqty_cmpl) destroy(this.dw_2) end on event open;call super::open; s_hide_col s_col s_col.col_1 = 'u_warepdb_wareamt' s_col.col_2 = 'u_warepdb_cost' s_col.col_3 = 'pypkamt' f_hide_col(123,dw_1,s_col) s_hide_col s_col_mtrlsectype s_col_mtrlsectype.col_1 = 'u_mtrldef_mtrlsectype' f_hide_col(1308,dw_1,s_col_mtrlsectype) s_hide_col s_col_zxmtrlmode s_col_zxmtrlmode.col_1 = 'u_mtrldef_zxmtrlmode' f_hide_col(1309,dw_1,s_col_zxmtrlmode) wf_init_pdb() em_3.text=string(today(),'yyyy-mm-dd') p_resize.PictureName = ProfileString(SYS_INIFILENAME, this.classname(), "p_resize", 'w_resize_2.bmp') wf_face_change() 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 dw_2.SetTransObject (sqlca) end event event resize;ln_bar.EndX = THIS.Width ln_bar2.EndX = THIS.Width ln_1.EndX = THIS.Width ln_2.EndX = THIS.Width r_bar.Width = THIS.Width tv_1.y = dw_1.Y p_resize.y = dw_1.Y IF p_resize.PictureName = 'w_resize_2.bmp' THEN tv_1.Visible = TRUE p_resize.X = tv_1.X+tv_1.Width+5 ELSE tv_1.Visible = FALSE p_resize.X = 0 END IF dw_1.X = p_resize.X + p_resize.Width + 5 dw_1.Width = THIS.Width - dw_1.X - 40 dw_1.Height = THIS.Height - dw_1.Y - 110 tv_1.Height = dw_1.Height p_resize.Height = dw_1.Height end event event close;call super::close;SetProfileString(SYS_INIFILENAME,this.classname(),"p_resize",p_resize.PictureName) end event type cb_func from w_publ_easyq`cb_func within w_ware_pdb end type type cb_exit from w_publ_easyq`cb_exit within w_ware_pdb integer x = 2725 end type type cb_2 from w_publ_easyq`cb_2 within w_ware_pdb integer x = 2167 integer taborder = 100 boolean bringtotop = true end type type cb_psetup from w_publ_easyq`cb_psetup within w_ware_pdb integer x = 2318 boolean bringtotop = true end type type cb_1 from w_publ_easyq`cb_1 within w_ware_pdb boolean bringtotop = true end type event cb_1::clicked;call super::clicked;int rtr_zeronoallocqty IF cbx_1.Checked THEN rtr_zeronoallocqty = 0 ELSE rtr_zeronoallocqty = 1 END IF //此处增加参数, 要考虑 ue_audit.ds_1 dw_1.retrieve(cur_storageid_arr,ins_pdbdate,ls_handtype,rtr_zeronoallocqty) // wf_face() end event type st_3 from w_publ_easyq`st_3 within w_ware_pdb boolean visible = false integer x = 0 integer y = 396 end type type st_4 from w_publ_easyq`st_4 within w_ware_pdb boolean visible = false integer x = 617 integer y = 572 end type type em_1 from w_publ_easyq`em_1 within w_ware_pdb boolean visible = false integer x = 210 integer y = 388 integer taborder = 110 end type type em_2 from w_publ_easyq`em_2 within w_ware_pdb boolean visible = false integer x = 667 integer y = 380 integer taborder = 120 end type type ddlb_yl from w_publ_easyq`ddlb_yl within w_ware_pdb integer x = 3122 integer y = 44 end type type cbx_yl from w_publ_easyq`cbx_yl within w_ware_pdb integer x = 2917 integer y = 44 end type type dw_1 from w_publ_easyq`dw_1 within w_ware_pdb integer x = 1051 integer y = 308 integer width = 2226 integer height = 1548 string dataobject = "dw_rp_warepdb" 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::itemchanged;call super::itemchanged;IF NOT DW_EDIT_MODE THEN RETURN THIS.ACCEPTTEXT() IF dwo.Name = 'u_warepdb_packqty' THEN Long ll_mtrlid Decimal lde_packqty_single, lde_packqty, lde_rate IF ii_packqty_cmpl = 1 THEN ll_mtrlid = This.Object.mtrlid[row] lde_packqty_single = f_get_packqty(ll_mtrlid) lde_packqty = This.Object.u_warepdb_packqty[row] //lde_rate = This.Object.u_warepdb_billmx_rate[row] //if lde_rate = 0 then lde_rate = 1 This.Object.u_warepdb_factqty[row] = lde_packqty * lde_packqty_single //This.Object.u_warepdb_billmx_buyqty[row] = lde_packqty * lde_packqty_single / lde_rate //This.Object.u_warepdb_billmx_saleqty[row] = lde_packqty * lde_packqty_single / lde_rate END IF END IF end event type sle_mtrl from w_publ_easyq`sle_mtrl within w_ware_pdb end type type sle_cust from w_publ_easyq`sle_cust within w_ware_pdb end type type st_mtrl from w_publ_easyq`st_mtrl within w_ware_pdb end type type st_cust from w_publ_easyq`st_cust within w_ware_pdb end type type cbx_loginretr from w_publ_easyq`cbx_loginretr within w_ware_pdb end type type pb_em1 from w_publ_easyq`pb_em1 within w_ware_pdb boolean visible = false end type type pb_em2 from w_publ_easyq`pb_em2 within w_ware_pdb boolean visible = false end type type pb_2 from w_publ_easyq`pb_2 within w_ware_pdb boolean visible = false end type type cb_help from w_publ_easyq`cb_help within w_ware_pdb integer x = 2574 end type type cb_copyself from w_publ_easyq`cb_copyself within w_ware_pdb end type type gb_1 from w_publ_easyq`gb_1 within w_ware_pdb end type type ln_bar from w_publ_easyq`ln_bar within w_ware_pdb end type type ln_bar2 from w_publ_easyq`ln_bar2 within w_ware_pdb end type type r_bar from w_publ_easyq`r_bar within w_ware_pdb integer x = 3086 end type type ln_1 from w_publ_easyq`ln_1 within w_ware_pdb end type type ln_2 from w_publ_easyq`ln_2 within w_ware_pdb end type type ln_3 from w_publ_easyq`ln_3 within w_ware_pdb boolean visible = false integer beginy = 304 integer endy = 304 end type type ln_4 from w_publ_easyq`ln_4 within w_ware_pdb boolean visible = false integer beginy = 308 integer endy = 308 end type type st_1 from statictext within w_ware_pdb integer x = 1193 integer y = 212 integer width = 256 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 em_3 from editmask within w_ware_pdb integer x = 1467 integer y = 192 integer width = 434 integer height = 92 integer taborder = 80 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 string text = "none" alignment alignment = center! borderstyle borderstyle = stylelowered! maskdatatype maskdatatype = datetimemask! string mask = "yyyy-mm-dd" boolean spin = true end type event rbuttondown;s_calender_arg s_calender s_calender.PointerX = THIS.PointerX() s_calender.PointerY = THIS.PointerY() s_calender.X = THIS.X s_calender.Y = THIS.Y OpenWithParm(w_calendar,s_calender) THIS.Text = String(id_date_selected) end event type st_2 from statictext within w_ware_pdb integer x = 9 integer y = 212 integer width = 128 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 cb_3 from uo_imflatbutton within w_ware_pdb integer x = 562 integer width = 251 integer height = 164 integer taborder = 20 boolean bringtotop = true string text = "建盘点表" string normalpicname = "new.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked; IF NOT f_power_ind(246) THEN MessageBox('提示','你没有使用权限!',information!,ok!) RETURN END IF Date ld_pdbdate DateTime ldt_pdbdate Long cnt ld_pdbdate = Date(Trim(em_3.Text)) ldt_pdbdate = DateTime(ld_pdbdate,Time('23:59:59')) IF Year(ld_pdbdate) < 2000 OR IsNull(ld_pdbdate) THEN MessageBox('提示',"缺少盘点发生时间或不合理",information!,ok!) RETURN END IF if cur_storageid <= 0 then MessageBox('提示',"请选择仓库",information!,ok!) RETURN END IF cnt = 0 SELECT count(*) INTO :cnt FROM u_inware WHERE storageid = :cur_storageid AND indate > :ldt_pdbdate AND flag = 1; IF sqlca.SQLCode <> 0 THEN MessageBox('错误',"查询盘点发生时间"+String(ld_pdbdate,'yyyy-mm-dd')+"后是否有进仓单审核操作失败",stopsign!,ok!) RETURN END IF IF cnt > 0 THEN IF MessageBox ("询问","盘点发生时间"+String(ld_pdbdate,'yyyy-mm-dd')+"后有进仓单已审核,是否继续盘点?",Question!,YesNo! ) = 2 THEN RETURN END IF cnt = 0 SELECT count(*) INTO :cnt FROM u_outware WHERE storageid = :cur_storageid AND outdate > :ldt_pdbdate AND flag = 1; IF sqlca.SQLCode <> 0 THEN MessageBox('错误',"查询盘点发生时间"+String(ld_pdbdate,'yyyy-mm-dd')+"后是否有出仓单审核操作失败",stopsign!,ok!) RETURN END IF IF cnt > 0 THEN IF MessageBox ("询问","盘点发生时间"+String(ld_pdbdate,'yyyy-mm-dd')+"后有出仓单已审核,是否继续盘点?",Question!,YesNo! ) = 2 THEN RETURN END IF //检查单据 String arg_msg IF uf_warebalc_check_inoutflag(cur_storageid,ldt_pdbdate,arg_msg) = 0 THEN MessageBox('系统提示',arg_msg) RETURN END IF wf_instorage() wf_init_pdb() cb_1.triggerevent(clicked!) end event type cb_edit from uo_imflatbutton within w_ware_pdb integer x = 1061 integer width = 151 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(246) THEN MessageBox('提示','你没有使用权限!',information!,ok!) RETURN END IF Int cnt = 0 String arg_msg SELECT count(*) INTO :cnt FROM u_warepdb WHERE u_warepdb.storageid = :cur_storageid AND u_warepdb.pdbdate = :ins_pdbdate And flag = 1 Using sqlca; IF sqlca.SQLCode < 0 THEN MessageBox('错误','查询操作失败,在盘点日:'+String(ins_pdbdate)+',仓库:'+Trim(ddlb_storageid.Text)+'的数据资料!',stopsign!,ok!) RETURN ELSE IF cnt > 0 THEN MessageBox('提示','盘点日:'+String(ins_pdbdate)+',仓库:'+Trim(ddlb_storageid.Text)+'的盘点数据已经审核,不能修改!',information!,ok!) RETURN END IF END IF IF dw_edit_mode THEN IF wf_check_ifmtrlware( arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,ok!) RETURN END IF IF dw_1.Update() = -1 THEN ROLLBACK; MessageBox('错误','当前盘点表保存失败!',stopsign!,ok!) RETURN ELSE COMMIT; MessageBox('提示','当前盘点表保存成功!',information!,ok!) 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_ware_pdb integer x = 1211 integer width = 151 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_5 from uo_imflatbutton within w_ware_pdb integer x = 809 integer width = 251 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;string arg_msg IF NOT f_power_ind(1821) THEN MessageBox('提示','你没有使用权限!',information!,ok!) RETURN END IF IF MessageBox ("询问","是否确定要删除当前盘点表?",question!,yesno! ) = 2 THEN RETURN //wf_del() uo_ware_pdb_balc uo_pdb uo_pdb = CREATE uo_ware_pdb_balc IF uo_pdb.uof_pdb_del(cur_storageid,ins_pdbdate,arg_msg,TRUE) = 0 THEN MessageBox('错误','删除盘点表失败,'+arg_msg,stopsign!,ok!) RETURN END IF DESTROY uo_pdb wf_init_pdb() cb_1.triggerevent(clicked!) end event type st_5 from statictext within w_ware_pdb integer x = 1915 integer y = 212 integer width = 288 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_mx from uo_imflatbutton within w_ware_pdb integer x = 1664 integer width = 251 integer height = 164 integer taborder = 80 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 IF dw_edit_mode THEN menustr += "Text=增明细~tEvent=ue_f8" menustr += "|" + "Text=删明细~tEvent=ue_delmx" menustr += "|" + "Text=从execl导入到盘点表~tEvent=ue_insert_execltodw" END IF menustr += "|" + "Text=明细标题与execl标题对应关系设置~tEvent=ue_set_dytitle" menustr += "|" + "Text=从盘点表导出到execl~tEvent=ue_sentdataout_ware" 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 ddlb_storageid from uo_ddlb_storageid within w_ware_pdb integer x = 146 integer y = 196 integer width = 1015 integer height = 1428 integer taborder = 20 boolean bringtotop = true end type event constructor;call super::constructor;cur_storageid = this.uo_storageid cur_storageid_arr = this.uo_storageid_arr end event event selectionchanged;call super::selectionchanged;cur_storageid = this.uo_storageid cur_storageid_arr = this.uo_storageid_arr wf_init_pdb() cb_1.triggerevent(clicked!) end event type ddlb_1 from dropdownlistbox within w_ware_pdb integer x = 2226 integer y = 196 integer width = 475 integer height = 860 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 borderstyle borderstyle = stylelowered! end type event selectionchanged;ins_pdbdate = Trim(ddlb_1.Text) cb_1.triggerevent(clicked!) end event type tv_1 from uo_tv_mtrltype within w_ware_pdb integer y = 308 integer width = 887 integer height = 1068 integer taborder = 120 integer textsize = -9 fontcharset fontcharset = gb2312charset! fontfamily fontfamily = anyfont! string facename = "宋体" end type event selectionchanged;call super::selectionchanged;ls_handtype = THIS.uo_cur_info.handtype ls_handtype = ls_handtype + '%' cb_1.triggerevent(clicked!) end event type cb_audit from uo_imflatbutton within w_ware_pdb integer x = 1362 integer width = 151 integer height = 164 integer taborder = 50 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;parent.triggerevent("ue_audit") end event type cb_caudit from uo_imflatbutton within w_ware_pdb integer x = 1513 integer width = 151 integer height = 164 integer taborder = 60 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;parent.triggerevent("ue_audit_c") end event type cb_8 from uo_imflatbutton within w_ware_pdb integer x = 1915 integer width = 251 integer height = 164 integer taborder = 100 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 IF dw_edit_mode THEN menustr = "Text=盘点数量等于库存数量~tEvent=ue_copy_qty" menustr = menustr + "|" + "Text=盘点辅数等于库存辅数~tEvent=ue_copy_addqty" ELSE //menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=按物料资料【盘亏生成领料】更新盘亏领料属性~tEvent=ue_update_scllflag" //menustr = menustr + "|" + "Text=设置【盘亏生成领料】的盘亏物料辅助生成领料出仓单~tEvent=ue_create_outware_scll" 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 p_resize from picture within w_ware_pdb integer x = 896 integer y = 412 integer width = 32 integer height = 1020 boolean bringtotop = true string pointer = "HyperLink!" string picturename = "w_resize_2.bmp" boolean focusrectangle = false end type event clicked;IF THIS.picturename = 'w_resize_1.bmp' THEN THIS.picturename = 'w_resize_2.bmp' // THIS.X = 891 // dw_1.X = 928 // tv_1.Visible = TRUE ELSE THIS.picturename = 'w_resize_1.bmp' // THIS.X = 0 // dw_1.X = p_resize.Width + 5 // tv_1.Visible = FALSE END IF wf_face_change() //PARENT.TriggerEvent(Resize!) end event type cbx_1 from checkbox within w_ware_pdb integer x = 2821 integer y = 212 integer width = 411 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 = "显示 0 数量" end type event clicked;cb_1.TriggerEvent(Clicked!) end event type cbx_packqty_cmpl from checkbox within w_ware_pdb integer x = 3241 integer y = 212 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;IF THIS.Checked THEN ii_packqty_cmpl = 1 ELSE ii_packqty_cmpl = 0 END IF f_SetProfileString (sys_empid,publ_userid+'_'+dw_1.DataObject, "packqty_cmpl",String(ii_packqty_cmpl)) end event event constructor;//this.backcolor = 14215660 ii_packqty_cmpl = Long(f_ProfileString (sys_empid,publ_userid+'_'+dw_1.DataObject, "packqty_cmpl",'0')) IF ii_packqty_cmpl = 1 THEN THIS.Checked = TRUE ELSE THIS.Checked = FALSE END IF //this.y = cbx_enamt_edit.y //this.x = cbx_enamt_edit.x + cbx_enamt_edit.width + 10 end event type dw_2 from datawindow within w_ware_pdb boolean visible = false integer x = 1531 integer y = 896 integer width = 1038 integer height = 1628 integer taborder = 90 boolean bringtotop = true string title = "none" string dataobject = "dw_rp_warepdb_xls" boolean hscrollbar = true boolean vscrollbar = true boolean hsplitscroll = true boolean livescroll = true borderstyle borderstyle = stylelowered! end type