FUNCTION i901_z()
IF g_votea.tc_votea01 IS NULL THEN RETURN END IF
SELECT * INTO g_votea.* FROM tc_votea_file WHERE tc_votea01=g_votea.tc_votea01
IF g_votea.tc_voteaconf='X' THEN CALL cl_err(g_votea.tc_voteaconf,'9024',0) RETURN END IF
IF g_votea.tc_voteaconf='N' THEN RETURN END IF
IF NOT cl_confirm('axm-109') THEN RETURN END IF
BEGIN WORK
OPEN i901_cl USING g_votea_rowid
#--Add exception check during OPEN CURSOR
IF STATUS THEN
CALL cl_err("OPEN i255_cl:", STATUS, 1)
CLOSE i901_cl
ROLLBACK WORK
RETURN
END IF
FETCH i901_cl INTO g_votea.* # 鎖住將被更改或取消的資料
IF SQLCA.SQLCODE THEN
CALL cl_err(g_votea.tc_votea01,SQLCA.SQLCODE,0) #資料被他人LOCK
ROLLBACK WORK
RETURN
END IF
LET g_success = 'Y'
LET g_votea.tc_votea03 = 'U'
UPDATE tc_votea_file SET tc_voteaconf='N',tc_votea03 = g_votea.tc_votea03
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_success = 'Y' THEN
LET g_votea.tc_voteaconf='N'
COMMIT WORK
DISPLAY BY NAME g_votea.tc_voteaconf
DISPLAY BY NAME g_votea.tc_votea03
ELSE
LET g_votea.tc_voteaconf='Y'
DISPLAY BY NAME g_votea.tc_voteaconf
DISPLAY BY NAME g_votea.tc_votea03
ROLLBACK WORK
END IF
IF g_votea.tc_voteaconf='X' THEN LET g_chr='Y' ELSE LET g_chr='N' END IF #No.MOD-480339
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,"") #No.MOD-480339
### END No.MOD-4A0344
END FUNCTION
FUNCTION i901_x()
IF s_shut(0) THEN
RETURN
END IF
IF g_votea.tc_votea01 IS NULL THEN
CALL cl_err("",-400,0)
RETURN
END IF
BEGIN WORK
OPEN i901_cl USING g_votea_rowid
IF STATUS THEN
CALL cl_err("OPEN i901_cl:", STATUS, 1)
CLOSE i901_cl
ROLLBACK WORK
RETURN
END IF
FETCH i901_cl INTO g_votea.* # 鎖住將被更改或取消的資料
IF SQLCA.sqlcode THEN
CALL cl_err(g_votea.tc_votea01,SQLCA.sqlcode,0) #資料被他人LOCK
ROLLBACK WORK
RETURN
END IF
LET g_success = 'Y'
CALL i901_show()
IF cl_exp(0,0,g_votea.tc_voteaacti) THEN #確認一下
LET g_chr=g_votea.tc_voteaacti
IF g_votea.tc_voteaacti = 'Y' THEN
LET g_votea.tc_voteaacti = 'N'
LET g_votea.tc_voteaconf='X'
ELSE
LET g_votea.tc_voteaacti = 'Y'
LET g_votea.tc_voteaconf='N'
END IF
UPDATE tc_votea_file SET tc_voteaacti = g_votea.tc_voteaacti,tc_voteamodu=g_user,tc_voteadate=g_today,tc_voteaconf = g_votea.tc_voteaconf
WHERE tc_votea01 = g_votea.tc_votea01
IF SQLCA.sqlcode OR SQLCA.SQLERRD[3]=0 THEN
CALL cl_err3("upd","t_votea_file",g_votea.tc_votea01,"",SQLCA.sqlcode,"","",1) #No.FUN-660129
LET g_votea.tc_voteaacti = g_chr
LET g_success='N'
END IF
END IF
CLOSE i901_cl
IF g_success = 'Y' THEN
COMMIT WORK
DISPLAY BY NAME g_votea.tc_voteaconf
DISPLAY BY NAME g_votea.tc_votea03
ELSE
LET g_votea.tc_voteaconf = g_votea_t.tc_voteaconf
LET g_votea.tc_votea03 = g_votea_t.tc_votea03
DISPLAY BY NAME g_votea.tc_voteaconf
DISPLAY BY NAME g_votea.tc_votea03
ROLLBACK WORK
END IF
SELECT tc_voteaacti,tc_voteamodu,tc_voteadate,tc_voteaconf
INTO g_votea.tc_voteaacti,g_votea.tc_voteamodu,g_votea.tc_voteadate,g_votea.tc_voteaconf FROM tc_votea_file
WHERE tc_votea01 = g_votea.tc_votea01
DISPLAY BY NAME g_votea.tc_voteaacti,g_votea.tc_voteamodu,g_votea.tc_voteadate,g_votea.tc_voteaconf
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,"") #No.MOD-480339
END FUNCTION
FUNCTION i901_r()
IF s_shut(0) THEN
RETURN
END IF
IF g_votea.tc_votea01 IS NULL THEN
CALL cl_err("",-400,0)
RETURN
END IF
SELECT * INTO g_votea.* FROM tc_votea_file
WHERE tc_votea01 = g_votea.tc_votea01
#FUN-730060 --begin--------
#IF g_votea.tc_voteaacti ='N' THEN #檢查資料是否為無效
# CALL cl_err(g_votea.tc_votea01,'mfg1000',0)
# RETURN
#END IF
#FUN-730060 --end----------
BEGIN WORK
OPEN i901_cl USING g_votea_rowid
IF STATUS THEN
CALL cl_err("OPEN i901_cl:", STATUS, 1)
CLOSE i901_cl
ROLLBACK WORK
RETURN
END IF
FETCH i901_cl INTO g_votea.* # 鎖住將被更改或取消的資料
IF SQLCA.sqlcode THEN
CALL cl_err(g_votea.tc_votea01,SQLCA.sqlcode,0) #資料被他人LOCK
ROLLBACK WORK
RETURN
END IF
CALL i901_show()
IF cl_delh(0,0) THEN #確認一下
DELETE FROM tc_votea_file WHERE tc_votea01 = g_votea.tc_votea01
DELETE FROM tc_voteb_file WHERE tc_voteb01 = g_votea.tc_votea01
CLEAR FORM
CALL g_voteb.clear()
OPEN i901_count
FETCH i901_count INTO g_row_count
DISPLAY g_row_count TO FORMONLY.cnt
OPEN i901_cs
IF g_curs_index = g_row_count + 1 THEN
LET g_jump = g_row_count
CALL i901_fetch('L')
ELSE
LET g_jump = g_curs_index
LET mi_no_ask = TRUE #No:FUN-6A0067
CALL i901_fetch('/')
END IF
END IF
CLOSE i901_cl
COMMIT WORK
END FUNCTION
#單身
FUNCTION i901_b()
DEFINE
l_ac_t LIKE type_file.num5, #未取消的ARRAY CNT #No.FUN-680136 SMALLINT
l_n LIKE type_file.num5, #檢查重複用 #No.FUN-680136 SMALLINT
l_cnt LIKE type_file.num5, #檢查重複用 #No.FUN-680136 SMALLINT
l_lock_sw LIKE type_file.chr1, #單身鎖住否 #No.FUN-680136 VARCHAR(1)
p_cmd LIKE type_file.chr1, #處理狀態 #No.FUN-680136 VARCHAR(1)
l_misc LIKE gef_file.gef01, #No.FUN-680136 VARCHAR(04)
l_allow_insert LIKE type_file.num5, #可新增否 #No.FUN-680136 SMALLINT
l_allow_delete LIKE type_file.num5 #可刪除否 #No.FUN-680136 SMALLINT
LET g_action_choice = ""
IF s_shut(0) THEN
RETURN
END IF
IF g_votea.tc_votea01 IS NULL THEN
RETURN
END IF
SELECT * INTO g_votea.* FROM tc_votea_file
WHERE tc_votea01=g_votea.tc_votea01
IF g_votea.tc_voteaacti ='N' THEN #檢查資料是否為無效
CALL cl_err(g_votea.tc_votea01,'mfg1000',0)
RETURN
END IF
IF g_votea.tc_voteaconf ='X' THEN #檢查資料是否為作廢
CALL cl_err(g_votea.tc_voteaconf,'9024',0)
RETURN
END IF
CALL cl_opmsg('b')
LET g_forupd_sql = " SELECT tc_voteb02,tc_voteb03,tc_voteb04,tc_votebacti,tc_votebuser,tc_votebmodu,tc_votebdate",
" FROM tc_voteb_file",
" WHERE tc_voteb01 = ? AND tc_voteb02 = ? FOR UPDATE NOWAIT "
DECLARE i901_bcl CURSOR FROM g_forupd_sql # LOCK CURSOR
LET l_allow_insert = cl_detail_input_auth("insert")
LET l_allow_delete = cl_detail_input_auth("delete")
INPUT ARRAY g_voteb WITHOUT DEFAULTS FROM s_voteb.*
ATTRIBUTE(COUNT=g_rec_b,MAXCOUNT=g_max_rec,UNBUFFERED,
INSERT ROW=l_allow_insert,DELETE ROW=l_allow_delete,
APPEND ROW=l_allow_insert)
BEFORE INPUT
DISPLAY "BEFORE INPUT!"
IF g_rec_b != 0 THEN
CALL fgl_set_arr_curr(l_ac)
END IF
BEFORE ROW
DISPLAY "BEFORE ROW!"
LET p_cmd = ''
LET l_ac = ARR_CURR()
LET l_lock_sw = 'N' #DEFAULT
LET l_n = ARR_COUNT()
BEGIN WORK
OPEN i901_cl USING g_votea_rowid
IF STATUS THEN
CALL cl_err("OPEN i901_cl:", STATUS, 1)
CLOSE i901_cl
ROLLBACK WORK
RETURN
END IF
FETCH i901_cl INTO g_votea.* # 鎖住將被更改或取消的資料
IF SQLCA.sqlcode THEN
CALL cl_err(g_votea.tc_votea01,SQLCA.sqlcode,0) # 資料被他人LOCK
CLOSE i901_cl
ROLLBACK WORK
RETURN
END IF
IF g_rec_b >= l_ac THEN
LET p_cmd='u'
LET g_voteb_t.* = g_voteb[l_ac].* #BACKUP
LET g_voteb_o.* = g_voteb[l_ac].* #BACKUP
OPEN i901_bcl USING g_votea.tc_votea01,g_voteb_t.tc_voteb02
IF STATUS THEN
CALL cl_err("OPEN i901_bcl:", STATUS, 1)
LET l_lock_sw = "Y"
ELSE
FETCH i901_bcl INTO g_voteb[l_ac].*
IF SQLCA.sqlcode THEN
CALL cl_err(g_voteb_t.tc_voteb02,SQLCA.sqlcode,1)
LET l_lock_sw = "Y"
END IF
END IF
CALL cl_show_fld_cont() #FUN-550037(smin)
CALL i901_set_entry_b(p_cmd) #No.FUN-610018
CALL i901_set_no_entry_b(p_cmd) #No.FUN-610018
END IF
BEFORE INSERT
DISPLAY "BEFORE INSERT!"
LET l_n = ARR_COUNT()
LET p_cmd='a'
INITIALIZE g_voteb[l_ac].* TO NULL
LET g_voteb[l_ac].tc_voteb03 = '' #Body default
LET g_voteb[l_ac].tc_voteb04 = '' #Body default
LET g_voteb[l_ac].tc_votebacti = 'Y' #Body default
LET g_voteb[l_ac].tc_votebuser = g_user #Body default
LET g_voteb[l_ac].tc_votebmodu = g_user #Body default
LET g_voteb[l_ac].tc_votebdate = g_today #Body default
LET g_voteb_t.* = g_voteb[l_ac].* #新輸入資料
LET g_voteb_o.* = g_voteb[l_ac].* #新輸入資料
IF l_ac > 1 THEN # 修改日期初始值
LET g_voteb[l_ac].tc_votebdate = g_voteb[l_ac-1].tc_votebdate
ELSE
LET g_voteb[l_ac].tc_votebdate = g_votea.tc_voteadate
END IF
CALL cl_show_fld_cont() #FUN-550037(smin)
CALL i901_set_entry_b(p_cmd) #No.FUN-610018
CALL i901_set_no_entry_b(p_cmd) #No.FUN-610018
NEXT FIELD tc_voteb02 # 開始進入單身輸入欄位
AFTER INSERT
DISPLAY "AFTER INSERT!"
IF INT_FLAG THEN
CALL cl_err('',9001,0)
LET INT_FLAG = 0
CANCEL INSERT
END IF
#-----No:FUN-670099-----
# IF cl_null(g_voteb[l_ac].voteb03) THEN
# LET g_voteb[l_ac].voteb03 = " "
# END IF
#-----No:FUN-670099 END-----
INSERT INTO tc_voteb_file(tc_voteb01,tc_voteb02,tc_voteb03,tc_voteb04,tc_votebacti,tc_votebuser,tc_votebmodu,tc_votebdate)
VALUES(g_votea.tc_votea01,g_voteb[l_ac].tc_voteb02,g_voteb[l_ac].tc_voteb03,g_voteb[l_ac].tc_voteb04,
g_voteb[l_ac].tc_votebacti,g_voteb[l_ac].tc_votebuser,g_voteb[l_ac].tc_votebmodu,g_voteb[l_ac].tc_votebdate)
IF SQLCA.sqlcode THEN
CALL cl_err3("ins","tc_voteb_file",g_votea.tc_votea01,g_voteb[l_ac].tc_voteb02,SQLCA.sqlcode,"","",1) #No.FUN-660129
CANCEL INSERT
ELSE
MESSAGE 'INSERT O.K'
COMMIT WORK
LET g_rec_b=g_rec_b+1
DISPLAY g_rec_b TO FORMONLY.cn2
END IF
BEFORE FIELD tc_voteb02 #default 序號
IF g_voteb[l_ac].tc_voteb02 IS NULL OR g_voteb[l_ac].tc_voteb02 = 0 THEN
SELECT MAX(tc_voteb02)+1
INTO g_voteb[l_ac].tc_voteb02
FROM tc_voteb_file
WHERE tc_voteb01 = g_votea.tc_votea01
IF g_voteb[l_ac].tc_voteb02 IS NULL THEN
LET g_voteb[l_ac].tc_voteb02 = 1
END IF
END IF
AFTER FIELD tc_voteb02 #check 序號是否重複
IF NOT cl_null(g_voteb[l_ac].tc_voteb02 ) THEN
IF g_voteb[l_ac].tc_voteb02 != g_voteb_t.tc_voteb02
OR g_voteb_t.tc_voteb02 IS NULL THEN
SELECT count(*)
INTO l_n
FROM tc_voteb_file
WHERE tc_voteb01 = g_votea.tc_votea01
AND tc_voteb02 = g_voteb[l_ac].tc_voteb02
IF l_n > 0 THEN
CALL cl_err('',-239,0)
LET g_voteb[l_ac].tc_voteb02 = g_voteb_t.tc_voteb02
NEXT FIELD tc_voteb02
END IF
END IF
END IF
#FUN-650191 --begin--begin
AFTER FIELD tc_voteb03 #廠商編號
IF cl_null(g_voteb[l_ac].tc_voteb03) THEN
NEXT FIELD tc_voteb03
END IF
LET g_voteb_o.tc_voteb03 = g_voteb[l_ac].tc_voteb03
#FUN-650191 --add--end
BEFORE FIELD tc_voteb04
CALL i901_set_entry_b(p_cmd)
AFTER FIELD tc_voteb04
IF cl_null(g_voteb[l_ac].tc_voteb03) THEN
NEXT FIELD tc_voteb03
END IF
LET g_voteb_o.tc_voteb04 = g_voteb[l_ac].tc_voteb04
AFTER FIELD tc_votebacti #保稅否
IF g_voteb[l_ac].tc_votebacti NOT MATCHES '[YyNn]' THEN
NEXT FIELD tc_votebacti
END IF
LET g_voteb_o.tc_voteb03 = g_voteb[l_ac].tc_votebacti
CALL i901_set_no_entry_b(p_cmd)
BEFORE DELETE #是否取消單身
DISPLAY "BEFORE DELETE"
IF g_voteb_t.tc_voteb02 > 0 AND g_voteb_t.tc_voteb02 IS NOT NULL THEN
IF NOT cl_delb(0,0) THEN
CANCEL DELETE
END IF
IF l_lock_sw = "Y" THEN
CALL cl_err("", -263, 1)
CANCEL DELETE
END IF
DELETE FROM tc_voteb_file
WHERE tc_voteb01 = g_votea.tc_votea01
AND tc_voteb02 = g_voteb_t.tc_voteb02
IF SQLCA.sqlcode THEN
CALL cl_err3("del","tc_voteb_file",g_votea.tc_votea01,g_voteb_t.tc_voteb02,SQLCA.sqlcode,"","",1) #No.FUN-660129
ROLLBACK WORK
CANCEL DELETE
END IF
LET g_rec_b=g_rec_b-1
DISPLAY g_rec_b TO FORMONLY.cn2
END IF
COMMIT WORK
ON ROW CHANGE
IF INT_FLAG THEN
CALL cl_err('',9001,0)
LET INT_FLAG = 0
LET g_voteb[l_ac].* = g_voteb_t.*
CLOSE i901_bcl
ROLLBACK WORK
EXIT INPUT
END IF
IF l_lock_sw = 'Y' THEN
CALL cl_err(g_voteb[l_ac].tc_voteb02,-263,1)
LET g_voteb[l_ac].* = g_voteb_t.*
ELSE
#-----No:FUN-670099-----
# IF cl_null(g_voteb[l_ac].pmx10) THEN
# LET g_voteb[l_ac].pmx10 = " "
# END IF
#-----No:FUN-670099 END-----
UPDATE tc_voteb_file SET
tc_voteb02=g_voteb[l_ac].tc_voteb02,
tc_voteb03=g_voteb[l_ac].tc_voteb03,
tc_voteb04=g_voteb[l_ac].tc_voteb04,
tc_votebacti=g_voteb[l_ac].tc_votebacti,
tc_votebuser=g_voteb[l_ac].tc_votebuser,
tc_votebmodu=g_voteb[l_ac].tc_votebmodu,
tc_votebdate=g_voteb[l_ac].tc_votebdate
WHERE tc_voteb01=g_votea.tc_votea01
AND tc_voteb02=g_voteb_t.tc_voteb02
IF SQLCA.sqlcode OR SQLCA.sqlerrd[3] = 0 THEN
CALL cl_err3("upd","tc_voteb_file",g_votea.tc_votea01,g_voteb_t.tc_voteb02,SQLCA.sqlcode,"","",1) #No.FUN-660129
LET g_voteb[l_ac].* = g_voteb_t.*
ELSE
MESSAGE 'UPDATE O.K'
COMMIT WORK
END IF
END IF
AFTER ROW
DISPLAY "AFTER ROW!!"
LET l_ac = ARR_CURR()
LET l_ac_t = l_ac
IF INT_FLAG THEN
CALL cl_err('',9001,0)
LET INT_FLAG = 0
IF p_cmd = 'u' THEN
LET g_voteb[l_ac].* = g_voteb_t.*
END IF
CLOSE i901_bcl
ROLLBACK WORK
EXIT INPUT
END IF
CLOSE i901_bcl
COMMIT WORK
ON ACTION CONTROLO #沿用所有欄位
IF INFIELD(pmx02) AND l_ac > 1 THEN
LET g_voteb[l_ac].* = g_voteb[l_ac-1].*
LET g_voteb[l_ac].tc_voteb02 = g_rec_b + 1
NEXT FIELD tc_voteb02
END IF
ON ACTION CONTROLZ
CALL cl_show_req_fields()
ON ACTION CONTROLG
CALL cl_cmdask()
ON ACTION controlp
{ CASE
#FUN-650191 add--begin
WHEN INFIELD(tc_voteb03)
CALL cl_init_qry_var()
LET g_qryparam.form ="q_voteb" #MOD-530533
LET g_qryparam.default1 = g_voteb[l_ac].tc_voteb03
CALL cl_create_qry() RETURNING g_voteb[l_ac].tc_voteb03
DISPLAY BY NAME g_voteb[l_ac].tc_voteb03
NEXT FIELD tc_voteb03
OTHERWISE EXIT CASE
END CASE
}
ON ACTION CONTROLF
CALL cl_set_focus_form(ui.Interface.getRootNode()) RETURNING g_fld_name,g_frm_name #Add on 040913
CALL cl_fldhelp(g_frm_name,g_fld_name,g_lang) #Add on 040913
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 controls #No.FUN-6B0032
CALL cl_set_head_visible("","AUTO") #No.FUN-6B0032
END INPUT
#start FUN-5B0136
LET g_votea.tc_voteamodu = g_user
LET g_votea.tc_voteadate = g_today
UPDATE tc_votea_file SET tc_voteamodu = g_votea.tc_voteamodu,tc_voteadate = g_votea.tc_voteadate
WHERE tc_votea01 = g_pmw.tc_votea01
DISPLAY BY NAME g_votea.tc_voteamodu,g_votea.tc_voteadate
#end FUN-5B0136
CLOSE i901_bcl
COMMIT WORK
CALL i901_delall()
END FUNCTION
全站熱搜