2012年7月23日 星期一
列印時讓 user 可以選擇中/英文
User 有一個需求,為採購單列印時可以列印中文也可以印英文,本來要 user 去切換語系為英文就可以解了,但是他們不買單,於是就稍微自己客製一下。
這個問題因為不熟悉 4gl & 4fd (鼎新的 Tiptop 技轉原訂 2012.10 月上課,但是他們還沒有回覆確認的時間...),如果是以前寫程式的經驗應該很簡單,就是:
1. 在列印的功能新增一個"列印英文"的按鈕
2. 在該按鈕的 Event 修改語系為英文
看吧,就是那麼簡單。
但換到了Tiptop 上好像就沒有那麼容易了,Tiptop 的客製規範還滿嚴謹的,猜測應該是讓別人 (後人) 可以遵循這個規則來開發程式而不會發散掉而增加維護的難度。
在此寫下這些流程以增加印象...
因這支程式按 o 列印時,會在右邊的 menu上顯示列印的按鈕,我就以這個按鈕做為參考範例。
步驟 1.
依照客製規則,menu 是不用做畫面檔的修改的,而 menu 是由設定及程式碼來控制:
(1) 增加 Action :p_base_act
在此新增一個 prt_po_80_eng 的action
加入一筆資料,用來做為列印英文用的。
(2) 在 p_zz 中賦予 action 執行權限
(3) 在程式中新增列印時 menu 的項目
(4) 此時應該就會在畫面上出現了
步驟 2. 列印程式的 4gl-- function xxx_out()
(1) 該 function 最後面會將參數傳入 Crystal Report 中
LET l_cmd = l_prog CLIPPED,
" '",g_today CLIPPED,"' ''",
" '",g_lang CLIPPED,"' '"
把 g_lang 再另外定義一個 l_lang
DEFINE l_lang LIKE type_file.chr1 #可選擇列印(0.中文/1.英文/2.簡體)
將上述 l_cmd 的 g_lang 改為 l_lang ,再到英文列印的 Button 中 l_lang Hard Code 為 '1' 就可以了。
ON ACTION prt_po_80_eng
LET l_prog='aicr040'
LET l_lang = '1'
EXIT MENU
訂閱:
文章 (Atom)