$PBExportHeader$w_asset_clear.srw forward global type w_asset_clear from w_publ_1ton_share_detail end type type cb_credence from uo_imflatbutton within w_asset_clear end type end forward global type w_asset_clear from w_publ_1ton_share_detail string title = "固定资产减少" boolean maxbox = true windowstate windowstate = maximized! event insert_childrow ( ) cb_credence cb_credence end type global w_asset_clear w_asset_clear type variables boolean if_credence=false int cur_editfocus=0//0:非编缉,1:新建,2:修改 long new_astclearid=0 long old_assetcardid[],old_mxt //原固定资产ID long new_assetcardid[],new_mxt //新固定资产ID long old_credid //原对应凭证ID long new_credid //新对应凭证ID uo_asset_clear uo_clear uo_credence uo_cred uo_asset uo_assettcard end variables event insert_childrow;long li_row li_row=dw_child.insertrow(0) dw_child.scrolltorow(li_row) dw_child.SetColumn ('cw_assetcard_assetcardcode') end event on w_asset_clear.create int iCurrent call super::create this.cb_credence=create cb_credence iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.cb_credence end on on w_asset_clear.destroy call super::destroy destroy(this.cb_credence) end on event close;destroy uo_clear destroy uo_cred destroy uo_assettcard end event event open;call super::open;uc_column_int = 6 //uc dw前8列可以编辑 child_column_int = 5 //子dw前4列可以编辑 uo_clear = CREATE uo_asset_clear uo_cred = CREATE uo_credence uo_assettcard = CREATE uo_asset wf_refresh_interface() end event event refresh_interface;call super::refresh_interface;cb_credence.enabled=dw_edit_mode sle_usual_query.enabled =not dw_edit_mode end event event ue_before_open;call super::ue_before_open;dw_uc.settransobject(sqlca) datawindowchild childdw_incrdecid dw_child.getchild("cw_astclear_incrdecid",childdw_incrdecid) childdw_incrdecid.SetTransObject (sqlca) childdw_incrdecid.retrieve(sys_accsetid) if childdw_incrdecid.rowcount()<=0 then childdw_incrdecid.insertrow(0) end if end event event retrieve_pageretr;boolean cb_nextpage_enabled,cb_retrieveall_enabled boolean cb_retrieve_enabled cb_nextpage_enabled=cb_nextpage.enabled cb_retrieveall_enabled=cb_retrieveall.enabled cb_nextpage.enabled=false cb_retrieveall.enabled=false dw_pageretr.sharedataoff() dw_pageretr.retrieve(sys_accsetid) if dw_pageretr.rowcount()>0 and dw_pageretr.getrow()=0 then dw_pageretr.setrow(1) dw_pageretr.sharedata(dw_uc) this.triggerevent('retrieve_childdw') cb_nextpage.enabled=cb_nextpage_enabled cb_retrieveall.enabled=cb_retrieveall_enabled end event event ue_usual_query_retr;call super::ue_usual_query_retr; string ls_querystrpart='' ls_newselect=lower(ori_oldselect) if trim(sle_usual_query.text)<>'' then if pos(trim(sle_usual_query.text),'%')=0 then ls_querystrpart="(cw_astclear_bill.relcode like '%"+trim(sle_usual_query.text)+"%')" else ls_querystrpart="(cw_astclear_bill.relcode like '"+trim(sle_usual_query.text)+"')" end if if Pos(ls_newselect," where ") <> 0 then ls_newselect=ls_newselect+" AND ("+ls_querystrpart+')' else ls_newselect=ls_newselect+" where ("+ls_querystrpart+')' end if end if //wf_retrieveuc(1) //注意必须有此句 end event event ue_usual_query_filt;call super::ue_usual_query_filt;string obj_expr='' if trim(sle_usual_query.text)<>'' then IF POS(trim(sle_usual_query.text),'%')=0 THEN obj_expr=obj_expr+'( relcode LIKE "%'+trim(sle_usual_query.text)+'%" )' ELSE obj_expr=obj_expr+'( relcode LIKE "'+trim(sle_usual_query.text)+'" )' END IF end if dw_pageretr.setfilter(obj_expr) dw_pageretr.SetRedraw(False) dw_pageretr.filter() if dw_pageretr.rowcount()>=1 then dw_pageretr.selectrow(0,false) dw_pageretr.selectrow(1,true) end if dw_pageretr.SetRedraw(TRUE) end event event ue_f8;call super::ue_f8;//用于选择明细内容,被F8[默认]\dw_child.doubleclicked调用 IF NOT dw_edit_mode THEN RETURN Long child_row child_row = dw_child.GetRow() IF NOT IsValid(w_assetdef_ch) 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 Long chc = 1,ls_j dw_child.AcceptText() IF dw_child.GetRow() > 0 THEN s_ch_tran.arg_string_code = Trim(dw_child.Object.cw_assetcard_assetcardcode[dw_child.GetRow()]) OpenWithParm(w_assetdef_ch,s_ch_tran) s_assetcard_array S_INSCUST S_INSCUST = Message.PowerObjectParm FOR ls_j = 1 TO UpperBound(S_INSCUST.assetcardid) IF S_INSCUST.assetcardid[ls_j] > 0 THEN IF dw_child.GetRow() > 0 THEN IF dw_child.Object.cw_astclear_assetcardid[child_row] <> 0 THEN child_row = dw_child.InsertRow (0) ELSE child_row = dw_child.GetRow() END IF ELSE child_row = dw_child.InsertRow (0) END IF dw_child.Object.cw_assetcard_assetcardcode[child_row] = S_INSCUST.assetcardcode[ls_j] dw_child.Object.cw_assetcard_assetcardname[child_row] = S_INSCUST.assetcardname[ls_j] dw_child.Object.cw_astclear_assetcardid[child_row] = S_INSCUST.assetcardid[ls_j] dw_child.setcolumn('cw_astclear_incrdecid') END IF NEXT dw_child.SetFocus() END IF end event event retrieve_childdw;call super::retrieve_childdw;long row,uc_relid row=dw_pageretr.getrow() if row>0 then uc_relid=dw_pageretr.object.astclearid[row] dw_child.SetRedraw (false) dw_child.retrieve(sys_accsetid,uc_relid) dw_child.SetRedraw (true) else dw_child.reset() end if end event type cb_func from w_publ_1ton_share_detail`cb_func within w_asset_clear end type type cb_exit from w_publ_1ton_share_detail`cb_exit within w_asset_clear integer x = 1362 end type type sle_usual_query from w_publ_1ton_share_detail`sle_usual_query within w_asset_clear integer x = 334 integer y = 188 end type type cb_retrieveall from w_publ_1ton_share_detail`cb_retrieveall within w_asset_clear boolean visible = false integer x = 2441 end type type em_pagerowno from w_publ_1ton_share_detail`em_pagerowno within w_asset_clear boolean visible = false integer x = 2085 end type type dw_pageretr from w_publ_1ton_share_detail`dw_pageretr within w_asset_clear integer x = 1938 integer width = 1609 integer height = 772 string dataobject = "dw_assetclear_bill_index" end type type st_1 from w_publ_1ton_share_detail`st_1 within w_asset_clear integer width = 315 string text = "相关号码含:" end type type cb_nextpage from w_publ_1ton_share_detail`cb_nextpage within w_asset_clear boolean visible = false integer x = 2935 end type type dw_uc from w_publ_1ton_share_detail`dw_uc within w_asset_clear integer width = 1938 integer height = 772 string dataobject = "dw_assetclear_bill_edit" boolean border = false borderstyle borderstyle = stylebox! end type event dw_uc::dwnkey;parent.triggerevent('user_key') if key = KeyDownArrow! then return 1 if dw_edit_mode then if dw_uc.GetColumnName ( )='othersubid' and key = KeyEnter! then dw_child.setfocus() dw_child.scrolltorow(1) dw_child.SetColumn ('cw_assetcard_assetcardcode') return 1 else if key = KeyEnter! Then // keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab Return 1 end If end if end if end event event dw_uc::buttonclicked;IF NOT dw_edit_mode THEN RETURN Long uc_row s_subject s_rt_subject IF dwo.Name = 'b_subid' THEN uc_row = dw_uc.GetRow() IF uc_row <= 0 THEN MessageBox('系统提示','请选定当前目标固定资产!') RETURN END IF OPEN(w_subjectdef_edit) s_rt_subject = Message.PowerObjectParm IF s_rt_subject.subid = '' THEN RETURN dw_uc.SetRedraw(FALSE) dw_uc.Object.othersubid[uc_row] = s_rt_subject.subid dw_uc.SetRedraw(TRUE) END IF end event type gb_2 from w_publ_1ton_share_detail`gb_2 within w_asset_clear end type type dw_child from w_publ_1ton_share_detail`dw_child within w_asset_clear integer y = 1072 integer width = 3547 integer height = 1096 string title = "资产减少明细" string dataobject = "dw_assetclear_index" end type event dw_child::dwnkey;PARENT.TriggerEvent('user_key') String ls_assetcardcode,ls_assetcardname Long ll_assetcardid Long child_row IF dw_edit_mode THEN IF KeyDown(Keydownarrow!) THEN Long li_row IF dw_child.GetRow() = dw_child.RowCount() THEN PARENT.TriggerEvent("insert_childrow") END IF ELSE IF KeyDown(KeyEnter!) AND NOT KeyDown(KeyControl!) AND NOT KeyDown(KeyShift!) THEN IF dw_child.GetColumnName() = 'cw_assetcard_assetcardcode' THEN dw_child.AcceptText() child_row = dw_child.GetRow() ls_assetcardcode = dw_child.Object.cw_assetcard_assetcardcode[child_row] SELECT assetcardname,assetcardid INTO :ls_assetcardname,:ll_assetcardid FROM cw_assetcard WHERE assetcardcode = :ls_assetcardcode AND accsetid = :sys_accsetid; IF sqlca.SQLCode <> 0 THEN PARENT.TriggerEvent('ue_f8') RETURN 1 END IF dw_child.Object.cw_astclear_assetcardid[child_row] = ll_assetcardid dw_child.Object.cw_assetcard_assetcardname[child_row] = ls_assetcardname dw_child.Object.cw_assetcard_assetcardcode[child_row] = ls_assetcardcode IF Key = KeyEnter! THEN keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab RETURN 1 END IF ELSEIF dw_child.GetColumnName( ) = 'cw_astclear_dscrp' AND dw_child.GetRow() = dw_child.RowCount() THEN PARENT.TriggerEvent("insert_childrow") RETURN 1 ELSE IF Key = KeyEnter! THEN keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab RETURN 1 END IF END IF END IF END IF END IF end event event dw_child::doubleclicked;dw_child.accepttext() if dw_edit_mode and row > 0 then parent.triggerevent('ue_f8') end if end event type cb_viewprint from w_publ_1ton_share_detail`cb_viewprint within w_asset_clear boolean visible = false integer x = 2089 integer y = 552 boolean enabled = false end type type cb_print from w_publ_1ton_share_detail`cb_print within w_asset_clear boolean visible = false integer x = 2661 boolean enabled = false end type type cb_add from w_publ_1ton_share_detail`cb_add within w_asset_clear end type event cb_add::clicked;IF Not f_power_ind(1942,sys_msg_pow) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF String arg_msg = '' Long uc_row,i IF dw_edit_mode THEN dw_uc.AcceptText() uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN MessageBox('系统提示','请选定当前目标固定资产清理单据!') RETURN END IF IF NOT if_credence THEN MessageBox (publ_operator,"相应的记帐凭证还没有完成,请先单击'记帐凭证'将其完成") RETURN END IF IF cur_editfocus = 2 THEN //修改 //**删除旧凭证 IF new_credid > 0 THEN IF uo_cred.del(1,0,old_credid,arg_msg,FALSE) = 0 THEN MessageBox(publ_operator,arg_msg) RETURN END IF END IF END IF uo_clear.billdate = dw_uc.Object.billdate[uc_row] uo_clear.memo = Trim(dw_uc.Object.memo[uc_row]) uo_clear.relcode = Trim(dw_uc.Object.relcode[uc_row]) uo_clear.dscrp = Trim(dw_uc.Object.dscrp[uc_row]) uo_clear.othersubid = Trim(dw_uc.Object.othersubid[uc_row]) dw_uc.Object.credid[uc_row] = new_credid dw_uc.AcceptText() uo_clear.credid = dw_uc.Object.credid[uc_row] FOR i = 1 TO dw_child.RowCount() IF uo_clear.acceptmx(dw_child.Object.cw_astclear_assetcardid[i],& dw_child.Object.cw_astclear_incrdecid[i],& dw_child.Object.cw_astclear_earing[i],& dw_child.Object.cw_astclear_payout[i],& arg_msg,& dw_child.Object.cw_astclear_dscrp[i]) = 0 THEN MessageBox('Error!',arg_msg) RETURN END IF NEXT //2.更新清理标记 FOR i = 1 TO dw_child.RowCount() IF uo_assettcard.update_clearflag(dw_child.Object.cw_astclear_assetcardid[i],1,arg_msg,FALSE) = 0 THEN MessageBox('Error!',arg_msg) RETURN END IF NEXT IF uo_clear.Save(new_astclearid,arg_msg,TRUE) = 0 THEN MessageBox(publ_operator,arg_msg) RETURN END IF MessageBox(publ_operator,'保存操作成功!') if_credence = FALSE new_astclearid = 0 new_credid = 0 old_credid = 0 dw_uc.Object.accsetid[uc_row] = sys_accsetid dw_uc.Object.astclearid[uc_row] = uo_clear.astclearid dw_pageretr.SelectRow(0,FALSE) dw_pageretr.SelectRow(uc_row,TRUE) ELSE IF uo_clear.newbegin() = 0 THEN MessageBox('Error!','Error!') RETURN END IF END IF CALL SUPER::Clicked IF dw_edit_mode THEN cur_editfocus = 1 ELSE cur_editfocus = 0 END IF //read ini IF dw_edit_mode THEN PARENT.TriggerEvent("insert_childrow") dw_uc.SetRedraw(FALSE) datetime ls_creddate ls_creddate = f_rst_mon_1st(3,sys_curyearmon) dw_uc.Object.billdate[dw_uc.getrow()] = ls_creddate dw_uc.SetColumn("billdate") dw_uc.SetRedraw(TRUE) ELSE PARENT.TriggerEvent("retrieve_childdw") END IF // THIS.TriggerEvent('refresh_interface') end event type cb_edit from w_publ_1ton_share_detail`cb_edit within w_asset_clear end type event cb_edit::clicked;IF Not f_power_ind(1942,sys_msg_pow) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF String arg_msg = '' Long uc_row Long ls_astclearid Long ls_credid,ll_ref_credid Int ls_postflag Long ll_assetcardid,i Boolean if_modify = FALSE uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN MessageBox('系统提示','请选定当前目标固定资产!') RETURN END IF ls_astclearid = dw_uc.Object.astclearid[uc_row] ls_credid = dw_uc.Object.credid[uc_row] IF NOT dw_edit_mode THEN //查找相应凭证 IF uo_cred.get_asset_credinfo(202,ls_astclearid,0,ll_ref_credid,ls_postflag,arg_msg) = 0 THEN MessageBox(publ_operator,arg_msg) RETURN END IF IF ls_postflag = 1 THEN IF MessageBox ("IF","该固定资产清理单据对应的记帐凭证已登帐,或已计提折旧,有关的折旧要素将不能修改,是否继续?",Question!,YesNo! ) = 2 THEN RETURN END IF END IF MessageBox(String(ls_credid),ll_ref_credid) IF ls_credid <> ll_ref_credid THEN MessageBox(publ_operator,'该相关记帐凭证不正确,不能被修改!') RETURN END IF //清除标记 FOR i = 1 TO dw_child.RowCount() ll_assetcardid = dw_child.Object.cw_astclear_assetcardid[i] old_mxt++ old_assetcardid[old_mxt] = ll_assetcardid IF uo_assettcard.update_clearflag(ll_assetcardid,0,arg_msg,FALSE) = 0 THEN MessageBox('Error!',arg_msg) RETURN END IF NEXT old_credid = ls_credid IF uo_clear.updatebegin(dw_uc.Object.astclearid[uc_row],arg_msg) = 0 THEN MessageBox('Error!',arg_msg) RETURN END IF ELSE IF MessageBox ("IF","是否确定要放弃保存当前单据?",Question!,YesNo! ) = 2 THEN RETURN END IF dw_edit_mode = NOT dw_edit_mode wf_refresh_interface() IF dw_edit_mode THEN cur_editfocus = 2 dw_uc.SetFocus() dw_uc.SetColumn("billdate") ELSE PARENT.TriggerEvent('retrieve_pageretr') cur_editfocus = 0 if_credence = FALSE //更新原来标记 IF cur_editfocus = 2 THEN FOR i = 1 TO old_mxt ll_assetcardid = old_assetcardid[i] IF uo_assettcard.update_clearflag(ll_assetcardid,1,arg_msg,FALSE) = 0 THEN MessageBox('Error!',arg_msg) RETURN END IF if_modify = TRUE NEXT END IF //如果放弃删除凭证 IF new_credid > 0 THEN IF uo_cred.del(1,0,new_credid,arg_msg,FALSE) = 0 THEN MessageBox(publ_operator,arg_msg) RETURN END IF if_modify = TRUE END IF IF if_modify THEN COMMIT; END IF new_astclearid = 0 old_credid = 0 new_credid = 0 old_mxt = 0 END IF end event type cb_delet from w_publ_1ton_share_detail`cb_delet within w_asset_clear end type event cb_delet::clicked;call super::clicked;IF Not f_power_ind(1942,sys_msg_pow) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF IF dw_edit_mode THEN RETURN IF MessageBox ("IF","是否确定要删除当前固定资产清理吗?",Question!,YesNo! ) = 2 THEN RETURN String arg_msg = '' Long uc_row,cnt Long ls_astclearid Long ls_credid,ll_ref_credid Int ls_postflag Long ll_assetcardid,i uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN MessageBox('系统提示','请先选择单据再删除!') RETURN END IF ls_astclearid = dw_uc.Object.astclearid[uc_row] ls_credid = dw_uc.Object.credid[uc_row] //1.检查对应凭证是否已登帐 IF uo_cred.get_asset_credinfo(202,ls_astclearid,0,ll_ref_credid,ls_postflag,arg_msg) = 0 THEN IF sys_power_issuper AND sys_option_super_del_asset = 1 THEN GOTO del_ END IF MessageBox('提示',arg_msg) RETURN END IF IF ll_ref_credid <> ll_ref_credid THEN MessageBox('提示','该相关记帐凭证不正确,不能被删除!') RETURN END IF IF ls_postflag = 1 THEN MessageBox('提示','该相关记帐凭证已登帐,不能被删除!') RETURN END IF //2.删除旧凭证 IF uo_cred.del(1,0,ls_credid,arg_msg,FALSE) = 0 THEN MessageBox('提示',arg_msg) RETURN END IF del_: //3.更新清理标记 FOR i = 1 TO dw_child.RowCount() ll_assetcardid = dw_child.Object.cw_astclear_assetcardid[i] IF uo_assettcard.update_clearflag(ll_assetcardid,0,arg_msg,FALSE) = 0 THEN MessageBox('提示',arg_msg) RETURN END IF NEXT IF uo_clear.del(ls_astclearid,arg_msg,TRUE) = 0 THEN MessageBox('提示',arg_msg) ELSE MessageBox('提示','删除清理资产单据'+String(dw_uc.Object.relcode[uc_row])+'成功!') dw_uc.DeleteRow(uc_row) dw_uc.PostEvent(RowFocusChanged!) END IF end event type cb_addzy from w_publ_1ton_share_detail`cb_addzy within w_asset_clear boolean visible = false integer x = 2807 integer y = 488 boolean enabled = false end type type cb_auditing from w_publ_1ton_share_detail`cb_auditing within w_asset_clear boolean visible = false integer x = 2583 integer y = 688 end type type cb_xm from w_publ_1ton_share_detail`cb_xm within w_asset_clear integer x = 1111 end type type cb_retrieve from w_publ_1ton_share_detail`cb_retrieve within w_asset_clear end type type cb_xls from w_publ_1ton_share_detail`cb_xls within w_asset_clear boolean visible = false integer x = 2281 integer y = 552 end type type cb_help from w_publ_1ton_share_detail`cb_help within w_asset_clear boolean visible = false integer x = 2606 integer y = 528 end type type cb_auditing_cancel from w_publ_1ton_share_detail`cb_auditing_cancel within w_asset_clear boolean visible = false integer x = 2450 integer y = 364 boolean enabled = false end type type p_msg from w_publ_1ton_share_detail`p_msg within w_asset_clear end type type p_help from w_publ_1ton_share_detail`p_help within w_asset_clear end type type p_encl from w_publ_1ton_share_detail`p_encl within w_asset_clear end type type p_other from w_publ_1ton_share_detail`p_other within w_asset_clear end type type gb_3 from w_publ_1ton_share_detail`gb_3 within w_asset_clear end type type ln_bar from w_publ_1ton_share_detail`ln_bar within w_asset_clear end type type ln_bar2 from w_publ_1ton_share_detail`ln_bar2 within w_asset_clear end type type r_bar from w_publ_1ton_share_detail`r_bar within w_asset_clear end type type ln_1 from w_publ_1ton_share_detail`ln_1 within w_asset_clear end type type ln_2 from w_publ_1ton_share_detail`ln_2 within w_asset_clear end type type cb_credence from uo_imflatbutton within w_asset_clear integer x = 837 integer width = 274 integer height = 172 integer taborder = 40 boolean bringtotop = true string text = "记帐凭证" string normalpicname = "update.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;IF NOT dw_edit_mode THEN RETURN Long li_row,i_row,i Decimal ls_rawvalue,ls_sum_rawvalue Decimal ld_rawvalue,ld_usedvalue Decimal ls_usedvalue,ls_sum_usedvalue DateTime null_date,ldt_startdate datastore credencemx_ds Blob ds_blob Long ls_astclearid Long ls_credid Long ls_assetcardid Int ls_postflag String ls_assetcardcode String arg_msg String ls_assetsubid,ls_deprsubid SetNull(null_date) li_row = dw_uc.GetRow() IF li_row <= 0 THEN RETURN s_edit_index_tran s_tran_mx //翻页功能窗口 传递参数使用 s_tran_mx.if_retrieve_all = FALSE //是否一次RETRIEVE所有行 s_tran_mx.work_mode = 0 //0-单纯编辑模式, 1-选择模式 s_tran_mx.arg_pkid = 0 //目标定位PKID (备用) s_tran_mx.arg_string_code = String(sys_curyearmon) //查询列部分内容,用于初步筛选 credencemx_ds = CREATE datastore credencemx_ds.DataObject = "ds_credencemx" credencemx_ds.SetTransObject(sqlca) dw_uc.AcceptText() dw_child.AcceptText() ls_astclearid = dw_uc.Object.astclearid[li_row] ls_credid = dw_uc.Object.credid[li_row] IF ls_astclearid = 0 THEN ls_astclearid = f_sys_scidentity(sys_accsetid,"cw_astclear","astclearid",arg_msg,TRUE,id_sqlca) IF ls_astclearid <= 0 THEN MessageBox(publ_operator,arg_msg) RETURN END IF END IF FOR i = 1 TO dw_child.RowCount() ls_assetcardid = dw_child.Object.cw_astclear_assetcardid[i] ls_assetcardcode = dw_child.Object.cw_assetcard_assetcardcode[i] IF ls_assetcardid = 0 THEN CONTINUE //查固定资产信息 SELECT assetsubid,rawvalue,startdate,usedvalue,deprsubid INTO :ls_assetsubid,:ld_rawvalue,:ldt_startdate,:ld_usedvalue,:ls_deprsubid FROM cw_assetcard WHERE accsetid = :sys_accsetid AND assetcardid = :ls_assetcardid; IF sqlca.SQLCode <> 0 THEN MessageBox(publ_operator,'明细行:'+String(i)+',查询固定资产'+ls_assetcardcode+'对应固定资产科目失败,'+sqlca.SQLErrText) RETURN END IF IF ls_assetsubid = '' THEN MessageBox(publ_operator,'明细行:'+String(i)+',查询固定资产'+ls_assetcardcode+'未设置对应固定资产科目,请检查') RETURN END IF IF ls_deprsubid = '' THEN MessageBox(publ_operator,'明细行:'+String(i)+',查询固定资产'+ls_assetcardcode+'未设置对应累计折旧科目,请检查') RETURN END IF IF DaysAfter(Date(ldt_startdate),Today()) = 1 THEN ls_rawvalue = ld_rawvalue ls_usedvalue = ld_usedvalue ELSE //**查累计折旧 SELECT bdprcredit + dprcredit,bastdebit INTO :ls_usedvalue,:ls_rawvalue FROM cw_astbalance WHERE accsetid = :sys_accsetid AND yearmon = :sys_curyearmon AND assetcardid = :ls_assetcardid; IF sqlca.SQLCode <> 0 THEN MessageBox(publ_operator,'查询固定资产'+ls_assetcardcode+'累计折旧失败') RETURN END IF END IF //************************ IF ls_rawvalue > 0 THEN i_row = credencemx_ds.InsertRow(0) credencemx_ds.Object.fuluno[i_row] = i_row credencemx_ds.Object.subid[i_row] = ls_assetsubid credencemx_ds.Object.brief[i_row] = '清理' + ls_assetcardcode credencemx_ds.Object.rate[i_row] = 0.00 credencemx_ds.Object.rawdebit[i_row] = 0.00 credencemx_ds.Object.rawcredit[i_row] = 0.00 credencemx_ds.Object.debit[i_row] = 0.00 credencemx_ds.Object.credit[i_row] = ls_rawvalue credencemx_ds.Object.amount[i_row] = 0.00 credencemx_ds.Object.price[i_row] = 0.00 credencemx_ds.Object.deptid[i_row] = 0 credencemx_ds.Object.itemid[i_row] = 0 credencemx_ds.Object.READONLY[i_row] = 1 credencemx_ds.Object.billdate[i_row] = null_date credencemx_ds.Object.billid[i_row] = 0 credencemx_ds.Object.billno[i_row] = '' credencemx_ds.Object.cropbillid[i_row] = 0 END IF ls_sum_rawvalue = ls_sum_rawvalue + ls_rawvalue ls_sum_usedvalue = ls_sum_usedvalue + ls_usedvalue IF ls_usedvalue > 0 THEN i_row = credencemx_ds.InsertRow(0) credencemx_ds.Object.fuluno[i_row] = i_row credencemx_ds.Object.subid[i_row] = ls_deprsubid credencemx_ds.Object.brief[i_row] = '累计折旧' + ls_assetcardcode credencemx_ds.Object.rate[i_row] = 0.00 credencemx_ds.Object.rawdebit[i_row] = 0.00 credencemx_ds.Object.rawcredit[i_row] = 0.00 credencemx_ds.Object.debit[i_row] = ls_usedvalue credencemx_ds.Object.credit[i_row] = 0.00 credencemx_ds.Object.amount[i_row] = 0.00 credencemx_ds.Object.price[i_row] = 0.00 credencemx_ds.Object.deptid[i_row] = 0 credencemx_ds.Object.itemid[i_row] = 0 credencemx_ds.Object.READONLY[i_row] = 1 credencemx_ds.Object.billdate[i_row] = null_date credencemx_ds.Object.billid[i_row] = 0 credencemx_ds.Object.billno[i_row] = '' credencemx_ds.Object.cropbillid[i_row] = 0 END IF NEXT String ls_othersubid,ls_dscrp Long cnt ls_othersubid = dw_uc.Object.othersubid[li_row] ls_dscrp = dw_uc.Object.dscrp[li_row] IF ls_othersubid <> '' THEN SELECT count(*) INTO :cnt FROM cw_subject WHERE accsetid = :sys_accsetid AND subid = :ls_othersubid; IF sqlca.SQLCode <> 0 OR cnt <> 1 THEN MessageBox(publ_operator,'查询对方科目:'+ls_othersubid+'资料失败,可能资料不存在') RETURN END IF i_row = credencemx_ds.InsertRow(0) credencemx_ds.Object.fuluno[i_row] = i_row credencemx_ds.Object.subid[i_row] = ls_othersubid credencemx_ds.Object.brief[i_row] = ls_dscrp credencemx_ds.Object.rate[i_row] = 0.00 credencemx_ds.Object.rawdebit[i_row] = 0.00 credencemx_ds.Object.rawcredit[i_row] = 0.00 credencemx_ds.Object.debit[i_row] = 0.00 credencemx_ds.Object.credit[i_row] = 0.00 credencemx_ds.Object.amount[i_row] = 0.00 credencemx_ds.Object.price[i_row] = 0.00 credencemx_ds.Object.deptid[i_row] = 0 credencemx_ds.Object.itemid[i_row] = 0 credencemx_ds.Object.READONLY[i_row] = 0 credencemx_ds.Object.billdate[i_row] = null_date credencemx_ds.Object.billid[i_row] = 0 credencemx_ds.Object.billno[i_row] = '' credencemx_ds.Object.cropbillid[i_row] = 0 END IF credencemx_ds.GetFullState( ds_blob ) s_tran_mx.arg_blobds = ds_blob s_tran_mx.c_long = 202 s_tran_mx.d_long = ls_astclearid s_tran_mx.b_datetime = dw_uc.Object.billdate[li_row] OpenWithParm(w_credence_edit,s_tran_mx) //**查对应凭证 Long ll_ref_credid //用202,astclearid查找相应凭证 IF uo_cred.get_asset_credinfo(202,ls_astclearid,ls_credid,ll_ref_credid,ls_postflag,arg_msg) = 0 THEN MessageBox(publ_operator,arg_msg) RETURN END IF IF ll_ref_credid = 0 THEN if_credence = FALSE ELSE if_credence = TRUE new_credid = ll_ref_credid new_astclearid = ls_astclearid END IF end event