畫面能夠依資料內容來變更文字顏色、樣式
現在應該沒有人在用這種方式了吧,都是用 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) #加上這一句
沒有留言:
張貼留言