采购订单抬头及行项目增强字段配置(超详细)

2023-11-21 04:41

本文主要是介绍采购订单抬头及行项目增强字段配置(超详细),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

听说有一个开发小哥哥想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的修改:

 再看数据表更新:

 就会到这里了,多的不会了。

写错的地方酌情参考。

屏幕有个地方没激活,激活一下就好了,不做修正了。

这篇关于采购订单抬头及行项目增强字段配置(超详细)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/399884

相关文章

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

golang内存对齐的项目实践

《golang内存对齐的项目实践》本文主要介绍了golang内存对齐的项目实践,内存对齐不仅有助于提高内存访问效率,还确保了与硬件接口的兼容性,是Go语言编程中不可忽视的重要优化手段,下面就来介绍一下... 目录一、结构体中的字段顺序与内存对齐二、内存对齐的原理与规则三、调整结构体字段顺序优化内存对齐四、内

Goland debug失效详细解决步骤(合集)

《Golanddebug失效详细解决步骤(合集)》今天用Goland开发时,打断点,以debug方式运行,发现程序并没有断住,程序跳过了断点,直接运行结束,网上搜寻了大量文章,最后得以解决,特此在这... 目录Bug:Goland debug失效详细解决步骤【合集】情况一:Go或Goland架构不对情况二:

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤

《SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤》本文主要介绍了SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤,文中通过示例代码介绍的非常详... 目录 目标 步骤 1:确保 ProxySQL 和 mysql 主从同步已正确配置ProxySQL 的

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

Springboot 中使用Sentinel的详细步骤

《Springboot中使用Sentinel的详细步骤》文章介绍了如何在SpringBoot中使用Sentinel进行限流和熔断降级,首先添加依赖,配置Sentinel控制台地址,定义受保护的资源,... 目录步骤 1: 添加 Sentinel 依赖步骤 2: 配置 Sentinel步骤 3: 定义受保护的