ABAP SCREEN 事务程序 示例

ABAP SCREEN 事务程序 示例

 

事务程序_示例1:
一.屏幕制作:
     制作如下图所示主屏幕:



控件说明:
1)TABLE_CONTROL:创建二个结构相同的TABLE控件,要求包含表头,选择列,一个用于显示用户名。
2)BUTTON:在屏幕上创建两个按钮,TEXT分别为’<<<’ 和’>>>’。
二.功能说明:
         1.使用的TABLE:ZTEST。
     2.程序运行结果如下图:
左边的TABLE_CONTROL控件里显示ZTEST表的USERNAME字段;


3.点击左边TABLE中的某一行数据前的选择列可选中该条数据,可进行多条数据的选择;
选中列之后点击‘>>>’按钮,可以将左边TABLE中被选中的数据添加到右边的TABLE中,同时将左边TABLE中被选中的数据从左边TABLE中删除;
同样点击右边TABLE中的某一行数据前的选择列可选中该条数据,可进行多条数据的选择;
选中列之后点击‘<<<’按钮,可以将右边TABLE中被选中的数据添加到左边的TABLE中,同时将右边TABLE中被选中的数据从右边TABLE中删除;


ZMJM_DIALOG_TEST_08

步骤:
Flow logoc:
PROCESS BEFORE OUTPUT.
   MODULE STATUS_0100.
   LOOP WITH CONTROL TAB11.
     MODULE FILLTAB1.
   ENDLOOP.
   LOOP WITH CONTROL TAB22.
     MODULE FILLTAB2.
   ENDLOOP.
*
PROCESS AFTER INPUT.
   LOOP WITH CONTROL TAB11.
     MODULE READTAB1.
     MODULE TAB1_MODIFY ON CHAIN-REQUEST.
   ENDLOOP.
   LOOP WITH CONTROL TAB22.
     MODULE READTAB2.
     MODULE TAB2_MODIFY ON CHAIN-REQUEST.
   ENDLOOP.
   MODULE USER_COMMAND_0100.


Screen:











*&---------------------------------------------------------------------*
*& Report   ZMJM_DIALOG_TEST_08
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT   ZMJM_DIALOG_TEST_08.

DATA:BEGIN OF ITAB1 OCCURS 0,
   MARK(1) TYPE C,
   NAME(6) TYPE C,
   END OF ITAB1.
DATA:SP1 LIKE ITAB1.
DATA:BEGIN OF ITAB2 OCCURS 0,
   MARK(1) TYPE C,
   NAME(6) TYPE C,
   END OF ITAB2.
DATA:SP2 LIKE ITAB2.



ITAB1-NAME = '111111'. APPEND ITAB1.
ITAB1-NAME = '222222'. APPEND ITAB1.
ITAB1-NAME = '333333'. APPEND ITAB1.
ITAB1-NAME = '444444'. APPEND ITAB1.
ITAB1-NAME = '555555'. APPEND ITAB1.
ITAB2-NAME = 'AAAAAA'. APPEND ITAB2.
ITAB2-NAME = 'BBBBBB'. APPEND ITAB2.
ITAB2-NAME = 'CCCCCC'. APPEND ITAB2.
ITAB2-NAME = 'DDDDDD'. APPEND ITAB2.
ITAB2-NAME = 'EEEEEE'. APPEND ITAB2.

CALL SCREEN 100.
CONTROLS TAB11 TYPE TABLEVIEW USING SCREEN 100.
CONTROLS TAB22 TYPE TABLEVIEW USING SCREEN 100.

LOOP AT ITAB1.
   WRITE:/ ITAB1-NAME.
ENDLOOP.

LOOP AT ITAB2.

 

*         PERFORM TAB2_MODIFY.
*         MESSAGE S005(YMESS) WITH AREAA.
*       ENDIF.

     WHEN '2RI'.
       LOOP AT ITAB2 INTO SP2.
         IF SP2-MARK EQ 'X'.
*           MESSAGE SP2-MARK TYPE 'I'.
           DELETE TABLE ITAB2 FROM SP2.
           APPEND SP2 TO ITAB1.
         ENDIF.
       ENDLOOP.
*       IF AREAA EQ 'TAB22'.
*         READ TABLE ITAB2 INTO SP1 INDEX LINEA.
*         APPEND SP1 TO ITAB1.
*         DELETE TABLE ITAB2 FROM SP1.
*         PERFORM TAB1_MODIFY.
*         PERFORM TAB2_MODIFY.
*         MESSAGE S005(YMESS) WITH AREAA.
*       ENDIF.

     WHEN OTHERS.
   ENDCASE.

   CHECK SY-SUBRC = 0.
ENDMODULE.                  " USER_COMMAND_0100   INPUT


*&---------------------------------------------------------------------*
*&       Form   TAB1_MODIFY
*&---------------------------------------------------------------------*
*        text
*----------------------------------------------------------------------*
FORM TAB1_MODIFY.
   MODIFY ITAB1 FROM SP1 INDEX TAB11-CURRENT_LINE.
ENDFORM.                     "TAB1_MODIFY


*----------------------------------------------------------------------*
*   MODULE FILLTAB1 OUTPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE FILLTAB1 OUTPUT.
   READ TABLE ITAB1 INTO SP1 INDEX TAB11-CURRENT_LINE.
ENDMODULE.                     "FILLTAB1 OUTPUT

*----------------------------------------------------------------------*
*   MODULE READTAB1 INPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE READTAB1 INPUT.
   MODIFY ITAB1 FROM SP1 INDEX TAB11-CURRENT_LINE.
ENDMODULE.                     "READTAB1 INPUT

*&---------------------------------------------------------------------*
*&       Form   TAB2_MODIFY
*&---------------------------------------------------------------------*
*        text
*----------------------------------------------------------------------*
FORM TAB2_MODIFY.
   MODIFY ITAB2 FROM SP2 INDEX TAB22-CURRENT_LINE.
ENDFORM.                     "TAB2_MODIFY


*----------------------------------------------------------------------*
*   MODULE FILLTAB2 OUTPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE FILLTAB2 OUTPUT.
   READ TABLE ITAB2 INTO SP2 INDEX TAB22-CURRENT_LINE.
ENDMODULE.                     "FILLTAB2 OUTPUT

*----------------------------------------------------------------------*
*   MODULE READTAB2 INPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE READTAB2 INPUT.
   MODIFY ITAB2 FROM SP2 INDEX TAB22-CURRENT_LINE.
ENDMODULE.                     "READTAB2 INPUT


Status:




效果:

 






posted @ 2012-01-12 09:54  VerySky  阅读(785)  评论(0编辑  收藏  举报