ABAP FPM list 同一列组件不同行下拉值

本文介绍了一个利用get_data方法实现的下拉列表配置功能,通过IO_EXTENDED_CTRL参数传递,实现了特定于ATS配置选项的扩展功能。文章详细解释了如何通过修改ct_data来设置不同的下拉值,并强调了保持数据顺序的重要性,以免造成下拉值与数据行之间的对应关系混乱。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

利用get_data 入参IO_EXTENDED_CTRL

IO_EXTENDED_CTRL    TYPE REF TO IF_FPM_LIST_ATS_EXT_CTRL OPTIONAL    Provides extended List ATS specific configuration options

备注:该方法修改后ct_data 不能再排序,否则下拉值会显示错乱

设置的不同下拉值,应该是绑在页面的行上,如果打乱ct_data的顺序,下拉值会找不到ct_data 不同行的key值,

  METHOD if_fpm_guibb_list~get_data.

    FIELD-SYMBOLS:
      <fv_value> TYPE any,
      <ft_table> TYPE STANDARD TABLE.

    DATA:
      lv_tabix             TYPE sy-tabix,
      lt_row_set           TYPE if_fpm_list_ats_value_set=>ty_t_set,
      lo_value_set_handler TYPE REF TO if_fpm_list_ats_value_set.

    ASSIGN ct_data TO <ft_table>.

    lo_value_set_handler = io_extended_ctrl->get_value_set_handler( ).

    LOOP AT <ft_table> ASSIGNING FIELD-SYMBOL(<fs_line>).
      lv_tabix = sy-tabix.
      ASSIGN COMPONENT 'UNAME' OF STRUCTURE <fs_line> TO <fv_value>.
      IF <fv_value> IS ASSIGNED.
*用户名下拉
        lt_row_set = VALUE #( ( key = <fv_value>
                                text = zfcl_in_0001=>get_user_name_by_sy_uname( <fv_value> ) ) ).

        lo_value_set_handler->set_row_specific_value_set(
        EXPORTING
          iv_column_id = 'UNAME'
          iv_row_index =  lv_tabix
          it_row_set   =  lt_row_set
        ).
      ENDIF.

    ENDLOOP.

    ev_data_changed  = abap_true.


  ENDMETHOD.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值