SAP 选择屏幕的收起与展开(Collapse and Expand)
生活随笔
收集整理的這篇文章主要介紹了
SAP 选择屏幕的收起与展开(Collapse and Expand)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天做的一個項目中用到將SELECTION-SCREEN 展開和收起的功能,現總結如下: 首先 include <icon>.因為要用到 icon_data_area_expand 和icon_data_area_collapse
這兩個圖標, 其次:就干脆貼代碼顯示算了,語言能力太差了。 *&———————————————————————*
*& Report? ZVOL_SCREEN_COLLAPSE
*&
*&———————————————————————*
*&
*&
*&———————————————————————* REPORT? ZVOL_SCREEN_COLLAPSE.
include <icon>.
SELECTION-SCREEN:BEGIN OF BLOCK bk1 WITH FRAME TITLE text-001.
SELECTION-SCREEN : PUSHBUTTON 50(10) volcano USER-COMMAND pbvol modif id NEW.
SELECTION-SCREEN:BEGIN OF LINE.
PARAMETERS: r1 RADIOBUTTON? GROUP gr1.
SELECTION-SCREEN:COMMENT 4(10)? text-002 for field r1 modif id new.
PARAMETERS: R2 RADIOBUTTON? GROUP gr1.
SELECTION-SCREEN:COMMENT 17(10)? text-003 for field r1 modif id new.
SELECTION-SCREEN:END OF LINE. SELECTION-SCREEN:BEGIN OF LINE.
PARAMETERS : c1 AS CHECKBOX DEFAULT ‘X’ modif id old.
SELECTION-SCREEN:COMMENT 4(20)? text-004 modif id old.
PARAMETERS: V_TEXT(4) TYPE C modif id old.
SELECTION-SCREEN:end OF LINE. SELECTION-SCREEN:END OF BLOCK bk1. DATA : FULL(1). AT SELECTION-SCREEN.
? IF SY-UCOMM EQ ‘PBVOL’. IF FULL EQ SPACE.
????? FULL = ‘X’.
??? ELSE.
????? FULL = ‘ ‘.
??? ENDIF.
? ELSE.
??? EXIT.
? ENDIF. AT SELECTION-SCREEN OUTPUT.
* IF FULL EQ? ‘X’.
??? LOOP AT SCREEN.
????? if screen-group1 = ‘OLD’.
??????? screen-active??? = ‘0′.
??????? screen-input???? = ‘0′.
??????? screen-output??? = ‘0′.
??????? modify screen.
????? endif.
??? ENDLOOP.
??? CALL FUNCTION ‘ICON_CREATE’
?EXPORTING
?? NAME??????????????????????? = icon_data_area_expand
*?? TEXT??????????????????????? = ‘niha’
?? INFO???????????????????????? = ‘expand’
????? ADD_STDINF????????????????? = ‘ ‘
?IMPORTING
?? RESULT????????????????????? = volcano
??????? . ELSE.
??? LOOP AT SCREEN.
????? if screen-group1 = ‘OLD’.
??????? screen-active??? = ‘1′.
??????? screen-input???? = ‘1′.
??????? screen-output??? = ‘1′.
??????? modify screen.
????? endif.
??? ENDLOOP.
??? CALL FUNCTION ‘ICON_CREATE’
?EXPORTING
?? NAME??????????????????????? = icon_data_area_collapse
*?? TEXT??????????????????????? = ‘niha’
? INFO???????????????????????? = ‘collapse’
? ADD_STDINF????????????????? = ‘ ‘
?IMPORTING
?? RESULT????????????????????? = volcano
??????? . ENDIF. 幾點注意事項: 1.modif id ,就是modification group id,會自動的 system table screen 的group1? 里面。 2.對于FM icon_create 里面的RESULT = VOLCANO ,其中的VOLCANO就是你要改變圖標的這個屏幕字段名稱, INFO??= ‘collapse’ ,就是鼠標移到這個圖標的附近時要顯示的文字。 其余大家可以自己試驗吧。 3.如果你發現你要顯示的圖標是一線亂7八拐的字符,那是因為你的字段長度太短了,不信你可以將 PUSHBUTTON 50(20) volcano 里面的20改為10,或更小試試?
這兩個圖標, 其次:就干脆貼代碼顯示算了,語言能力太差了。 *&———————————————————————*
*& Report? ZVOL_SCREEN_COLLAPSE
*&
*&———————————————————————*
*&
*&
*&———————————————————————* REPORT? ZVOL_SCREEN_COLLAPSE.
include <icon>.
SELECTION-SCREEN:BEGIN OF BLOCK bk1 WITH FRAME TITLE text-001.
SELECTION-SCREEN : PUSHBUTTON 50(10) volcano USER-COMMAND pbvol modif id NEW.
SELECTION-SCREEN:BEGIN OF LINE.
PARAMETERS: r1 RADIOBUTTON? GROUP gr1.
SELECTION-SCREEN:COMMENT 4(10)? text-002 for field r1 modif id new.
PARAMETERS: R2 RADIOBUTTON? GROUP gr1.
SELECTION-SCREEN:COMMENT 17(10)? text-003 for field r1 modif id new.
SELECTION-SCREEN:END OF LINE. SELECTION-SCREEN:BEGIN OF LINE.
PARAMETERS : c1 AS CHECKBOX DEFAULT ‘X’ modif id old.
SELECTION-SCREEN:COMMENT 4(20)? text-004 modif id old.
PARAMETERS: V_TEXT(4) TYPE C modif id old.
SELECTION-SCREEN:end OF LINE. SELECTION-SCREEN:END OF BLOCK bk1. DATA : FULL(1). AT SELECTION-SCREEN.
? IF SY-UCOMM EQ ‘PBVOL’. IF FULL EQ SPACE.
????? FULL = ‘X’.
??? ELSE.
????? FULL = ‘ ‘.
??? ENDIF.
? ELSE.
??? EXIT.
? ENDIF. AT SELECTION-SCREEN OUTPUT.
* IF FULL EQ? ‘X’.
??? LOOP AT SCREEN.
????? if screen-group1 = ‘OLD’.
??????? screen-active??? = ‘0′.
??????? screen-input???? = ‘0′.
??????? screen-output??? = ‘0′.
??????? modify screen.
????? endif.
??? ENDLOOP.
??? CALL FUNCTION ‘ICON_CREATE’
?EXPORTING
?? NAME??????????????????????? = icon_data_area_expand
*?? TEXT??????????????????????? = ‘niha’
?? INFO???????????????????????? = ‘expand’
????? ADD_STDINF????????????????? = ‘ ‘
?IMPORTING
?? RESULT????????????????????? = volcano
??????? . ELSE.
??? LOOP AT SCREEN.
????? if screen-group1 = ‘OLD’.
??????? screen-active??? = ‘1′.
??????? screen-input???? = ‘1′.
??????? screen-output??? = ‘1′.
??????? modify screen.
????? endif.
??? ENDLOOP.
??? CALL FUNCTION ‘ICON_CREATE’
?EXPORTING
?? NAME??????????????????????? = icon_data_area_collapse
*?? TEXT??????????????????????? = ‘niha’
? INFO???????????????????????? = ‘collapse’
? ADD_STDINF????????????????? = ‘ ‘
?IMPORTING
?? RESULT????????????????????? = volcano
??????? . ENDIF. 幾點注意事項: 1.modif id ,就是modification group id,會自動的 system table screen 的group1? 里面。 2.對于FM icon_create 里面的RESULT = VOLCANO ,其中的VOLCANO就是你要改變圖標的這個屏幕字段名稱, INFO??= ‘collapse’ ,就是鼠標移到這個圖標的附近時要顯示的文字。 其余大家可以自己試驗吧。 3.如果你發現你要顯示的圖標是一線亂7八拐的字符,那是因為你的字段長度太短了,不信你可以將 PUSHBUTTON 50(20) volcano 里面的20改為10,或更小試試?
總結
以上是生活随笔為你收集整理的SAP 选择屏幕的收起与展开(Collapse and Expand)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用AT SELECTION-SCREE
- 下一篇: 检查SELECTION-SCREEN 上