$PBExportHeader$w_ware_inout.srw forward global type w_ware_inout from w_publ_easyq end type type dw_mtrlware from u_dw_rbtnfilter within w_ware_inout end type type ddlb_2 from uo_ddlb_storageid within w_ware_inout end type type st_1 from statictext within w_ware_inout end type type cbx_1 from checkbox within w_ware_inout end type type tv_1 from uo_tv_mtrltype within w_ware_inout end type end forward global type w_ware_inout from w_publ_easyq integer x = 270 integer y = 136 string title = "物料进出明细" event retrieve_pageretr ( ) event ue_retrievemx ( ) dw_mtrlware dw_mtrlware ddlb_2 ddlb_2 st_1 st_1 cbx_1 cbx_1 tv_1 tv_1 end type global w_ware_inout w_ware_inout type variables datetime first_date,end_date,showsale_data long cur_storageid long cur_storageid_arr[] String ls_handtype = '' string ls_mtrltype = '' end variables forward prototypes public subroutine wf_changdate (long arg_storageid) end prototypes event retrieve_pageretr(); Long ifuse IF cbx_1.Checked THEN ifuse = 1 ELSE ifuse = -1 END IF dw_mtrlware.Retrieve(cur_storageid_arr,ifuse,ls_handtype) dw_mtrlware.Title = '物料摘要信息' dw_mtrlware.Title = Left(ddlb_2.Text,Pos(ddlb_2.Text,' ') - 1) + dw_mtrlware.Title IF dw_mtrlware.RowCount() > 0 THEN dw_mtrlware.SelectRow(0,False) dw_mtrlware.SelectRow(1,True) END IF //cb_1.TriggerEvent(Clicked!) this.triggerevent('ue_retrievemx') end event event ue_retrievemx();Long ins_mtrlid,li_row,ins_storageid String ls_status,ls_woodcode,ls_pcode Dec ins_balcqty,ins_balcamt,ins_price,ins_balcaddqty first_date = DateTime(Date(em_1.Text),Time(0)) end_date = DateTime(Date(em_2.Text),Time('23:59:59')) IF first_date < sys_showsaledata_mindt THEN showsale_data = sys_showsaledata_mindt ELSE showsale_data = first_date END IF Open(w_sys_wait) w_sys_wait.wf_set_msg('正在刷新明细,请稍后......') IF dw_mtrlware.RowCount() > 0 THEN ins_storageid = Long(dw_mtrlware.Object.u_mtrlware_storageid[dw_mtrlware.GetRow()]) ins_mtrlid = Long(dw_mtrlware.Object.u_mtrlware_mtrlid[dw_mtrlware.GetRow()]) ins_balcqty = Dec(dw_mtrlware.Object.noallocqty[dw_mtrlware.GetRow()]) ins_balcamt = Dec(dw_mtrlware.Object.wareamt[dw_mtrlware.GetRow()]) ins_balcaddqty = Dec(dw_mtrlware.Object.noallocaddqty[dw_mtrlware.GetRow()]) ls_status = dw_mtrlware.Object.u_mtrlware_status[dw_mtrlware.GetRow()] ls_woodcode = dw_mtrlware.Object.u_mtrlware_woodcode[dw_mtrlware.GetRow()] ls_pcode = dw_mtrlware.Object.u_mtrlware_pcode[dw_mtrlware.GetRow()] dw_1.Retrieve(ins_storageid,ins_mtrlid,first_date,end_date,ls_status,ls_woodcode,ls_pcode,showsale_data) //dw_1.Title = ' 进出明细 ' dw_1.Title = Left(ddlb_2.Text,Pos(ddlb_2.Text,' ') - 1) + dw_mtrlware.Object.u_mtrldef_mtrlname[dw_mtrlware.GetRow()] + ' 进出明细 ' // IF dw_1.RowCount() > 0 THEN FOR li_row = 1 To dw_1.RowCount() IF ins_balcqty = 0 THEN ins_price = 0 ELSE ins_price = Round(ins_balcamt/ins_balcqty,4) END IF dw_1.Object.balcqty[li_row] = ins_balcqty dw_1.Object.u_outware_balcamt[li_row] = ins_balcamt dw_1.Object.u_outware_balcprice[li_row] = ins_price ins_balcqty = ins_balcqty + dw_1.Object.outqty[li_row] - dw_1.Object.inqty[li_row] ins_balcamt = ins_balcamt + dw_1.Object.u_outwaremx_outamt[li_row] - dw_1.Object.u_outware_inamt[li_row] IF ins_balcqty = 0 THEN ins_price = 0 ELSE ins_price = Round(ins_balcamt/ins_balcqty,4) END IF dw_1.Object.firstqty[li_row] = ins_balcqty dw_1.Object.u_outware_firstamt[li_row] = ins_balcamt dw_1.Object.u_outware_firstprice[li_row] = ins_price /// // dw_1.Object.balcaddqty[li_row] = ins_balcaddqty ins_balcaddqty = ins_balcaddqty + dw_1.Object.u_outwaremx_outaddqty[li_row] - dw_1.Object.inaddqty[li_row] dw_1.Object.firstaddqty[li_row] = ins_balcaddqty NEXT // END IF ELSE dw_1.Reset() END IF Close(w_sys_wait) end event public subroutine wf_changdate (long arg_storageid);DateTime last_balcdate SELECT top 1 balcdate INTO :last_balcdate FROM u_warebalc WHERE storageid = :arg_storageid OR :arg_storageid = -1 Order By balcdate Desc; IF sqlca.SQLCode <> 0 THEN last_balcdate = DateTime(sys_begin_date) END IF em_1.Text = String(last_balcdate,'yyyy-mm-dd') em_2.Text = String(Today(),'yyyy-mm-dd') end subroutine on w_ware_inout.create int iCurrent call super::create this.dw_mtrlware=create dw_mtrlware this.ddlb_2=create ddlb_2 this.st_1=create st_1 this.cbx_1=create cbx_1 this.tv_1=create tv_1 iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.dw_mtrlware this.Control[iCurrent+2]=this.ddlb_2 this.Control[iCurrent+3]=this.st_1 this.Control[iCurrent+4]=this.cbx_1 this.Control[iCurrent+5]=this.tv_1 end on on w_ware_inout.destroy call super::destroy destroy(this.dw_mtrlware) destroy(this.ddlb_2) destroy(this.st_1) destroy(this.cbx_1) destroy(this.tv_1) end on event open;this.triggerevent('ue_before_open') wf_movetocenter() dw_1.SetTransObject (sqlca) dw_mtrlware.SetTransObject (sqlca) //dw_1.RBUTTON_FILTER_USE=true //右键查询功能开关 wf_changdate(cur_storageid) ddlb_2.triggerevent(selectionchanged!) s_hide_col s_col s_col.col_1 = 'cost' s_col.col_2 = 'wareamt' f_hide_col(123,dw_mtrlware,s_col) s_col.col_1 = 'u_outware_firstprice' s_col.col_2 = 'u_outware_firstamt' s_col.col_3 = 'u_outware_inprice' s_col.col_4 = 'u_outware_inamt' s_col.col_5 = 'outprice' s_col.col_6 = 'u_outwaremx_outamt' s_col.col_7 = 'u_outware_balcprice' s_col.col_8 = 'u_outware_balcamt' 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_mtrlware,s_col_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_mtrlware,s_col_zxmtrlmode) f_hide_col(1309,dw_1,s_col_zxmtrlmode) 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.height=this.height - tv_1.y - 150 dw_mtrlware.y = tv_1.y dw_mtrlware.x = tv_1.x + tv_1.width + 5 dw_mtrlware.width=this.width - dw_mtrlware.x - 40 dw_1.x = dw_mtrlware.x dw_1.width=this.width - dw_1.x - 40 dw_1.height=this.height - dw_1.y - 150 end event event ue_before_open;call super::ue_before_open;if_ue_filter=true if_ue_sort=true end event event ue_filter;OPENWITHPARM(w_filter_query,dw_mtrlware) STRING LS_EXPR LS_EXPR=Message.StringParm if len(LS_EXPR)>2 and trim(LS_EXPR)='' then return dw_1.setfilter(LS_EXPR) dw_1.SetRedraw (false) dw_1.filter() dw_1.SetRedraw (TRUE) end event type cb_func from w_publ_easyq`cb_func within w_ware_inout end type type cb_exit from w_publ_easyq`cb_exit within w_ware_inout integer x = 859 end type type cb_2 from w_publ_easyq`cb_2 within w_ware_inout integer x = 560 integer taborder = 110 boolean bringtotop = true end type type cb_psetup from w_publ_easyq`cb_psetup within w_ware_inout integer x = 1872 integer y = 538 integer taborder = 90 boolean bringtotop = true end type type cb_1 from w_publ_easyq`cb_1 within w_ware_inout boolean bringtotop = true end type event cb_1::clicked;call super::clicked;PARENT.TriggerEvent('retrieve_pageretr') //Long ins_mtrlid,li_row,ins_storageid //String ls_status,ls_woodcode,ls_pcode //Dec ins_balcqty,ins_balcamt,ins_price,ins_balcaddqty // //first_date = DateTime(Date(em_1.Text),Time(0)) //end_date = DateTime(Date(em_2.Text),Time('23:59:59')) // //IF first_date < sys_showsaledata_mindt THEN // showsale_data = sys_showsaledata_mindt //ELSE // showsale_data = first_date //END IF // // // //IF dw_mtrlware.RowCount() > 0 THEN // // ins_storageid = Long(dw_mtrlware.Object.u_mtrlware_storageid[dw_mtrlware.GetRow()]) // ins_mtrlid = Long(dw_mtrlware.Object.u_mtrlware_mtrlid[dw_mtrlware.GetRow()]) // ins_balcqty = Dec(dw_mtrlware.Object.noallocqty[dw_mtrlware.GetRow()]) // ins_balcamt = Dec(dw_mtrlware.Object.wareamt[dw_mtrlware.GetRow()]) // ins_balcaddqty = Dec(dw_mtrlware.Object.noallocaddqty[dw_mtrlware.GetRow()]) // // ls_status = dw_mtrlware.Object.u_mtrlware_status[dw_mtrlware.GetRow()] // ls_woodcode = dw_mtrlware.Object.u_mtrlware_woodcode[dw_mtrlware.GetRow()] // ls_pcode = dw_mtrlware.Object.u_mtrlware_pcode[dw_mtrlware.GetRow()] // // dw_1.Retrieve(ins_storageid,ins_mtrlid,first_date,end_date,ls_status,ls_woodcode,ls_pcode,showsale_data) // // //dw_1.Title = ' 进出明细 ' // dw_1.Title = Left(ddlb_2.Text,Pos(ddlb_2.Text,' ') - 1) + dw_mtrlware.Object.u_mtrldef_mtrlname[dw_mtrlware.GetRow()] + ' 进出明细 ' // IF dw_1.RowCount() > 0 THEN // FOR li_row = 1 TO dw_1.RowCount() // // IF ins_balcqty = 0 THEN // ins_price = 0 // ELSE // ins_price = Round(ins_balcamt/ins_balcqty,4) // END IF // dw_1.Object.balcqty[li_row] = ins_balcqty // dw_1.Object.u_outware_balcamt[li_row] = ins_balcamt // dw_1.Object.u_outware_balcprice[li_row] = ins_price // // ins_balcqty = ins_balcqty + dw_1.Object.outqty[li_row] - dw_1.Object.inqty[li_row] // ins_balcamt = ins_balcamt + dw_1.Object.u_outwaremx_outamt[li_row] - dw_1.Object.u_outware_inamt[li_row] // // // IF ins_balcqty = 0 THEN // ins_price = 0 // ELSE // ins_price = Round(ins_balcamt/ins_balcqty,4) // END IF // // dw_1.Object.firstqty[li_row] = ins_balcqty // dw_1.Object.u_outware_firstamt[li_row] = ins_balcamt // dw_1.Object.u_outware_firstprice[li_row] = ins_price // // // ///// // dw_1.Object.balcaddqty[li_row] = ins_balcaddqty // ins_balcaddqty = ins_balcaddqty + dw_1.Object.u_outwaremx_outaddqty[li_row] - dw_1.Object.inaddqty[li_row] // dw_1.Object.firstaddqty[li_row] = ins_balcaddqty // // // NEXT // END IF //ELSE // dw_1.Reset() //END IF end event type st_3 from w_publ_easyq`st_3 within w_ware_inout integer x = 955 end type type st_4 from w_publ_easyq`st_4 within w_ware_inout integer x = 1671 integer width = 95 end type type em_1 from w_publ_easyq`em_1 within w_ware_inout integer x = 1159 integer width = 391 integer taborder = 120 long backcolor = 1090519039 end type type em_2 from w_publ_easyq`em_2 within w_ware_inout integer x = 1774 integer width = 391 integer taborder = 140 boolean enabled = false alignment alignment = center! boolean displayonly = true boolean spin = false end type type ddlb_yl from w_publ_easyq`ddlb_yl within w_ware_inout integer x = 2322 integer y = 570 integer taborder = 70 end type type cbx_yl from w_publ_easyq`cbx_yl within w_ware_inout integer x = 2355 integer y = 637 integer width = 249 integer taborder = 80 string text = "预 览" end type type dw_1 from w_publ_easyq`dw_1 within w_ware_inout integer y = 931 integer width = 3419 integer height = 893 boolean titlebar = true string title = "进出明细[黄色为出仓明细]" string dataobject = "dw_mtrlware_inoutmx" boolean maxbox = true boolean border = false borderstyle borderstyle = stylebox! boolean titleclick_sort_use = false end type event dw_1::rowfocuschanged;if currentrow<=0 then return this.selectrow(0,false) this.selectrow(currentrow,true) end event event dw_1::doubleclicked;call super::doubleclicked; IF row > 0 THEN String ls_code,ls_relcode,arg_msg Long ll_scid ll_scid = THIS.Object.u_outware_scid[row] ls_code = THIS.Object.code[row] IF f_open_check(ll_scid,ls_code,arg_msg) = 0 THEN MessageBox('提示',arg_msg,information!,OK!) RETURN END IF f_open_win(ll_scid,ls_code) END IF end event type sle_mtrl from w_publ_easyq`sle_mtrl within w_ware_inout end type type sle_cust from w_publ_easyq`sle_cust within w_ware_inout end type type st_mtrl from w_publ_easyq`st_mtrl within w_ware_inout end type type st_cust from w_publ_easyq`st_cust within w_ware_inout end type type cbx_loginretr from w_publ_easyq`cbx_loginretr within w_ware_inout end type type pb_em1 from w_publ_easyq`pb_em1 within w_ware_inout integer x = 1558 integer y = 189 end type type pb_em2 from w_publ_easyq`pb_em2 within w_ware_inout boolean visible = false integer x = 2176 integer y = 189 end type type pb_2 from w_publ_easyq`pb_2 within w_ware_inout boolean visible = false integer x = 2289 integer y = 189 end type type cb_help from w_publ_easyq`cb_help within w_ware_inout integer x = 709 end type type cb_copyself from w_publ_easyq`cb_copyself within w_ware_inout end type type gb_1 from w_publ_easyq`gb_1 within w_ware_inout end type type ln_bar from w_publ_easyq`ln_bar within w_ware_inout end type type ln_bar2 from w_publ_easyq`ln_bar2 within w_ware_inout end type type r_bar from w_publ_easyq`r_bar within w_ware_inout end type type ln_1 from w_publ_easyq`ln_1 within w_ware_inout end type type ln_2 from w_publ_easyq`ln_2 within w_ware_inout end type type ln_3 from w_publ_easyq`ln_3 within w_ware_inout end type type ln_4 from w_publ_easyq`ln_4 within w_ware_inout end type type dw_mtrlware from u_dw_rbtnfilter within w_ware_inout integer y = 304 integer width = 3419 integer height = 637 integer taborder = 20 boolean bringtotop = true boolean titlebar = true string title = "物料摘要信息" string dataobject = "dw_mtrlware_inout_index" boolean maxbox = true boolean hscrollbar = true boolean vscrollbar = true boolean resizable = true borderstyle borderstyle = stylebox! end type event rowfocuschanged;if currentrow<=0 then return this.selectrow(0,false) this.selectrow(currentrow,true) //cb_1.triggerevent(clicked!) parent.triggerevent('ue_retrievemx') end event event constructor;call super::constructor; titleclick_sort_use=true //单击标题排序功能开关 RBUTTON_FILTER_USE=true //右键查询功能开关 end event type ddlb_2 from uo_ddlb_storageid within w_ware_inout integer x = 168 integer y = 192 integer width = 768 integer height = 1011 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 PARENT.TriggerEvent('retrieve_pageretr') //Long ifuse //IF cbx_1.Checked THEN // ifuse = 1 //ELSE // ifuse = -1 //END IF // //wf_changdate(cur_storageid) //dw_mtrlware.Retrieve(cur_storageid_arr,ifuse) //dw_mtrlware.Title = '物料摘要信息' //dw_mtrlware.Title = Left(ddlb_2.Text,Pos(ddlb_2.Text,' ') - 1) + dw_mtrlware.Title // //IF dw_mtrlware.RowCount() > 0 THEN // dw_mtrlware.SelectRow(0,False) // dw_mtrlware.SelectRow(1,True) //END IF //cb_1.TriggerEvent(Clicked!) end event type st_1 from statictext within w_ware_inout integer y = 211 integer width = 154 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 cbx_1 from checkbox within w_ware_inout integer x = 2469 integer y = 195 integer width = 464 integer height = 93 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 string text = "只显示有效物料" boolean checked = true end type event clicked;int ifuse if this.checked then ifuse=1 else ifuse=0 end if f_SetProfileString (sys_empid,dw_mtrlware.DATAOBJECT, "ifuse", string(ifuse)) ddlb_2.triggerevent(selectionchanged!) end event event constructor;int ifuse ifuse=integer(f_ProfileString (sys_empid,dw_mtrlware.DATAOBJECT, "ifuse", '0')) if ifuse=0 then this.checked=false else this.checked=true end if end event type tv_1 from uo_tv_mtrltype within w_ware_inout integer y = 301 integer width = 801 integer height = 1312 integer taborder = 120 boolean bringtotop = true 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_mtrltype = THIS.uo_cur_info.mtrltype IF ls_handtype <> '' THEN ls_mtrltype = '%'+ls_handtype+'%' ls_handtype = ls_handtype+'%' ELSE ls_mtrltype = "" END IF PARENT.TriggerEvent('retrieve_pageretr') end event