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:
效果: