SAP表维护自动带出对象属性
需求:使用表维护实现维护一个对象的不同属性。
解决:实现的方式有很多种,比如如果属性固定,可以将属性放到列上来维护处理,如果动态可配置属性也可以选择自定义表维护,或者增强表维护。这里给出其中一种可复用的实现示例以供参考。
操作步骤如下:
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表维护自动带出对象属性相关推荐
- SAP SM30隐藏部分字段以及自动带出某些值
有时候我们在SE11做的表维护生成器可能有不需要的字段,隐藏这些字段的方法: 1.SE80,找到表维护生成器自动创建的屏幕,找到逻辑流中的PBO,在PBO中增加一个MODULE,名字可以自己取. 2. ...
- SM30里如何输入物料号自动带出物料描述
新建Table,根据输入的物料号,自动带出描述: SE80根据表生成器里面的函数组进去进行增强: 双击进行维护取数代码即可:
- 按计划员自动带出对应任务类型
应用 Oracle Manufacturing Planning 层 Level Function 函数名 Funcgtion Name MRPFPPWB-390 表单名 Form Name MR ...
- migo获取header sap_SAP Migo增强 105时通过提货单号自动带出批次和生产日期
SAP Migo增强 105时通过提货单号自动带出批次和生产日期 实现功能1:在MVT103时录入提货单(送货单),自动查询类表是否存在送货单,如果不存在,提示录入错误. 实现功能2:在105时,根据 ...
- VL01N创建交货单自动带出物料对应仓位
VL01N创建交货单自动带出物料对应仓位 1.配置点1:SPRO->后勤执行->装运->确定拣配地点->定义存储条件 2.配置点2:SPRO->后勤执行->装运-& ...
- php 输入汉字自动带出拼音和英文
需求就是添加一个字段的时候,自动带出中文和英文,方便数据索引. 这里只贴下代码,英文用在线api,中文用类库.我觉得这个拼音类库比较好,不会出现重庆是zhongqing之类的问题,因为可以自定义添加维 ...
- Axure8.0教程:自动带出邮箱
本次分享的的案例是Axure8.0制作的自动带出邮箱地址效果. 预览及下载地址:https://51x7ns.axshare.com 一.制作原型 1.拖入一个矩形元件,设置宽度:66px,高度:20 ...
- ABAP--如何建立通过sap表维护工具来维护自定义表TCODE
在sap开发的过程中,经常需要自定义数据表,对于简单的数据表,我们可以通过sap的表维护工具生成维护代码,并建立自定义的TCODE来维护其数据.具体步骤如下: 一.建立自定义表(TCODE :SE11 ...
- SM30表维护自动更新值
背景 SM30在维护自建表中,经常需要自动填充和修改一些值,比如创建者.创建日期.创建时间.修改者.修改日期.修改时间等. 实现 这些是通过SE54中的"事件(EVENT)"来实现 ...
- SAP Cloud for Customer根据Accouunt自动带出Sales Unit的配置
先看效果: 一旦我输入一个Account 90102之后, 自动决定出Sales Unit和Sales Organization. 下面介绍具体配置方法. 输入的是90102. Sales Unit的 ...
最新文章
- 任何社区,只要能影响他人成长的人,都可以成为敏捷个人的荣誉会员
- 用神经网络分类3*3矩阵
- MDK:assert_param函数未定义的错误:Error: L6218E
- MyBatis 插件原理与自定义插件-猜想
- LinkedHashSet集合
- shell 提取sql 的字段名表名_SQL代码风格规范
- python字母变成数字怎么办_在Python中将字母转换为数字
- SAP Control framework–实例
- Mysql字符串连接
- Cocos2d-x学习之 整体框架描述
- (二)win7下用Intelij IDEA 远程调试spark standalone 集群
- ug计算机环境变量,ug80添加中文环境变量的具体方法
- python10的负n次方_python的次方
- 华东师范大学《模式识别与机器学习》试题
- 华为智慧屏鸿蒙os的特点,华为智慧屏功能特点一览
- HTML5 video autoplay=“autoplay“ 无法自动播放的问题
- [ 大道至简系列 ] 三分钟理解-1NF,2NF,3NF
- ElasticSearch必知必会-基础篇
- 关于如何运行Power Automate Flow
- CPU个数、CPU核心数、CPU线程数