FUNCTION i901_tc_votea01(p_cmd) #單據編號
DEFINE l_smydesc LIKE smy_file.smydesc,
l_smyacti LIKE smy_file.smyacti,
l_t1 LIKE oay_file.oayslip, #No.FUN-680136 VARCHAR(5)
p_cmd LIKE type_file.chr1 #No.FUN-680136 VARCHAR(1)
LET g_errno = ' '
LET l_t1 = s_get_doc_no(g_votea.tc_votea01) #No:MOD-540182
IF g_votea.tc_votea01 IS NULL THEN
LET g_errno = 'E'
LET l_smydesc=NULL
ELSE
SELECT smydesc,smyacti
INTO l_smydesc,l_smyacti
FROM smy_file WHERE smyslip = l_t1
IF SQLCA.sqlcode THEN
LET g_errno = 'E'
LET l_smydesc = NULL
ELSE
IF l_smyacti matches'[nN]' THEN
LET g_errno = 'E'
END IF
END IF
END IF
IF cl_null(g_errno) OR p_cmd = 'd' THEN
# DISPLAY l_smydesc TO FORMONLY.smydesc
END IF
END FUNCTION
FUNCTION i901_q()
LET g_row_count = 0
LET g_curs_index = 0
CALL cl_navigator_setting( g_curs_index, g_row_count )
MESSAGE ""
CALL cl_opmsg('q')
CLEAR FORM
CALL g_voteb.clear()
DISPLAY ' ' TO FORMONLY.cnt
CALL i901_cs()
IF INT_FLAG THEN
LET INT_FLAG = 0
INITIALIZE g_votea.* TO NULL
RETURN
END IF
OPEN i901_cs # 從DB產生合乎條件TEMP(0-30秒)
IF SQLCA.sqlcode THEN
CALL cl_err('',SQLCA.sqlcode,0)
INITIALIZE g_votea.* TO NULL
ELSE
OPEN i901_count
FETCH i901_count INTO g_row_count
DISPLAY g_row_count TO FORMONLY.cnt
CALL i901_fetch('F') # 讀出TEMP第一筆並顯示
END IF
END FUNCTION
FUNCTION i901_fetch(p_flag)
DEFINE
p_flag LIKE type_file.chr1 #處理方式 #No.FUN-680136 VARCHAR(1)
CASE p_flag
WHEN 'N' FETCH NEXT i901_cs INTO g_votea_rowid,g_votea.tc_votea01
WHEN 'P' FETCH PREVIOUS i901_cs INTO g_votea_rowid,g_votea.tc_votea01
WHEN 'F' FETCH FIRST i901_cs INTO g_votea_rowid,g_votea.tc_votea01
WHEN 'L' FETCH LAST i901_cs INTO g_votea_rowid,g_votea.tc_votea01
WHEN '/'
IF (NOT mi_no_ask) THEN #No:FUN-6A0067
CALL cl_getmsg('fetch',g_lang) RETURNING g_msg
LET INT_FLAG = 0
PROMPT g_msg CLIPPED,': ' FOR g_jump
ON IDLE g_idle_seconds
CALL cl_on_idle()
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 PROMPT
IF INT_FLAG THEN
LET INT_FLAG = 0
EXIT CASE
END IF
END IF
FETCH ABSOLUTE g_jump i901_cs INTO g_votea_rowid,g_votea.tc_votea01
LET mi_no_ask = FALSE #No:FUN-6A0067
END CASE
IF SQLCA.sqlcode THEN
CALL cl_err(g_votea.tc_votea01,SQLCA.sqlcode,0)
INITIALIZE g_votea.* TO NULL #No.FUN-6A0162
RETURN
ELSE
CASE p_flag
WHEN 'F' LET g_curs_index = 1
WHEN 'P' LET g_curs_index = g_curs_index - 1
WHEN 'N' LET g_curs_index = g_curs_index + 1
WHEN 'L' LET g_curs_index = g_row_count
WHEN '/' LET g_curs_index = g_jump
END CASE
CALL cl_navigator_setting( g_curs_index, g_row_count )
DISPLAY g_curs_index TO FORMONLY.idx #No:FUN-4A0089
END IF
SELECT * INTO g_votea.* FROM tc_votea_file WHERE ROWID = g_votea_rowid
IF SQLCA.sqlcode THEN
CALL cl_err3("sel","tc_votea_file","","",SQLCA.sqlcode,"","",1) #No.FUN-660129
INITIALIZE g_votea.* TO NULL
RETURN
END IF
LET g_data_owner = g_votea.tc_voteauser #FUN-4C0056 add
# LET g_data_group = g_votea.tc_voteagrup #FUN-4C0056 add
CALL i901_show()
END FUNCTION
#將資料顯示在畫面上
FUNCTION i901_show()
LET g_votea_t.* = g_votea.* #保存單頭舊值
LET g_votea_o.* = g_votea.* #保存單頭舊值
DISPLAY BY NAME g_votea.tc_votea01,g_votea.tc_votea02,g_votea.tc_votea03,
g_votea.tc_voteauser,g_votea.tc_voteamodu,
g_votea.tc_voteadate,g_votea.tc_voteaacti,g_votea.tc_voteaconf
CALL i901_tc_votea01('d')
CALL i901_b_fill(g_wc2) #單身
CALL cl_show_fld_cont() #No:FUN-550037 hmf
IF g_votea.tc_voteaconf ='X' THEN LET g_chr='Y' ELSE LET g_chr='N' END IF
IF g_votea.tc_votea03 ='R' THEN LET g_chr2='Y' ELSE LET g_chr2='N' END IF
CALL cl_set_field_pic(g_votea.tc_voteaconf,g_chr2,"","",g_chr,"")
END FUNCTION
#FUN-580120
FUNCTION i901_y_chk()
DEFINE l_cnt LIKE type_file.num5 #No.FUN-680136 SMALLINT
LET g_success = 'Y'
IF s_shut(0) THEN RETURN END IF
SELECT * INTO g_votea.* FROM tc_votea_file WHERE ROWID = g_votea_rowid
IF SQLCA.SQLCODE THEN
CALL cl_err('','mfg-009',1)
LET g_success = 'N'
RETURN
END IF
IF cl_null(g_votea.tc_votea01) THEN
CALL cl_err('',-400,0)
LET g_success = 'N'
RETURN
END IF
IF g_votea.tc_voteaconf='X' THEN
CALL cl_err('','9024',0)
LET g_success = 'N'
RETURN
END IF
IF g_votea.tc_voteaconf='Y' THEN
CALL cl_err('','9023',0)
LET g_success = 'N'
RETURN
END IF
IF g_votea.tc_voteaacti= 'N' THEN
CALL cl_err('','mfg0301',1)
LET g_success = 'N'
RETURN
END IF
LET l_cnt =0
#控管單身未輸入資料
SELECT COUNT(*) INTO l_cnt
FROM tc_voteb_file
WHERE tc_voteb01 = g_votea.tc_votea01
IF SQLCA.SQLCODE THEN
CALL cl_err('','mfg-009',1)
LET g_success = 'N'
RETURN
END IF
IF l_cnt = 0 OR l_cnt IS NULL THEN
CALL cl_err('','mfg-009',1)
LET g_success = 'N'
RETURN
END IF
END FUNCTION
FUNCTION i901_y_upd()
DEFINE l_cnt LIKE type_file.num5 #No.FUN-680136 SMALLINT
LET g_success = 'Y'
IF NOT cl_confirm('axm-108') THEN RETURN END IF
BEGIN WORK
OPEN i901_cl USING g_votea_rowid
IF STATUS THEN
LET g_success = 'N'
CALL cl_err("OPEN i901_cl:", STATUS, 1)
CLOSE i901_cl
ROLLBACK WORK
RETURN
END IF
FETCH i901_cl INTO g_votea.* # 對DB鎖定
IF SQLCA.SQLCODE THEN
LET g_success = 'N'
CALL cl_err(g_votea.tc_votea01,SQLCA.SQLCODE,0)
CLOSE i901_cl
ROLLBACK WORK
RETURN
END IF
UPDATE tc_votea_file SET tc_voteaconf = 'Y' WHERE tc_votea01 = g_votea.tc_votea01
IF SQLCA.SQLCODE OR SQLCA.sqlerrd[3]=0 THEN
CALL cl_err3("upd","tc_votea_file",g_votea.tc_votea01,"","apm-266","","upd tc_votea_file",1) #No.FUN-660129
LET g_success='N'
END IF
IF g_votea.tc_votea03 = 'U' THEN
LET g_votea.tc_votea03 = 'R'
UPDATE tc_votea_file SET tc_votea03 = 'U' WHERE tc_votea01 != g_votea.tc_votea01
IF SQLCA.SQLCODE THEN
CALL cl_err3("upd","tc_votea_file",g_votea.tc_votea01,"","apm-266","","upd tc_votea_file",1) #No.FUN-660129
LET g_success = 'N'
END IF
UPDATE tc_votea_file SET tc_votea03 = g_votea.tc_votea03 WHERE tc_votea01 = g_votea.tc_votea01
IF SQLCA.SQLCODE THEN
CALL cl_err3("upd","tc_votea_file",g_votea.tc_votea01,"","apm-266","","upd tc_votea_file",1) #No.FUN-660129
LET g_success = 'N'
END IF
END IF
IF g_success = 'Y' THEN
SELECT COUNT(*) INTO g_cnt FROM tc_voteb_file
WHERE tc_voteb01 = g_votea.tc_votea01
IF g_cnt = 0 OR SQLCA.SQLCODE THEN
CALL cl_err(' ','aws-065',0)
LET g_success = 'N'
END IF
END IF
IF g_success='Y' THEN
LET g_votea.tc_votea03='R'
LET g_votea.tc_voteaconf='Y'
COMMIT WORK
DISPLAY BY NAME g_votea.tc_votea03
DISPLAY BY NAME g_votea.tc_voteaconf
ELSE
LET g_votea.tc_voteaconf='N'
LET g_success = 'N'
ROLLBACK WORK
END IF
#CKP
SELECT * INTO g_votea.* FROM tc_votea_file WHERE tc_votea01 = g_votea.tc_votea01
IF g_votea.tc_voteaconf ='X' THEN LET g_chr='Y' ELSE LET g_chr='N' END IF
IF g_votea.tc_votea03 ='R' THEN LET g_chr2='Y' ELSE LET g_chr2='N' END IF
CALL cl_set_field_pic(g_votea.tc_voteaconf,g_chr2,"",g_chr3,g_chr,g_votea.tc_voteaacti)
END FUNCTION
全站熱搜