2017-09-04 131 views
1

我已經爲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 
). 

回答

2

無。下拉字段意味着一個固定值集。如果要同時具有值​​目錄和文本編輯功能,請使用值幫助(F4幫助)來實現目錄訪問。

+0

好的!萬分感謝! – Skalozub