首页 > 其他 > 详细

BP 屏幕增强

时间:2020-07-22 18:54:51      阅读:244      评论:0      收藏:0      [点我收藏+]

1、 SE11  BUT000 表增强 CI_EEW_BUT000 , CI_EEW_BUT000_X

2、 再创建增强结构ZSBUT000_CUST (备用),该结构再DSAVB事件中使用

 技术分享图片

 

 

 

3、 创建函数组ZSD_BP ,增强相关的所有内容都需要放在此函数组中

技术分享图片

 

4、 在ZSD_BP的Include top中定义如下变量:这些变量会在后续的函数中使用到

 

 技术分享图片

 

 

 

TABLES:
  BUT000.
CONSTANTS:
  TABLE_NAME_BUT000 TYPE FSBP_TABLE_NAME VALUE ‘BUT000‘,
  FALSE             TYPE BOOLE-BOOLE     VALUE ‘ ‘.
DATA:
  GS_BUT000 TYPE BUT000.

  5、 创建屏幕9000,屏幕字段从表BUT000中生成 BUT000-XXXXX

技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 6、进行屏幕增强配置,进入TCODE :BUPT

技术分享图片

 

7、 创建应用程序 BUS1

 技术分享图片

 

 技术分享图片

 

 

8、 创建数据集 BUS23

 技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 9、创建字段组 BUS2

 技术分享图片

 

技术分享图片

 

 

配置字段组对应的字段

 技术分享图片

 

10、在函数组ZSD_BP中创建两个函数(无输入输出参数):

 

YSD_BUT000_PBO;

YSD_BUT000_PAI;

 

FUNCTION YSD_BUT000_PBO.
*"------------------------------------------------------------------
*"*"Local Interface:
*"------------------------------------------------------------------
  data:
     lt_but000   type table of but000.
* step 1: request data from xo for dynpro structure
   "if gs_but000 is initial.
     cvi_bdt_adapter=>data_pbo(
       exporting
         i_table_name = table_name_but000
       importing
         e_data_table = lt_but000[]
     ).
   "endif.
   if lt_but000[] is initial.
     clear gs_but000.
   else.
     read table lt_but000 into gs_but000 index 1.
   endif.
ENDFUNCTION.

  

FUNCTION YSD_BUT000_PAI.
*"------------------------------------------------------------------
*"*"Local Interface:
*"------------------------------------------------------------------
 data:lt_but000         type table of but000.
   field-symbols:
     <but000>          like line of lt_but000.

   check cvi_bdt_adapter=>is_direct_input_active( ) = false.
* step 1: update xo memory from dypro structure
   cvi_bdt_adapter=>get_current_bp_data(
     exporting
       i_table_name = table_name_but000
     importing
       e_data_table = lt_but000[]
   ).

   if lt_but000[] is initial.
     if gs_but000 is not initial.
       gs_but000-partner = cvi_bdt_adapter=>get_current_bp( ).
       append gs_but000 to lt_but000.
     endif.
   else.
     read table lt_but000 assigning <but000> index 1.
     <but000>-YD_CUSID        = gs_but000-YD_CUSID       .
     <but000>-YD_USSICCODE    = gs_but000-YD_USSICCODE   .
     <but000>-YD_CUSEMPLOYEE  = gs_but000-YD_CUSEMPLOYEE .
     <but000>-YD_CUSHIERARCHY = gs_but000-YD_CUSHIERARCHY.
     <but000>-YD_ANTURNOVER   = gs_but000-YD_ANTURNOVER  .
     <but000>-YD_USSICDESC    = gs_but000-YD_USSICDESC   .
     <but000>-YD_CUSNATDUNS   = gs_but000-YD_CUSNATDUNS  .
     <but000>-YD_CUSWWDUNS    = gs_but000-YD_CUSWWDUNS   .
     <but000>-YGMAID          = gs_but000-YGMAID         .
     <but000>-YENAME1         = gs_but000-YENAME1        .
     <but000>-YENAME2         = gs_but000-YENAME2        .
     <but000>-YEADSTR2        = gs_but000-YEADSTR2       .
     <but000>-YEADSTREET      = gs_but000-YEADSTREET     .
     <but000>-YEADHSNM        = gs_but000-YEADHSNM       .
     <but000>-YEADPSTCD       = gs_but000-YEADPSTCD      .
     <but000>-YEADCITY        = gs_but000-YEADCITY       .
     assign gs_but000 to <but000>.
   endif.

   cvi_bdt_adapter=>data_pai(
     i_table_name = table_name_but000
     i_data_new   = lt_but000[]
     i_validate   = false
   ).

