LET g_tc_ila004 = cl_cal(g_today,59,0) # Tiptop 副程式, 59 表月份, 0 日期 LET a = YEAR(g_tc_ila004) LET b = MONTH(g_tc_ila004) LET c = cl_days(a,b) #Tiptop 副程式, 取該年月的天數 LET g_tc_ila004 = MDY(b,c,a) #日其組合 如 當天為 2012/11/29, g_tc_ila004 => 2017/10/30
# 要找到HAC7單別最近一次入庫日期和數量 # SELECT MAX(tlf026) INTO l_1no FROM tlf_file # WHERE tlf01 = sr.imn03 AND tlf902= 'HS24' AND tlf904 = sr.imn17 # AND tlf026 LIKE 'HAC7%' # 上面的寫法只會找到最大的號碼,並不是最近一次的入庫 # 用 FETCH FIRST 來找,CURSOR 需要先 OPEN ,並且需要設為 SCROLL CURSOR # 先找出那張入庫單 DECLARE r512_x_cur SCROLL CURSOR FOR SELECT tlf026 FROM tlf_file WHERE tlf01 = sr.imn03 AND tlf902= 'HS24' AND tlf904 = sr.imn17 AND tlf026 LIKE 'HAC7%' ORDER BY tlf06 DESC
OPEN r512_x_cur FETCH FIRST r512_x_cur INTO l_1no
IF NOT cl_null(l_1no) THEN SELECT tlf06, tlf10 INTO l_1d, l_1q FROM tlf_file WHERE tlf026 = l_1no END # tlf026為單據編號 # tlf06 為入庫日期 # tlf10 為入庫數量
IF STATUS THEN CALL cl_err("Show Errot Message",status,1) LET g_success = 'N' RETURN END IF IF SQLCA.sqlcode != 0 THEN CALL cl_err("Show Errot Message",SQLCA.sqlcode,1) LET g_success = 'N' RETURN END IF ----------------------------------------------------------------------------------- STATUS 與 SQLCA.sqlcode 二者差別在於,
INSERT INTO pmi_file (pmi01,pmi02,pmi03,pmi04,pmi05,pmi06,pmi07,pmiconf,pmiacti,pmiuser,pmigrup,pmimodu,pmidate,pmi08,pmi081,pmi09) VALUES(g_pmi01,g_date,'U06','','N','1','N','Y','Y',g_user,'UAI','',g_date,'I043','0',g_user) # INSERT 之後,放一個執行成功與否的檢核。 # 如果 STATUS = 0 表示執行成功 ,則不會進入下方 IF 錯誤程式 IF STATUS THEN CALL cl_err("insert_prep:",status,1) LET g_success = 'N' RETURN END IF