說明 : 如何對日期作增加月份,以及取當月的最後一日
作法:
      
       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

Genero 發表在 痞客邦 留言(0) 人氣()

需求: 需要卡一個欄位,在特定條件下,必須要輸入,並且寫入特定的 Table。
作法 :
1. 在 [確認] 段 增加 檢核功能。
2. 檢核時,如無輸入,提供 INPUT 輸入。
3. 檢核OK,將資料記錄到 Table。並執行原確認程序。
4. 如果檢核不OK,不執行原確認段程式。

Genero 發表在 痞客邦 留言(0) 人氣()

要在多角出貨單單身,增加訂單單頭欄位作為查詢條件。參考程式碼 saxmt600.4gl  (121119)

Genero 發表在 痞客邦 留言(0) 人氣()

增加雙檔單身欄位時,
1. 先於 b_fill() Function 找尋相對應的欄位 (如 ta_rvb001),新增欄位。
2. 再至 4fd Browser panel Form Item 找到 ta_rvb001 Add Column After.
3. 最後開啟.global 找尋 ta_rvb001,新增欄位。
如此 FOREACH rvb_curs INTO g_rvb[g_cnt].*   時,欄位就會正確對應。

Genero 發表在 痞客邦 留言(0) 人氣()

一樣的功能,但放在不一樣的地方時,程式碼是不一定能全部 COPY
如訂單單身的  AFTER FIELD oeb04  段,加了以下一段程式碼
SELECT SUM(img10) INTO l_img10
                FROM img_file
                WHERE img01 = g_oeb[l_ac].oeb04 AND img02 IN ('HS02','HS24')
                GROUP BY img01                
                IF  cl_null(l_img10) THEN LET l_img10 = 0 END IF
                LET g_oeb[l_ac].img10 = l_img10               
                DISPLAY BY NAME g_oeb[l_ac].img10

Genero 發表在 痞客邦 留言(0) 人氣()

控制畫面欄位是否可作為查詢或是可編輯修改的寫法
 
1. 查詢 => 開放可作為查詢的欄位 => FUNCTION ixxx_b_askkey()
2. 修改 => 關閉不可修改的欄位   => ixxx_b() => INPUT ARRAY => BEFORE ROW =>
   IF g_rec_b>=l_ac THEN => LET p_cmd='u' => CALL ixxx_set_no_entry(p_cmd)
FUNCTION ixxx_set_no_entry(p_cmd)
   DEFINE p_cmd   LIKE type_file.chr1
  
   IF p_cmd = 'u' THEN         
        CALL cl_set_comp_entry("feb02,ta_feb001,ta_feb002,ta_feb003,ta_feb004",FALSE)
   END IF
END FUNCTION

Genero 發表在 痞客邦 留言(0) 人氣()

如果只寫  CLEAR FORM ,只是清除畫面,但欄位的值並沒有清除, 如果是 LET xxx = '' 或  CALL g_imn.clear() 只是清空值,畫面沒有清除。
所以應該二個都要放才OK。
                LET g_tc_ila001 = ''   # 畫面 Field
            # CALL g_imn.clear()     # Grid
                CLEAR FORM

Genero 發表在 痞客邦 留言(0) 人氣()

SQL 排序 先排第一欄 倒排 ,再作第二欄倒排 (由大到小) ,常會這樣寫 ORDER BY 1, 2 DESC
正確寫法  ORDER BY 1 DESC, 2 DESC

Genero 發表在 痞客邦 留言(0) 人氣()

新舊二版 需存在。
1. 於 IE 管理附加元件中移除。
2. 重新 Web 登入 安裝。

Genero 發表在 痞客邦 留言(0) 人氣()

# Prog. Version..: '5.00.05-08.03.11(00009)'     #
# Pattern name...: cxmp001.4gl
# Descriptions...: 開啟畫面 輸入QBE 條件,執行指定的作業
# Modify ........: By Uoc.Jack 12/05/08

DATABASE ds
GLOBALS "../../../tiptop/config/top.global"
DEFINE g_sql         string

Genero 發表在 痞客邦 留言(0) 人氣()

1. 了解需求          (如: 需要有出貨單複製的功能)
2. 思考程式邏輯與執行畫面     (畫面可以輸入來源單號)
3. 測試主 SQL程式  (Insert into select )
4. Code 檢核條件   (來源單據需要符合的條件)
5. 找尋類似程式      (p_zz 程式編號  *p* + 原設計者)
6. 程式修改       
7. 測試

Genero 發表在 痞客邦 留言(0) 人氣()

在 FUNCTION 中,如果執行到 RETURN 時,會傳回需要的值,
並立即停止此 FUNCTION 。所以要注意,所加的程式段 與
FUNCTION 中 RETURN 的相對位置。
FUNCTION t600_chk_oga03(p_cmd)
   .........................
   .........................
   # 120507-------------------- (s)
   IF NOT cl_null(g_oga.oga03) AND g_dbs = 'tuoc13' AND
        (   g_oga.oga01[1,4] = 'P122' OR g_oga.oga01[1,4] = 'P125'
         OR g_oga.oga01[1,4] = 'P721' OR g_oga.oga01[1,4] = 'P725')
   THEN
        LET g_oga.oga15='US2'
        SELECT gem02 INTO g_buf FROM gem_file WHERE gem01='US2'
         AND gemacti='Y'         
        LET g_oga.oga14=''
        DISPLAY BY NAME g_oga.oga15,g_oga.oga14
        DISPLAY g_buf TO gem02
   END IF
   # 120507-------------------- (e) 
  
   RETURN TRUE
  # 如果整段加在後面,程式是不會執行的。

Genero 發表在 痞客邦 留言(0) 人氣()

« 1 2 3
Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。