需求:使用表维护实现维护一个对象的不同属性。

解决:实现的方式有很多种,比如如果属性固定,可以将属性放到列上来维护处理,如果动态可配置属性也可以选择自定义表维护,或者增强表维护。这里给出其中一种可复用的实现示例以供参考。

操作步骤如下:

1、依次创建对象表,属性表,以及对象属性配置表

2、为对象属性表创建维护视图,并为所有表和视图创建表维护

3. 创建视图簇

点击代码编辑创建form程序,再次点击生成对应form,填写代码逻辑如下

FORM exi_10 ." 抬头表TYPES: BEGIN OF ty_ylc_class_extra.INCLUDE TYPE ylc_class.TYPES: mode1 TYPE char1,mode2 TYPE char1,END OF ty_ylc_class_extra." 关联表TYPES: BEGIN OF ty_ylc_class_attr_v_extra.INCLUDE TYPE ylc_class_attr_v.TYPES: mode1 TYPE char1,mode2 TYPE char255,END OF ty_ylc_class_attr_v_extra." 逻辑处理使用DATA: lt_ylc_class_extra        TYPE TABLE OF ty_ylc_class_extra,ls_ylc_class_extra        TYPE ty_ylc_class_extra,lt_ylc_class_attr_v_extra TYPE TABLE OF ty_ylc_class_attr_v_extra,ls_ylc_class_attr_v_extra TYPE ty_ylc_class_attr_v_extra.DATA:lt_ylc_class_attr_v TYPE TABLE OF ylc_class_attr_v,ls_ylc_class_attr_v TYPE ylc_class_attr_v,ls_ylc_class_attr   TYPE ylc_class_attr,lt_ylc_attribute    TYPE TABLE OF ylc_attribute,ls_ylc_attribute    TYPE ylc_attribute.DATA: lv_chg_flag TYPE char1.STATICS: lt_ylc_class_attr_add TYPE TABLE OF ylc_class_attr.FIELD-SYMBOLS: <fs_value> TYPE any,<fs_tab>   TYPE any.CONSTANTS: c_action      TYPE string VALUE '(SAPLSVCM)VCL_ACTION',    " 修改模式c_function    TYPE string VALUE '(SAPLSVCM)VCL_FUNCTION',  " 动作代码,切换为 EV_NAVIc_last_view   TYPE string VALUE '(SAPLSVCM)VCL_LAST_VIEW', " 切换前的维护表c_next_view   TYPE string VALUE '(SAPLSVCM)VCL_NEXT_VIEW', " 切换后的维护表c_extract_m_1 TYPE string VALUE '(SAPLSVCM)VCL_EXTRACT_M_1', " 顺序为1的表维护对应展示数据c_extract_m_2 TYPE string VALUE '(SAPLSVCM)VCL_EXTRACT_M_2', " 顺序为2的表维护对应展示数据c_total_m_2   TYPE string VALUE '(SAPLSVCM)VCL_TOTAL_M_2'.   " 顺序为2的表维护对应所有数据ASSIGN (c_action) TO <fs_value>.IF sy-subrc = 0 AND <fs_value> = 'U'.ASSIGN c_function TO <fs_value>.IF sy-subrc = 0 AND <fs_value> = 'EV_NAVI'.ASSIGN (c_last_view) TO <fs_value>.IF sy-subrc = 0 AND <fs_value> = 'YLC_CLASS'.ASSIGN (c_next_view) TO <fs_value>.IF sy-subrc = 0 AND <fs_value> = 'YLC_CLASS_ATTR_V'. " 限制为 由 抬头表切换到关联表ASSIGN (c_extract_m_1) TO <fs_tab>.lt_ylc_class_attr_v_extra = <fs_tab>.IF sy-subrc = 0.ASSIGN (c_extract_m_2) TO <fs_tab>.IF sy-subrc = 0.lt_ylc_class_extra = <fs_tab>.ASSIGN (c_total_m_2) TO <fs_tab>.IF sy-subrc = 0." 逻辑处理部分lt_ylc_class_attr_v = <fs_tab>.SELECT *FROM ylc_attributeINTO TABLE lt_ylc_attribute.LOOP AT lt_ylc_class_extra INTO ls_ylc_class_extra WHERE mode2 = 'M'.LOOP AT lt_ylc_attribute INTO ls_ylc_attribute.READ TABLE lt_ylc_class_attr_v INTO ls_ylc_class_attr_v WITH KEY class = ls_ylc_class_extra-classattribute   = ls_ylc_attribute-attribute.IF sy-subrc <> 0.lv_chg_flag = abap_true.ls_ylc_class_attr_v-mandt       = sy-mandt.ls_ylc_class_attr_v-class = ls_ylc_class_extra-class.ls_ylc_class_attr_v-attribute   = ls_ylc_attribute-attribute.ls_ylc_class_attr_v-attdesc     = ls_ylc_attribute-attdesc.ls_ylc_class_attr_v-isactivate  = ''.APPEND ls_ylc_class_attr_v TO lt_ylc_class_attr_v.MOVE-CORRESPONDING ls_ylc_class_attr_v TO ls_ylc_class_attr .APPEND ls_ylc_class_attr TO lt_ylc_class_attr_add.ENDIF.ENDLOOP.ENDLOOP.IF lv_chg_flag = abap_true.<fs_tab> = lt_ylc_class_attr_v.ENDIF.ENDIF.ENDIF.ENDIF.ENDIF.ENDIF.ELSEIF  sy-subrc = 0 AND <fs_value> = 'SAVE' AND lt_ylc_class_attr_add IS NOT INITIAL." 保存LOOP AT lt_ylc_class_attr_v_extra INTO ls_ylc_class_attr_v_extra WHERE mode1 = 'U' OR  mode1 = 'I' OR  mode1 = 'M'.DELETE lt_ylc_class_attr_add WHERE class = ls_ylc_class_attr_v_extra-class AND attribute = ls_ylc_class_attr_v_extra-attribute.ENDLOOP.MODIFY ylc_class_attr FROM TABLE lt_ylc_class_attr_add.CLEAR lt_ylc_class_attr_add.ENDIF.ENDIF.
ENDFORM.

