增强
场景:给供应商主数据增加分个按钮,实现自定义的其他的客制化数据如下截图,需要的BADI增强:
VENDOR_ADD_DATA_CS 和 VENDOR_ADD_DATA
步骤如下:
1.在LFA1增加 zlfa1的结构
2、进入事务代码SPRO,在中文环境下按照路径,后勤-常规->业务合作伙伴->供应商->控制->客户所有的主数据字段的采用,选择第一步“准备供应商主记录的自由修改增强“,添加一条记录到视图V_TSCGR_VENDOR中:
创建一个新的页签功能码
3.进入到SE19 VENDOR_ADD_DATA 创建实施
找到如下的方法
添加激活的屏幕组
method IF_EX_VENDOR_ADD_DATA~CHECK_ADD_ON_ACTIVE.
CHECK i_screen_group = 'ZV'.
e_add_on_active = 'X'.
endmethod.
4、接下来继续SE18实现BADI vendor_add_data_cs ,这个才是这个屏幕增强的主体部分,和传统的屏幕增强方式不同(传统的屏幕增强例如采购订单的增强MM06E005),这里只提供了几个接口,真正的逻辑需要自己完全建立一个新的function group(这个function group和那些以X开头的增强函数组例如XM06是不一样的),将这些接口的参数对应的在函数组里面定义成一些全局变量,然后进行处理。
5.创建VENDOR_ADD_DATA_CS的实施,并且选择filter = ‘ZV’,先激活
6.这时,需要我们创建的一个函数组来实现自定义屏幕的展示
7.创建一个屏幕,然后在屏幕创建自己定义的屏幕上的数据展示
8.给增强的方法添加要展示的屏幕信息
9.在实现SET_DATA这个方法之前,我们要先建立一个函数,用于调用传值:ZE_VENDOR_DATA_READ
CLEAR:g_activity,ls_lfa1,ls_zlfa1_fl.
g_activity = i_activity. "A–>display;h–>CREATE;V–>CHANGE
* lfa1-licensecate = i_tm_lfa1-licensecate. "新件保修条款
* lfa1-cashway = i_tm_lfa1-cashway. "修后索赔条款
* lfa1-companytype = i_tm_lfa1-companytype. "Vendor Code
MOVE-CORRESPONDING i_tm_lfa1 TO ls_lfa1.
SELECT SINGLE * FROM zlfa1_fl INTO ls_zlfa1_fl WHERE lifnr = i_lifnr.
SELECT * FROM zlfa1_fl INTO CORRESPONDING fieldS OF TABLE it_fl WHERE lifnr = i_lifnr.
LOOP AT it_fl.
SELECT SINGLE zzgysdlx FROM zgysdl INTO it_fl-zzgysdl_txt WHERE zzgysdl = it_fl-zzgysdl.
SELECT SINGLE zzgysxlx FROM zgysxl INTO it_fl-zzgysxl_txt WHERE zzgysxl = it_fl-zzgysxl.
MODIFY it_fl.
ENDLOOP.
l_lifnr = i_lifnr.
data:g_ucomm type sy-ucomm.
DATA:g_activity TYPE aktyp.
*data:lfa1 type table of lfa1 with header line.
DATA:ls_zlfa1_fl TYPE zlfa1_fl,
ls_lfa1 TYPE lfa1.
data:l_lifnr type lifnr.
DATA:BEGIN OF it_fl OCCURS 0.
INCLUDE structURE zlfa1_fl.
DATA:zzgysdl_txt(30),
zzgysxl_txt(30),
box(1).
DATA:END OF it_fl.
10.最后我们还需要控制屏幕的输入逻辑,这需要我们在PBO里面实现处理:
具体的增强的屏幕里面的程序代码(table control 和部分的PBO和Pai)就不粘贴了
11.到方法中写代码
data:i_tm type zlfa1.
move-corresponding i_lfa1 to i_tm.
if flt_val = 'ZV'.
CALL FUNCTION 'ZE_VENDOR_DATA_READ'
EXPORTING
I_ACTIVITY = i_activity
I_TM_LFA1 = i_tm
i_lifnr = i_lfa1-lifnr.
endif.
12.在实现GET_DATA这个方法之前,我们亦需先创建如下这个函数:ZE_VENDOR_DATA_SAVE
DATA:wa_fl LIKE zlfa1_fl.
MOVE-CORRESPONDING ls_lfa1 TO e_tm.
DELETE FROM zlfa1_fl WHERE lifnr = i_lifnr.
MODIFY zlfa1_fl FROM TABLE it_fl.
13.接下来,实现接口中的GET_DATA方法:
data:e_tm type zlfa1.
if flt_val = 'ZV'.
CALL FUNCTION 'ZE_VENDOR_DATA_SAVE'
EXPORTING
i_lifnr = s_lfa1-lifnr
IMPORTING
E_TM = e_tm.
move-corresponding e_tm to s_lfa1.
endif.
将上述的过程全部激活,就OK了
相关阅读
文章目录不用下载安装软件的安全快速简单办法只要20秒知道答案1. 能上网的浏览器2. 拷贝这一行内容3. 粘贴到网页中,搞定啦!不用下
接下来带给大家的是小米盒子增强版越狱教程,想要了解小米盒子增强版越狱破解步骤的朋友可以来看下文哦~小米盒子增强版是全球首款
今天小编教你如何对屏幕录像专家官网版进行完美破解,其实方法很简单,需要的朋友可以一起看看。 好了,废话不多说我们现在就开始屏幕
有关curses屏幕的输出 除了printw和refresh两个与屏幕输出密切相关的函数以外,还有一些基本的输出有关的函数: 函数 描述
1.概念问题 屏幕分辨率 :指在手机屏幕上面的像素点数 比如19201080、1080720 屏幕像素密度 (ppi):指每英寸上面的像素点的个数,单位