zoukankan      html  css  js  c++  java
  • 选择条件WD_SELECT_OPTIONS_20

    组件:Y_SELECT_OPTIONS_20

    视图:V_MAIN

    窗口:W_MAIN

    Application:Y_SELECT_OPTIONS_20

    重用标准组件WD_SELECT_OPTIONS_20

    创建UI元素

     定义属性CMP_SELECT_OPTIONS   WD_SELECT_OPTIONS_20。

    初始化代码WDDOINIT。

    METHOD wddoinit .
      DATA: lt_attributes   TYPE wdr_so_t_attributes,
            lt_initial_data TYPE wdr_so_t_values.
      DATA: lt_saved_searches TYPE wdr_context_attr_value_list.
      DATA: wa_general_texts      TYPE wdr_so_s_general_texts,
            wa_general_visibility TYPE wdr_so_s_general_visibility,
            wa_global_options     TYPE wdr_so_s_global_options.
    
      FIELD-SYMBOLS: <wa_attributes> TYPE wdr_so_s_attributes.
    
    * Create select options
      IF wd_this->wd_cpuse_cmp_select_options( )->has_active_component( ) = abap_false.
        wd_this->wd_cpuse_cmp_select_options( )->create_component( ).
      ENDIF.
    
    * Set general visibility
      wa_general_visibility-show_max_nr_rows = abap_true.
      wa_general_visibility-show_button_search = abap_true.
      wa_general_visibility-show_button_reset = abap_true.
      wa_general_visibility-show_button_clear = abap_true.
      wa_general_visibility-button_search_is_default = abap_true.
      wa_general_visibility-show_header = abap_false.
    
    * Set global options
      wa_global_options-default_max_nr_rows = 100.
    
    * Get selection handler
      wd_this->ao_selection_handler = wd_this->wd_cpifc_cmp_select_options( )->init_select_options( general_texts      = wa_general_texts
                                                                                                    general_visibility = wa_general_visibility
                                                                                                    global_options     = wa_global_options
                                                                                                    saved_searches     = lt_saved_searches ).
    
    * Set search attributes
      APPEND INITIAL LINE TO lt_attributes ASSIGNING <wa_attributes>.
      <wa_attributes>-attribute = 'PARTNER'.
      <wa_attributes>-attr_type = if_wd_select_options_20=>e_attribute_types-text.
      <wa_attributes>-disp_index = 1.
      <wa_attributes>-value_suggest = abap_true.
    
      <wa_attributes>-rtti_type = CAST cl_abap_elemdescr( cl_abap_elemdescr=>describe_by_name( 'BU_PARTNER' ) ).
      UNASSIGN: <wa_attributes>.
    
      APPEND INITIAL LINE TO lt_attributes ASSIGNING <wa_attributes>.
      <wa_attributes>-attribute = 'TYPE'.
      <wa_attributes>-attr_type = if_wd_select_options_20=>e_attribute_types-dropdown.
      <wa_attributes>-disp_index = 2.
      <wa_attributes>-rtti_type = CAST cl_abap_elemdescr( cl_abap_elemdescr=>describe_by_name( 'BU_TYPE' ) ).
      UNASSIGN: <wa_attributes>.
    
      DATA lt_wdr_context_attr_value_list TYPE wdr_context_attr_value_list.
      DATA ls_wdr_context_attr_value TYPE wdr_context_attr_value.
    
      ls_wdr_context_attr_value-value = 'MC_NAME1'.
      ls_wdr_context_attr_value-value = '2222'.
      APPEND ls_wdr_context_attr_value TO lt_wdr_context_attr_value_list.
    
      APPEND INITIAL LINE TO lt_attributes ASSIGNING <wa_attributes>.
      <wa_attributes>-attribute = 'MC_NAME1'.
      <wa_attributes>-attr_type = if_wd_select_options_20=>e_attribute_types-text.
      <wa_attributes>-disp_index = 3.
      <wa_attributes>-value_set = lt_wdr_context_attr_value_list.
      <wa_attributes>-rtti_type = CAST cl_abap_elemdescr( cl_abap_elemdescr=>describe_by_name( 'BU_MCNAME1' ) ).
      UNASSIGN: <wa_attributes>.
    
    * fill initial data
      APPEND INITIAL LINE TO lt_initial_data ASSIGNING FIELD-SYMBOL(<wa_initial_data>).
      <wa_initial_data>-attribute = 'TYPE'.
      <wa_initial_data>-sign = 'I'.
      <wa_initial_data>-operator = if_wd_select_options_20=>e_operators-is.
      <wa_initial_data>-low = 2.
      UNASSIGN: <wa_initial_data>.
    
    
      APPEND INITIAL LINE TO lt_initial_data ASSIGNING <wa_initial_data>.
      <wa_initial_data>-attribute = 'PARTNER'.
      <wa_initial_data>-sign = 'I'.
      <wa_initial_data>-operator = if_wd_select_options_20=>e_operators-is.
      <wa_initial_data>-low = '110'.
      UNASSIGN: <wa_initial_data>.
    
    * Add attributes to search help
      wd_this->ao_selection_handler->add_attributes( attributes   = lt_attributes
                                                     initial_data = lt_initial_data ).
    
      FREE: lt_saved_searches, lt_attributes, lt_initial_data.
      CLEAR: wa_general_texts, wa_general_visibility, wa_global_options.
    ENDMETHOD.

    测试。

    如按钮描述、最大结果默认数、范围(包含、大于、等于、小于.....)、设置下拉等都可以控制,具体查看WDR_SO_S_GENERAL_VISIBILITY、WDR_SO_S_GENERAL_VISIBILITY等结构。

    补充1:

    补充2:取数逻辑

     DATA:lo_nd_nod_list      TYPE REF TO if_wd_context_node,
           lt_nod_list         TYPE STANDARD TABLE OF ztcmc114a_stru,
           lt_range_ref        TYPE TABLE OF wdr_so_s_range_ref,
           ls_range_ref        TYPE wdr_so_s_range_ref,
           rt_zdjlx            TYPE REF TO data,
           rt_ernam            TYPE REF TO data,
           rt_erdat            TYPE REF TO data.
    
      FIELD-SYMBOLS:<fs_zdjlx> TYPE table,
                    <fs_ernam> TYPE table,
                    <fs_erdat> TYPE table.
    
    
    *– Read Data and as range table –*
      WD_THIS->CMP_SELECT_OPTIONS->get_input_complete_as_range( IMPORTING range_ref = lt_range_ref ).
    
      LOOP AT lt_range_ref INTO ls_range_ref.
        CASE ls_range_ref-attribute.
          WHEN 'S_ZDJLX'.
            rt_zdjlx = ls_range_ref-range.
          WHEN 'S_ERNAM'.
            rt_ernam = ls_range_ref-range.
          WHEN 'S_ERDAT'.
            rt_erdat = ls_range_ref-range.
        ENDCASE.
      ENDLOOP.
    
      ASSIGN rt_zdjlx->* TO <fs_zdjlx>.
      ASSIGN rt_ernam->* TO <fs_ernam>.
      ASSIGN rt_erdat->* TO <fs_erdat>.
    
    
    *– Select Query –*
      SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_nod_list
               FROM ztcmc114a
              WHERE zdjlx IN <fs_zdjlx>
                AND ernam IN <fs_ernam>
                AND erdat IN <fs_erdat>.
      IF sy-subrc EQ 0.
        SORT lt_nod_list BY zdjlx zposnr.
      ENDIF.
    
    
    *– Bind Table –*
      wd_context->get_child_node( name = 'NOD_LIST' )->bind_table( new_items = lt_nod_list set_initial_elements = abap_true ).
  • 相关阅读:
    Fody is only supported on MSBuild 16 and above
    abp发送邮件AbpMailKit
    看一位老司机的博文,分享一下。
    nginx PC 移动配置
    微信开放平台登录
    flask 中 session的源码解析
    python mac环境搭建
    前端换mac可以参考搭一下简单的环境
    vue 导航钩子
    HTML5 History 模式
  • 原文地址:https://www.cnblogs.com/SAPxiaox/p/10045017.html
Copyright © 2011-2022 走看看