可以同時進行多個 Display、Input、Display Array、Input Array 的操作。
Genero 不斷的加強 Dialog 的功能,提供更方便的操作使用。
像是 Input 和 Display Array 在同一個 Dialog 時,就可以輸入資料,然後同步 Display Array 一直 Insert 或是 Append 資料,
在 Display Array 選擇時,也同步顯示資料在 Input ,可以快速進行資料的修改,
就不用局限一定要輸入或維護完一筆資料後就異動一次資料庫了,全部資料維護完後再一次更新到資料庫。
另外還提供多重選擇的功能,搭配之前在畫面加上資料清單,從此不必再下一筆查了的方式,
就可以讓使用者選擇多筆資料後,按下過帳或是確認的按鈕,就可以一次完成所有的動作。
Dialog 的函數說明:
CLASS Method:
1. getCurrent():回傳目前是在那一個 Object 的操作。
2. setDefaultUnbuffered(boolean):設定取消 Buffer ,才可以修改資料。
CLASS Method:
1. getCurrent():回傳目前是在那一個 Object 的操作。
2. setDefaultUnbuffered(boolean):設定取消 Buffer ,才可以修改資料。
Object Method:
1. accept():確認所有的欄位是否完整。
2. insertNode(Object Name, 第幾個 Node):新增 Tree View 的 Node
3. appendNode(Object Name, 第幾個 Node):增加 Tree Viw 的 Node
4. deleteNode(Object Name,第幾個 Node):刪除 Tree Viw 的 Node
5. insertRow(Object Name,第幾行):新增 Object 畫面上的一行紀錄
6. appendRow(Object Name):增加 Object 畫面上的一行紀錄
7. deleteRow(Object Name, 第幾行 ):刪除 Object 畫面上的一行紀錄
8. deleteAllRows(Object Name):刪除 Object 畫面上的所有紀錄
9. getArrayLength(Object Name):回傳 Object 的筆數
10. getCurrentItem( ):回傳目前 Object 的在那一個欄位、List、Action
11. getCurrentRow(Object Name):回傳目前在那一個 Object 上的第幾行
12. getFieldBuffer(Field Name):回傳 Construct 或是 Input Buffered Mode 的 Buffer 值
13. getFieldTouched(Field List):回傳欄位有動到的清單
14. setFieldTouched(Field List,boolean):設定或取消欄位的 Touch Flag 的值來判斷是否欄位有動過
15. setArrayLength(Object Name,數量):設定總共 Object 的行數
16. getForm():回傳目前的 Form 名稱
17. nextField(Field Name):將游標跳到下一個欄位
18. setActionActive(Object,bollean):設定 Object 的 Action 是否要開啟或關閉
19. setActionHidden(Object Name,bollean):設定 Object 的 Action 是否要顯示或是隱藏
20. setCurrentRow(Object Name,第幾行):跳到所指定的第 n 行
21. setFieldActive(Field List,bollean):設定欄位是否可以編輯
22. setCellAttributes(Object Array):設定欄位的屬性(單一個 Dialog)
23. setArrayAttributes(Object Name,Object Array):設定欄位的屬性(多個 Dialog)
24. validate(Field List):驗証欄位是否為必須輸入、Not Null 或是 Validation Rules 的規則
25. isRowSelected(Object Name,第幾行):判斷第幾行是否有選取反白
26. selectionToString(Object Name):回傳所選擇的資料行的所有欄位內容
27. setSelectionMode(Object Name,bollean):開啟或關閉是否可以多筆的功能,0 為單選,1為多選
28. setSelectionRange(Object Name,開始行,結束行,選或不選):設定開始行到結束行要 1 為選取或是 0 為取消選取,結束行是 -1 表示為最後一行
範例多重選擇後然後將所選取的全部確認:
DISPLAY ARRAY g_oea_l TO s_oea_l.* ATTRIBUTE(COUNT=g_row_count)
BEFORE DISPLAY
CALL DIALOG.setSelectionMode( "s_oea_l", 1 )
1. accept():確認所有的欄位是否完整。
2. insertNode(Object Name, 第幾個 Node):新增 Tree View 的 Node
3. appendNode(Object Name, 第幾個 Node):增加 Tree Viw 的 Node
4. deleteNode(Object Name,第幾個 Node):刪除 Tree Viw 的 Node
5. insertRow(Object Name,第幾行):新增 Object 畫面上的一行紀錄
6. appendRow(Object Name):增加 Object 畫面上的一行紀錄
7. deleteRow(Object Name, 第幾行 ):刪除 Object 畫面上的一行紀錄
8. deleteAllRows(Object Name):刪除 Object 畫面上的所有紀錄
9. getArrayLength(Object Name):回傳 Object 的筆數
10. getCurrentItem( ):回傳目前 Object 的在那一個欄位、List、Action
11. getCurrentRow(Object Name):回傳目前在那一個 Object 上的第幾行
12. getFieldBuffer(Field Name):回傳 Construct 或是 Input Buffered Mode 的 Buffer 值
13. getFieldTouched(Field List):回傳欄位有動到的清單
14. setFieldTouched(Field List,boolean):設定或取消欄位的 Touch Flag 的值來判斷是否欄位有動過
15. setArrayLength(Object Name,數量):設定總共 Object 的行數
16. getForm():回傳目前的 Form 名稱
17. nextField(Field Name):將游標跳到下一個欄位
18. setActionActive(Object,bollean):設定 Object 的 Action 是否要開啟或關閉
19. setActionHidden(Object Name,bollean):設定 Object 的 Action 是否要顯示或是隱藏
20. setCurrentRow(Object Name,第幾行):跳到所指定的第 n 行
21. setFieldActive(Field List,bollean):設定欄位是否可以編輯
22. setCellAttributes(Object Array):設定欄位的屬性(單一個 Dialog)
23. setArrayAttributes(Object Name,Object Array):設定欄位的屬性(多個 Dialog)
24. validate(Field List):驗証欄位是否為必須輸入、Not Null 或是 Validation Rules 的規則
25. isRowSelected(Object Name,第幾行):判斷第幾行是否有選取反白
26. selectionToString(Object Name):回傳所選擇的資料行的所有欄位內容
27. setSelectionMode(Object Name,bollean):開啟或關閉是否可以多筆的功能,0 為單選,1為多選
28. setSelectionRange(Object Name,開始行,結束行,選或不選):設定開始行到結束行要 1 為選取或是 0 為取消選取,結束行是 -1 表示為最後一行
範例多重選擇後然後將所選取的全部確認:
DISPLAY ARRAY g_oea_l TO s_oea_l.* ATTRIBUTE(COUNT=g_row_count)
BEFORE DISPLAY
CALL DIALOG.setSelectionMode( "s_oea_l", 1 )
ON ACTION confirm
LET g_action_choice="confirm"
IF cl_chk_act_auth() THEN
IF cl_confirm('axm-351') THEN
FOR l_i=1 TO g_row_count
IF DIALOG.isRowSelected( "s_oea_l", l_i) THEN
LET g_oea.oea01 = g_oea_l[l_i].oea01_l
CALL i101_y()
END IF
END FOR
END IF
END IF
CONTINUE DIALOG
END DISPLAY
LET g_action_choice="confirm"
IF cl_chk_act_auth() THEN
IF cl_confirm('axm-351') THEN
FOR l_i=1 TO g_row_count
IF DIALOG.isRowSelected( "s_oea_l", l_i) THEN
LET g_oea.oea01 = g_oea_l[l_i].oea01_l
CALL i101_y()
END IF
END FOR
END IF
END IF
CONTINUE DIALOG
END DISPLAY
有什麼方法或是指令可以取得滑鼠所點的頁籤名稱或是selected的指標,謝謝!
回覆刪除頁籤就設定 action , on action 切換頁籤的時候變數跟著改,selected 用 ARR_CURR() 就是所選擇的 Cursor
刪除刪除
感謝您的回覆,所以頁籤只能透過action的方式來控制,本身沒有屬性可以來判斷是否被點開囉!這樣就有點不太方便了,如果只有幾個頁籤到還好,若10個以上的頁籤就真的比較麻煩了.
回覆刪除