ABAP modify screen:修改屏幕,實現隱藏、禁止輸入字段


Loop at screen會loop處理屏幕上的每一個組件,並對其做相應的處理。

SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME.
PARAMETERS S_DATE TYPE DATUM   DEFAULT SY-DATUM MODIF ID OO.
SELECTION-SCREEN: END OF BLOCK B1.

SELECTION-SCREEN: BEGIN OF BLOCK B2 WITH FRAME.
SELECT-OPTIONS: S_DATE2 FOR SY-DATUM  MODIF ID PP.
SELECTION-SCREEN: END OF BLOCK B2.

SELECTION-SCREEN: BEGIN OF BLOCK B3 WITH FRAME.
PARAMETERS : R1 RADIOBUTTON GROUP D1 DEFAULT 'X' USER-COMMAND SINGLECLICK,   

                      R2 RADIOBUTTON GROUP D1 .
SELECTION-SCREEN: END OF BLOCK B3.

選擇r1 的時候只顯示B1;r2時候只顯示B2

AT SELECTION-SCREEN OUTPUT.
  IF R1 = 'X'.
    LOOP AT SCREEN.
      IF SCREEN-GROUP1 = 'PP'.
        SCREEN-ACTIVE = '0'.
      ENDIF.
      MODIFY SCREEN.
    ENDLOOP.
  ELSEIF R2 = 'X'.
    LOOP AT SCREEN.
      IF SCREEN-GROUP1 = 'OO'.
        SCREEN-ACTIVE = '0'.
      ENDIF.
      MODIFY SCREEN.
    ENDLOOP.
  ENDIF.

  • Modiy屏幕的時候,如果屏幕有必輸字段則不能修改,只有把必輸項輸入值后才能修改屏幕,需要有所取舍;
  • 注意:

PARAMETERS : R1 RADIOBUTTON GROUP D1 DEFAULT 'X' USER-COMMAND SINGLECLICK,  紅色這一段話必須有,否則不能動態修改屏幕;選擇一次單選框就會觸發一次atselection-screen output,實現動態修改屏幕.

  • SCREEN結構解釋:

在SAP屏幕中,一個字段就像.NET中的一個控件,這個 字段對應一個SCREEN結構,就像控件的多個屬性。

SE11可以查看SCREEN結構中的字段,只是沒有備注。

名稱                  長度       說明

NAME               30          屏幕字段的名稱

GROUP1            3            屬於字段組1的字段

GROUP2            3            屬於字段組2的字段

GROUP3            3            屬於字段組3的字段

GROUP4            3            屬於字段組4的字段

ACTIVE             1            可見並准備輸入的字段

REQUIRED          1            字段輸入是強制的,即該值為X是表示該字段必須輸入

INPUT               1            字段准備輸入

OUTPUT            1            字段僅用於顯示

INTENSIFIED      1           高亮顯示字段

INVISIBLE          1           禁用字段

LENGTH             1           減少字段輸出長度

DISPLAY_3D       1           以三維框架顯示字段

VALUE_HELP       1           顯示有值幫助的字段  

上述長度為1的字段,=1表示有效,=0則相反。  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM