VF01/VF02/VF03屏幕增强及BAPI增强字段处理

1.在销售发票抬头表中增加增强字段

2.创建处理程序

主程序SAPMV60A中的所有包含文件都是以MV60AF打头的,所以我们创建一个独立的程序 SE38(ZSDU0001) 来存放所有的处理代码

 创建屏幕9001,确保屏幕类型为子屏幕

 屏幕字段可从VBRK表中获取

复制代码
*&---------------------------------------------------------------------*
*& Module PBO_9001 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE pbo_9001 OUTPUT.CASE sy-ucomm.WHEN 'VF03'.LOOP AT SCREEN.screen-input = '0'.MODIFY SCREEN.ENDLOOP.ENDCASE.
ENDMODULE.
复制代码

ZSDU0001报表程序代码参考

复制代码
*&---------------------------------------------------------------------*
*& Report ZSDU0001
*&---------------------------------------------------------------------*
*&作者:HW
*&日期:20240329
*&描述:销售发票屏幕增强程序
*&---------------------------------------------------------------------*
REPORT zsdu0001.DATA:badi_active TYPE sap_bool.FORM cust_head_activate USING fvbrk TYPE vbrkfvbuk TYPE vbukfxvbpa TYPE va_vbpavb_tCHANGING fcaption TYPE char40fprogram TYPE sy-repidfdynpro TYPE sy-dynnrftab TYPE char40.PERFORM frm_check_badi_active.CHECK:badi_active EQ abap_false.fcaption = '抬头增强字段'. "页签名称fprogram = 'ZSDU0001'. fdynpro = '9001'.ftab = fcaption.LOOP AT SCREEN.IF screen-name EQ 'TABSTRIP_TAB06'.screen-active = 1.screen-invisible = 0.MODIFY SCREEN.ENDIF.ENDLOOP.ENDFORM.
FORM cust_head_set_data USING f_vbrk TYPE vbrkft180 TYPE t180CHANGING fxvbpa TYPE va_vbpavb_tfxyvbrk TYPE vbrkvb_tfxvbrk  TYPE vbrkvb_tfrv60a TYPE rv60afxyvbadr TYPE shp_sadrvb_tfxvbadr TYPE shp_sadrvb_tfxyvbpa TYPE va_vbpavb_tfxvbrp TYPE vbrpvb_tfxyvbrp TYPE vbrpvb_tfvbrk TYPE vbrk.PERFORM frm_check_badi_active.CHECK:badi_active EQ abap_false.ENDFORM.
FORM cust_head_pass_fcode USING ffcode_same_page TYPE fcodeffcode TYPE fcode.PERFORM frm_check_badi_active.CHECK:badi_active EQ abap_false.ENDFORM.
FORM cust_head_get_data USING ft180 TYPE t180CHANGING fvbrk TYPE vbrkfxvbpa TYPE va_vbpavb_tfxyvbrk TYPE vbrkvb_tfxvbrk TYPE vbrkvb_tfrv60a TYPE rv60afxyvbadr TYPE shp_sadrvb_tfxvbadr TYPE shp_sadrvb_tfxyvbpa TYPE va_vbpavb_tfxvbrp TYPE vbrpvb_tfxyvbrp TYPE vbrpvb_tffcode TYPE fcode.PERFORM frm_check_badi_active.CHECK:badi_active EQ abap_false.ENDFORM.
*&---------------------------------------------------------------------*
*& Module PBO_9001 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE pbo_9001 OUTPUT.CASE sy-ucomm.WHEN 'VF03'.LOOP AT SCREEN.screen-input = '0'.MODIFY SCREEN.ENDLOOP.ENDCASE.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Form frm_check_badi_active
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_check_badi_active.INCLUDE wb2_param_control_global.DATA:lr_badi TYPE REF TO if_ex_badi_sd_cust_head.CALL FUNCTION 'GET_HANDLE_SD_CUST_HEAD'IMPORTINGhandle = lr_badiactive = badi_active.IF badi_active EQ abap_true.IF cl_wb2_check_add_on_active=>a_gtm_active EQ abap_false.badi_active = abap_false.ENDIF.IF cl_wb2_check_add_on_active=>a_enhance NE addon_all_active.badi_active = abap_false.ENDIF.ENDIF.
ENDFORM.
复制代码

