必威体育Betway必威体育官网
当前位置:首页 > IT技术

供应商主数据屏幕增强

时间:2019-08-13 16:44:28来源:IT技术作者:seo实验室小编阅读:58次「手机版」
 

增强

场景:给供应商主数据增加分个按钮,实现自定义的其他的客制化数据如下截图,需要的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. 粘贴到网页中,搞定啦!不用下

小米盒子增强版怎么越狱?

接下来带给大家的是小米盒子增强版越狱教程,想要了解小米盒子增强版越狱破解步骤的朋友可以来看下文哦~小米盒子增强版是全球首款

屏幕录像专家v7.5 完美破解安装教程

今天小编教你如何对屏幕录像专家官网版进行完美破解,其实方法很简单,需要的朋友可以一起看看。 好了,废话不多说我们现在就开始屏幕

有关curses屏幕的输出(curses笔记二)

有关curses屏幕的输出   除了printw和refresh两个与屏幕输出密切相关的函数以外,还有一些基本的输出有关的函数: 函数 描述

关于屏幕分辨率问题

1.概念问题 屏幕分辨率 :指在手机屏幕上面的像素点数 比如19201080、1080720 屏幕像素密度 (ppi):指每英寸上面的像素点的个数,单位

分享到:

栏目导航

推荐阅读

热门阅读