2013年2月22日

設定報表排程自動發送 Mail 給相關人員

應該是從 TIPTOP 5.2 版之後就有 CR 發送 mail 的功能,
這樣就可以讓系統將異常檢查報表每天都寄給相關人員,
IT 人員也就輕鬆很多了。

系統的運作是:
TIPTOP 主機執行背景程式 → 呼叫 CR 主機報表 → 執行結果存在 CR 主機的 temp 目錄 →
CR 主機將 temp 目錄的檔案發送 mail 。

執行報表後會有約 5 分鐘延遲時間。
執行過報表也都會存在 CR 主機的 temp 目錄,看要不要固定時間清理一下。
因 CR 報表 IIS 為匿名的驗証方式,所以必需將 temp 的目錄改為 everyone 讀取。

首先要先設定 aooi998 Mail 收件人維護作業,
也可以選擇要寄送的是 PDF、Word、Excel …等。

再來就是在 p_cron 建立排程,
通常報表程式的參數五 g_prtway 表示報表的執行結果的顯示方式,
參數四表示是背景作業。
只要參數五設定為 A ,然後背景作業設定為 Y ,
這樣就會自動寄報表的到相關人員的 E-mail 了。

或是只要加上三個變數也可以有寄送 Mail 的功能。
CALL FGL_SETENV("MAIL_TO",g_receiver)
CALL FGL_SETENV("MAIL_CC",g_cc)
CALL FGL_SETENV("MAIL_BCC",g_bcc)
變數的格式為:
收件者名稱:收件者 E-Mail:格式(1.PDF,2.RPT,3.DOC,4.XLS,5.XLS,6.XLS)

2013年2月6日

畫面能夠依資料內容來變更文字顏色、樣式

TIPTOP的畫面設計比較偏向 TEXT-Mode ,所以會以比較單調樣式來呈現,
現在應該沒有人在用這種方式了吧,都是用 GUI 的方式來使用。
這樣就可以添加一些色彩、底線、粗體,來增加使用者操作上資料的辦識能力。

依 4js 的說明,在 DISPLAY 可以加上屬性,如下:
1. BLACK, BLUE, CYAN, GREEN, MAGENTA, RED, WHITE, YELLOW – 顯示顏色
2. BOLD, DIM, NORMAL – 顯示字體樣式
3. REVERSE, BLINK, UNDERLINE – 顯示文字的屬性

屬性的字面上的意思就能知道用途了,多重屬性時只要加上逗號來區隔,就不多加說明了。

例如我們想要 sfb01 這個欄位在某些情況下顯示藍色時,只要加判斷再加上 ATTRIBUTE,
例:
IF g_sfb01.sfb04 = '8' THEN
    DISPLAY BY NAME g_sfb01.sfb01 ATTRIBUTE(BLUE)
ELSE
    DISPLAY BY NAME g_sfb01.sfb01 ATTRIBUTE(BLACK)
END IF

鼎新也有提供 lib 的函式來改變顏色:
CALL cl_set_comp_font_color("sfb01,sfb02","RED")

但是如果是單身的話會用 DISPLAY ARRAY 就只能所有單身全部的顏色都變一樣,
要改用 DIALOG.setCellAttributes 的方式來顯示欄位的屬性。
例:
要先定義單身有那些是要動態變更欄位屬性的陣列變數:
DEFINE g_gen_attr DYNAMIC ARRAY OF RECORD
        gen01       STRING,
        gen02       STRING,
        gen03       STRING
END RECORD

記得要先做 g_gen_attr.clear()。

在 fill() 函數時 FOREACH 的時候判斷:
IF g_gen[g_cnt].gen03 IS NULL TEHN
    LET g_gen_attr[g_cnt].gen01 = 'MAGENTA REVERSE'
ELSE
    LET g_gen_attr[g_cnt].gen01 = ''
END IF

再來就是 DISPLAY ARRAY 顯示的時候依定義好的屬性來顯示:
BEFORE DISPLAY
         CALL cl_navigator_setting( g_curs_index, g_row_count )
         CALL DIALOG.setCellAttributes(g_gen_attr)    #加上這一句

這樣單身也可以依資料來變化顏色了。