FUNCTION i901_delall()
SELECT COUNT(*) INTO g_cnt FROM tc_voteb_file
WHERE tc_voteb01 = g_votea.tc_votea01
IF g_cnt = 0 THEN # 未輸入單身資料, 是否取消單頭資料
CALL cl_getmsg('9044',g_lang) RETURNING g_msg
ERROR g_msg CLIPPED
DELETE FROM tc_votea_file WHERE tc_votea01 = g_votea.tc_votea01
END IF
END FUNCTION
FUNCTION i901_b_askkey()
DEFINE l_wc2 STRING
CONSTRUCT l_wc2 ON tc_voteb02,tc_voteb03,tc_voteb04,tc_votebacti,tc_votebuser,tc_votebmodu,tc_votebdate
FROM s_voteb[1].tc_voteb02,s_voteb[1].tc_voteb03,s_voteb[1].tc_voteb04,
s_voteb[1].tc_votebacti,s_voteb[1].tc_votebuser,
s_voteb[1].tc_votebmodu,s_voteb[1].tc_votebdate
#No:FUN-580031 --start-- HCN
BEFORE CONSTRUCT
CALL cl_qbe_init()
#No:FUN-580031 --end-- HCN
#FUN-650191 add--begin
{ ON ACTION controlp
CASE
WHEN INFIELD(tc_voteb02)
CALL cl_init_qry_var()
LET g_qryparam.state = 'c'
LET g_qryparam.form ="q_voteb"
CALL cl_create_qry() RETURNING g_qryparam.multiret
DISPLAY g_qryparam.multiret TO tc_voteb02
NEXT FIELD tc_voteb02
END CASE
}
#FUN-650191 add--end
ON IDLE g_idle_seconds
CALL cl_on_idle()
CONTINUE CONSTRUCT
ON ACTION about #MOD-4C0121
CALL cl_about() #MOD-4C0121
ON ACTION help #MOD-4C0121
CALL cl_show_help() #MOD-4C0121
ON ACTION controlg #MOD-4C0121
CALL cl_cmdask() #MOD-4C0121
#No:FUN-580031 --start-- HCN
ON ACTION qbe_select
CALL cl_qbe_select()
ON ACTION qbe_save
CALL cl_qbe_save()
#No:FUN-580031 --end-- HCN
END CONSTRUCT
IF INT_FLAG THEN
LET INT_FLAG = 0
RETURN
END IF
CALL i901_b_fill(l_wc2)
END FUNCTION
FUNCTION i901_b_fill(p_wc2)
DEFINE p_wc2 STRING
LET g_sql = "SELECT tc_voteb02,tc_voteb03,tc_voteb04,tc_votebacti,tc_votebuser,tc_votebmodu,tc_votebdate",
" FROM tc_voteb_file", #No:FUN-550019
" WHERE tc_voteb01 ='",g_votea.tc_votea01,"' " #單頭
#No:9506
IF NOT cl_null(p_wc2) THEN
LET g_sql=g_sql CLIPPED," AND ",p_wc2 CLIPPED
END IF
LET g_sql=g_sql CLIPPED," ORDER BY 1 "
#No:9506
DISPLAY g_sql
PREPARE i901_pb FROM g_sql
DECLARE voteb_cs CURSOR FOR i901_pb
CALL g_voteb.clear()
LET g_cnt = 1
FOREACH voteb_cs INTO g_voteb[g_cnt].* #單身 ARRAY 填充
IF SQLCA.sqlcode THEN
CALL cl_err('foreach:',SQLCA.sqlcode,1)
EXIT FOREACH
END IF
LET g_cnt = g_cnt + 1
IF g_cnt > g_max_rec THEN
CALL cl_err( '', 9035, 0 )
EXIT FOREACH
END IF
END FOREACH
CALL g_voteb.deleteElement(g_cnt)
LET g_rec_b=g_cnt-1
DISPLAY g_rec_b TO FORMONLY.cn2
LET g_cnt = 0
END FUNCTION
FUNCTION i901_copy()
DEFINE l_newno LIKE tc_votea_file.tc_votea01,
l_newdate LIKE tc_votea_file.tc_voteadate,
l_oldno LIKE tc_votea_file.tc_votea01,
l_old_votea01 LIKE tc_votea_file.tc_votea01,
l_old_votea02 LIKE tc_votea_file.tc_votea02,
l_old_votea03 LIKE tc_votea_file.tc_votea03
DEFINE li_result LIKE type_file.num5 #No.FUN-680136 SMALLINT
DEFINE l_sql STRING
IF s_shut(0) THEN RETURN END IF
IF g_votea.tc_votea01 IS NULL THEN
CALL cl_err('',-400,0)
RETURN
END IF
LET l_newdate = g_today
LET g_before_input_done = FALSE
CALL i901_set_entry('a')
CALL cl_set_head_visible("","YES") #No.FUN-6B0032
INPUT l_newno FROM tc_votea01
#No:MOD-540182 --start--
BEFORE INPUT
CALL cl_set_docno_format("tc_votea01")
#No:MOD-540182 ---end---
AFTER FIELD tc_votea01
#No:MOD-540182 --start--
CALL s_check_no("apm",l_newno,"","6","tc_votea_file","tc_votea01","") RETURNING li_result,l_newno
DISPLAY l_newno TO tc_votea01
IF (NOT li_result) THEN
LET g_votea.tc_votea01 = g_votea_o.tc_votea01
NEXT FIELD tc_votea01
END IF
{
#DISPLAY g_smy.smydesc TO smydesc #單據名稱
#No:MOD-540182 ---end---
AFTER FIELD tc_votea02
IF cl_null(l_old_votea02) THEN
NEXT FIELD tc_votea02
END IF
# DISPLAY l_old_votea02 TO tc_votea02
AFTER FIELD tc_votea03
IF cl_null(l_old_votea03) THEN
NEXT FIELD tc_votea03
END IF
}
BEGIN WORK #No:7857
CALL s_auto_assign_no("cxx",l_newno,l_newdate,"","tc_votea_file","tc_votea01","","","") RETURNING li_result,l_newno
IF (NOT li_result) THEN
NEXT FIELD tc_votea01
END IF
DISPLAY l_newno TO tc_votea01
LET l_sql =" SELECT CASE WHEN sno < 10 THEN substr('",g_votea.tc_votea01 CLIPPED,"',1,12)||'00'||to_char(sno) ",
" WHEN sno > 10 AND sno < 100 THEN substr('",g_votea.tc_votea01 CLIPPED,"',1,12)|| '0'||to_char(sno) ",
" ELSE substr('",g_votea.tc_votea01 CLIPPED,"',1,12)||to_char(sno) ",
" END sno ",
" FROM ( ",
" SELECT TO_NUMBER(SUBSTR(NVL(MAX(tc_votea01),'XPUBX-'||to_char(sysdate,'yymmdd')||'000'),-3,3))+1 sno ",
" FROM ds.tc_votea_file WHERE tc_votea01 LIKE substr('",g_votea.tc_votea01 CLIPPED,"',1,12)||'%' )"
#MESSAGE l_sql
PREPARE i901_snoc FROM l_sql # RUNTIME 編譯
IF STATUS THEN CALL cl_err('i901_snoc',STATUS,0) END IF
#end No:FUN-550019
DECLARE i901_cs_snoc # CURSOR
CURSOR FOR i901_snoc
FOREACH i901_cs_snoc INTO l_newno
IF SQLCA.sqlcode THEN
CALL cl_err('foreach:',SQLCA.sqlcode,1)
EXIT FOREACH
END IF
END FOREACH
MESSAGE l_newno
DISPLAY l_newno TO tc_votea01
# DISPLAY l_old_votea03 TO tc_votea03
ON ACTION controlp
CASE
WHEN INFIELD(tc_votea01) #單據編號
LET g_t1=s_get_doc_no(l_newno) #No:MOD-540182
CALL q_smycust(FALSE,FALSE,g_t1,'APM','6') RETURNING g_t1 #TQC-670008
LET l_newno=g_t1 #No:MOD-540182
DISPLAY BY NAME l_newno
NEXT FIELD tc_votea01
OTHERWISE EXIT CASE
END CASE
ON IDLE g_idle_seconds
CALL cl_on_idle()
CONTINUE INPUT
ON ACTION about #MOD-4C0121
CALL cl_about() #MOD-4C0121
ON ACTION help #MOD-4C0121
CALL cl_show_help() #MOD-4C0121
ON ACTION controlg #MOD-4C0121
CALL cl_cmdask() #MOD-4C0121
END INPUT
IF INT_FLAG THEN
LET INT_FLAG = 0
DISPLAY BY NAME g_votea.tc_votea01
#No:MOD-540182 --start--
ROLLBACK WORK
#No:MOD-540182 ---end---
RETURN
END IF
DROP TABLE y
SELECT * FROM tc_votea_file #單頭複製
WHERE tc_votea01 = g_votea.tc_votea01
INTO TEMP y
UPDATE y
SET tc_votea01 = l_newno, #新的鍵值
# tc_votea02 = '', #新的鍵值
tc_votea03 = 'U', #新的鍵值
tc_voteauser = g_user, #資料所有者
tc_voteamodu = NULL, #資料修改者
tc_voteadate = g_today, #資料建立日期
tc_voteaacti = 'Y', #有效資料
tc_voteaconf = 'N' #有效資料
INSERT INTO tc_votea_file SELECT * FROM y
#No:MOD-540182 --start--
IF SQLCA.SQLCODE THEN
CALL cl_err3("ins","tc_votea_file","","",SQLCA.SQLCODE,"","",1) #No.FUN-660129
ROLLBACK WORK
RETURN
ELSE
COMMIT WORK
END IF
#No:MOD-540182 ---end---
DROP TABLE x
SELECT * FROM tc_voteb_file #單身複製
WHERE tc_voteb01 = g_votea.tc_votea01
INTO TEMP x
IF SQLCA.SQLCODE THEN
CALL cl_err3("ins","x","","",SQLCA.SQLCODE,"","",1) #No.FUN-660129
RETURN
END IF
UPDATE x SET tc_voteb01 = l_newno
INSERT INTO tc_voteb_file SELECT * FROM x
IF SQLCA.SQLCODE THEN
ROLLBACK WORK #No:7857
CALL cl_err3("ins","tc_voteb_file","","",SQLCA.SQLCODE,"","",1) #No.FUN-660129
RETURN
ELSE
COMMIT WORK #No:7857
END IF
LET g_cnt=SQLCA.SQLERRD[3]
MESSAGE '(',g_cnt USING '##&',') ROW of (',l_newno,') O.K'
LET l_oldno = g_votea.tc_votea01
SELECT ROWID,tc_votea_file.* INTO g_votea_rowid,g_votea.* FROM tc_votea_file WHERE tc_votea01 = l_newno
CALL i901_u()
CALL i901_b()
SELECT ROWID,tc_votea_file.* INTO g_votea_rowid,g_votea.* FROM tc_votea_file WHERE tc_votea01 = l_oldno
CALL i901_show()
END FUNCTION
全站熱搜