原文出自: http://blog.chinaunix.net/uid-8527621-id-2029501.html

REPORT z_barry_tc_f4 .
CONTROLS: tc01 TYPE TABLEVIEW USING SCREEN 0100.
TYPES: BEGIN OF ty_itab,
         carrid TYPE spfli-carrid,
         connid TYPE spfli-connid,
       END OF ty_itab.
DATA: itab TYPE TABLE OF ty_itab ,
      wa TYPE ty_itab .
DATA: progname TYPE sy-repid,
      dynnum   TYPE sy-dynnr,
      dynpro_values TYPE TABLE OF dynpread,
      field_value LIKE LINE OF dynpro_values .
DATA: ok_code   LIKE sy-ucomm.
START-OF-SELECTION.
  wa-carrid = 'A01'.
  wa-connid = '0001'.
  APPEND wa TO itab.
CALL SCREEN 100.
*---------------------------------------------------------------------*
*       MODULE TC01_change_tc_attr OUTPUT                             *
*---------------------------------------------------------------------*
MODULE tc01_change_tc_attr OUTPUT.
  DESCRIBE TABLE itab LINES tc01-lines.
ENDMODULE.
*---------------------------------------------------------------------*
*       MODULE TC01_modify INPUT                                      *
*---------------------------------------------------------------------*
MODULE tc01_modify INPUT.
  READ TABLE itab INTO wa INDEX tc01-current_line
                          TRANSPORTING NO FIELDS .
  IF sy-subrc = 0 .
    MODIFY itab FROM wa INDEX tc01-current_line.
  ELSE.
    INSERT wa INTO itab INDEX tc01-current_line.
  ENDIF.
ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  status_0100  OUTPUT
*&---------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'MAIN100'.
  progname = sy-repid.
  dynnum   = sy-dynnr.
ENDMODULE.                 " status_0100  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
  CASE ok_code.
    WHEN 'BACK'.
      LEAVE PROGRAM.
  ENDCASE.
ENDMODULE.                 " USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*&      Module  showf4  INPUT
*&---------------------------------------------------------------------*
MODULE showf4 INPUT.
  DATA: l_selline LIKE sy-stepl,
        d_values TYPE TABLE OF dynpread,
        f_value LIKE LINE OF dynpro_values .
  DATA: tmpitab LIKE itab.
CLEAR tmpitab.
  GET CURSOR LINE l_selline.
CALL FUNCTION 'DYNP_VALUES_READ'    "获取屏幕字段
       EXPORTING
            dyname     = progname
            dynumb     = dynnum
            request    = 'A'
       TABLES
            dynpfields = d_values.
READ TABLE d_values INTO f_value
                        WITH KEY fieldname = 'WA-CARRID'
                                 stepl = l_selline.
  SELECT  carrid connid
    FROM  spfli
    INTO  CORRESPONDING FIELDS OF TABLE tmpitab
    WHERE carrid = f_value-fieldvalue.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'   
       EXPORTING
            retfield    = 'CONNID'
            dynpprog    = progname
            dynpnr      = dynnum
            dynprofield = 'CONNECTION'
            value_org   = 'S'
       TABLES
            value_tab   = tmpitab.
ENDMODULE.                 " showf4  INPUT
***************

PROCESS BEFORE OUTPUT.
MODULE status_0100.
MODULE tc01_change_tc_attr.
  LOOP AT   itab
       INTO wa
       WITH CONTROL tc01
       CURSOR tc01-current_line.
  ENDLOOP.
PROCESS AFTER INPUT.
MODULE user_command_0100.
  LOOP AT itab.
    CHAIN.
      FIELD wa-carrid.
      FIELD wa-connid.
MODULE tc01_modify ON CHAIN-REQUEST.
    ENDCHAIN.
  ENDLOOP.

PROCESS ON VALUE-REQUEST.
  FIELD wa-connid MODULE showf4.

