首页 > 其他分享 >更改ALV字段并同步自建数据表

更改ALV字段并同步自建数据表

时间:2023-05-29 11:23:29浏览次数:38  
标签:wa ZTVBAP 数据表 字段 selfield TEST vbap ALV

更改ALV字段并同步自建数据表

参考ABAP数据表操作教程。

ALV报表数据怎么可以实现可编辑? 然后可以保存到自建表ZTVBAP_TEST中?

  • 修改ALV字段展示属性值。

    "修改alv显示字段属性 edit
    wa_fieldcat-edit = 'X'.
    "指定显示字段可编辑
    MODIFY it_fieldcat FROM wa_fieldcat TRANSPORTING edit WHERE fieldname = 'KWMENG'.
    CLEAR wa_fieldcat.
    
  • 声明与自建表同名的工作区, 并定义一个内表

    "声明与自建表同名的工作区
    TABLES:ZTVBAP_TEST.
    "定义一个内表
    DATA: IT_ZTVBAP_TEST TYPE STANDARD TABLE OF ZTVBAP_TEST.
    
  • 执行点击保存事件,调子程序:PERFORM SAVE_DATA.

    * 定义 响应执行事件的子程序
    FORM USER_COMMAND  USING r_ucomm LIKE sy-ucomm
                             rs_selfield TYPE slis_selfield.
      CASE r_ucomm.
        WHEN '&IC1'.
    *      MESSAGE I003(Z_FC).
          MESSAGE I002(Z_FC) WITH rs_selfield-tabindex rs_selfield-fieldname.
        WHEN 'MESS'.
          MESSAGE '你点击了消息按钮' TYPE 'I'.
        WHEN 'CLEAR'.
          PERFORM clear_data.         "清空字段数据
          rs_selfield-refresh = 'X'.  "刷新界面
        WHEN '&DATA_SAVE'.
          " 保存数据
          PERFORM SAVE_DATA.
        WHEN OTHERS.
      ENDCASE.
    ENDFORM.
    
  • 子程序

    GET_GLOBALS_FROM_SLVC_FULLSCR函数将传统的alv转变为面向对象的alv,可以保证数据同步。

    FORM save_data .
      DATA: G_GRID TYPE REF TO CL_GUI_ALV_GRID.
    
      " 使用OO 的刷新方式,先使用GET_GLOBALS_FROM_SLVC_FULLSCR接收屏幕ALV,放置容器,再调用刷新方法
      CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    *   EXPORTING
    *     IR_SALV_FULLSCREEN_ADAPTER       =
       IMPORTING
    *     ET_EXCLUDING                     =
    *     E_REPID                          =
    *     E_CALLBACK_PROGRAM               =
    *     E_CALLBACK_ROUTINE               =
         E_GRID                           = G_GRID
    *     ET_FIELDCAT_LVC                  =
    *     ER_TRACE                         =
    *     E_FLG_NO_HTML                    =
    *     ES_LAYOUT_KKBLO                  =
    *     ES_SEL_HIDE                      =
    *     ET_EVENT_EXIT                    =
    *     ER_FORM_TOL                      =
    *     ER_FORM_EOL                      =
                .
      " 同步数据 将alv中的数据同步到内表中
      CALL METHOD g_grid->check_changed_data
    *    IMPORTING
    *      e_valid   =
    *    CHANGING
    *      c_refresh = 'X'
          .
      
      "获取数据
      LOOP AT it_vbap INTO wa_vbap.
        " 只有 wa_vbap 中的字段与 ZTVBAP_TEST 字段一致的才会迁移。
        " MOVE-CORRESPONDING wa_vbap TO ZTVBAP_TEST.
        ZTVBAP_TEST-ZWERKS = wa_vbap-werks.
        ZTVBAP_TEST-ZMATNR = wa_vbap-MATNR.
        ZTVBAP_TEST-ZKWMENG = wa_vbap-KWMENG.
        ZTVBAP_TEST-ZMEINS = wa_vbap-MEINS.
        APPEND ZTVBAP_TEST TO IT_ZTVBAP_TEST.
        CLEAR ZTVBAP_TEST.
      ENDLOOP.
      " 更新或新建数据
      MODIFY ZTVBAP_TEST FROM TABLE IT_ZTVBAP_TEST.
    
    ENDFORM.
    