3.屏幕增强

在主程序SAPMV60A 的 屏幕6001中 双击 CUST_HEAD_ACTIVATE 直到对应的FORM

显示隐式增强->创建实施->使用  PERFORM … IN PROGRAM … IF FOUND 创建增强

 FORM涉及详细的逻辑代码,在ZSDU0001程序中编写,在上边

复制代码
ENHANCEMENT 1  ZE_SAPMV60A.    "active version
PERFORM cust_head_activate IN PROGRAM zsdu0001 IF FOUNDUSING vbrk vbuk xvbpa[]CHANGING gs_cust_tab-head_captiongs_cust_tab-head_programgs_cust_tab-head_dynprotabstrip_tab06.
ENDENHANCEMENT.
复制代码

业务加载项BADI_SD_CUST_HEAD的另外三个方法是用在屏幕6101中,建议不管当前是否有使用到,都应当进行增强到程序ZMV60AFZCUST_HEAD中以预留将来可以方便的修改,所有的增强实施都应当使用同一个名称ZE_SAPMV60A,这样我们可以方便地使用SE20查看所有的增强

perform cust_head_set_data->(FORM涉及详细的逻辑代码,在ZSDU0001程序中编写,在上边)

复制代码
ENHANCEMENT 2  ZE_SAPMV60A.    "active versionPERFORM cust_head_set_data IN PROGRAM zsdu0001 IF FOUNDUSING vbrk t180CHANGING xvbpa[]yvbrk[]xvbrk[]rv60ayvbadr[]xvbadr[]yvbpa[]xvbrp[]yvbrp[]vbrk.
ENDENHANCEMENT.
复制代码

perform cust_head_pass_fcode

ENHANCEMENT 3  ZE_SAPMV60A.    "active versionPERFORM cust_head_pass_fcode IN PROGRAM ZSDU0001 IF FOUNDUSING fcode_gleiche_seitefcode.
ENDENHANCEMENT.

perform cust_head_get_data

复制代码
ENHANCEMENT 4  ZE_SAPMV60A.    "active version
PERFORM cust_head_get_data IN PROGRAM zsdu0001 IF FOUNDUSING t180CHANGING vbrkxvbpa[]yvbrk[]xvbrk[]rv60ayvbadr[]xvbadr[]yvbpa[]xvbrp[]yvbrp[]fcode.
ENDENHANCEMENT.
复制代码

VF02修改发票凭证,转到抬头–>抬头增强字段,填写相关的数据并保存,然后检查表VBRK发现增强字段已经保存成功

 用VF03查看发票凭证,发现页签是只读格式,创建增强字段成功

以上为抬头屏幕增强,行项目增强在6002屏幕上

可参考链接:屏幕增强 - 3.为发票凭证VF01/2/3增加自定义选项卡 - 《ABAP 开发笔记》 - 极客文档 (geekdaxue.co)

行项目屏幕增强同以上方法,可参考链接:VF01/VF02/VF03销售发票屏幕增强实例_vf01屏幕增强-CSDN博客

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/783260.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GameSalad-IOS-游戏开发学习手册-全-

GameSalad IOS 游戏开发学习手册(全)原文:Learn GameSalad for iOS Game Development for iPhone, iPad, and HTML5 协议:CC BY-NC-SA 4.0零、简介 2007 年,苹果推出了 iPhone,彻底改变了我们的生活方式,但最重要的是 iOS 的诞生。今天,iOS 被用于 iPhone、iPad 和 iPo…

问题 IDEA创建Sping项目只能勾选17和21,却无法使用Java8