TC(Table Control)自定义F4相关推荐

  1. abap table control里面各种属性和事件的写法

    SAP中,Table Control是在Screen中用的最广泛的控件之一了,可以实现对多行数据的编辑. 简单来说,Table Control是一组屏幕元素在Screen上的重复出现,这就是它与普通屏 ...

  2. 在TABLE CONTROL 输入完一行记录,按回车的时候光标自动移动到下一行

    在TABLE CONTROL 输入完一行记录,按回车的时候光标自动移动到下一行,另外要考虑翻页的问题. 刚开始我试着用TABLE CONTROL 的向导自动生成程序,后来发现实现起来有点麻烦. 其实大 ...

  3. ABAP 的TABLE CONTROL实践积累

    TABLE CONTROL 是一个结构, 假设我们定义的TC名称为  ZTEST_TC (具体结构参照:SCXTAB_CONTROL) 那么我们定义ZTEST_TC-CURENT_LINE ,ZTES ...

  4. ABAP中的Table Control编程

    SAP中,Table Control是在Screen中用的最广泛的控件之一了,可以实现对多行数据的编辑. 简单来说,Table Control是一组屏幕元素在Screen上的重复出现,这就是它与普通屏 ...

  5. Table control中列隐藏实现方法

    在屏幕的PBO事件,下添加如下代码: *&---------------------------------------------------------------------* *&am ...

  6. table control的修改/排序/删除功能实现实例

    本实例仿照SAP DEMO而写 DEMO名称是:demo_dynpro_tabcont_loop_at,自动动手写一次的目的是把将该程序的注释写明白一点,希望本文对刚入门的博友在理解table con ...

  7. table control 光标定位控制

    分享下TABLE control 光标定位的基本控制 设置一个全局变量  G_CURSOR TYPE  I. 在PBO中代码 SET CURSOR FIELD '想要跳转的字段名' LINE G_CU ...

  8. abap-在table control中实现查找功能

    table control 创建时可以实现添加,删除,及翻页的功能,但没有查找的功能,故记录多时查看不方便,所以要自己写,DEBUG标准ALV的查找功能发现使用函数ALV_POPUP_TO_SEARC ...

  9. ABAP:为Table Control创建Context Menu

    1,创建一个GUI Status 在SE80中点击程序名,并点击右键的创建,找到GUI Status. 它与普通菜单栏的定义没什么不同,但是Status Type必须选择Context Menu,假设 ...

最新文章

  1. 增量学习不只有finetune,三星AI提增量式少样本目标检测算法 | CVPR 2020
  2. 利淘优选——青龙羊毛
  3. Struts2 Hibernate Spring 整合的基本流程和步骤及其相关配置细节
  4. Nancy简单实战之NancyMusicStore(四):实现购物车
  5. mac忘记MySQL初始密码
  6. git log --stat的使用说明
  7. QoS流量监管和流量整形配置实例
  8. qpython 使用教程_python中spy++的使用超详细教程
  9. 特朗普签署《美国人工智能倡议》,释放了哪些重要信号?
  10. android apk 重新签名工具,安卓apk重新签名教程,快来定制自己的apk吧
  11. C4D动画如何提交云渲染农场快速渲染?
  12. 云计算学习路线教程大纲课件:部署论坛系统Discuz
  13. APP首次启动提示开启定位服务
  14. Linux下通过已连上无线的真机使虚拟机可上网
  15. 计算机网络--IPV4地址详细解释
  16. 《沈剑架构师训练营》第7章 - 架构解耦
  17. 一般情况下的椭圆方程
  18. matlab_plot实时画点
  19. Linux hosts.allow与hosts.deny文件设置
  20. 桥梁工程相关c语言程序,桥梁工程监理问题及措施论文

热门文章

  1. Linux-Rsync项目实战(详细) 备份全网服务器数据生产架构方案
  2. 分享Ubuntu 16.04 几个国内更新源
  3. 1130-host ... is not allowed to connect to this MySql server登录失败
  4. mysql中如何把字符串转换成日期类型
  5. 关于jQuery的$.getJSON乱码问题
  6. Android在屏幕任意位置显示对话框
  7. RAID技术详细解答之一:入门基础篇
  8. 5.成本会计理论的U9系统实现(上)
  9. 怎么让经纬度在脑子里不串门?
  10. 全新的 flow.ci Dashboard 上线