Skip to Content
0
May 30, 2008 at 08:50 PM

DropDrown unable to get data in ALV

21 Views

Hi,

I'm trying to put an dropdown by key (or index) into an ALV but I'm unable to get data in the dropdown. Can someone please help me with this?

I was watching this threads on topics at the forum, but I can not solve this problem.

Copy my code.

DATA: lr_col TYPE REF TO cl_salv_wd_column,

lr_dropdown TYPE REF TO cl_salv_wd_uie_dropdown_by_key,

l_cmp_usage TYPE REF TO if_wd_component_usage,

l_alv_model TYPE REF TO cl_salv_wd_config_table,

l_ref_interfacecontroller TYPE REF TO iwci_salv_wd_table.

l_cmp_usage = wd_this->wd_cpuse_doc_measure( ).

IF l_cmp_usage->has_active_component( ) IS INITIAL.

l_cmp_usage->create_component( ).

ENDIF.

l_ref_interfacecontroller = wd_this->wd_cpifc_doc_measure( ).

l_alv_model = l_ref_interfacecontroller->get_model( ).

l_alv_model = l_ref_interfacecontroller->get_model( ).

l_alv_model->if_salv_wd_table_settings~set_read_only( abap_false ).

lr_col = l_alv_model->if_salv_wd_column_settings~get_column(

id = 'VALEUR_DIFF' ).

CREATE OBJECT lr_dropdown

EXPORTING

selected_key_fieldname = 'VALEUR_DIFF '.

lr_col->set_cell_editor( lr_dropdown ).

DATA:

lo_nd_ctx_tab TYPE REF TO if_wd_context_node,

lo_ndinfo_ctx_tab TYPE REF TO if_wd_context_node_info,

lt_value_set TYPE TABLE OF wdr_context_attr_value,

ls_value_set TYPE wdr_context_attr_value.

ls_value_set-value = '01'.

ls_value_set-text = 'One'.

APPEND ls_value_set TO lt_value_set.

ls_value_set-value = '02'.

ls_value_set-text = 'Two'.

APPEND ls_value_set TO lt_value_set.

lo_nd_ctx_tab = wd_context->get_child_node( 'DOC_MEASURE' ).

lo_ndinfo_ctx_tab = lo_nd_ctx_tab->get_node_info( ).

lo_ndinfo_ctx_tab->set_attribute_value_set(

name = 'VALEUR_DIFF' value_set = lt_value_set ).

DATA: lt_valueset TYPE TABLE OF wdr_context_attr_value,

ls_valueset TYPE wdr_context_attr_value,

lr_node TYPE REF TO if_wd_context_node,

lr_nodeinfo TYPE REF TO if_wd_context_node_info.

lr_node = wd_context->get_child_node( 'DOC_MEASURE' ).

lr_nodeinfo = lr_node->get_node_info( ).

lr_nodeinfo->set_attribute_value_set(

EXPORTING

name = 'VALEUR_DIFF'

value_set = lt_valueset

).

Thanks.

Matías.