ENDFUNCTION.

  11、创建视图BUS3

技术分享图片

 

将程序名、屏幕号、PBO、PAI函数分配给视图

技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 12、创建部分BUS4

 技术分享图片

 

 技术分享图片

 

技术分享图片

 

13、 创建屏幕BUS5

 技术分享图片

 

技术分享图片

 

 技术分享图片

 

 

 14、创建屏幕顺序BUS6

 技术分享图片

 

 技术分享图片

 

 15、 分配屏幕给屏幕顺序

技术分享图片

 

 16、定义屏幕顺序种类

技术分享图片

 

 技术分享图片

 

 17、对标准屏幕顺序分配自定义屏幕

技术分享图片

 

 技术分享图片

 

 18、业务伙伴视图BUSD

技术分享图片

 

 

选择要分配给的视图例如:

技术分享图片

 

 技术分享图片

 

 

分配调用应用

技术分享图片

 

 技术分享图片

 

 

配置完成目前状态BP界面可以看到页签,但是无法保存数据,需要定义事件

19、 定义事件

技术分享图片

技术分享图片

 

 

在函数组ZSD_BP中定义三个函数

 

1、ZFI_BUT000_EVENT_DSAVB 无传入传出参数,参数已经在top里面定义好了

FUNCTION ZFI_BUT000_EVENT_DSAVB.
*"------------------------------------------------------------------
*"*"Local Interface:
*"------------------------------------------------------------------
  DATA:LS_BUT000 TYPE BUT000.
  LS_BUT000 = BUT000.
  MOVE-CORRESPONDING GS_BUT000 TO BUT000.
  BUT000-YD_CUSID        = LS_BUT000-YD_CUSID       .
  BUT000-YD_USSICCODE    = LS_BUT000-YD_USSICCODE   .
  BUT000-YD_CUSEMPLOYEE  = LS_BUT000-YD_CUSEMPLOYEE .
  BUT000-YD_CUSHIERARCHY = LS_BUT000-YD_CUSHIERARCHY.
  BUT000-YD_ANTURNOVER   = LS_BUT000-YD_ANTURNOVER  .
  BUT000-YD_USSICDESC    = LS_BUT000-YD_USSICDESC   .
  BUT000-YD_CUSNATDUNS   = LS_BUT000-YD_CUSNATDUNS  .
  BUT000-YD_CUSWWDUNS    = LS_BUT000-YD_CUSWWDUNS   .
  BUT000-YGMAID          = LS_BUT000-YGMAID         .
  BUT000-YENAME1         = LS_BUT000-YENAME1        .
  BUT000-YENAME2         = LS_BUT000-YENAME2        .
  BUT000-YEADSTR2        = LS_BUT000-YEADSTR2       .
  BUT000-YEADSTREET      = LS_BUT000-YEADSTREET     .
  BUT000-YEADHSNM        = LS_BUT000-YEADHSNM       .
  BUT000-YEADPSTCD       = LS_BUT000-YEADPSTCD      .
  BUT000-YEADCITY        = LS_BUT000-YEADCITY       .
  CALL FUNCTION ‘BUP_BUPA_BUT000_COLLECT‘
    EXPORTING
      i_subname             = ‘YSBUT00_CUST‘
      i_but000              = BUT000
*     I_ALL_INTERVALS       = ‘ ‘
            .
ENDFUNCTION.

2、ZFI_BUT000_EVENT_ISDAT 无传入传出参数

 

FUNCTION ZFI_BUT000_EVENT_ISDAT.
*"------------------------------------------------------------------
*"*"Local Interface:
*"------------------------------------------------------------------

CALL FUNCTION ‘BUP_BUPA_BUT000_GET‘
 IMPORTING
   E_BUT000            = GS_BUT000
          .

  BUT000-YD_CUSID        = GS_BUT000-YD_CUSID       .
  BUT000-YD_USSICCODE    = GS_BUT000-YD_USSICCODE   .
  BUT000-YD_CUSEMPLOYEE  = GS_BUT000-YD_CUSEMPLOYEE .
  BUT000-YD_CUSHIERARCHY = GS_BUT000-YD_CUSHIERARCHY.
  BUT000-YD_ANTURNOVER   = GS_BUT000-YD_ANTURNOVER  .
  BUT000-YD_USSICDESC    = GS_BUT000-YD_USSICDESC   .
  BUT000-YD_CUSNATDUNS   = GS_BUT000-YD_CUSNATDUNS  .
  BUT000-YD_CUSWWDUNS    = GS_BUT000-YD_CUSWWDUNS   .
  BUT000-YGMAID          = GS_BUT000-YGMAID         .
  BUT000-YENAME1         = GS_BUT000-YENAME1        .
  BUT000-YENAME2         = GS_BUT000-YENAME2        .
  BUT000-YEADSTR2        = GS_BUT000-YEADSTR2       .
  BUT000-YEADSTREET      = GS_BUT000-YEADSTREET     .
  BUT000-YEADHSNM        = GS_BUT000-YEADHSNM       .
  BUT000-YEADPSTCD       = GS_BUT000-YEADPSTCD      .
  BUT000-YEADCITY        = GS_BUT000-YEADCITY       .

