ABAP 表控制TAKE CONTROL设计

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.

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值