$PBExportHeader$w_rp_subid_mx.srw forward global type w_rp_subid_mx from w_publ_easyq end type type st_2 from statictext within w_rp_subid_mx end type type ddlb_1 from dropdownlistbox within w_rp_subid_mx end type type dw_2 from u_dw_rbtnfilter within w_rp_subid_mx end type type cbx_1 from checkbox within w_rp_subid_mx end type type cb_3 from uo_imflatbutton within w_rp_subid_mx end type type cb_4 from uo_imflatbutton within w_rp_subid_mx end type type cb_5 from uo_imflatbutton within w_rp_subid_mx end type type cb_9 from uo_imflatbutton within w_rp_subid_mx end type type cb_addzy from uo_imflatbutton within w_rp_subid_mx end type type st_1 from statictext within w_rp_subid_mx end type end forward global type w_rp_subid_mx from w_publ_easyq integer width = 3502 integer height = 2200 string title = "明细帐" long backcolor = 82501359 boolean if_ue_sentdataout = true event dw_retrieve ( ) st_2 st_2 ddlb_1 ddlb_1 dw_2 dw_2 cbx_1 cbx_1 cb_3 cb_3 cb_4 cb_4 cb_5 cb_5 cb_9 cb_9 cb_addzy cb_addzy st_1 st_1 end type global w_rp_subid_mx w_rp_subid_mx type variables s_rp_type s_rp_type_hz boolean is_display=false end variables forward prototypes public function string wf_get_titlename (integer arg_gettype, string arg_subid) end prototypes event dw_retrieve;Long firstmon,lastmon,subgrade,cur_year,ls_firstmon,ls_lastmon String firstsubid,lastsubid String ls_subid,ls_subname Int ls_subid_len Int no_post Int li_hswb Decimal ld_debit_notpost,ld_credit_notpost cur_year = s_rp_type_hz.Year firstmon = s_rp_type_hz.firstmon lastmon = s_rp_type_hz.lastmon firstsubid = s_rp_type_hz.firstsubid lastsubid = s_rp_type_hz.lastsubid no_post = s_rp_type_hz.no_post ls_firstmon = cur_year * 100 + firstmon ls_lastmon = cur_year * 100 + lastmon IF dw_2.GetRow() <= 0 THEN RETURN ls_subid = dw_2.Object.subid[dw_2.GetRow()] ls_subname = dw_2.Object.Name[dw_2.GetRow()] ls_subid_len = Len(ls_subid) SELECT hswb INTO :li_hswb FROM cw_subject WHERE accsetid = :sys_accsetid AND subid = :ls_subid; IF sqlca.SQLCode <> 0 THEN li_hswb = 0 dw_1.Retrieve(sys_accsetid,sys_subaccsetid,ls_subid,ls_subid_len,no_post,ls_firstmon,ls_lastmon,sys_option_cred_rel ) dw_1.Object.Month.Text = "会计期间:"+String(ls_firstmon)+" 至 "+String(ls_lastmon) dw_1.Object.Title.Text = wf_get_titlename(0,ls_subid)+'明细帐' dw_1.Object.subname.Text = "明细科目:("+ls_subid+")"+wf_get_titlename(1,ls_subid) IF dw_1.RowCount() <= 0 THEN RETURN w_sys_wait.Show() Dec m_balc,m_rawbalc,null_amt Dec tmp_debit,tmp_credit,tmp_rawdebit,tmp_rawcredit Long i Long cur_month Decimal ls_debit,ls_credit,ls_balc dw_1.SetRedraw(FALSE) SetNull(null_amt) FOR i = 1 TO dw_1.RowCount() IF dw_1.Object.dw_sort[i] = 0 THEN //期初 m_balc = dw_1.Object.balc[i] IF IsNull(m_balc) THEN m_balc = 0 IF ddlb_1.Text = '外币金额式' AND li_hswb = 1 THEN m_rawbalc = dw_1.Object.rawbalc[i] IF IsNull(m_rawbalc) THEN m_rawbalc = 0 END IF ELSEIF dw_1.Object.dw_sort[i] = 1 THEN //期间 //去null tmp_debit = dw_1.Object.debit[i] tmp_credit = dw_1.Object.credit[i] IF IsNull(tmp_debit) THEN tmp_debit = 0 IF IsNull(tmp_credit) THEN tmp_credit = 0 dw_1.Object.balc[i] = tmp_debit - tmp_credit + m_balc m_balc = dw_1.Object.balc[i] IF dw_1.Object.balc[i] = 0 THEN dw_1.Object.balc[i] = null_amt IF ddlb_1.Text = '外币金额式' THEN tmp_rawdebit = dw_1.Object.rawdebit[i] tmp_rawcredit = dw_1.Object.rawcredit[i] IF IsNull(tmp_rawdebit) THEN tmp_rawdebit = 0 IF IsNull(tmp_rawcredit) THEN tmp_rawcredit = 0 IF li_hswb = 1 THEN dw_1.Object.rawbalc[i] = tmp_rawdebit - tmp_rawcredit + m_rawbalc m_rawbalc = dw_1.Object.rawbalc[i] IF dw_1.Object.rawbalc[i] = 0 THEN dw_1.Object.rawbalc[i] = null_amt END IF ELSEIF dw_1.Object.dw_sort[i] = 2 THEN //本期合计 dw_1.Object.balc[i] = dw_1.Object.balc[i - 1] IF ddlb_1.Text = '外币金额式' AND li_hswb = 1 THEN dw_1.Object.rawbalc[i] = dw_1.Object.rawbalc[i - 1] END IF ELSEIF dw_1.Object.dw_sort[i] = 3 THEN //本年合计 IF ls_lastmon = sys_curyearmon AND i = dw_1.RowCount() AND no_post = -1 THEN ld_debit_notpost = 0 ld_credit_notpost = 0 SELECT isnull(sum(cw_credencemx.debit),0),isnull(sum(cw_credencemx.credit),0) INTO :ld_debit_notpost,:ld_credit_notpost FROM cw_credence, cw_credencemx WHERE ( cw_credence.accsetid = cw_credencemx.accsetid ) AND ( cw_credence.subaccsetid = cw_credencemx.subaccsetid ) AND ( cw_credence.credid = cw_credencemx.credid ) AND ( cw_credence.accsetid = :sys_accsetid ) AND ( cw_credence.cmonth >= :ls_firstmon ) AND ( cw_credence.cmonth <= :ls_lastmon ) AND ( cw_credence.postflag = 0 ) AND ( Left(cw_credencemx.subid,:ls_subid_len) = :ls_subid ); IF sqlca.SQLCode <> 0 THEN ld_debit_notpost = 0 ld_credit_notpost = 0 END IF dw_1.Object.debit[i] = dw_1.Object.debit[i] + ld_debit_notpost dw_1.Object.credit[i] = dw_1.Object.credit[i] + ld_credit_notpost dw_1.Object.balc[i] = dw_1.Object.balc[i - 1] IF ddlb_1.Text = '外币金额式' AND li_hswb = 1 THEN dw_1.Object.rawbalc[i] = dw_1.Object.rawbalc[i - 1] END IF END IF END IF NEXT dw_1.SetRedraw(TRUE) w_sys_wait.Hide() end event public function string wf_get_titlename (integer arg_gettype, string arg_subid);string rst_titlename,p_subidname,tmp_subidname string p_subid,tmp_subid uo_subject uo_sub uo_sub = create uo_subject if arg_gettype = 0 then // p_subid = uo_sub.p_parent_subid(arg_subid) p_subid = left(arg_subid,3) if p_subid = '' then p_subid = arg_subid select name into :p_subidname from cw_subject where accsetid = :sys_accsetid and subid = :p_subid; if sqlca.sqlcode <> 0 then p_subidname = '' rst_titlename = p_subidname else tmp_subid = arg_subid do while len(tmp_subid) >= s_sys_accset.step1 select name into :tmp_subidname from cw_subject where accsetid = :sys_accsetid and subid = :tmp_subid; if sqlca.sqlcode <> 0 then tmp_subidname = '' rst_titlename = '-' + tmp_subidname + rst_titlename choose case len(tmp_subid) case s_sys_accset.step1+s_sys_accset.step2+s_sys_accset.step3+s_sys_accset.step4+s_sys_accset.step5+s_sys_accset.step6 tmp_subid = left(tmp_subid,len(tmp_subid) - s_sys_accset.step6) case s_sys_accset.step1+s_sys_accset.step2+s_sys_accset.step3+s_sys_accset.step4+s_sys_accset.step5 tmp_subid = left(tmp_subid,len(tmp_subid) - s_sys_accset.step5) case s_sys_accset.step1+s_sys_accset.step2+s_sys_accset.step3+s_sys_accset.step4 tmp_subid = left(tmp_subid,len(tmp_subid) - s_sys_accset.step4) case s_sys_accset.step1+s_sys_accset.step2+s_sys_accset.step3 tmp_subid = left(tmp_subid,len(tmp_subid) - s_sys_accset.step3) case s_sys_accset.step1+s_sys_accset.step2 tmp_subid = left(tmp_subid,len(tmp_subid) - s_sys_accset.step2) case s_sys_accset.step1 tmp_subid = left(tmp_subid,len(tmp_subid) - s_sys_accset.step1) end choose loop rst_titlename = mid(rst_titlename,2) end if destroy uo_sub return rst_titlename end function on w_rp_subid_mx.create int iCurrent call super::create this.st_2=create st_2 this.ddlb_1=create ddlb_1 this.dw_2=create dw_2 this.cbx_1=create cbx_1 this.cb_3=create cb_3 this.cb_4=create cb_4 this.cb_5=create cb_5 this.cb_9=create cb_9 this.cb_addzy=create cb_addzy this.st_1=create st_1 iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.st_2 this.Control[iCurrent+2]=this.ddlb_1 this.Control[iCurrent+3]=this.dw_2 this.Control[iCurrent+4]=this.cbx_1 this.Control[iCurrent+5]=this.cb_3 this.Control[iCurrent+6]=this.cb_4 this.Control[iCurrent+7]=this.cb_5 this.Control[iCurrent+8]=this.cb_9 this.Control[iCurrent+9]=this.cb_addzy this.Control[iCurrent+10]=this.st_1 end on on w_rp_subid_mx.destroy call super::destroy destroy(this.st_2) destroy(this.ddlb_1) destroy(this.dw_2) destroy(this.cbx_1) destroy(this.cb_3) destroy(this.cb_4) destroy(this.cb_5) destroy(this.cb_9) destroy(this.cb_addzy) destroy(this.st_1) end on event open;THIS.TriggerEvent('ue_before_open') wf_movetocenter() dw_2.SetTransObject(sqlca) dw_1.SetTransObject (sqlca) IF sys_option_mx_if_mxdscrp = 0 THEN dw_1.Modify('destroy mxdscrp') END IF dw_1.titleclick_sort_use = FALSE IF Trim(dw_1.DataObject) <> '' THEN dw_1.Object.DataWindow.Print.MARGIN.Top = Integer(ProfileString(sys_inifilename,dw_1.DataObject, "MARGIN_TOP", "110")) dw_1.Object.DataWindow.Print.MARGIN.Left = Integer(ProfileString(sys_inifilename,dw_1.DataObject, "MARGIN_LEFT", "96" )) dw_1.Object.DataWindow.Print.MARGIN.bottom = Integer(ProfileString(sys_inifilename,dw_1.DataObject, "MARGIN_BOTTOM", "110")) dw_1.Object.DataWindow.Print.MARGIN.Right = Integer(ProfileString(sys_inifilename,dw_1.DataObject, "MARGIN_RIGHT", "96" )) END IF cb_1.TriggerEvent(Clicked!) end event event resize;call super::resize;dw_2.Height = dw_1.Height end event event ue_before_open;call super::ue_before_open;if_ue_sentdataout = TRUE end event type cb_func from w_publ_easyq`cb_func within w_rp_subid_mx end type type cb_exit from w_publ_easyq`cb_exit within w_rp_subid_mx integer x = 1989 integer taborder = 40 end type type cb_2 from w_publ_easyq`cb_2 within w_rp_subid_mx integer x = 1426 integer width = 274 integer taborder = 170 boolean bringtotop = true string text = "选择打印" end type type cb_psetup from w_publ_easyq`cb_psetup within w_rp_subid_mx integer x = 1006 integer taborder = 140 boolean bringtotop = true end type type cb_1 from w_publ_easyq`cb_1 within w_rp_subid_mx integer taborder = 50 boolean bringtotop = true string text = "过滤" end type event cb_1::clicked;open(w_rp_type_mx) s_rp_type_hz=message.powerobjectparm if s_rp_type_hz.year=0 then if is_display then return else close(parent) return end if end if is_display=true dw_2.retrieve(s_rp_type_hz.firstsubid,s_rp_type_hz.lastsubid,sys_accsetid) parent.triggerevent("dw_retrieve") end event type st_3 from w_publ_easyq`st_3 within w_rp_subid_mx boolean visible = false integer x = 279 integer y = 752 integer width = 448 integer weight = 700 long backcolor = 16776960 string text = "会计年度:2002" alignment alignment = left! boolean border = true end type type st_4 from w_publ_easyq`st_4 within w_rp_subid_mx integer x = 969 integer y = 212 integer width = 462 integer height = 64 integer weight = 700 long backcolor = 16776960 string text = "" alignment alignment = left! boolean border = true end type type em_1 from w_publ_easyq`em_1 within w_rp_subid_mx boolean visible = false integer x = 1413 integer y = 756 integer taborder = 180 end type type em_2 from w_publ_easyq`em_2 within w_rp_subid_mx boolean visible = false integer x = 1792 integer y = 756 integer taborder = 190 end type type ddlb_yl from w_publ_easyq`ddlb_yl within w_rp_subid_mx integer x = 2395 integer y = 40 integer taborder = 100 end type type cbx_yl from w_publ_easyq`cbx_yl within w_rp_subid_mx integer x = 2181 integer y = 44 integer taborder = 120 end type type dw_1 from w_publ_easyq`dw_1 within w_rp_subid_mx integer x = 1280 integer y = 304 integer width = 2126 integer height = 924 string dataobject = "dw_rp_subid_mx" end type event dw_1::doubleclicked;Long ll_row Long ll_credid ll_row = THIS.GetRow() IF ll_row <= 0 THEN RETURN ll_credid = THIS.Object.credid[ll_row] IF ll_credid <= 0 THEN RETURN s_edit_index_tran s_tran //翻页功能窗口 传递参数使用 s_tran.if_retrieve_all = TRUE //是否一次RETRIEVE所有行 s_tran.work_mode = 0 //0-单纯编辑模式, 1-选择模式 s_tran.arg_pkid = 0 //目标定位PKID (备用) s_tran.arg_string_code = '' //查询列部分内容,用于初步筛选 s_tran.e_long = ll_credid OpenWithParm(w_credence_edit,s_tran) end event type sle_mtrl from w_publ_easyq`sle_mtrl within w_rp_subid_mx integer x = 1664 integer y = 764 end type type sle_cust from w_publ_easyq`sle_cust within w_rp_subid_mx integer x = 503 integer y = 764 end type type st_mtrl from w_publ_easyq`st_mtrl within w_rp_subid_mx integer x = 1207 integer y = 780 end type type st_cust from w_publ_easyq`st_cust within w_rp_subid_mx integer x = 41 integer y = 780 end type type cbx_loginretr from w_publ_easyq`cbx_loginretr within w_rp_subid_mx integer x = 1902 integer y = 672 end type type pb_em1 from w_publ_easyq`pb_em1 within w_rp_subid_mx boolean visible = false integer x = 1975 integer y = 524 end type type pb_em2 from w_publ_easyq`pb_em2 within w_rp_subid_mx boolean visible = false integer x = 1527 integer y = 532 end type type pb_2 from w_publ_easyq`pb_2 within w_rp_subid_mx boolean visible = false integer x = 1637 integer y = 532 end type type cb_help from w_publ_easyq`cb_help within w_rp_subid_mx boolean visible = false integer x = 2459 integer y = 516 end type type cb_copyself from w_publ_easyq`cb_copyself within w_rp_subid_mx integer x = 750 end type type gb_1 from w_publ_easyq`gb_1 within w_rp_subid_mx end type type ln_bar from w_publ_easyq`ln_bar within w_rp_subid_mx end type type ln_bar2 from w_publ_easyq`ln_bar2 within w_rp_subid_mx end type type r_bar from w_publ_easyq`r_bar within w_rp_subid_mx end type type ln_1 from w_publ_easyq`ln_1 within w_rp_subid_mx end type type ln_2 from w_publ_easyq`ln_2 within w_rp_subid_mx end type type ln_3 from w_publ_easyq`ln_3 within w_rp_subid_mx boolean visible = false end type type ln_4 from w_publ_easyq`ln_4 within w_rp_subid_mx boolean visible = false end type type st_2 from statictext within w_rp_subid_mx integer x = 14 integer y = 216 integer width = 183 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 = 67108864 boolean enabled = false string text = "格式:" boolean focusrectangle = false end type type ddlb_1 from dropdownlistbox within w_rp_subid_mx integer x = 201 integer y = 204 integer width = 416 integer height = 268 integer taborder = 20 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 string text = "金额式" boolean sorted = false boolean vscrollbar = true string item[] = {"金额式","外币金额式"} borderstyle borderstyle = stylelowered! end type event selectionchanged;if index=1 then dw_1.dataobject='dw_rp_subid_mx' dw_1.settransobject(sqlca) else dw_1.dataobject='dw_rp_subid_mx_wb' dw_1.settransobject(sqlca) end if parent.triggerevent("dw_retrieve") end event type dw_2 from u_dw_rbtnfilter within w_rp_subid_mx integer y = 304 integer width = 1280 integer height = 924 integer taborder = 30 boolean bringtotop = true string dataobject = "dw_rp_subid_mx_subidlist" boolean hscrollbar = true boolean vscrollbar = true end type event rowfocuschanged;if currentrow<=0 then return if this.getrow()<=0 then return this.selectrow(0,false) this.selectrow(currentrow,true) string ls_subid,moneyname long ls_moneyid=0 ls_subid=this.object.subid[this.getrow()] select moneyid into :ls_moneyid from cw_subject where cw_subject.subid=:ls_subid and cw_subject.accsetid=:sys_accsetid; if sqlca.sqlcode<>0 then ls_moneyid=0 end if if ls_moneyid=0 then select name into :moneyname from cw_currency where cw_currency.accsetid =:sys_accsetid and cw_currency.native=1; else select name into :moneyname from cw_currency where cw_currency.accsetid =:sys_accsetid and cw_currency.native=0 and cw_currency.moneyid=:ls_moneyid; end if st_4.text='币种:'+moneyname parent.triggerevent("dw_retrieve") end event event constructor;call super::constructor; titleclick_sort_use=true //单击标题排序功能开关 rbutton_filter_use=true //右键查询功能开关 end event type cbx_1 from checkbox within w_rp_subid_mx integer x = 640 integer y = 212 integer width = 320 integer height = 64 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 67108864 string text = "全选打印" end type event clicked;long i int k=0 if this.checked then k=1 for i= 1 to dw_2.rowcount() dw_2.object.selectflag[i]=k next end event type cb_3 from uo_imflatbutton within w_rp_subid_mx integer x = 1262 integer width = 165 integer height = 164 integer taborder = 130 boolean bringtotop = true string text = "打印" string normalpicname = "print.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;IF NOT f_power_ind(153,sys_msg_pow) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF dw_1.object.datawindow.print.page.range='' dw_1.object.datawindow.print.copies=1 long i boolean printflag=false for i= 1 to dw_2.rowcount() if dw_2.object.selectflag[i]=1 then dw_2.scrolltorow(i) printflag=true dw_1.PRINT() end if next if printflag=false then MEssagebox('系统提示','没有可打印的产品,请选择产品!') return end if end event type cb_4 from uo_imflatbutton within w_rp_subid_mx integer x = 302 integer width = 224 integer height = 164 integer taborder = 70 boolean bringtotop = true string text = "上一个" string normalpicname = "p5.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;dw_2.ScrollPriorRow() end event type cb_5 from uo_imflatbutton within w_rp_subid_mx integer x = 526 integer width = 224 integer height = 164 integer taborder = 110 boolean bringtotop = true string text = "下一个" string normalpicname = "p6.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;dw_2.ScrollNextRow() end event type cb_9 from uo_imflatbutton within w_rp_subid_mx integer x = 1701 integer width = 288 integer height = 164 integer taborder = 150 boolean bringtotop = true string text = "打印封面" string normalpicname = "print.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;S_print_MSG LS_PRMSG LS_PRMSG.obj_dwNAME = 'dw_rp_fm_subid_mx' LS_PRMSG.TAG_TEXT = '封面' LS_PRMSG.FILTER_STRING = '' LS_PRMSG.retr_pram_falg = -1 LS_PRMSG.PAGECH_FLAG = 0 OpenWithParm(w_publ_preview,LS_PRMSG) end event type cb_addzy from uo_imflatbutton within w_rp_subid_mx integer x = 1504 integer y = 200 integer width = 343 integer height = 80 integer taborder = 30 boolean bringtotop = true string text = "补充备注" end type event constructor;this.visible = (sys_option_mx_if_mxdscrp = 1) end event event clicked;Long ll_row Long ll_credid,ll_fuluno String arg_msg s_mxdscrp s_view,s_return dw_1.AcceptText() ll_row = dw_1.GetRow() IF ll_row <= 0 THEN MessageBox('提示','请选择分录') RETURN END IF IF dw_1.Object.dw_sort[ll_row] <> 1 THEN MessageBox('提示',' 不是会计分录,不能操作,请检查') RETURN END IF ll_credid = dw_1.Object.credid[ll_row] ll_fuluno = dw_1.Object.fuluno[ll_row] s_view.mxdscrp = dw_1.Object.mxdscrp[ll_row] OpenWithParm(w_credence_mxdscrp,s_view) s_return = Message.PowerObjectParm IF s_return.returnflag = 0 THEN RETURN uo_credence uo_cred uo_cred = CREATE uo_credence IF uo_cred.uof_mod_mxdscrp(sys_accsetid,ll_credid,ll_fuluno,s_return.mxdscrp,arg_msg) = 0 THEN MessageBox('提示','补充备注失败,'+arg_msg) ELSE MessageBox('提示','补充备注成功') dw_1.Object.mxdscrp[ll_row] = s_return.mxdscrp END IF DESTROY uo_cred end event type st_1 from statictext within w_rp_subid_mx integer x = 617 integer y = 196 integer width = 841 integer height = 92 integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 67108864 boolean border = true boolean focusrectangle = false end type