1. 如果說 A 程式 呼叫 B 程式 完後,要再接續 A 程式 例如 接著執行 xxx_b_fill() 更新畫面資料,則要使用cl_cmdrun_wait() , 如使用cl_cmdrun() 則畫面的更新並不會成功。
2. 此外執行 cl_cmdrun_wait() , Client 端 Genero 版本少要更新到 2.32.17 以後 才行。
Genero 發表在 痞客邦 留言(1) 人氣(1,183)
參考範例 :
FOREACH r001_curs1 INTO l_ima01
LET l_i = l_i + 1 # Count
LET la_ima[l_i].ima01 = l_ima01 # save var
END FOREACH
FOR i = 1 TO l_i
LET g_doc.column1 = "ima01"
LET g_doc.value1 = la_ima[i].ima01
Genero 發表在 痞客邦 留言(0) 人氣(529)
遇到月份的處理,可能會想到用 to_char(xxx,'YYYYMM') , 不過使用上述的前提,月份需要是二位數。如果不想要判斷長度小於2補零,
還有一個方法,比如說要取得 2013-01 ~ 2013-12 之間的資料 可以使用 to_date + last_day 轉換變數來完成。
shb02 >= to_date('20131','yyyymm') and shb02 <= last_day(to_date('201312','yyyymm'))
Genero 發表在 痞客邦 留言(0) 人氣(266)
# CONSTRUCT+ SUM --> 取得特定某些單據上金額的總和
LET g_sql + DECLARE xxx CURSOR FROM g_sql + OPEN + FETCH + CLOSE
EX: LET g_sql = "SELECT sum(tc_fad008) FROM tc_fad_file,tc_fac_file ",
"WHERE tc_fac001 = tc_fad001 AND ",g_wc
DECLARE p400_cur_s_fad008 SCROLL CURSOR FROM g_sql
OPEN p400_cur_s_fad008
FETCH p400_cur_s_fad008 INTO g_sum
CLOSE p400_cur_s_fad008
Genero 發表在 痞客邦 留言(0) 人氣(197)
1. 一般如果是 INPUT BY NAME 可在之前 或 BEFORE INPUT 中,利用 LET tm.xxx = '1' 來給預設值。
2. 但如果是 CONSTRUCT BY NAME g_wc ON ..... , 則在 BEFORE CONSTRUCT 中,利用 DISPLAY xxx TO 欄位名稱 來給。
Genero 發表在 痞客邦 留言(2) 人氣(3,007)
1. 如果不需要顯示小數點. 定義數量變數的時候, 可 like type_file.num5
2. 利用 USING "<<<<<<<" 方式將數量變數與字串相連
EX :
LET g_img[g_cnt].ta_qcs03 = g_img[g_cnt].ta_qcs03 CLIPPED,' (',l_qcs01 USING"<<<<<" CLIPPED,'EA)'
Genero 發表在 痞客邦 留言(0) 人氣(1,438)
如果說 因為一些小的改變想要把原本的程式(母程式) 複製一份出來修改,重新命名一個新的程式(子程式),但是程式使用的報表都是跟原程式一樣。
作法是先將 g_prog 改為原先的程式 (母程式). CALL cl_prt_cs3 後,再改為 新的程式(子程式).
如:
Let g_prog = 'cimr161'
CALL cl_prt_cs3('cimr161',g_rpt1,l_sql,g_str)
Let g_prog = 'cimr061'
Genero 發表在 痞客邦 留言(0) 人氣(318)
匯入的檔案,一般如果只有簡單的英文和數字,並不會有太大問題,但是如果匯入的資料中,有包含以下狀況,則要注意 :
1. 逗號 (,)
2. 中文字 (內容或標題)
3. 特殊符號 ( Ø )
第一種 逗號 (,) 如果要資訊中含有 , 要分格欄位的字元就無法用 , 可能用EXCEL 新增欄位合併來取代 如 A1&"^"&B1&"^"&C1, 將欄位複製到 TXT UFT-8 檔案中。
第二種 中文字 中文字或特殊符號,轉入的文字檔記得需要改為 UTF-8 的文字檔才行 , ANSI 或是 Unicode的檔案 均無法支援 4GL 的 Load File .
第三種 特殊符號同中文字處理。
另外要注意的
1. Select 語法在區別時,除了第一列與最後一列外,其餘的寫法都比照新增即可。僅需注意最後一列寫法。
2. EXCEL 貼入文字檔時,亦不可整欄複製。要選取特定範圍複製。
範例如下 :
Genero 發表在 痞客邦 留言(2) 人氣(1,572)
控制畫面欄位是否可作為查詢或是可編輯修改的寫法
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) 人氣(441)
# 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,641)