1.使用向导建立table control
主程序代码:
DATA: OK_CODE TYPE SY-UCOMM,
SAVE_OK LIKE OK_CODE.
*定义内表,注意两种写法一样
*DATA SH1 LIKE SPFLI OCCURS 0 WITH HEADER LINE.
DATA SH1 LIKE TABLE OF SPFLI WITH HEADER LINE.
*增加内表数据
SELECT * INTO CORRESPONDING FIELDS OF TABLE SH1 FROM SPFLI.
*直接调用窗口
CALL SCREEN 100.
*用户交互
MODULE USER_COMMAND_0100 INPUT.
SAVE_OK = OK_CODE.
CLEAR OK_CODE.
*退出按钮时退出程序
CASE SAVE_OK.
WHEN 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE.
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'TESTSTA1'.
ENDMODULE.
CONTROLS:TBL1 TYPE TABLEVIEW USING SCREEN 0100.
MODULE TBL1_CHANGE_TC_ATTR OUTPUT.
DESCRIBE TABLE SH1 LINES TBL1-lines.
ENDMODULE.
MODULE TBL1_MODIFY INPUT.
MODIFY SH1
INDEX TBL1-CURRENT_LINE.
ENDMODULE.
逻辑流:
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0100.

运行如下:

2.手工制作table control。

逻辑流:
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
*处理LOOP从内表读到表控制
LOOP WITH CONTROL TBL1.
MODULE FILLTBL1.
ENDLOOP.
PROCESS AFTER INPUT.
*处理LOOP从表控制更新内表
LOOP WITH CONTROL TBL1.
MODULE READTBL1.
ENDLOOP.
MODULE USER_COMMAND_0100.
主程序:
REPORT YHELLOA.
DATA: OK_CODE TYPE SY-UCOMM,
SAVE_OK TYPE SY-UCOMM.
DATA:NUMS TYPE I.
*定义内表,注意两种写法一样
*DATA SH1 LIKE YTDSCHOOL OCCURS 0 WITH HEADER LINE.
DATA SH2 LIKE TABLE OF YTDSCHOOL WITH HEADER LINE.
*定义单结构纪录
DATA SH TYPE YTDSCHOOL.
*增加内表数据
SELECT * INTO CORRESPONDING FIELDS OF TABLE SH2 FROM YTDSCHOOL.
*直接调用窗口
CALL SCREEN 100.
*定义表控制对象
CONTROLS TBL1 TYPE TABLEVIEW USING SCREEN 100.
*输出数据,看内表有无改变
LOOP AT SH2.
WRITE:/ SH2-YCT_ID, SH2-YSH_ID, SH2-YSH_NAME, SH2-YSH_ADDR.
ENDLOOP.
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'TESTSTA1'.
IF NUMS = 0.
DESCRIBE TABLE SH2 LINES NUMS.
TBL1-LINES = NUMS.
ENDIF.
ENDMODULE.
MODULE USER_COMMAND_0100 INPUT.
SAVE_OK = OK_CODE.
CLEAR OK_CODE.
CASE SAVE_OK.
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE.
*逐行从内表填写表控制
MODULE FILLTBL1 OUTPUT.
READ TABLE SH2 INTO SH INDEX TBL1-CURRENT_LINE.
ENDMODULE.
*逐行从内表控制更新内表
MODULE READTBL1 INPUT.
MODIFY SH2 FROM SH INDEX TBL1-CURRENT_LINE.
ENDMODULE.
博客介绍了在SAP ABAP中创建Table Control的两种方法。一是使用向导建立,给出主程序代码、逻辑流及运行情况;二是手工制作,包含逻辑流和主程序代码,还涉及内表数据处理、表控制对象定义及模块功能实现等信息技术相关内容。
11

被折叠的 条评论
为什么被折叠?



