本文主要是介绍采购订单抬头及行项目增强字段配置(超详细),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
听说有一个开发小哥哥想XXX我的XXX,我要卷死他,哈哈哈哈哈
多学多用,不会开发的业务顾问不是一个好顽主
和大家共同学习,仅此记录,酌情参考。
本次主要介绍使用 User-Exit 的方式实现采购订单的屏幕增强。 涉及的用户出口是 MM06E005,本次案例的需求就是在 ME21N、ME22N 和 ME23N 的抬头和 项目上添加 SCM 状态字段。
1、SE11: 创建域 ZZSCM_STATUS_YSS
下面这个就是采购订单抬头& 行项目的 字段枚举值
2、创建 数据类型:ZZSCM_STATUS_YSS_SJLX
【注】:数据类型和域的名字可是一致的,这里我做个区分,所以分开来标注
把域关键进属于类型中:
3、CMOD 创建 增强项目
在结构 CI_EKKODB 和 CI_EKPODB 中添加 ZZSCM_STATUS_YSS_SJLX 字段
结构 CI_EKKODB 和 CI_EKPODB 是 MM06E005 中预留的两个字段接口,
我们只需将想要 添加的自定义字段添加到这两个结构中就可以了,
不过要注意,自定义的字段要以 ZZ 开 头。
结构 CI_EKKODB 和 CI_EKPODB 如果不存在,需要自己创建。如果已经存在就修改。
双击:
用同样的方式,在 CI_EKPODB 中添加 ZZSCM_STATUS_YSS_SJLX 字段
在屏幕 101 和 111 上添加自定义字段 屏幕 101 和 111 是增强预留的屏幕,
101 是采购订单抬头的增强屏幕,111 是 采购订单 行项目的增强屏幕
进入如下视图:
先拖拽一个TEXT
再双击它,调整一下格式
最后保存 ----激活-----测试
完美呈现
如法炮制 行项目: EKPO
进入下一部分:大招来了
CMOD 激活增强 看看效果
ME21N进去看:
【注】但是到这一步,虽然字段做了出来,但是还没有数据能够保存进数据库,因为没有代码逻辑,因此,我们需要增加代码逻辑,让数据保存进数据库
首先:我们先介绍一下Function
然后我们取消激活,继续调整:
添加如下代码:
DATA: ekko LIKE ekko, " Header
ekpo LIKE ekpo, " Item
aktyp TYPE c, " A=display, V=change, H=create
no_screen TYPE c. " do not display
插入如下代码:
no_screen = i_no_screen.
ekko = i_ekko.
ekko_ci = i_ci_ekko.
aktyp = i_trtyp.
以此往下:
在 Include 中添加代码
IF NOT e_ci_ekko = ekko_ci AND aktyp NE 'A'.
e_ci_ekko = ekko_ci.
e_ci_update = 'X'.
ENDIF.
继续依次:
在 Include 中添加代码
no_screen = i_no_screen.
ekko = i_ekko.
ekpo = i_ekpo.
ekpo_ci = i_ci_ekpo.
aktyp = i_aktyp.
依次进行:
添加代码:
IF NOT e_ci_ekpo = ekpo_ci AND aktyp NE 'A'.
e_ci_ekpo = ekpo_ci.
e_ci_update = 'X'.
ENDIF.
下一步:
添加代码:
IF aktyp = 'A'."作用是在显示采购订单时,将我们自己添加的自定义字段设置为无法 编辑,只能显示
LOOP AT SCREEN. screen-input = 0.
MODIFY SCREEN.
ENDLOOP.
ENDIF.
再搞定行项目:
同样添加代码:
IF aktyp = 'A'."作用是在显示采购订单时,将我们自己添加的自定义字段设置为无法 编辑,只能显示
LOOP AT SCREEN.
screen-input = 0.
MODIFY SCREEN.
ENDLOOP.
ENDIF.
至此-----全部开发完毕
下面看一下效果:
创建一个采购订单并保存:
数据已经保存:
然后我们做个ME22N的修改:
再看数据表更新:
就会到这里了,多的不会了。
写错的地方酌情参考。
屏幕有个地方没激活,激活一下就好了,不做修正了。
这篇关于采购订单抬头及行项目增强字段配置(超详细)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!