在下拉列表中允许ALV Grid单元格中的*文本

问题描述:

我已经为ALV Grid单元格设置了下拉列表。下拉菜单正常工作,但它只允许从下拉列表中输入值。是否可以允许在单元格中输入*文本?在下拉列表中允许ALV Grid单元格中的*文本

我的ABAP代码是:

创建值列表:

DATA: lt_dropdown TYPE lvc_t_dral, 
     ls_dropdown TYPE lvc_s_dral. 
data: ls_taba TYPE dd07v, 
     lt_taba TYPE STANDARD TABLE OF dd07v, 
     lt_tabb TYPE STANDARD TABLE OF dd07v. 

CALL FUNCTION 'DD_DOMA_GET' 
    EXPORTING 
    DOMAIN_NAME   = 'ZBC_TRADE_NETWORK' 
    LANGU    = SY-LANGU 
    WITHTEXT   = 'X' 
TABLES 
    DD07V_TAB_A   = lt_taba 
    DD07V_TAB_N   = lt_tabb 
EXCEPTIONS 
    ILLEGAL_VALUE  = 1 
    OP_FAILURE   = 2 
    OTHERS    = 3 
     . 

IF SY-SUBRC <> 0. 
    return. 
ENDIF. 

loop at lt_taba into ls_taba. 
    ls_dropdown-handle = '1'. 
    ls_dropdown-int_value = ls_taba-domvalue_l. 
    ls_dropdown-value = ls_taba-ddtext. 
    APPEND ls_dropdown TO lt_dropdown. 
endloop. 

*method to display the dropdown in ALV 
CALL METHOD go_grid->set_drop_down_table 
    EXPORTING 
    IT_DROP_DOWN_ALIAS = lt_dropdown. 

填充字段目录:

data: ls_fcat type lvc_s_fcat, 
     lt_fcat type lvc_t_fcat. 

field-symbols: <lfs_fcat> type ls_fcat. 

call function 'LVC_FIELDCATALOG_MERGE' 
    exporting 
     i_structure_name = gc_struct_name 
    changing 
     ct_fieldcat  = lt_fcat 
    exceptions 
     others   = 1. 

loop at lt_fcat assigning <lfs_fcat>. 
    case <lfs_fcat>-fieldname. 
    when 'NETWORK'. 
     <lfs_fcat>-drdn_hndl = '1'. 
     <lfs_fcat>-drdn_alias = 'X'. 
     <lfs_fcat>-edit = abap_on. 
    endcase. 
endloop. 

设置ALV网格显示

go_grid->set_table_for_first_display(
    exporting 
    i_save    = lf_save 
    i_default   = lf_default 
    is_variant   = ls_vari 
    is_layout   = ls_layo 
    it_toolbar_excluding = lt_excl 
    changing 
    it_outtab   = <lfs_t_data> 
    it_fieldcatalog  = lt_fcat 
    exceptions 
    others    = 1 
). 

无。下拉字段意味着一个固定值集。如果要同时具有值​​目录和文本编辑功能,请使用值帮助(F4帮助)来实现目录访问。

+0

好的!万分感谢! – Skalozub