想创建一个springboot项目,本地安装jdk版本为1.8,但是在使用 Spring Initializr创建项目时,版本只能选择21或17 在JDK为1.8的情况下,无论选择Java17版本或者21版本时,都会报错。 Java17和Java 8(JDK1.8)的区别 版本号:Java 17 是 Java SE 17 的版本,而 JDK 1.8 是 Java S…

软件逆向之OD

OD全称OllyDbg ,是一种具有可视化界面的 32 位汇编-分析调试器。和IDA不同之处在于可以动态调试软件功能,可以有效的去分析程序构成。 以下软件讲解均以吾爱破解中的OD进行讲解。软件下载 打开程序主页面我们可以看到以下内容首先介绍一下软件主页面的4个窗口: 反汇编窗口:…

vue随笔

插值语法中可以使用三元表达式

Halcon颜色识别

本文接扫halcon识别排序颜色,复杂点在于无法使用单一图像区域识别出5中颜色。这里用到了ImageR 和 ImageS*颜色识别*定义颜色类型 FushColor := [black,brown,red,pink,yellow]*颜色对应灰度值 HueRange := [10,51,68,100,145,191,\0,10,30,50]*定义获取到的坐标,展示颜色 Ad…

Deno-入门指南-全-

Deno 入门指南(全)原文:Introducing Deno 协议:CC BY-NC-SA 4.0一、为什么是 Deno? 在过去的 10 年里,当后端开发人员听到“后端的 JavaScript”这个词时,所有人都会立即想到 Node.js。 在这 10 年的开始,也许不会马上出现,但最终它的名字为每个人所知,成为另一种基于…

CSS-框架替代指南-全-

CSS 框架替代指南(全)原文:CSS Framework Alternatives 协议:CC BY-NC-SA 4.0一、为直观的网页设计选择轻量级框架 什么是框架? A framework is a premeditated set of concepts, modules, and standardized criteria that make the task of developing web sites and web…

dicom 字符集的选择

查看字符集读取标签 特定字符集(0008,0005)字符集unicode是字符集,ASCII、GB2312、GBK、GB18030既是字符集也是编码方式,UTF-8只是编码方式 通过字符集中文字符集字符集的选择 不同厂商实现不同 修改导致不可读[ISO / IEC 10646]现在禁止使用除UTF-8的最小长度编码以外的…

日出日落

日出日路,跟日期,经纬度有关,满足以一年为周期,正弦余弦函数.见下图: 在PHP 中date_sunrise和date_sunset函数分别获取日出日落.date_sunrise(strtotime(日期),SUNFUNCS_RET_STRING,$latitude,$longitude,$zenith,$gmtoffset); date_sunset(strtotime(日期),SUNFUNCS_RET_STRIN…

关于小程序使用OCR进行身份证识别

1.第三方插件安装 2.搜索并安装 3.购买免费次数1天100次 https://fuwu.weixin.qq.com/service/detail/000ce4cec24ca026d37900ed551415 4.选中使用的账号 5.支付完成愉快使用 6.正式使用 文档位置:https://mp.weixin.qq.com/wxopen/plugindevdoc?appid=wx4418e3e031e551b…

C 提高篇 c运行库、c标准库、windows API的区别和联系

C运行时库函数C运行时库函数是指C语言本身支持的一些基本函数,通常是汇编直接实现的。 API函数API函数是操作系统为方便用户设计应用程序而提供的实现特定功能的函数,API函数也是C语言的函数实现的。区别他们之间区别是:API函数是针对操作系统的,C语言运行时函数则是针对C…

本地通过python运行AI大语言模型LLaMa2

什么是Llama2 Llama 全称 large language model, Meta AI 公司2023年发布的开源AI大型语言模型,参数7B~65B。最新版本为Llama 3。 更为详细的介绍可参考,LLaMA - 维基百科,自由的百科全书 (wikipedia.org) 。 什么是llama.cpp? 一个开源c++库,用c++重写了LLaMa的推理代码…