$PBExportHeader$uo_rapmoney.sru forward global type uo_rapmoney from nonvisualobject end type end forward global type uo_rapmoney from nonvisualobject end type global uo_rapmoney uo_rapmoney type variables long ref_rapid end variables forward prototypes public function integer del_raprec (long arg_rapid, long arg_accountsid, integer arg_ifauto, ref string arg_msg, boolean arg_ifcommit) protected function integer f_check_ifnewest (long arg_accounstid, datetime arg_takedate, ref long arg_ref_minprintid, ref long arg_ref_maxprintid, ref string arg_msg) public function integer add_raprec (s_rap_money arg_s_rap, ref string arg_msg, boolean arg_ifcommit) public function integer mod_raprec (s_rap_money arg_s_rap, ref string arg_msg, boolean arg_ifcommit, long arg_ifauto) public function integer balc_raprec (long arg_accountid, long arg_month, ref string arg_msg, boolean arg_ifcommit) public function integer c_balc_raprec (long arg_accountid, long arg_month, ref string arg_msg, boolean arg_ifcommit) end prototypes public function integer del_raprec (long arg_rapid, long arg_accountsid, integer arg_ifauto, ref string arg_msg, boolean arg_ifcommit); Int rslt = 1 ,cnt = 0,buildtype,ll_balcflag Decimal sum_balcamt = 0.00 DateTime ld_ctdatetime,ld_takedate,ld_maxtakedate Long ll_printid SELECT buildtype, takedate, printid, balcflag INTO :buildtype, :ld_takedate, :ll_printid, :ll_balcflag FROM u_rap_money Where u_rap_money.rapmoneyid = :arg_rapid; IF sqlca.SQLCode <> 0 THEN arg_msg = "查询出纳帐明细建立类型失败,请重试!"+'~n'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF ll_balcflag = 1 THEN arg_msg = '出纳帐已结账,不能删除' rslt = 0 GOTO ext END IF SELECT max(takedate) INTO :ld_maxtakedate FROM u_rap_money Where balcflag = 1 AND accountid = :arg_accountsid; IF sqlca.SQLCode <> 0 THEN IF sqlca.SQLCode = 100 THEN ld_maxtakedate = DateTime(Date('1990-01-01'),Time(0)) ELSE rslt = 0 arg_msg = '查询最近结帐日期失败' GOTO ext END IF END IF IF year(Date(ld_takedate)) * 100 + month(Date(ld_takedate)) <= year(Date(ld_maxtakedate)) * 100 + month(Date(ld_maxtakedate)) THEN arg_msg = '当月或之后月份的出纳帐已结账,不能再删除该月份或之前的帐目' rslt = 0 GOTO ext END IF IF arg_ifauto = 0 THEN IF buildtype = 1 THEN arg_msg = '系统自动建立的出纳帐明细不可以删除' rslt = 0 GOTO ext END IF IF buildtype = 2 THEN arg_msg = '转帐单自动建立的出纳帐明细不可以删除' rslt = 0 GOTO ext END IF END IF SELECT count(*) INTO :cnt FROM u_accounts Where u_accounts.accountsid = :arg_accountsid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询操作失败,出纳帐户唯一码' rslt = 0 GOTO ext END IF IF cnt = 0 THEN arg_msg = '错误出纳帐户唯一码' rslt = 0 GOTO ext END IF Int rst rst = f_last_ctdate(ld_ctdatetime,arg_msg) IF rst = 0 THEN rslt = 0 GOTO ext ELSEIF rst = 1 THEN IF ld_takedate <= ld_ctdatetime THEN arg_msg = '该数据在截数日期:'+String(ld_ctdatetime,'yyyy-mm-dd hh:mm')+'前,不能删除' rslt = 0 GOTO ext END IF cnt = 0 SELECT count(*) INTO :cnt FROM u_rap_money Where accountid = :arg_accountsid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询帐号出纳帐数目失败' rslt = 0 GOTO ext END IF IF cnt = 1 THEN arg_msg = '最后结余记录,不能删除' rslt = 0 GOTO ext END IF END IF //更新中间明细 SELECT msttakeamt - takeamt INTO :sum_balcamt FROM u_rap_money Where u_rap_money.rapmoneyid = :arg_rapid; IF sqlca.SQLCode <> 0 THEN arg_msg = "查询总应付差额失败!"+'~n'+sqlca.SQLErrText rslt = 0 GOTO ext END IF UPDATE u_rap_money SET balcamt = balcamt - :sum_balcamt WHERE u_rap_money.printid > :ll_printid AND u_rap_money.accountid = :arg_accountsid; IF sqlca.SQLCode <> 0 THEN arg_msg = "更新结余金额失败!"+'~n'+sqlca.SQLErrText rslt = 0 GOTO ext END IF ////////////////////////////////////// // DELETE FROM u_rap_money Where u_rap_money.rapmoneyid = :arg_rapid; IF sqlca.SQLCode <> 0 THEN arg_msg = "删除出纳帐明细记录操作失败,请重试!"+'~n'+sqlca.SQLErrText rslt = 0 GOTO ext END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF RETURN rslt end function protected function integer f_check_ifnewest (long arg_accounstid, datetime arg_takedate, ref long arg_ref_minprintid, ref long arg_ref_maxprintid, ref string arg_msg);Int rslt = 1 Long cnt = 0 SELECT isnull(max(printid),0) INTO :arg_ref_maxprintid FROM u_rap_money Where accountid = :arg_accounstid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询帐号最大排序号失败' GOTO ext END IF SELECT count(*),isnull(min(printid),0) INTO :cnt,:arg_ref_minprintid FROM u_rap_money WHERE year(takedate) * 10000 + month(takedate) * 100 + day(takedate) > year(:arg_takedate) * 10000 + month(:arg_takedate) * 100 + day(:arg_takedate) AND accountid = :arg_accounstid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询日期:'+String(arg_takedate,'yyyy-mm-dd')+'以后是否已录入数据失败' GOTO ext END IF IF cnt > 0 THEN rslt = 2 IF cnt = 0 THEN rslt = 1 ext: RETURN rslt end function public function integer add_raprec (s_rap_money arg_s_rap, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1,cnt = 0 DateTime server_datetime Long ls_rapid DateTime ld_maxtakedate IF IsNull(arg_s_rap.dscrp) THEN arg_s_rap.dscrp = '' IF IsNull(arg_s_rap.billcode) THEN arg_s_rap.billcode = '' IF IsNull(arg_s_rap.relcode) THEN arg_s_rap.relcode = '' IF IsNull(arg_s_rap.relcode) THEN arg_s_rap.relcode = '' IF IsNull(arg_s_rap.opemp) THEN arg_s_rap.opemp = '' IF IsNull(arg_s_rap.inrep) THEN arg_s_rap.inrep = '' IF IsNull(arg_s_rap.banktypeid) THEN arg_s_rap.banktypeid = 0 IF IsNull(arg_s_rap.scid) THEN arg_s_rap.scid = 0 SELECT Top 1 getdate() INTO :server_datetime FROM u_user; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "查询操作失败,系统时间" GOTO ext END IF IF Not (arg_s_rap.buildtype = 1 OR arg_s_rap.buildtype = 0 OR arg_s_rap.buildtype = 2 ) THEN arg_msg = '错误建立类型,必须为:0 - 手工录入;1 - 记帐;2 - 转帐' rslt = 0 GOTO ext END IF IF Date(arg_s_rap.takedate) <= Date('1990-01-01') THEN arg_msg = '错误发生日期' rslt = 0 GOTO ext END IF SELECT max(takedate) INTO :ld_maxtakedate FROM u_rap_money Where balcflag = 1 AND accountid = :arg_s_rap.accountsid; IF sqlca.SQLCode <> 0 THEN IF sqlca.SQLCode = 100 THEN ld_maxtakedate = DateTime(Date('1990-01-01'),Time(0)) ELSE rslt = 0 arg_msg = '查询最近结帐日期失败' GOTO ext END IF END IF IF year(Date(arg_s_rap.takedate)) * 100 + month(Date(arg_s_rap.takedate)) <= year(Date(ld_maxtakedate)) * 100 + month(Date(ld_maxtakedate)) THEN arg_msg = '当月出纳帐已结账,不能再建立该月份或之前的帐目' rslt = 0 GOTO ext END IF IF f_check_inoutdate(0,arg_s_rap.takedate,FALSE,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF cnt = 0 IF Trim(arg_s_rap.inrep) = '' THEN arg_msg = '没有经手人' rslt = 0 GOTO ext END IF IF arg_s_rap.msttakeamt = 0 AND arg_s_rap.takeamt = 0 THEN arg_msg = "收入金额与与支金额不能同时为0!" rslt = 0 GOTO ext END IF cnt = 0 SELECT count(*) INTO :cnt FROM u_accounts Where u_accounts.accountsid = :arg_s_rap.accountsid ; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询操作失败,帐号唯一码' rslt = 0 GOTO ext END IF IF cnt = 0 THEN arg_msg = '错误帐号唯一码' rslt = 0 GOTO ext END IF cnt = 0 SELECT count(*) INTO :cnt FROM u_user Where username = :arg_s_rap.opemp; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "查询操作失败,操作员!" GOTO ext END IF IF cnt = 0 THEN rslt = 0 arg_msg = "操作员姓名未登记或已取消!" GOTO ext END IF cnt = 0 SELECT count(*) INTO :cnt FROM cw_banktype Where banktypeid = :arg_s_rap.banktypeid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "查询操作失败,结算方式!" GOTO ext END IF IF cnt = 0 THEN rslt = 0 arg_msg = "结算方式未登记或已取消!" GOTO ext END IF Decimal cur_accounts_amt = 0 ,new_amt = 0 Int ls_ifnew Long ll_min_printid,ll_max_printid,ll_printid ls_ifnew = f_check_ifnewest(arg_s_rap.accountsid,arg_s_rap.takedate,ll_min_printid,ll_max_printid,arg_msg) CHOOSE CASE ls_ifnew CASE 0 rslt = 0 GOTO ext CASE 2 Long ls_tmprapid Decimal tmp_amt,min_balcamt tmp_amt = arg_s_rap.msttakeamt - arg_s_rap.takeamt SELECT balcamt + takeamt - msttakeamt INTO :min_balcamt FROM u_rap_money WHERE printid = :ll_min_printid AND accountid = :arg_s_rap.accountsid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询下月最前结余失败,'+sqlca.SQLErrText GOTO ext END IF UPDATE u_rap_money SET printid = printid + 1, balcamt = balcamt + :tmp_amt WHERE printid >= :ll_min_printid AND accountid = :arg_s_rap.accountsid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '更新结余金额失败,'+sqlca.SQLErrText GOTO ext END IF new_amt = min_balcamt + arg_s_rap.msttakeamt - arg_s_rap.takeamt ll_printid = ll_min_printid CASE 1 SELECT v_accounts_balc.accounts_balcamt INTO :cur_accounts_amt FROM v_accounts_balc Where v_accounts_balc.accountsid = :arg_s_rap.accountsid; IF sqlca.SQLCode <> 0 AND sqlca.SQLCode <> 100 THEN arg_msg = "查询当前帐号的结余金额操作失败,请重试!" rslt = 0 GOTO ext END IF new_amt = cur_accounts_amt + arg_s_rap.msttakeamt - arg_s_rap.takeamt ll_printid = ll_max_printid + 1 END CHOOSE //---------------------------------------------------- ls_rapid = f_sys_scidentity(0,"u_rap_money","rapmoneyid",arg_msg,TRUE,id_sqlca) IF ls_rapid <= 0 THEN rslt = 0 GOTO ext END IF INSERT INTO u_rap_money (rapmoneyid, accountid, billcode, relcode, takedate, msttakeamt, takeamt, balcamt, takeemp, dscrp, buildtype, relid, opdate, opemp, dcflag, banktypeid, scid, printid) VALUES ( :ls_rapid, :arg_s_rap.accountsid, :arg_s_rap.billcode, :arg_s_rap.relcode, :arg_s_rap.takedate, :arg_s_rap.msttakeamt, :arg_s_rap.takeamt, :new_amt, :arg_s_rap.inrep, :arg_s_rap.dscrp, :arg_s_rap.buildtype, :arg_s_rap.relid, :server_datetime, :arg_s_rap.opemp, :arg_s_rap.dcflag, :arg_s_rap.banktypeid, :arg_s_rap.scid, :ll_printid); IF sqlca.SQLCode <> 0 THEN arg_msg = "向出纳明细表插入新记录失败,请重试!"+'~n'+sqlca.SQLErrText rslt = 0 GOTO ext END IF ref_rapid = ls_rapid ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF RETURN rslt end function public function integer mod_raprec (s_rap_money arg_s_rap, ref string arg_msg, boolean arg_ifcommit, long arg_ifauto);Int rslt = 1 ,cnt = 0 Long maxid = 0 Long buildtype = 0 Decimal ol_balcamt = 0.00 //原差额 Decimal new_balcamt = 0.00 //新差额 DateTime server_datetime,ld_maxtakedate Long ll_printid s_rap_money s_rap IF IsNull(arg_s_rap.dscrp) THEN arg_s_rap.dscrp = '' IF IsNull(arg_s_rap.inrep) THEN arg_s_rap.inrep = '' IF IsNull(arg_s_rap.billcode) THEN arg_s_rap.billcode = '' IF IsNull(arg_s_rap.opemp) THEN arg_s_rap.opemp = '' IF IsNull(arg_s_rap.banktypeid) THEN arg_s_rap.banktypeid = 0 IF IsNull(arg_s_rap.scid) THEN arg_s_rap.scid = 0 cnt = 0 SELECT count(*) INTO :cnt FROM cw_banktype Where banktypeid = :arg_s_rap.banktypeid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "查询操作失败,结算方式!" GOTO ext END IF IF cnt = 0 THEN rslt = 0 arg_msg = "结算方式未登记或已取消!" GOTO ext END IF SELECT Top 1 getdate() INTO :server_datetime FROM u_user; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "查询操作失败,系统时间" GOTO ext END IF IF Not (arg_s_rap.buildtype = 1 OR arg_s_rap.buildtype = 0 OR arg_s_rap.buildtype = 2) THEN arg_msg = '错误建立类型,必须为:0-手工录入;1-记帐;2 - 转帐' rslt = 0 GOTO ext END IF SELECT max(takedate) INTO :ld_maxtakedate FROM u_rap_money Where balcflag = 1 AND accountid = :arg_s_rap.accountsid; IF sqlca.SQLCode <> 0 THEN IF sqlca.SQLCode = 100 THEN ld_maxtakedate = DateTime(Date('1990-01-01'),Time(0)) ELSE rslt = 0 arg_msg = '查询最近结帐日期失败' GOTO ext END IF END IF IF year(Date(arg_s_rap.takedate)) * 100 + month(Date(arg_s_rap.takedate)) <= year(Date(ld_maxtakedate)) * 100 + month(Date(ld_maxtakedate)) THEN arg_msg = '当月出纳帐已结账,不能再建立该月份或之前的帐目' rslt = 0 GOTO ext END IF //手动修改时查询建立类型 IF arg_ifauto = 1 THEN SELECT buildtype INTO :buildtype FROM u_rap_money Where u_rap_money.rapmoneyid = :arg_s_rap.rapid ; IF sqlca.SQLCode <> 0 THEN arg_msg = "查询出纳帐明细建立类型失败,请重试!"+'~n'+sqlca.SQLErrText rslt = 0 GOTO ext END IF END IF SELECT printid INTO :ll_printid FROM u_rap_money Where u_rap_money.rapmoneyid = :arg_s_rap.rapid ; IF sqlca.SQLCode <> 0 THEN arg_msg = "查询出纳帐明细序号失败,请重试!"+'~n'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF buildtype = 1 or buildtype = 2 THEN arg_msg = '系统自动建立的出纳帐明细不可以修改' rslt = 0 GOTO ext END IF IF Date(arg_s_rap.takedate) <= 1990-01-01 THEN arg_msg = '错误发生日期' rslt = 0 GOTO ext END IF IF Trim(arg_s_rap.inrep) = '' THEN arg_msg = '没有经手人' rslt = 0 GOTO ext END IF IF arg_s_rap.msttakeamt = 0 AND arg_s_rap.takeamt = 0 THEN arg_msg = "收入金额与支出金额不能同时为0!" rslt = 0 GOTO ext END IF SELECT count(*) INTO :cnt FROM u_accounts Where u_accounts.accountsid = :arg_s_rap.accountsid ; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询操作失败,出纳帐户唯一码' rslt = 0 GOTO ext END IF IF cnt = 0 THEN arg_msg = '错误出纳帐户唯一码' rslt = 0 GOTO ext END IF cnt = 0 SELECT count(*) INTO :cnt FROM u_user Where username = :arg_s_rap.opemp ; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "查询操作失败,操作员!" GOTO ext END IF IF cnt = 0 THEN rslt = 0 arg_msg = "操作员姓名未登记或已取消!" GOTO ext END IF DateTime ol_takedate SELECT msttakeamt - takeamt,takedate INTO :ol_balcamt,:ol_takedate FROM u_rap_money Where u_rap_money.rapmoneyid = :arg_s_rap.rapid ; IF sqlca.SQLCode <> 0 THEN arg_msg = "查询出纳差额失败!"+'~n'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF String(ol_takedate,'yyyymmdd') <> String(arg_s_rap.takedate,'yyyymmdd') THEN IF del_raprec ( arg_s_rap.rapid, arg_s_rap.accountsid,0, arg_msg,FALSE) = 0 THEN rslt = 0 GOTO ext END IF s_rap.accountsid = arg_s_rap.accountsid s_rap.takedate = arg_s_rap.takedate s_rap.inrep = arg_s_rap.inrep s_rap.dscrp = arg_s_rap.dscrp s_rap.msttakeamt = arg_s_rap.msttakeamt s_rap.takeamt = arg_s_rap.takeamt s_rap.billcode = arg_s_rap.billcode s_rap.opemp = arg_s_rap.opemp s_rap.banktypeid = arg_s_rap.banktypeid s_rap.scid = arg_s_rap.scid s_rap.buildtype = 0 s_rap.dcflag = 0 s_rap.relid = 0 IF add_raprec(s_rap,arg_msg,FALSE) = 0 THEN rslt = 0 GOTO ext END IF ELSE new_balcamt = arg_s_rap.msttakeamt - arg_s_rap.takeamt IF new_balcamt <> ol_balcamt THEN UPDATE u_rap_money SET balcamt = balcamt + (:new_balcamt - :ol_balcamt ) WHERE u_rap_money.printid > :ll_printid AND u_rap_money.accountid = :arg_s_rap.accountsid ; IF sqlca.SQLCode <> 0 THEN arg_msg = "更新结余金额失败!"+'~n'+sqlca.SQLErrText rslt = 0 GOTO ext END IF END IF //////////////////////////////////////// //更新明细 UPDATE u_rap_money SET billcode = :arg_s_rap.billcode, takedate = :arg_s_rap.takedate, takeemp = :arg_s_rap.inrep, msttakeamt = :arg_s_rap.msttakeamt, takeamt = :arg_s_rap.takeamt, dscrp = :arg_s_rap.dscrp, banktypeid = :arg_s_rap.banktypeid, scid = :arg_s_rap.scid, balcamt = balcamt + (:new_balcamt - :ol_balcamt ) Where u_rap_money.rapmoneyid = :arg_s_rap.rapid ; IF sqlca.SQLCode <> 0 THEN arg_msg = "更新单据失败!"+'~n'+sqlca.SQLErrText rslt = 0 GOTO ext END IF END IF ext: IF rslt = 0 THEN ROLLBACK ; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT ; END IF RETURN rslt end function public function integer balc_raprec (long arg_accountid, long arg_month, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 string ls_accountsname IF arg_month < 190000 THEN rslt = 0 arg_msg = '不合理的月份' GOTO ext END IF SELECT u_accounts.accountsname INTO :ls_accountsname FROM u_accounts Where accountsid = :arg_accountid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询帐号名称失败'+sqlca.SQLErrText GOTO ext END IF Long ll_cnt ll_cnt = 0 SELECT count(*) INTO :ll_cnt FROM u_rap_money WHERE balcflag = 1 AND Year(takedate) * 100 + Month(takedate) = :arg_month and accountid = :arg_accountid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询账号:'+ls_accountsname+' 当月是否已结帐失败'+sqlca.SQLErrText GOTO ext END IF IF ll_cnt > 0 THEN rslt = 0 arg_msg = '账号:'+ls_accountsname+' 当月出纳帐已结账,不能重复结账,请检查' GOTO ext END IF UPDATE u_rap_money SET balcflag = 1 WHERE Year(takedate) * 100 + Month(takedate) = :arg_month AND balcflag = 0 and accountid = :arg_accountid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '账号:'+ls_accountsname+' 更新结账标记失败' GOTO ext END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF RETURN rslt end function public function integer c_balc_raprec (long arg_accountid, long arg_month, ref string arg_msg, boolean arg_ifcommit);Int rslt = 1 String ls_accountsname IF arg_month < 190000 THEN rslt = 0 arg_msg = '不合理的月份' GOTO ext END IF SELECT u_accounts.accountsname INTO :ls_accountsname FROM u_accounts Where accountsid = :arg_accountid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询帐号名称失败'+sqlca.SQLErrText GOTO ext END IF Long ll_cnt SELECT count(*) INTO :ll_cnt FROM u_rap_money WHERE balcflag = 0 AND Year(takedate) * 100 + Month(takedate) = :arg_month AND accountid = :arg_accountid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询账号:'+ls_accountsname+' 当月是否已结帐失败'+sqlca.SQLErrText GOTO ext END IF IF ll_cnt > 0 THEN rslt = 0 arg_msg = '账号:'+ls_accountsname+' 当月出纳帐还没有结账,不能执行反结账,请检查' GOTO ext END IF ll_cnt = 0 SELECT count(*) INTO :ll_cnt FROM u_rap_money WHERE balcflag = 1 AND Year(takedate) * 100 + Month(takedate) > :arg_month AND accountid = :arg_accountid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '账号:'+ls_accountsname+' 查询目标月份以后是否存在已结帐明细失败'+sqlca.SQLErrText GOTO ext END IF IF ll_cnt > 0 THEN rslt = 0 arg_msg = '账号:'+ls_accountsname+' 该月以后存在已结账的出纳明细,不能对该月份执行反结账,请检查' GOTO ext END IF UPDATE u_rap_money SET balcflag = 0 WHERE Year(takedate) * 100 + Month(takedate) = :arg_month AND balcflag = 1 AND accountid = :arg_accountid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '账号:'+ls_accountsname+' 更新结账标记失败' GOTO ext END IF ext: IF rslt = 0 THEN ROLLBACK; ELSEIF rslt = 1 AND arg_ifcommit THEN COMMIT; END IF RETURN rslt end function on uo_rapmoney.create call super::create TriggerEvent( this, "constructor" ) end on on uo_rapmoney.destroy TriggerEvent( this, "destructor" ) call super::destroy end on