供应商主数据屏幕增强XK02,XK03

       当年第一次写增强,因参考的文章对没写过增强的人来有点不明。因此才有这篇用于记录

  1. SE16N LFA1 APPEND STRUCTURE 增加自定义结构
  2. SPRO 后勤-常规—》业务伙伴—》供应商—》控制—》采用客户自己的主档资料—》准备供应商主档记录免修改增强

英文路径:LOGISTICS-GENERAL àBUSINESS PARTNERàVENDORSàCONTROLàADOPTION OF CUSTOMER’S OWN MASTER DATA FIELDS àPrepare Modification-Free Enhancement of Vendor Master Record

--》执行—》新增条目

 

 

 

 

 

SE19 实施BADIàCREATE IMPLEMENTATIONàNEW BADIàBADI NAME àCREATE IMPL   激活—>建立新的IMPL

 

 

IF SY-TCODE = 'XK02' OR SY-TCODE = 'XK03'.
    CHECK I_SCREEN_GROUP = 'ZV'.
    E_ADD_ON_ACTIVE = 'X'.
  ENDIF.

  

接着用SE19 VENDOR_ADD_DATA_CS

 

 

输入一开始建立的ZV

 

 

注意这三个事件一会我们就要写代码了

 

 

 

想一想,我们刚刚是不是只建立增强方面的东西,那要显示给用户屏幕呢?

没有。为什么没有,因为没建啊 ,所以接下来我们应该先建立一个屏幕,写过TAB页的都知道这个屏幕一定要是子屏幕。

建立一个函数组:然后在函数组中建立屏幕

 

 

 

 

建立完屏幕后,写第一段代码,在增强中调用对应的屏幕

SE19-ZXK02TEST

双击IF_EX_VENDOR_ADD_DATA_CS~GET_TAXI_SCREEN

 

 

写入代码

CASE i_taxi_fcode.
    WHEN 'ZV_XK02'.”还记得在SPRO中建立的数据吗?
*           e_screen = '0001'.”屏幕号
      e_program = 'SAPLZJUNA' ."函数名或程式名.
      e_headerscreen_layout = SPACE.
    WHEN OTHERS.
  ENDCASE.

 

 

 

读取数据

建立一个新的函数和平常建立函数一模一样,,

 

 

设置传入值

 

 

代码

 CLEAR:G_ACTIVITY.",LFA1.
  G_ACTIVITY = I_ACTIVITY.   "A–>显示DISPLAY;h–>新建;V–>更改这个值是系统固定的
  LFA1-IPATH = I_TM_LFA1-IPATH.  

  LFA1-IDATE = I_TM_LFA1-IDATE.  
  LFA1-IMONTH = I_TM_LFA1-IMONTH. 

 

写完后肯定报错的,在TOP中加入声明变量

 

 

 

这只是我们自己程序的数据,,写完后还需要和SAP给的接口进行数据交接。

那么先不要看,想一想,接下来该干什么

没错应该在刚刚建立SE19 ZXK02TEST中对应的IF_EX_VENDOR_ADD_DATA_CS~SET_DATA 中写入代码

 

  DATA I_TM TYPE ZXK02_TEST.DATA I_ADDRESS TYPE ZADDRESS." DATA Z_KNVK TYPE FWYT1_TAB .
  I_TM-IPATH = I_LFA1-IPATH.
  I_TM-IDATE = I_LFA1-IDATE.
  I_TM-IMONTH = I_LFA1-IMONTH.

  IF FLT_VAL = 'ZV'.
    CALL FUNCTION 'ZE_VENDOR_DATA_READ' “调用刚刚写的函数
      EXPORTING
        I_ACTIVITY = I_ACTIVITY
        I_TM_LFA1  = I_TM.

  ENDIF.

 

“______________________________________读取完成____________________________

 

“保存数据建立新的函数,操作与读取一样,只是传入变成传出

 

 

 

 

E_TM-IPATH  = LFA1-IPATH.
    E_TM-IDATE =  LFA1-IDATE.
    E_TM-IMONTH = LFA1-IMONTH.

搞定

 

然后再想想,读取数据后接着在做什么?

 

回到SE19 只是换了个事件

IF_EX_VENDOR_ADD_DATA_CS~GET_DATA

 

 DATA:S_TM TYPE ZXK02_TEST.
    IF FLT_VAL = 'ZV' .

          CALL FUNCTION 'ZE_VENDOR_DATA_SAVE'
           IMPORTING
             E_TM          = S_TM
                    .
          S_LFA1-IPATH = S_TM-IPATH.
          S_LFA1-IDATE = S_TM-IDATE.
          S_LFA1-IMONTH = S_TM-IMONTH.

      endif.

 

激活,完成! 执行XK02不出意外增强屏幕到这一步算是完成了

 

如果需要判断值是否正确可以在保存写,不过不建立在此写,后面会加多一篇对值的判断!不是不想写在同一篇,实在是要分开了,不然别人搜的是非屏幕增强就搜不到文章了

 

posted @ 2019-05-02 11:34  SAP_Bin  阅读(2235)  评论(0编辑  收藏  举报