123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342 |
- $PBExportHeader$uo_rp.sru
- forward
- global type uo_rp from nonvisualobject
- end type
- type s_rp from structure within uo_rp
- end type
- end forward
- type s_rp from structure
- long printid
- string col1name0
- decimal { 4 } col1name1
- decimal { 4 } col1name2
- string col2name0
- decimal { 4 } col2name1
- decimal { 4 } col2name2
- end type
- global type uo_rp from nonvisualobject
- end type
- global uo_rp uo_rp
- type variables
- private:
- s_rp ss_rp[]
- public:
- Long it_MXBT = 0
- Long billid=0
- Long rpid=0
- string billname=''
- datetime sdate
- datetime edate
- end variables
- forward prototypes
- public function integer save (ref string arg_msg)
- public subroutine p_reset ()
- public function integer acceptmx (long arg_printid, string arg_col1name0, decimal arg_col1name1, decimal arg_col1name2, string arg_col2name0, decimal arg_col2name1, decimal arg_col2name2, ref string arg_msg)
- public function integer f_delete (long arg_billid, ref string arg_msg)
- end prototypes
- public function integer save (ref string arg_msg);Integer rslt = 1,cnt = 0,i,j,k
- DateTime server_dt
- Long ll_cpid,ll_ppid,ll_cusid,ll_crid,ll_billid
- String ls_sccode
- //////////////////////////////////////////////////// //开始区分:新建/更新 处理
- IF billid = 0 THEN //新建
-
- ll_billid = f_sys_scidentity(0,"u_sp_rp","billid",arG_MSG,True,sqlca) //数据commit事务)
- IF ll_billid <= 0 THEN
- rslt = 0
- GOTO ext
- END IF
-
- billid = ll_billid //更新客户id
-
- INSERT INTO u_sp_rp
- ( billid,
- rpid ,
- billname,
- sdate,
- edate
-
- )
- VALUES (
- :billid,
- :rpid ,
- :billname,
- :sdate,
- :edate
- ) Using sqlca;
-
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arG_MSG = "因网络或其它原因导致插入单据操作失败"+"~n"+sqlca.SQLErrText
- ROLLBACK Using sqlca;
- GOTO ext
- END IF
-
- FOR j = 1 To it_mxbt
-
- INSERT INTO u_sp_rp_mx
- ( billid,
- printid,
-
- col1name0,
- col1name1,
- col1name2,
- Col2name0,
- Col2name1,
- Col2name2
- )
- VALUES (
- :billid,
- :ss_rp[j].printid,
-
- :ss_rp[j].col1name0,
- :ss_rp[j].col1name1,
- :ss_rp[j].col1name2,
- :ss_rp[j].Col2name0,
- :ss_rp[j].Col2name1,
- :ss_rp[j].Col2name2
-
-
- ) Using sqlca;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arG_MSG = "因网络或其它原因导致插入单据操作失败"+"~n"+sqlca.SQLErrText
- ROLLBACK Using sqlca;
- GOTO ext
- END IF
- NEXT
-
- ELSE //rpid<>0
-
- UPDATE u_sp_rp
- SET
-
- billname = :billname,
- sdate = :sdate,
- edate = :edate
-
- WHERE u_sp_rp.billid = :billid
-
- Using sqlca;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arG_MSG = "因网络或其它原因导致插入单据操作失败"+"~n"+sqlca.SQLErrText
- ROLLBACK Using sqlca;
- GOTO ext
- END IF
-
-
- DELETE From u_sp_rp_mx Where u_sp_rp_mx.billid = :billid Using sqlca;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arG_MSG = "因网络或其它原因导致删除明细费用操作失败"+"~n"+sqlca.SQLErrText
- ROLLBACK Using sqlca;
- GOTO ext
- END IF
-
-
- FOR j = 1 To it_mxbt
-
- INSERT INTO u_sp_rp_mx
- ( billid,
- printid,
-
- col1name0,
- col1name1,
- col1name2,
- Col2name0,
- Col2name1,
- Col2name2
- )
- VALUES (
- :billid,
- :ss_rp[j].printid,
-
- :ss_rp[j].col1name0,
- :ss_rp[j].col1name1,
- :ss_rp[j].col1name2,
- :ss_rp[j].Col2name0,
- :ss_rp[j].Col2name1,
- :ss_rp[j].Col2name2
-
-
- ) Using sqlca;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arG_MSG = "因网络或其它原因导致插入单据操作失败"+"~n"+sqlca.SQLErrText
- ROLLBACK Using sqlca;
- GOTO ext
- END IF
- next
- END IF
- ext:
- IF rslt = 0 THEN
- p_reset()
- ROLLBACK Using sqlca;
- ELSEIF rslt = 1 THEN
- p_reset()
- COMMIT Using sqlca;
-
- END IF
- Return(rslt)
- end function
- public subroutine p_reset ();it_MXBT = 0
- billid=0
- rpid=0
- end subroutine
- public function integer acceptmx (long arg_printid, string arg_col1name0, decimal arg_col1name1, decimal arg_col1name2, string arg_col2name0, decimal arg_col2name1, decimal arg_col2name2, ref string arg_msg);Int rslt = 1
- Long cnt = 0,LS_i,ls_j
- //清除空值
- IF IsNull(arg_printid) THEN arg_printid =0
- IF IsNull(arg_col1name0) THEN arg_col1name0 =''
- IF IsNull(arg_col1name1) THEN arg_col1name1= 0
- IF IsNull(arg_col1name2) THEN arg_col1name2 = 0
- IF IsNull(arg_col2name0) THEN arg_col2name0 =''
- IF IsNull(arg_col2name1) THEN arg_col2name1= 0
- IF IsNull(arg_col2name2) THEN arg_col2name2 = 0
- IF IsNull(arg_msg) THEN arg_msg =''
- if arg_printid=0 then
- arg_msg="行printid错误"
- rslt = 0
- goto ext
- end if
- //写入内容
- it_mxbt++
- ss_rp[it_mxbt].printid = arg_printid
- ss_rp[it_mxbt].col1name0 = arg_col1name0
- ss_rp[it_mxbt].col1name1 = arg_col1name1
- ss_rp[it_mxbt].col1name2 = arg_col1name2
- ss_rp[it_mxbt].col2name0 = arg_col2name0
- ss_rp[it_mxbt].col2name1 = arg_col2name1
- ss_rp[it_mxbt].col2name2 = arg_col2name2
- ext:
- if rslt=0 then p_reset()
- return rslt
- end function
- public function integer f_delete (long arg_billid, ref string arg_msg);Integer rslt = 1,cnt = 0,i,j,k
- DateTime server_dt
- Long ll_cpid,ll_ppid,ll_cusid,ll_crid
- String ls_sccode
- if arg_billid=0 then
- rslt = 0
- arg_msg = "错误的单据ID,billid"
- GOTO ext
- end if
- DELETE From u_sp_rp Where u_sp_rp.billid = :arg_billid
- Using sqlca;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致删除单据操作失败"+"~n"+sqlca.SQLErrText
- ROLLBACK Using sqlca;
- GOTO ext
- END IF
- DELETE From u_sp_rp_mx Where u_sp_rp_mx.billid = :arg_billid
- Using sqlca;
- IF sqlca.SQLCode <> 0 THEN
- rslt = 0
- arg_msg = "因网络或其它原因导致删除单据操作失败"+"~n"+sqlca.SQLErrText
- ROLLBACK Using sqlca;
- GOTO ext
- END IF
- ext:
- IF rslt = 0 THEN
- p_reset()
- ROLLBACK Using sqlca;
- ELSEIF rslt = 1 THEN
- COMMIT Using sqlca;
-
- END IF
- Return(rslt)
- end function
- on uo_rp.create
- call super::create
- TriggerEvent( this, "constructor" )
- end on
- on uo_rp.destroy
- TriggerEvent( this, "destructor" )
- call super::destroy
- end on
|