zoukankan      html  css  js  c++  java
  • UI基础二:下拉,F4,OP等

    常用的搜索帮助有SE11的SH,域,值列表,组件等。。。下面介绍一下经常用的:

    一:下拉

    dropdown是最经常用的,也是最简单的一种。

    不管是查询条件,还是结果清单,还是明细界面,下拉都是一样的

    1.设置字段属性为下拉。(界面查询组件,视图,字段,使用F2)

    T-code:BSP_WD_CMPWB进入组件界面,输入组件

    选择左侧对应的视图双击:

    展开CONTEXT节点,选择对应的context node,点开属性

    设置GET_P:字段属性

      CASE iv_property.
        WHEN if_bsp_wd_model_setter_getter=>fp_fieldtype.
          rv_value = cl_bsp_dlc_view_descriptor=>field_type_picklist.
    
        WHEN if_bsp_wd_model_setter_getter=>fp_server_event .
          rv_value = 'ZSTAT'.
    
      ENDCASE.

    然后设置GET_V:VALUE 

    LR_CURRENT = ME->COLLECTION_WRAPPER->GET_CURRENT( ).
      CHECK LR_CURRENT IS BOUND.
      LR_CURRENT->GET_PROPERTIES( IMPORTING ES_ATTRIBUTES = LS_CURRENT ).
      CHECK LS_CURRENT-PROCESS_TYPE = 'ZWO3'.
    
      DATA:lt_ddlb TYPE bsp_wd_dropdown_table.
      DATA:ls_ddlb TYPE LINE OF bsp_wd_dropdown_table.
    
      DATA gr_ddlb_msale_gb TYPE REF TO cl_crm_uiu_ddlb.
    
      CREATE OBJECT gr_ddlb_msale_gb
        EXPORTING
          iv_source_type = 'T'.
    
      DATA:lt_tj30t TYPE TABLE OF tj30t,
           ls_tj30t TYPE          tj30t.
    
      SELECT *
        INTO TABLE lt_tj30t
        FROM tj30t
        WHERE STSMA = 'ZHIC_002'
        AND spras = sy-langu.
    
      LOOP AT lt_tj30t INTO ls_tj30t.
        ls_ddlb-key    = ls_tj30t-estat.
        ls_ddlb-value  = ls_tj30t-txt30.
        INSERT ls_ddlb INTO TABLE lt_ddlb.
    
        CLEAR: ls_tj30t,ls_ddlb.
      ENDLOOP.
    
      INSERT INITIAL LINE INTO lt_ddlb INDEX 1.
      IF sy-subrc = 0.
        gr_ddlb_msale_gb->set_selection_table( it_selection_table = lt_ddlb ).
      ENDIF.
    
      rv_valuehelp_descriptor = gr_ddlb_msale_gb.

     二:F4

    直接使用有搜索帮助或者有域的数据元素,或者手动给字段添加搜索帮助

    设置GET_V(map字段一定要对好,inmap是输入字段,这里使用ZZZSYMPTOMSGROUP对应到搜索帮助的CODEGRUPPE  ZZSECTIONCODE 对应 CODE 

    OUT 对应输出字段,对应到界面字段,如果没有默认值和搜索项之类的,可以只使用outmap)

      DATA:
        ls_map       TYPE if_bsp_wd_valuehelp_f4descr=>gtype_param_mapping,
        lt_inmap     TYPE if_bsp_wd_valuehelp_f4descr=>gtype_param_mapping_tab,
        lt_outmap    TYPE if_bsp_wd_valuehelp_f4descr=>gtype_param_mapping_tab,
        lr_entity    TYPE REF TO cl_crm_bol_entity.
    
    
      ls_map-context_attr = 'STRUCT.ZZZSYMPTOMSGROUP'.
      ls_map-f4_attr      = 'CODEGRUPPE'.
      APPEND ls_map TO: lt_inmap.
      ls_map-context_attr = 'EXT.ZZSECTIONCODE'.
      ls_map-f4_attr      = 'CODE'.
      APPEND ls_map TO: lt_inmap.
    
      ls_map-context_attr = 'EXT.ZZSECTIONCODE'.
      ls_map-f4_attr      = 'CODE'.
      APPEND ls_map TO lt_outmap.
      ls_map-context_attr = 'ZSEC_DESC'.
      ls_map-f4_attr      = ' KURZTEXT'.
      APPEND ls_map TO lt_outmap.
    
    
      lr_entity ?= me->collection_wrapper->get_current( ).
      CREATE OBJECT rv_valuehelp_descriptor
        TYPE
          cl_bsp_wd_valuehelp_f4descr
        EXPORTING
          iv_help_id                  = 'ZPQCODE_Z6'
          iv_help_id_kind             = if_bsp_wd_valuehelp_f4descr=>help_id_kind_name
          iv_input_mapping            = lt_inmap
          iv_output_mapping           = lt_outmap
          iv_trigger_submit           = abap_true
          iv_object_ref               = lr_entity.

     三:组件搜索帮助:一般顾问就喜欢用标准的BP的那个搜索帮助,所以很多项目中只要是BP的字段,都会要求用那个搜索帮助。

    添加组件为搜索帮助

    METHOD BP_ACCOUNT_SEARCH.
    * only used for account search - Employee and Contact have separate search
    
      DATA : LV_TITLE           TYPE STRING,
             LV_EVENTNAME       TYPE STRING,
             LR_QS              TYPE REF TO CL_CRM_BOL_DQUERY_SERVICE,
             LR_CURRENT         TYPE REF TO CL_CRM_BOL_ENTITY,
             LR_COL             TYPE REF TO IF_BOL_BO_COL,
             LR_CONTEXT         TYPE REF TO CL_BSP_WD_CONTEXT_NODE,
             LV_EMPRESP         TYPE STRING,
             LV_COLLECTION      TYPE REF TO IF_BOL_BO_COL,
             LR_BTPARTNERSET    TYPE REF TO CL_CRM_BOL_ENTITY,
             LR_BTPARTNER       TYPE REF TO CL_CRM_BOL_ENTITY,
             LR_PARTNERSET_CTXT TYPE REF TO CL_CRM_UIU_BTPARTNERSET_CN.
      DATA:   LV_LOW TYPE STRING.
      DATA:   LS_SELECTION TYPE        GENILT_SELECTION_PARAMETER,
              LR_VALUENODE TYPE REF TO CL_BSP_WD_VALUE_NODE,
              LR_REF_ANY   TYPE REF TO DATA.
    
      FIELD-SYMBOLS: <LV_CONTEXT_NODE>            TYPE ANY,
                     <LV_PARTNERSET_CONTEXT_NODE> TYPE ANY.
      DATA:    LR_PARAM    TYPE REF TO IF_BOL_BO_PROPERTY_ACCESS,
               LR_ITERATOR TYPE REF TO IF_BOL_BO_COL_ITERATOR,
               LT_PARAMS   TYPE  GENILT_SELECTION_PARAMETER_TAB.
      DATA:    LS_GENERAL          TYPE  ZCORDER_GENERAL.
    
      DATA LV_SALES_ORG TYPE CRMT_SALES_ORG.
      DATA LV_LAND TYPE LAND1."当前账号所属国家
      CALL FUNCTION 'Z_GET_SALESORG_BY_USER'
        EXPORTING
          IV_USER    = SY-UNAME
        IMPORTING
          EV_COUNTRY = LV_LAND.
    
      LR_CURRENT ?= ME->TYPED_CONTEXT->ZCORDER->COLLECTION_WRAPPER->GET_CURRENT( ).
      LR_CURRENT->GET_PROPERTIES( IMPORTING ES_ATTRIBUTES = LS_GENERAL ).
    
      IF LS_GENERAL-COUNTRY EQ 'JP' AND ( IV_ROLE = 'ZHSI0CNN' OR IV_ROLE = 'RELAIER' ).
        ZCL_CRM_BUFFER=>GV_JP_FLAG = 'X'.
      ELSE.
        CLEAR ZCL_CRM_BUFFER=>GV_JP_FLAG.
      ENDIF.
    
      CASE IV_ROLE.
        WHEN 'SOLDTO'.
          LV_TITLE = CL_WD_UTILITIES=>GET_OTR_TEXT_BY_ALIAS( 'CRM_UIU_BT/PARTNER_SEARCH' ).
          IF BPSEARCH_ACCOUNT_POPUP IS NOT BOUND.
            BPSEARCH_ACCOUNT_POPUP = COMP_CONTROLLER->WINDOW_MANAGER->CREATE_POPUP(
                IV_INTERFACE_VIEW_NAME = 'SearchHelpWindow'     "#EC NOTEXT
                IV_USAGE_NAME = 'CUBPSearchAccount'
                IV_TITLE = LV_TITLE ).
          ENDIF.
    
    * set display mode
          BPSEARCH_ACCOUNT_POPUP->SET_DISPLAY_MODE( IF_BSP_WD_POPUP=>C_DISPLAY_MODE_SURROUNDED ).
    * Open the Popup
          BPSEARCH_ACCOUNT_POPUP->OPEN( IV_INBOUND_PLUG = 'CLEAR_ALL' ).
    
    * Role dependand Event
          CONCATENATE 'SEL' IV_ROLE INTO LV_EVENTNAME.
          BPSEARCH_ACCOUNT_POPUP->SET_ON_CLOSE_EVENT( IV_VIEW = ME IV_EVENT_NAME = LV_EVENTNAME ).
    *     Get Query Context node
          LR_CONTEXT = BPSEARCH_ACCOUNT_POPUP->GET_CONTEXT_NODE( 'SEARCH' ).
          CHECK LR_CONTEXT IS BOUND.
    *     Get DQuery object to add search parameter
          LR_QS ?= LR_CONTEXT->COLLECTION_WRAPPER->GET_CURRENT( ).
          CHECK LR_QS IS BOUND.
          LR_COL = LR_QS->GET_SELECTION_PARAMS( ).
          IF IV_ROLE = 'SERPR' OR IV_ROLE = 'RELAIER' OR IV_ROLE = 'SOLDTO'.
            CASE IV_ROLE.
              WHEN 'SERPR'.
                LV_LOW = 'Z003'.
                LS_SELECTION-ATTR_NAME = 'ZBP_GROUP'.
                LS_SELECTION-SIGN = 'I'.
                LS_SELECTION-OPTION = 'EQ'.
                LS_SELECTION-LOW  = LV_LOW .
                GET REFERENCE OF LS_SELECTION  INTO LR_REF_ANY.
                CREATE OBJECT LR_VALUENODE
                  TYPE
                  CL_BSP_WD_VALUE_NODE
                  EXPORTING
                    IV_DATA_REF = LR_REF_ANY.
                LR_COL->ADD( LR_VALUENODE ).
              WHEN 'RELAIER'.
                LV_LOW = 'Z005'.
                LS_SELECTION-ATTR_NAME = 'ZBP_GROUP'.
                LS_SELECTION-SIGN = 'I'.
                LS_SELECTION-OPTION = 'EQ'.
                LS_SELECTION-LOW  = LV_LOW .
                GET REFERENCE OF LS_SELECTION  INTO LR_REF_ANY.
                CREATE OBJECT LR_VALUENODE
                  TYPE
                  CL_BSP_WD_VALUE_NODE
                  EXPORTING
                    IV_DATA_REF = LR_REF_ANY.
                LR_COL->ADD( LR_VALUENODE ).
              WHEN 'SOLDTO'.
                IF SY-LANGU = 'J'."ADD BY LY 20170328
                  LR_QS->ADD_SELECTION_PARAM( IV_ATTR_NAME = 'COUNTRY'
                                    IV_SIGN      = 'I'
                                    IV_OPTION    =  'EQ'
                                    IV_LOW       = 'JP' ).
                ENDIF.
    
            ENDCASE.
          ENDIF.
          IF ZCL_CRM_BUFFER=>GV_UI_LOGIN_ORG = 'O 50000297'.
            LV_LOW = LS_GENERAL-SALES_ORG.
                    LR_QS->ADD_SELECTION_PARAM( IV_ATTR_NAME = 'CATEGORY'
                                       IV_SIGN      = 'I'
                                       IV_OPTION    =  'EQ'
                                       IV_LOW       =   '1' ).
            LR_QS->ADD_SELECTION_PARAM( IV_ATTR_NAME = 'ZSALES_ORG'
                                       IV_SIGN      = 'I'
                                       IV_OPTION    =  'EQ'
                                       IV_LOW       =   LV_LOW ).
    
            LR_QS->ADD_SELECTION_PARAM( IV_ATTR_NAME = 'ZBP_GROUP'
                                        IV_SIGN      = 'I'
                                        IV_OPTION    =  'EQ'
                                        IV_LOW       = 'Z005' ).
            LR_QS->ADD_SELECTION_PARAM( IV_ATTR_NAME = 'ZBP_GROUP'
                                        IV_SIGN      = 'I'
                                        IV_OPTION    =  'EQ'
                                        IV_LOW       = 'Z006' ).
            LR_QS->ADD_SELECTION_PARAM( IV_ATTR_NAME = 'ZBP_GROUP'
                                        IV_SIGN      = 'I'
                                        IV_OPTION    =  'EQ'
                                        IV_LOW       = 'Z021' ).
          ENDIF.
    
          LR_COL = LR_QS->GET_SELECTION_PARAMS( ).
          LR_ITERATOR   = LR_COL->GET_ITERATOR( ).
          LR_PARAM      = LR_ITERATOR->GET_FIRST( ).
          WHILE LR_PARAM IS BOUND.
            LR_PARAM->GET_PROPERTIES( IMPORTING ES_ATTRIBUTES = LS_SELECTION ).
            IF ls_selection-attr_name = 'ZBP_GROUP' AND ls_selection-low IS INITIAL AND ZCL_CRM_BUFFER=>GV_UI_LOGIN_ORG = 'O 50000297'..
              lr_col->remove( lr_param ).
              lr_param = lr_iterator->get_current( ).
              CONTINUE.
    *          EXIT.
            ENDIF.
            IF ls_selection-attr_name = 'ZSALES_ORG' AND ls_selection-low IS INITIAL AND ZCL_CRM_BUFFER=>GV_UI_LOGIN_ORG = 'O 50000297'..
              lr_col->remove( lr_param ).
              lr_param = lr_iterator->get_current( ).
              CONTINUE.
    *          EXIT.
            ENDIF.
            IF LS_GENERAL-COUNTRY EQ 'JP' AND LS_SELECTION-ATTR_NAME = 'COUNTRY' AND LS_SELECTION-LOW IS INITIAL.
              LR_COL->REMOVE( LR_PARAM ).
              LR_PARAM = LR_ITERATOR->GET_CURRENT( ).
              CONTINUE.
    *          EXIT.
            ENDIF.
            LR_PARAM = LR_ITERATOR->GET_NEXT( ).
          ENDWHILE.
    
          BPSEARCH_ACCOUNT_POPUP->OPEN( IV_INBOUND_PLUG = 'CLEAR_ALL'
                                         IV_COLLECTION =    LR_COL ).
        WHEN 'SERPR'.
    
          LV_TITLE = CL_WD_UTILITIES=>GET_OTR_TEXT_BY_ALIAS( 'CRM_UIU_BT/PARTNER_SEARCH' ).
          IF BPSEARCH_ACCOUNT_POPUP1 IS NOT BOUND.
            BPSEARCH_ACCOUNT_POPUP1 = COMP_CONTROLLER->WINDOW_MANAGER->CREATE_POPUP(
                IV_INTERFACE_VIEW_NAME = 'SearchHelpWindow'     "#EC NOTEXT
                IV_USAGE_NAME = 'CUBPSearchAccount'
                IV_TITLE = LV_TITLE ).
          ENDIF.
    
    * set display mode
          BPSEARCH_ACCOUNT_POPUP1->SET_DISPLAY_MODE( IF_BSP_WD_POPUP=>C_DISPLAY_MODE_SURROUNDED ).
    * Open the Popup
          BPSEARCH_ACCOUNT_POPUP1->OPEN( IV_INBOUND_PLUG = 'CLEAR_ALL' ).
    
    * Role dependand Event
          CONCATENATE 'SEL' IV_ROLE INTO LV_EVENTNAME.
          BPSEARCH_ACCOUNT_POPUP1->SET_ON_CLOSE_EVENT( IV_VIEW = ME IV_EVENT_NAME = LV_EVENTNAME ).
    *     Get Query Context node
          LR_CONTEXT = BPSEARCH_ACCOUNT_POPUP1->GET_CONTEXT_NODE( 'SEARCH' ).
          CHECK LR_CONTEXT IS BOUND.
    *     Get DQuery object to add search parameter
          LR_QS ?= LR_CONTEXT->COLLECTION_WRAPPER->GET_CURRENT( ).
          CHECK LR_QS IS BOUND.
          LR_CURRENT ?= ME->TYPED_CONTEXT->ZCORDER->COLLECTION_WRAPPER->GET_CURRENT( ).
          LR_CURRENT->GET_PROPERTIES( IMPORTING ES_ATTRIBUTES = LS_GENERAL ).
          LV_LOW = LS_GENERAL-SALES_ORG.
          LR_QS->ADD_SELECTION_PARAM( IV_ATTR_NAME = 'ZSALES_ORG'
                                     IV_SIGN      = 'I'
                                     IV_OPTION    =  'EQ'
                                     IV_LOW       =   LV_LOW ).
    
          LR_QS->ADD_SELECTION_PARAM( IV_ATTR_NAME = 'ZBP_GROUP'
                                      IV_SIGN      = 'I'
                                      IV_OPTION    =  'EQ'
                                      IV_LOW       = 'Z003' ).
    
          IF SY-LANGU = 'J'.
            LR_QS->ADD_SELECTION_PARAM( IV_ATTR_NAME = 'COUNTRY'
                              IV_SIGN      = 'I'
                              IV_OPTION    =  'EQ'
                              IV_LOW       = 'JP' ).
          ENDIF.
    
          LR_COL = LR_QS->GET_SELECTION_PARAMS( ).
          LR_ITERATOR   = LR_COL->GET_ITERATOR( ).
          LR_PARAM      = LR_ITERATOR->GET_FIRST( ).
          WHILE LR_PARAM IS BOUND.
            LR_PARAM->GET_PROPERTIES( IMPORTING ES_ATTRIBUTES = LS_SELECTION ).
            IF LS_SELECTION-ATTR_NAME = 'ZBP_GROUP' AND LS_SELECTION-LOW IS INITIAL.
              LR_COL->REMOVE( LR_PARAM ).
              LR_PARAM = LR_ITERATOR->GET_CURRENT( ).
              CONTINUE.
    *          EXIT.
            ENDIF.
            IF LS_GENERAL-COUNTRY EQ 'JP' AND LS_SELECTION-ATTR_NAME = 'COUNTRY' AND LS_SELECTION-LOW IS INITIAL.
              LR_COL->REMOVE( LR_PARAM ).
              LR_PARAM = LR_ITERATOR->GET_CURRENT( ).
              CONTINUE.
    *          EXIT.
            ENDIF.
            LR_PARAM = LR_ITERATOR->GET_NEXT( ).
          ENDWHILE.
          LR_PARAM      = LR_ITERATOR->GET_FIRST( ).
          WHILE LR_PARAM IS BOUND.
            LR_PARAM->GET_PROPERTIES( IMPORTING ES_ATTRIBUTES = LS_SELECTION ).
            IF LS_SELECTION-ATTR_NAME = 'ZSALES_ORG' AND LS_SELECTION-LOW IS INITIAL.
              LR_COL->REMOVE( LR_PARAM ).
              EXIT.
            ENDIF.
            LR_PARAM = LR_ITERATOR->GET_NEXT( ).
          ENDWHILE.
    
    
          BPSEARCH_ACCOUNT_POPUP1->OPEN( IV_INBOUND_PLUG = 'CLEAR_ALL'
                                         IV_COLLECTION =    LR_COL ).
        WHEN 'RELAIER' OR 'CONSIGNOR'.
          LV_TITLE = CL_WD_UTILITIES=>GET_OTR_TEXT_BY_ALIAS( 'CRM_UIU_BT/PARTNER_SEARCH' ).
          IF BPSEARCH_ACCOUNT_POPUP2 IS NOT BOUND.
            BPSEARCH_ACCOUNT_POPUP2 = COMP_CONTROLLER->WINDOW_MANAGER->CREATE_POPUP(
                IV_INTERFACE_VIEW_NAME = 'SearchHelpWindow'     "#EC NOTEXT
                IV_USAGE_NAME = 'CUBPSearchAccount'
                IV_TITLE = LV_TITLE ).
          ENDIF.
    
    * set display mode
          BPSEARCH_ACCOUNT_POPUP2->SET_DISPLAY_MODE( IF_BSP_WD_POPUP=>C_DISPLAY_MODE_SURROUNDED ).
    * Open the Popup
          BPSEARCH_ACCOUNT_POPUP2->OPEN( IV_INBOUND_PLUG = 'CLEAR_ALL' ).
    * Role dependand Event
          CONCATENATE 'SEL' IV_ROLE INTO LV_EVENTNAME.
          BPSEARCH_ACCOUNT_POPUP2->SET_ON_CLOSE_EVENT( IV_VIEW = ME IV_EVENT_NAME = LV_EVENTNAME ).
    *     Get Query Context node
          LR_CONTEXT = BPSEARCH_ACCOUNT_POPUP2->GET_CONTEXT_NODE( 'SEARCH' ).
          CHECK LR_CONTEXT IS BOUND.
    *     Get DQuery object to add search parameter
          LR_QS ?= LR_CONTEXT->COLLECTION_WRAPPER->GET_CURRENT( ).
          CHECK LR_QS IS BOUND.
    
    *********add by dq-yuw 南非retailer 分组为z006
          IF LV_LAND EQ 'ZA' OR LS_GENERAL-COUNTRY EQ 'ZA'..
    *        lr_qs->add_selection_param( iv_attr_name = 'ZBP_GROUP'
    *                                    iv_sign      = 'I'
    *                                    iv_option    =  'EQ'
    *                                    iv_low       = 'Z006' ).
    
            LR_QS->ADD_SELECTION_PARAM( IV_ATTR_NAME = 'PARTNER'
                                        IV_SIGN      = 'I'
                                        IV_OPTION    =  'SW'
                                        IV_LOW       = '5' ).
          ELSE.
            LR_QS->ADD_SELECTION_PARAM( IV_ATTR_NAME = 'ZBP_GROUP'
                                      IV_SIGN      = 'I'
                                      IV_OPTION    =  'EQ'
                                      IV_LOW       = 'Z005' ).
            IF IV_ROLE = 'CONSIGNOR'.
              LR_QS->ADD_SELECTION_PARAM( IV_ATTR_NAME = 'ZBP_GROUP'
                              IV_SIGN      = 'I'
                              IV_OPTION    =  'EQ'
                              IV_LOW       = 'Z006' ).
            ENDIF.
            IF IV_ROLE = 'RELAIER'.
              IF  LV_LAND EQ 'FR' OR ZCL_CRM_BUFFER=>GV_UI_LOGIN_ORG = 'O 50000297'...
                LR_QS->ADD_SELECTION_PARAM( IV_ATTR_NAME = 'ZBP_GROUP'
                                IV_SIGN      = 'I'
                                IV_OPTION    =  'EQ'
                                IV_LOW       = 'Z006' ).
              ENDIF.
            ENDIF.
    
          ENDIF.
    
          IF LS_GENERAL-COUNTRY EQ 'JP'.
            IF IV_ROLE <> 'CONSIGNOR'.
              LR_QS->ADD_SELECTION_PARAM( IV_ATTR_NAME = 'ZBP_GROUP'
                      IV_SIGN      = 'I'
                      IV_OPTION    =  'EQ'
                      IV_LOW       = 'Z006' ).
            ENDIF.
    
            LR_QS->ADD_SELECTION_PARAM( IV_ATTR_NAME = 'ZBP_GROUP'
                    IV_SIGN      = 'I'
                    IV_OPTION    =  'EQ'
                    IV_LOW       = 'Z010' ).
          ENDIF.
    ****************end add
          IF SY-LANGU = 'J'."ADD BY LY 20170328
            LR_QS->ADD_SELECTION_PARAM( IV_ATTR_NAME = 'COUNTRY'
                              IV_SIGN      = 'I'
                              IV_OPTION    =  'EQ'
                              IV_LOW       = 'JP' ).
          ENDIF.
    
          LR_CURRENT ?= ME->TYPED_CONTEXT->ZCORDER->COLLECTION_WRAPPER->GET_CURRENT( ).
          LR_CURRENT->GET_PROPERTIES( IMPORTING ES_ATTRIBUTES = LS_GENERAL ).
          LV_LOW = LS_GENERAL-SALES_ORG.
          LR_QS->ADD_SELECTION_PARAM( IV_ATTR_NAME = 'ZSALES_ORG'
                                     IV_SIGN      = 'I'
                                     IV_OPTION    =  'EQ'
                                     IV_LOW       =   LV_LOW ).
          LR_COL = LR_QS->GET_SELECTION_PARAMS( ).
          LR_ITERATOR   = LR_COL->GET_ITERATOR( ).
          LR_PARAM      = LR_ITERATOR->GET_FIRST( ).
          WHILE LR_PARAM IS BOUND.
            LR_PARAM->GET_PROPERTIES( IMPORTING ES_ATTRIBUTES = LS_SELECTION ).
            IF LS_SELECTION-ATTR_NAME = 'ZBP_GROUP' AND LS_SELECTION-LOW IS INITIAL.
              LR_COL->REMOVE( LR_PARAM ).
              LR_PARAM = LR_ITERATOR->GET_CURRENT( ).
              CONTINUE.
    *          EXIT.
            ENDIF.
            IF LS_GENERAL-COUNTRY EQ 'JP' AND LS_SELECTION-ATTR_NAME = 'COUNTRY' AND LS_SELECTION-LOW IS INITIAL.
              LR_COL->REMOVE( LR_PARAM ).
              LR_PARAM = LR_ITERATOR->GET_CURRENT( ).
              CONTINUE.
    *          EXIT.
            ENDIF.
            LR_PARAM = LR_ITERATOR->GET_NEXT( ).
          ENDWHILE.
          LR_PARAM      = LR_ITERATOR->GET_FIRST( ).
          WHILE LR_PARAM IS BOUND.
            LR_PARAM->GET_PROPERTIES( IMPORTING ES_ATTRIBUTES = LS_SELECTION ).
            IF LS_SELECTION-ATTR_NAME = 'ZSALES_ORG' AND LS_SELECTION-LOW IS INITIAL.
              LR_COL->REMOVE( LR_PARAM ).
              EXIT.
            ENDIF.
            LR_PARAM = LR_ITERATOR->GET_NEXT( ).
          ENDWHILE.
    
          BPSEARCH_ACCOUNT_POPUP2->OPEN( IV_INBOUND_PLUG = 'CLEAR_ALL'
                                         IV_COLLECTION =    LR_COL ).
    
        WHEN 'NETWORK' OR 'ZHSI0CNN'.
          LV_TITLE = CL_WD_UTILITIES=>GET_OTR_TEXT_BY_ALIAS( 'CRM_UIU_BT/PARTNER_SEARCH' ).
          IF BPSEARCH_ACCOUNT_POPUP2 IS NOT BOUND.
            BPSEARCH_ACCOUNT_POPUP2 = COMP_CONTROLLER->WINDOW_MANAGER->CREATE_POPUP(
                IV_INTERFACE_VIEW_NAME = 'SearchHelpWindow'     "#EC NOTEXT
                IV_USAGE_NAME = 'CUBPSearchAccount'
                IV_TITLE = LV_TITLE ).
          ENDIF.
    
    * set display mode
          BPSEARCH_ACCOUNT_POPUP2->SET_DISPLAY_MODE( IF_BSP_WD_POPUP=>C_DISPLAY_MODE_SURROUNDED ).
    * Open the Popup
          BPSEARCH_ACCOUNT_POPUP2->OPEN( IV_INBOUND_PLUG = 'CLEAR_ALL' ).
    * Role dependand Event
          CONCATENATE 'SEL' IV_ROLE INTO LV_EVENTNAME.
          BPSEARCH_ACCOUNT_POPUP2->SET_ON_CLOSE_EVENT( IV_VIEW = ME IV_EVENT_NAME = LV_EVENTNAME ).
    *     Get Query Context node
          LR_CONTEXT = BPSEARCH_ACCOUNT_POPUP2->GET_CONTEXT_NODE( 'SEARCH' ).
          CHECK LR_CONTEXT IS BOUND.
    *     Get DQuery object to add search parameter
          LR_QS ?= LR_CONTEXT->COLLECTION_WRAPPER->GET_CURRENT( ).
          CHECK LR_QS IS BOUND.
          IF SY-LANGU = 'J'."ADD BY LY 20170328
            LR_QS->ADD_SELECTION_PARAM( IV_ATTR_NAME = 'COUNTRY'
                              IV_SIGN      = 'I'
                              IV_OPTION    =  'EQ'
                              IV_LOW       = 'JP' ).
          ENDIF.
    
          LR_QS->ADD_SELECTION_PARAM( IV_ATTR_NAME = 'ZBP_GROUP'
                                      IV_SIGN      = 'I'
                                      IV_OPTION    =  'EQ'
                                      IV_LOW       = 'Z010' ).
    
          IF LS_GENERAL-COUNTRY EQ 'JP'.
            LR_QS->ADD_SELECTION_PARAM( IV_ATTR_NAME = 'ZBP_GROUP'
                                 IV_SIGN      = 'I'
                                 IV_OPTION    =  'EQ'
                                 IV_LOW       = 'Z006' ).
          ENDIF.
    
    *      lr_current ?= me->typed_context->zcorder->collection_wrapper->get_current( ).
    *      lr_current->get_properties( IMPORTING es_attributes = ls_general ).
    *      lv_low = ls_general-sales_org.
    *      lr_qs->add_selection_param( iv_attr_name = 'ZSALES_ORG'
    *                                 iv_sign      = 'I'
    *                                 iv_option    =  'EQ'
    *                                 iv_low       =   lv_low ).
          LR_COL = LR_QS->GET_SELECTION_PARAMS( ).
          LR_ITERATOR   = LR_COL->GET_ITERATOR( ).
          LR_PARAM      = LR_ITERATOR->GET_FIRST( ).
          WHILE LR_PARAM IS BOUND.
            LR_PARAM->GET_PROPERTIES( IMPORTING ES_ATTRIBUTES = LS_SELECTION ).
            IF LS_SELECTION-ATTR_NAME = 'ZBP_GROUP' AND LS_SELECTION-LOW IS INITIAL.
              LR_COL->REMOVE( LR_PARAM ).
              LR_PARAM = LR_ITERATOR->GET_CURRENT( ).
              CONTINUE.
            ENDIF.
            IF LS_GENERAL-COUNTRY EQ 'JP' AND LS_SELECTION-ATTR_NAME = 'COUNTRY' AND LS_SELECTION-LOW IS INITIAL.
              LR_COL->REMOVE( LR_PARAM ).
              LR_PARAM = LR_ITERATOR->GET_CURRENT( ).
              CONTINUE.
            ENDIF.
            LR_PARAM = LR_ITERATOR->GET_NEXT( ).
          ENDWHILE.
    
          BPSEARCH_ACCOUNT_POPUP2->OPEN( IV_INBOUND_PLUG = 'CLEAR_ALL'
                                         IV_COLLECTION =    LR_COL ).
        WHEN 'LOGICAL'.
          LV_TITLE = CL_WD_UTILITIES=>GET_OTR_TEXT_BY_ALIAS( 'CRM_UIU_BT/PARTNER_SEARCH' ).
          IF BPSEARCH_ACCOUNT_POPUP IS NOT BOUND.
            BPSEARCH_ACCOUNT_POPUP = COMP_CONTROLLER->WINDOW_MANAGER->CREATE_POPUP(
                IV_INTERFACE_VIEW_NAME = 'SearchHelpWindow'     "#EC NOTEXT
                IV_USAGE_NAME = 'CUBPSearchAccount'
                IV_TITLE = LV_TITLE ).
          ENDIF.
    
    * set display mode
          BPSEARCH_ACCOUNT_POPUP->SET_DISPLAY_MODE( IF_BSP_WD_POPUP=>C_DISPLAY_MODE_SURROUNDED ).
    * Open the Popup
          BPSEARCH_ACCOUNT_POPUP->OPEN( IV_INBOUND_PLUG = 'CLEAR_ALL' ).
    * Role dependand Event
          CONCATENATE 'SEL' IV_ROLE INTO LV_EVENTNAME.
          BPSEARCH_ACCOUNT_POPUP->SET_ON_CLOSE_EVENT( IV_VIEW = ME IV_EVENT_NAME = LV_EVENTNAME ).
    *     Get Query Context node
          LR_CONTEXT = BPSEARCH_ACCOUNT_POPUP->GET_CONTEXT_NODE( 'SEARCH' ).
          CHECK LR_CONTEXT IS BOUND.
    *     Get DQuery object to add search parameter
          LR_QS ?= LR_CONTEXT->COLLECTION_WRAPPER->GET_CURRENT( ).
          CHECK LR_QS IS BOUND.
    *      IF SY-LANGU = 'J'.
    *        lr_qs->add_selection_param( iv_attr_name = 'COUNTRY'
    *                                  iv_sign      = 'I'
    *                                  iv_option    =  'EQ'
    *                                  iv_low       = 'JP' ).
    *      ENDIF.
    
          LR_QS->ADD_SELECTION_PARAM( IV_ATTR_NAME = 'ZBP_GROUP'
                                      IV_SIGN      = 'I'
                                      IV_OPTION    =  'EQ'
                                      IV_LOW       = 'Z003' ).
          LR_CURRENT ?= ME->TYPED_CONTEXT->ZCORDER->COLLECTION_WRAPPER->GET_CURRENT( ).
          LR_CURRENT->GET_PROPERTIES( IMPORTING ES_ATTRIBUTES = LS_GENERAL ).
          LV_LOW = LS_GENERAL-SALES_ORG.
          IF LV_LOW IS NOT INITIAL.
            LR_QS->ADD_SELECTION_PARAM( IV_ATTR_NAME = 'ZSALES_ORG'
                                       IV_SIGN      = 'I'
                                       IV_OPTION    =  'EQ'
                                       IV_LOW       =   LV_LOW ).
          ENDIF.
    
          LV_LOW = LS_GENERAL-COUNTRY.
          IF LV_LOW IS NOT INITIAL.
            LR_QS->ADD_SELECTION_PARAM( IV_ATTR_NAME = 'COUNTRY'
                                       IV_SIGN      = 'I'
                                       IV_OPTION    =  'EQ'
                                       IV_LOW       =   LV_LOW ).
          ENDIF.
    
          LR_COL = LR_QS->GET_SELECTION_PARAMS( ).
          LR_ITERATOR   = LR_COL->GET_ITERATOR( ).
          LR_PARAM      = LR_ITERATOR->GET_FIRST( ).
          WHILE LR_PARAM IS BOUND.
            LR_PARAM->GET_PROPERTIES( IMPORTING ES_ATTRIBUTES = LS_SELECTION ).
            IF LS_SELECTION-ATTR_NAME = 'ZBP_GROUP' AND LS_SELECTION-LOW IS INITIAL.
              LR_COL->REMOVE( LR_PARAM ).
              LR_PARAM = LR_ITERATOR->GET_CURRENT( ).
              CONTINUE.
            ENDIF.
            IF LS_GENERAL-COUNTRY EQ 'JP' AND LS_SELECTION-ATTR_NAME = 'COUNTRY' AND LS_SELECTION-LOW IS INITIAL.
              LR_COL->REMOVE( LR_PARAM ).
              LR_PARAM = LR_ITERATOR->GET_CURRENT( ).
              CONTINUE.
            ENDIF.
            LR_PARAM = LR_ITERATOR->GET_NEXT( ).
          ENDWHILE.
    
        WHEN 'ZHSI0DEL'.
          LV_TITLE = CL_WD_UTILITIES=>GET_OTR_TEXT_BY_ALIAS( 'CRM_UIU_BT/PARTNER_SEARCH' ).
          IF BPSEARCH_ACCOUNT_POPUP2 IS NOT BOUND.
            BPSEARCH_ACCOUNT_POPUP2 = COMP_CONTROLLER->WINDOW_MANAGER->CREATE_POPUP(
                IV_INTERFACE_VIEW_NAME = 'SearchHelpWindow'     "#EC NOTEXT
                IV_USAGE_NAME = 'CUBPSearchAccount'
                IV_TITLE = LV_TITLE ).
          ENDIF.
    
    * set display mode
          BPSEARCH_ACCOUNT_POPUP2->SET_DISPLAY_MODE( IF_BSP_WD_POPUP=>C_DISPLAY_MODE_SURROUNDED ).
    * Open the Popup
          BPSEARCH_ACCOUNT_POPUP2->OPEN( IV_INBOUND_PLUG = 'CLEAR_ALL' ).
    * Role dependand Event
          CONCATENATE 'SEL' IV_ROLE INTO LV_EVENTNAME.
          BPSEARCH_ACCOUNT_POPUP2->SET_ON_CLOSE_EVENT( IV_VIEW = ME IV_EVENT_NAME = LV_EVENTNAME ).
    *     Get Query Context node
          LR_CONTEXT = BPSEARCH_ACCOUNT_POPUP2->GET_CONTEXT_NODE( 'SEARCH' ).
          CHECK LR_CONTEXT IS BOUND.
    *     Get DQuery object to add search parameter
          LR_QS ?= LR_CONTEXT->COLLECTION_WRAPPER->GET_CURRENT( ).
          CHECK LR_QS IS BOUND.
          IF SY-LANGU = 'J'."ADD BY LY 20170328
            LR_QS->ADD_SELECTION_PARAM( IV_ATTR_NAME = 'COUNTRY'
                              IV_SIGN      = 'I'
                              IV_OPTION    =  'EQ'
                              IV_LOW       = 'JP' ).
          ENDIF.
    
          LR_QS->ADD_SELECTION_PARAM( IV_ATTR_NAME = 'ZBP_GROUP'
                                      IV_SIGN      = 'I'
                                      IV_OPTION    =  'EQ'
                                      IV_LOW       = 'Z010' ).
    
          LR_QS->ADD_SELECTION_PARAM( IV_ATTR_NAME = 'ZBP_GROUP'
                               IV_SIGN      = 'I'
                               IV_OPTION    =  'EQ'
                               IV_LOW       = 'Z006' ).
          LR_QS->ADD_SELECTION_PARAM( IV_ATTR_NAME = 'ZBP_GROUP'
                              IV_SIGN      = 'I'
                              IV_OPTION    =  'EQ'
                              IV_LOW       = 'Z003' ).
    
    *      lr_current ?= me->typed_context->zcorder->collection_wrapper->get_current( ).
    *      lr_current->get_properties( IMPORTING es_attributes = ls_general ).
    *      lv_low = ls_general-sales_org.
    *      lr_qs->add_selection_param( iv_attr_name = 'ZSALES_ORG'
    *                                 iv_sign      = 'I'
    *                                 iv_option    =  'EQ'
    *                                 iv_low       =   lv_low ).
          LR_COL = LR_QS->GET_SELECTION_PARAMS( ).
          LR_ITERATOR   = LR_COL->GET_ITERATOR( ).
          LR_PARAM      = LR_ITERATOR->GET_FIRST( ).
          WHILE LR_PARAM IS BOUND.
            LR_PARAM->GET_PROPERTIES( IMPORTING ES_ATTRIBUTES = LS_SELECTION ).
            IF LS_SELECTION-ATTR_NAME = 'ZBP_GROUP' AND LS_SELECTION-LOW IS INITIAL.
              LR_COL->REMOVE( LR_PARAM ).
              LR_PARAM = LR_ITERATOR->GET_CURRENT( ).
              CONTINUE.
            ENDIF.
            IF LS_GENERAL-COUNTRY EQ 'JP' AND LS_SELECTION-ATTR_NAME = 'COUNTRY' AND LS_SELECTION-LOW IS INITIAL.
              LR_COL->REMOVE( LR_PARAM ).
              LR_PARAM = LR_ITERATOR->GET_CURRENT( ).
              CONTINUE.
            ENDIF.
            LR_PARAM = LR_ITERATOR->GET_NEXT( ).
          ENDWHILE.
    
          BPSEARCH_ACCOUNT_POPUP2->OPEN( IV_INBOUND_PLUG = 'CLEAR_ALL'
                                         IV_COLLECTION =    LR_COL ).
      ENDCASE.
    
    
    
    ENDMETHOD.
      METHOD op_zhsi0cnn.
    * Added by wizard: Outbound plug 'ZHSI0CNN'
        bp_account_search( iv_role = 'ZHSI0CNN' ).
      ENDMETHOD.

    太懒了,不想说废话,直接代码吧。。。不懂的就算了

  • 相关阅读:
    606. Construct String from Binary Tree
    696. Count Binary Substrings
    POJ 3255 Roadblocks (次短路)
    POJ 2823 Sliding Window (单调队列)
    POJ 1704 Georgia and Bob (博弈)
    UVa 1663 Purifying Machine (二分匹配)
    UVa 10801 Lift Hopping (Dijkstra)
    POJ 3281 Dining (网络流之最大流)
    UVa 11100 The Trip, 2007 (题意+贪心)
    UVaLive 4254 Processor (二分+优先队列)
  • 原文地址:https://www.cnblogs.com/sapSB/p/7676079.html
Copyright © 2011-2022 走看看