激活

4、效果展示

SAP表维护自动带出对象属性相关推荐

  1. SAP SM30隐藏部分字段以及自动带出某些值

    有时候我们在SE11做的表维护生成器可能有不需要的字段,隐藏这些字段的方法: 1.SE80,找到表维护生成器自动创建的屏幕,找到逻辑流中的PBO,在PBO中增加一个MODULE,名字可以自己取. 2. ...

  2. SM30里如何输入物料号自动带出物料描述

    新建Table,根据输入的物料号,自动带出描述: SE80根据表生成器里面的函数组进去进行增强: 双击进行维护取数代码即可:

  3. 按计划员自动带出对应任务类型

    应用 Oracle   Manufacturing Planning 层 Level Function 函数名 Funcgtion Name MRPFPPWB-390 表单名 Form Name MR ...

  4. migo获取header sap_SAP Migo增强 105时通过提货单号自动带出批次和生产日期

    SAP Migo增强 105时通过提货单号自动带出批次和生产日期 实现功能1:在MVT103时录入提货单(送货单),自动查询类表是否存在送货单,如果不存在,提示录入错误. 实现功能2:在105时,根据 ...

  5. VL01N创建交货单自动带出物料对应仓位

    VL01N创建交货单自动带出物料对应仓位 1.配置点1:SPRO->后勤执行->装运->确定拣配地点->定义存储条件 2.配置点2:SPRO->后勤执行->装运-& ...

  6. php 输入汉字自动带出拼音和英文

    需求就是添加一个字段的时候,自动带出中文和英文,方便数据索引. 这里只贴下代码,英文用在线api,中文用类库.我觉得这个拼音类库比较好,不会出现重庆是zhongqing之类的问题,因为可以自定义添加维 ...

  7. Axure8.0教程:自动带出邮箱

    本次分享的的案例是Axure8.0制作的自动带出邮箱地址效果. 预览及下载地址:https://51x7ns.axshare.com 一.制作原型 1.拖入一个矩形元件,设置宽度:66px,高度:20 ...

  8. ABAP--如何建立通过sap表维护工具来维护自定义表TCODE

    在sap开发的过程中,经常需要自定义数据表,对于简单的数据表,我们可以通过sap的表维护工具生成维护代码,并建立自定义的TCODE来维护其数据.具体步骤如下: 一.建立自定义表(TCODE :SE11 ...

  9. SM30表维护自动更新值

    背景 SM30在维护自建表中,经常需要自动填充和修改一些值,比如创建者.创建日期.创建时间.修改者.修改日期.修改时间等. 实现 这些是通过SE54中的"事件(EVENT)"来实现 ...

  10. SAP Cloud for Customer根据Accouunt自动带出Sales Unit的配置

    先看效果: 一旦我输入一个Account 90102之后, 自动决定出Sales Unit和Sales Organization. 下面介绍具体配置方法. 输入的是90102. Sales Unit的 ...

最新文章

  1. 任何社区,只要能影响他人成长的人,都可以成为敏捷个人的荣誉会员
  2. 用神经网络分类3*3矩阵
  3. MDK:assert_param函数未定义的错误:Error: L6218E
  4. MyBatis 插件原理与自定义插件-猜想
  5. LinkedHashSet集合
  6. shell 提取sql 的字段名表名_SQL代码风格规范
  7. python字母变成数字怎么办_在Python中将字母转换为数字
  8. SAP Control framework–实例
  9. Mysql字符串连接
  10. Cocos2d-x学习之 整体框架描述
  11. (二)win7下用Intelij IDEA 远程调试spark standalone 集群
  12. ug计算机环境变量,ug80添加中文环境变量的具体方法
  13. python10的负n次方_python的次方
  14. 华东师范大学《模式识别与机器学习》试题
  15. 华为智慧屏鸿蒙os的特点,华为智慧屏功能特点一览
  16. HTML5 video autoplay=“autoplay“ 无法自动播放的问题
  17. [ 大道至简系列 ] 三分钟理解-1NF,2NF,3NF
  18. ElasticSearch必知必会-基础篇
  19. 关于如何运行Power Automate Flow
  20. CPU个数、CPU核心数、CPU线程数

热门文章

  1. VC++运行库安装难题
  2. BlueScreenView: 系统蓝屏分析工具
  3. su必备插件_会了这10个插件,Sketchup也能玩飞起来!
  4. 飞腾服务器虚拟化,基于飞腾平台的容器虚拟化技术研究
  5. 线性调频信号(Chirp信号)公式
  6. 在QT中配置snap7库
  7. 基于51单片机的双机通信系统设计protues仿真
  8. 超级终端连接华为交换机_win8系统使用超级终端连接华为交换机的操作方法
  9. PMP第六版计算题公式整理
  10. Qt网络编程-简易版TcpServer入门Demo(2)