CRM WEB UI 03搜索界面新建按钮调到详细界面

这个和上一个差不多,简单说下:

1.因为NEW是在创建搜索界面的时候加的,所以此时只需在结果界面重定义NEW事件:

  method EH_ONNEW.
    OP_NEW( ).
  endmethod.

2.结果界面创建外向插件NEW

  METHOD OP_NEW.
    DATA: LR_WINDOW TYPE REF TO CL_BSP_WD_WINDOW.
    LR_WINDOW = ME->VIEW_MANAGER->GET_WINDOW_CONTROLLER( ).
    LR_WINDOW->CALL_OUTBOUND_PLUG( 'NEWTODETAIL' ).
  ENDMETHOD.

3.WINDOW界面,创建外向插件NEWTODETAIL

  METHOD OP_NEWTODETAIL.
    FIRE_OUTBOUND_PLUG( IV_OUTBOUND_PLUG = 'NEWTODETAIL' ).
  ENDMETHOD.

 

查询组件结束,开始明细组件ZLYTEST03_H

1.WINDOW创建内向插件:FROMNEW

  METHOD IP_FROMNEW.
    VIEW_MANAGER->NAVIGATE( SOURCE_REP_VIEW = REP_VIEW
                          OUTBOUND_PLUG   = 'LINKTODETAIL' ).
  ENDMETHOD.

2.WINDOW中创建外向插件:LINKTODETAIL

3.概览页中创建内向插件FROMMAINWD(因为查询没有用BOL的查询,所以都是以VALUE NODE处理的,此处是给个初始化值)

    DATA:  LR_REF_ANY    TYPE REF TO DATA,
           GW_EKKO       TYPE EKKO,
           LR_VALUE_NODE TYPE REF TO CL_BSP_WD_VALUE_NODE.
    GET REFERENCE OF GW_EKKO INTO LR_REF_ANY.
    CREATE OBJECT LR_VALUE_NODE
      TYPE
      CL_BSP_WD_VALUE_NODE
      EXPORTING
        IV_DATA_REF = LR_REF_ANY.
    ME->TYPED_CONTEXT->RESULT->COLLECTION_WRAPPER->ADD( LR_VALUE_NODE ).
  ENDMETHOD.

如果是BOL,则用下面的:

  METHOD IP_FROMMAINWD.
    DATA:LR_CORE TYPE REF TO CL_CRM_BOL_CORE.
    DATA:LR_FACTORY TYPE REF TO CL_CRM_BOL_ENTITY_FACTORY.
    DATA:LR_DETAIL TYPE REF TO CL_CRM_BOL_ENTITY.
    DATA:LS_PARAMS TYPE CRMT_NAME_VALUE_PAIR,
         GW_EKKO   TYPE EKKO,
         LT_PARAMS TYPE CRMT_NAME_VALUE_PAIR_TAB.
    DATA:LR_FOUND TYPE REF TO IF_BOL_BO_PROPERTY_ACCESS.

    ME->TYPED_CONTEXT->DETAIL2->COLLECTION_WRAPPER->CLEAR( ).

    LS_PARAMS-NAME = 'EBELN'.
    LS_PARAMS-VALUE = '4200000999'.
    APPEND LS_PARAMS TO LT_PARAMS.

    LR_CORE = CL_CRM_BOL_CORE=>GET_INSTANCE( ).
    LR_FACTORY = LR_CORE->GET_ENTITY_FACTORY( 'ZEKKO' ).
    LR_DETAIL = LR_FACTORY->CREATE( LT_PARAMS ).

    CHECK LR_DETAIL IS BOUND.

    ME->TYPED_CONTEXT->DETAIL2->COLLECTION_WRAPPER->ADD( IV_ENTITY = LR_DETAIL
                                                        IV_SET_FOCUS = ABAP_TRUE ).

    IF LR_FOUND IS INITIAL.
      ME->TYPED_CONTEXT->DETAIL2->COLLECTION_WRAPPER->ADD( IV_ENTITY = LR_DETAIL
                                                        IV_SET_FOCUS = ABAP_TRUE ).
    ENDIF.
    CALL METHOD ME->SET_VIEW_GROUP_CONTEXT
      EXPORTING
        IV_PARENT_CONTEXT = VIEW_GROUP_CONTEXT
        IV_FIRST_TIME     = ABAP_TRUE.

    ME->VIEW_GROUP_CONTEXT->SET_ALL_EDITABLE( ).
  ENDMETHOD.

 

4.运行时中,创建NavigationalLinks LINKTODETAIL 丛WINDOW到概览页。

5.DETAIL的概览页,因为这时候会有空值直接跳转过来,所以需要重定义概览页的SET_VIEW_GROUP_CONTEXT

  method SET_VIEW_GROUP_CONTEXT.
    IF IV_FIRST_TIME EQ ABAP_TRUE AND VIEW_GROUP_CONTEXT IS INITIAL.
      IF IV_PARENT_CONTEXT IS INITIAL.
        CREATE OBJECT VIEW_GROUP_CONTEXT TYPE CL_BSP_WD_VIEW_GROUP_CONTEXT.
      ELSE.
        VIEW_GROUP_CONTEXT ?= IV_PARENT_CONTEXT.
      ENDIF.
    ENDIF.
  endmethod.

 

 

到这里,明细组件也完成了。。。取MAIN组件

1.创建NavigationalLink NEWTODETAIL 。。。。

完成。。。

转载于:https://www.cnblogs.com/sapSB/p/6340522.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值