ENDFUNCTION.

3、ZFI_BUT000_EVENT_XCHNG 有传出参数 E_XCHNG        LIKE     BUS000FLDS-XCHNG

  技术分享图片

 

 

FUNCTION ZFI_BUT000_EVENT_XCHNG.
*"------------------------------------------------------------------
*"*"Local Interface:
*"  EXPORTING
*"     VALUE(E_XCHNG) LIKE  BUS000FLDS-XCHNG
*"------------------------------------------------------------------
IF
  GS_BUT000-YD_CUSID        NE BUT000-YD_CUSID        OR
  GS_BUT000-YD_USSICCODE    NE BUT000-YD_USSICCODE    OR
  GS_BUT000-YD_CUSEMPLOYEE  NE BUT000-YD_CUSEMPLOYEE  OR
  GS_BUT000-YD_CUSHIERARCHY NE BUT000-YD_CUSHIERARCHY OR
  GS_BUT000-YD_ANTURNOVER   NE BUT000-YD_ANTURNOVER   OR
  GS_BUT000-YD_USSICDESC    NE BUT000-YD_USSICDESC    OR
  GS_BUT000-YD_CUSNATDUNS   NE BUT000-YD_CUSNATDUNS   OR
  GS_BUT000-YD_CUSWWDUNS    NE BUT000-YD_CUSWWDUNS    OR
  GS_BUT000-YGMAID          NE BUT000-YGMAID          OR
  GS_BUT000-YENAME1         NE BUT000-YENAME1         OR
  GS_BUT000-YENAME2         NE BUT000-YENAME2         OR
  GS_BUT000-YEADSTR2        NE BUT000-YEADSTR2        OR
  GS_BUT000-YEADSTREET      NE BUT000-YEADSTREET      OR
  GS_BUT000-YEADHSNM        NE BUT000-YEADHSNM        OR
  GS_BUT000-YEADPSTCD       NE BUT000-YEADPSTCD       OR
  GS_BUT000-YEADCITY        NE BUT000-YEADCITY        .

  E_XCHNG = ‘X‘.
ENDIF.
ENDFUNCTION.

  

20、 将创建好的函数分配给对应的事件BUS7

技术分享图片

 

 技术分享图片

 

技术分享图片

 

 

到此的话页签增强已经结束

 

21、 接着我们将添加BP的interfance效果图如下

技术分享图片

 

22、在新界面(TCODE:BUS_HDRID)中增加一列

技术分享图片

 

 23、 同时在SM30(V_TBZJ1C)中去激活BP的对话框顺序

技术分享图片

 

 

同时在SM30(V_TBZJ1)

 技术分享图片

 

 24、 在业务伙伴视图 BUSD中维护:屏幕顺序 和 子标题ID

技术分享图片

技术分享图片

 

 

对于配置已经结束,接下来记录下调用BAPI创建BP的时候如何处理

FROM FM_CHANGE_EEW USING US_ALV01 TYPE TY_ALV01.
	DATA:LS_BUS000_EEW TYPE BUS000_EEW,
	            LS_BUS000_EEW_X TYPE BUS000_EEW_X,
	          LT_RETURN TYPE BUS_BAPIRET2_T.
	
	SELECT SINGLE PARTNER_GUID INTO LS_BUS000_EEW-PARTNR_GUID
		FROM BUT000
		WHERE PARTNER = US_ALV01-PARTNER.
	CHECK SY-SUBRC = 0.

	LS_BUS000_EEW-ZVBUND = US_ALV01-VBUND.
	LS_BUS000_EEW_X-PARTNR_GUID = 
	LS_BUS000_EEW_X-ZTEST =  ‘X’.

	CALL FUNCTION ‘BUPA_CENTRAL_CI_CHANGE’
		EXPORTING
		IS_BUS000_EEW = LS_BUS000_EEW
		IS_BUS000_EEW_X = LS_BUS000_EEW_X
		IMPORTING
		ET_RETURN = LT_RETURN.

  

 

BP 屏幕增强

原文:https://www.cnblogs.com/springzt/p/13362294.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!