Kontextattribut mit DropDown Werten Füllen

Wer WebDynpro/ABAP entwickelt, kommt auch um DropDown Felder nicht herum. SAP lässt uns hier die Auswahl zwischen DropDowns by Index oder DropDowns by Key. In vielen Fällen lädt das DropDown by Key die Werte automatisch von der Domäne des jeweiligen Kontextknotens. Manche Situationen erfordern es allerdings, dass man sich selbst um die Befüllung des Controls kümmert.
Dieses Beispiel soll zeigen, wie man Werte für DropDown Felder direkt am Kontextknoten hinterlegen kann.

METHOD fill_status.
 DATA: obj_node TYPE REF TO if_wd_context_node,
       obj_node_info TYPE REF TO if_wd_context_node_info.
 DATA: lt_data TYPE wdr_context_attr_value_list,
       wa_data TYPE wdr_context_attr_value.

 obj_node = wd_context->path_get_node( 'SEARCH.SEARCH_VALUES' ).
 obj_node_info = obj_node->get_node_info( ).

 * Get deviation data
 SELECT review_level description
 INTO (wa_data-value,wa_data-text)
 FROM zkpi_c_revlevel.

  APPEND wa_data TO lt_data.
  CLEAR: wa_data.
 ENDSELECT.

 APPEND INITIAL LINE TO lt_data.
 SORT lt_data BY value.

 * Bind data to context
 obj_node_info->set_attribute_value_set( name = 'STATUS' value_set = lt_data ).

 FREE: lt_data.
ENDMETHOD.

Die XPath Anweisung SEARCH.SEARCH_VALUES navigiert den gewünschten Kontextknoten an. Die Wertetabelle für das DropDown wird dann dem Attribut STATUS des Kontextknotens SEARCH_VALUES zugewiesen.

Posted on 20. März 2015 in Blog, Web Dynpro/ABAP

Back to Top