ABAP CHECKBOX 和LISTBOX使用指南
1.什么是checkbox:
就是一個復選框,可以用like或者type來定義,為1個字符型變量。它是parameter的一個選項,parameter xxx as checkbox就可以在選擇屏幕上顯示一個復選框。
2.什么是listbox:
就是一個下拉列表,你可以在這個列表中選擇一條記錄進行某種操作。也是parameter的一個選項,parameter xxx as listbox就可以在選擇屏幕上顯示一個下拉列表。
3.如何使用:
下面我們用一個程序來說明這兩者的使用方法。
REPORT Z_TEXT
TYPE-POOLS: VRM .? “存放combobox內容的type pool
DATA: NAME TYPE VRM_ID ,??????? “ list box的名稱
????? LIST TYPE VRM_VALUES ,??? “ list box的值
????? VALUE LIKE LINE OF LIST . “ list box的結構
*定義checkbox,指定command,為了能夠響應選擇屏幕中值的改變
PARAMETERS: P_CB1 TYPE C AS CHECKBOX DEFAULT ‘X’ USER-COMMAND CHECK,
??????????? P_CB2 TYPE CAS CHECKBOX DEFAULT ‘X’USER-COMMAND CHECK.
*定義listbox,必須指定visible length
PARAMETERS: P_LIST1(10) TYPE C AS LISTBOX
?????????????????????????????????VISIBLE LENGTH 15 ,
??????????? P_LIST2(20)TYPE C??? AS LISTBOX
?????????????????????????????????VISIBLE LENGTH 25 .
*開始執行
AT SELECTION-SCREEN OUTPUT .
*–〉選擇1而沒有選擇2
? IF P_CB1 = ‘X’ AND P_CB2= ”.
*—〉向listbox里面添加值
??? REFRESH LIST .
??? VALUE-KEY = ’1111111111′ .???? “這個就是變量P_LIST的值
??? VALUE-TEXT = ’1111111111′ .??? “這個是text
??? APPEND VALUE TO LIST .
??? VALUE-KEY = ’2222222222′ .
??? VALUE-TEXT = ’2222222222′ .
??? APPEND VALUE TO LIST .
??? VALUE-KEY = ’3333333333′ .
??? VALUE-TEXT = ’3333333333′ .
??? APPEND VALUE TO LIST .
*—〉調用函數顯示listbox里面的值
??? CALL FUNCTION ‘VRM_SET_VALUES’
????? EXPORTING
??????? ID???? = ‘P_LIST1′
??????? VALUES = LIST.
*—〉把第二個listbox的值清空,并且不能輸入
??? CLEAR P_LIST2 .
??? LOOP AT SCREEN .
????? IF SCREEN-NAME = ‘P_LIST2′ .
??????? SCREEN-INPUT = 0 .
??????? MODIFY SCREEN .
????? ENDIF .
??? ENDLOOP .
*–〉選擇2,沒有選擇1,同上
? ELSEIF P_CB2 = ‘X’ ANDP_CB1 = ”.
??? REFRESH LIST .
??? VALUE-KEY = ‘AAAAAAAAAAAAAAAAAAAA’ .
??? VALUE-TEXT = ‘AAAAAAAAAAAAAAAAAAAA’ .
??? APPEND VALUE TO LIST .
??? VALUE-KEY = ‘BBBBBBBBBBBBBBBBBBBB’ .
??? VALUE-TEXT = ‘BBBBBBBBBBBBBBBBBBBB’ .
??? APPEND VALUE TO LIST .
??? VALUE-KEY = ‘CCCCCCCCCCCCCCCCCCCC’ .
??? VALUE-TEXT = ‘CCCCCCCCCCCCCCCCCCCC’ .
??? APPEND VALUE TO LIST .
??? APPEND VALUE TO LIST .
??? CALL FUNCTION ‘VRM_SET_VALUES’
????? EXPORTING
??????? ID???? = ‘P_LIST2′
??????? VALUES = LIST.
*—〉清空listbox 1的值
??? CLEAR P_LIST1 .
??? LOOP AT SCREEN .
????? IF SCREEN-NAME = ‘P_LIST1′ .
??????? SCREEN-INPUT = 0 .
??????? MODIFY SCREEN .
????? ENDIF .
??? ENDLOOP .
*–〉都沒有選擇,都清空且不能輸入
? ELSEIF P_CB1 = ” AND P_CB2 = ” .
??? CLEAR: P_LIST1,P_LIST2 .
??? LOOP AT SCREEN .
????? IF SCREEN-NAME = ‘P_LIST1′ .
??????? SCREEN-INPUT = 0 .
??????? MODIFY SCREEN .
????? ENDIF .
??? ENDLOOP .
??? LOOP AT SCREEN .
????? IF SCREEN-NAME = ‘P_LIST2′ .
??????? SCREEN-INPUT = 0 .
??????? MODIFY SCREEN .
????? ENDIF .
??? ENDLOOP .
*–〉都選,執行
? ELSEIF P_CB1 = ‘X’ ANDP_CB2 = ‘X’ .
??? REFRESH LIST .
??? VALUE-KEY = ’1111111111′ .
??? VALUE-TEXT = ’1111111111′ .
??? APPEND VALUE TO LIST .
??? VALUE-KEY = ’2222222222′ .
??? VALUE-TEXT = ’2222222222′ .
??? APPEND VALUE TO LIST .
??? VALUE-KEY = ’3333333333′ .
??? VALUE-TEXT = ’3333333333′ .
??? APPEND VALUE TO LIST .
??? CALL FUNCTION ‘VRM_SET_VALUES’
????? EXPORTING
??????? ID???? = ‘P_LIST1′
??????? VALUES = LIST.
??? REFRESH LIST .
??? VALUE-KEY = ‘AAAAAAAAAAAAAAAAAAAA’ .
??? VALUE-TEXT = ‘AAAAAAAAAAAAAAAAAAAA’ .
??? APPEND VALUE TO LIST .
??? VALUE-KEY = ‘BBBBBBBBBBBBBBBBBBBB’ .
??? VALUE-TEXT = ‘BBBBBBBBBBBBBBBBBBBB’ .
??? APPEND VALUE TO LIST .
??? VALUE-KEY = ‘CCCCCCCCCCCCCCCCCCCC’ .
??? VALUE-TEXT = ‘CCCCCCCCCCCCCCCCCCCC’ .
??? APPEND VALUE TO LIST .
??? CALL FUNCTION ‘VRM_SET_VALUES’
????? EXPORTING
??????? ID???? = ‘P_LIST2′
??????? VALUES = LIST.
? ENDIF .
START-OF-SELECTION .
*–〉輸出到第二屏幕看看
? WRITE:? P_LIST1 ,/ P_LIST2 .
總結
以上是生活随笔為你收集整理的ABAP CHECKBOX 和LISTBOX使用指南的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: COND SWITCH 操作符
- 下一篇: ABAP memory中的Export和