标签:wa,ZTVBAP,数据表,字段,selfield,TEST,vbap,ALV
From: https://www.cnblogs.com/itelephant/p/17439919.html

相关文章

  • VB创建ACCESS数据库和数据表
    建立数据库1PublicSubBD_Create()23OnErrorGoTodb_err45DimpstrAsString67Dimtb1AsNewTable89pstr="PROVIDER=Microsoft.Jet.OLEDB.4.0;"'必须用4.01011pstr=pstr&"Data......
  • odoo 改变字段显示
    通过scss文件处理.使必填字段下划线加粗.o_required_modifier.o_input{border-bottom:2pxsolid$o-main-text-color!important;} 必填加型号,红色.o_required_modifier::before{content:"*";color:red;}......
  • Odoo常用字段属性
     string是字段的默认标签,在用户界面中使用。除Selection和关联字段外,它都是第一个位置参数,所以大多数情况下它用作关键字参数。如未传入,将由字段名自动生成。default设置字段默认值。可以是具体值(如active字段中的default=True),或是可调用引用,有名函数或匿名函数均可。help提......
  • Doris(二) -- 基本概念和数据表模型
    字段类型数据类型字节范围TINYINT1字节-2^7+1~2^7-1SMALLINT2字节-2^15+1~2^15-1INT4字节-2^31+1~2^31-1BIGINT8字节-2^63+1~2^63-1LARGEINT16字节-2^127+1~2^127-1FLOAT4字节支持科学计数法DOUBLE......
  • vue3 后台返回数据没有返回字段是true和false 值的时候,循环数组,点击单个元素单个元素
    最原始的写法<template><div><divv-for="(item,index)initems":key="item.id":class="{active:item.active}"@click="handleClick(item)">{{item.text}}div>div>但是不是所有的后端都会返回字段的值是true和false ......
  • Oracle 更新timestamp 类型字段
    oracle中手动更新timestamp类型的字段有两种方式,一种是创建table的时候指明可自动更新,一种是如下update脚本,通过SYSDATE获取系统当前时间,赋值给timestamp字段:UPDATEmes_tokenmsetm.TOKEN='eyJhbGciOiJIUzI1NiIsIlR5cGUiOiJKd3QiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJKWkxLIiwiZXh......
  • django之对FileField字段的upload_to的设定
       用django开发,经常要处理用户上传的文件,比如user模型里面如果又个人头像的字段ImageField等等,而django在FielField字段(包括ImageField)的支持和扩展是做的很好的,首先一个问题,是上传的文件,django是放到哪里去了,(note:文件流是不会放到数据库里面的,该字段在数据库中只存储路......
  • Unity3D高级编程主程手记 学习笔记三:数据表与程序
    什么是数据表?有什么用?数据表相当于一个只读的外部数据库,用来存储着游戏内的各种数据项。数据表是连接了美术、设计策划和程序的桥梁。艺术家用它来配置效果,设计师用它来调整游戏内数值平衡,程序员用它来判断逻辑,所以数据表的意义十分重大。 数据在游戏中存储有几种方式,......
  • pb中“保存”按钮,数据窗口更新表时列字段检查
    //点击“保存”触发事件1Longll_row23//将控件“数据对象”的编辑值存入缓存区等待验证4IFdw_1.AcceptText()=-1ThenReturn-15//待处理状态6IFdw_1.Of_UpdatesPending()=0ThenReturn0789Forll_row=1Todw_1.rowcount()10//......
  • DDL操作数据表
    一个数据库中可以n个表,表中有字段(列)在建表的时候就需要定义字段,指定字段属性-字段数据类型+字段长度等复制表结构:like用法createtable course1 like course;查看表结构desc  course1;常用的数据类型:int整数double浮点型varchar字符串型date日期类型年月日注......