Code: Alles auswählen.
METHOD onactionappid .
DATA: lo_nd_gs_comp_data TYPE REF TO if_wd_context_node,
lo_el_gs_comp_data TYPE REF TO if_wd_context_element,
lo_nd_info_gs_comp_data TYPE REF TO if_wd_context_node_info,
lo_nd_gs_read_visible TYPE REF TO if_wd_context_node,
lo_el_gs_read_visible TYPE REF TO if_wd_context_element.
DATA:
itab_str_fct TYPE STANDARD TABLE OF table_r011.
TYPES: ty_value_set TYPE wdr_context_attr_value.
DATA:
ls_fct TYPE table_r011,
ls_value_set TYPE ty_value_set,
lt_value_set TYPE STANDARD TABLE OF ty_value_set.
lo_nd_gs_comp_data = wd_context->get_child_node( name = wd_this->wdctx_GS_menu ).
lo_el_gs_comp_data = lo_nd_gs_comp_data->get_element( ).
lo_el_gs_comp_data->get_attribute(
EXPORTING
name = `#DD1#`
IMPORTING
value = wd_this->gv_appid ).
**********************************************
*Navigate from to via lead selection
lo_nd_gs_comp_data = wd_context->get_child_node( name = wd_this->wdctx_GS_menu ).
*Get node info
lo_nd_info_gs_comp_data = lo_nd_gs_comp_data->get_node_info( ).
SELECT * FROM table_r011 INTO TABLE itab_str_fct
WHERE isact = 'X'
and appid = wd_this->gv_appid.
*Put Function lines into value set
LOOP AT itab_str_fct INTO ls_fct.
ls_value_set-value = ls_fct-fctid.
select descr from table_R001t into ls_value_set-text
where OTRID = ls_fct-otrid.
endselect.
APPEND ls_value_set TO lt_value_set.
CLEAR ls_value_set.
ENDLOOP.
*Assign value set
CALL METHOD lo_nd_info_gs_comp_data->set_attribute_value_set
EXPORTING
name = '#DD1#'
value_set = lt_value_set.
lo_nd_gs_read_visible = wd_context->get_child_node( name = wd_this->wdctx_gs_visible ).
lo_el_gs_read_visible = lo_nd_gs_visible->get_element( ).
lo_el_gs_read_visible->set_attribute(
name = `#DD1_ReadOnly#`
value = abap_true ).Kannst du mir erklären was du da alles gemacht hast ?Tobias85 hat geschrieben:Ja,
das sollte eigentich genauso gehen.
dazu:
http://help.sap.com/saphelp_erp60_sp/he ... ontent.htm
mein Code sah so aus, ist aber mit DropDownByKey, sollte in deinem Fall aber auch besser passen:
Müsstest halt nur das Visible durch Readonly ersetzen.Code: Alles auswählen.
METHOD onactionappid . DATA: lo_nd_gs_comp_data TYPE REF TO if_wd_context_node, lo_el_gs_comp_data TYPE REF TO if_wd_context_element, lo_nd_info_gs_comp_data TYPE REF TO if_wd_context_node_info, lo_nd_gs_read_visible TYPE REF TO if_wd_context_node, lo_el_gs_read_visible TYPE REF TO if_wd_context_element. DATA: itab_str_fct TYPE STANDARD TABLE OF table_r011. TYPES: ty_value_set TYPE wdr_context_attr_value. DATA: ls_fct TYPE table_r011, ls_value_set TYPE ty_value_set, lt_value_set TYPE STANDARD TABLE OF ty_value_set. lo_nd_gs_comp_data = wd_context->get_child_node( name = wd_this->wdctx_GS_menu ). lo_el_gs_comp_data = lo_nd_gs_comp_data->get_element( ). lo_el_gs_comp_data->get_attribute( EXPORTING name = `#DD1#` IMPORTING value = wd_this->gv_appid ). ********************************************** *Navigate from to via lead selection lo_nd_gs_comp_data = wd_context->get_child_node( name = wd_this->wdctx_GS_menu ). *Get node info lo_nd_info_gs_comp_data = lo_nd_gs_comp_data->get_node_info( ). SELECT * FROM table_r011 INTO TABLE itab_str_fct WHERE isact = 'X' and appid = wd_this->gv_appid. *Put Function lines into value set LOOP AT itab_str_fct INTO ls_fct. ls_value_set-value = ls_fct-fctid. select descr from table_R001t into ls_value_set-text where OTRID = ls_fct-otrid. endselect. APPEND ls_value_set TO lt_value_set. CLEAR ls_value_set. ENDLOOP. *Assign value set CALL METHOD lo_nd_info_gs_comp_data->set_attribute_value_set EXPORTING name = '#DD1#' value_set = lt_value_set. lo_nd_gs_visible = wd_context->get_child_node( name = wd_this->wdctx_gs_visible ). lo_el_gs_visible = lo_nd_gs_visible->get_element( ). lo_el_gs_visible->set_attribute( name = `#DD1_ReadOnly#` value = abap_true ).
Code: Alles auswählen.
METHOD onactionappid .
DATA: lo_nd_gs_comp_data TYPE REF TO if_wd_context_node,
lo_el_gs_comp_data TYPE REF TO if_wd_context_element,
lo_nd_info_gs_comp_data TYPE REF TO if_wd_context_node_info,
lo_nd_gs_read_visible TYPE REF TO if_wd_context_node,
lo_el_gs_read_visible TYPE REF TO if_wd_context_element.
DATA:
itab_str_fct TYPE STANDARD TABLE OF table_r011. " table_r011 ist deine Tabelle die du filtern willst für die 2. Dropdown
TYPES: ty_value_set TYPE wdr_context_attr_value.
DATA:
ls_fct TYPE table_r011,
ls_value_set TYPE ty_value_set,
lt_value_set TYPE STANDARD TABLE OF ty_value_set.
lo_nd_gs_comp_data = wd_context->get_child_node( name = wd_this->wdctx_GS_menu ).
"zeigt auf den Node mit den Attributen 'APPID' (DD1) und 'FCTID' (DD")
lo_el_gs_comp_data = lo_nd_gs_comp_data->get_element( ).
lo_el_gs_comp_data->get_attribute( "holen des ausgewählten Werts ausc der 1.DD in gv_appid
EXPORTING
name = `#DD1#`
IMPORTING
value = wd_this->gv_appid ).
**********************************************
*Navigate from to via lead selection
lo_nd_gs_comp_data = wd_context->get_child_node( name = wd_this->wdctx_GS_menu ).
*Get node info
lo_nd_info_gs_comp_data = lo_nd_gs_comp_data->get_node_info( ).
SELECT * FROM table_r011 INTO TABLE itab_str_fct " selektieren der entsprechenden Werte aus aus der Tabelle (erste WHERE kannst du hier ignorieren)
WHERE isact = 'X'
and appid = wd_this->gv_appid.
*Put Function lines into value set
LOOP AT itab_str_fct INTO ls_fct.
ls_value_set-value = ls_fct-fctid.
select descr from table_R001t into ls_value_set-text "entsprechend Text zur ausgewählten ID selektieren
where OTRID = ls_fct-otrid.
endselect.
APPEND ls_value_set TO lt_value_set.
CLEAR ls_value_set.
ENDLOOP.
*Assign value set
CALL METHOD lo_nd_info_gs_comp_data->set_attribute_value_set "setzen der Werte für 2 DD
EXPORTING
name = '#DD1#'
value_set = lt_value_set.
lo_nd_gs_visible = wd_context->get_child_node( name = wd_this->wdctx_gs_visible ).
lo_el_gs_visible = lo_nd_gs_visible->get_element( ).
lo_el_gs_visible->set_attribute( "Sichtbarkeit für 2DD setzen, bei dir REAdONLY deaktivieren
name = `#DD1_ReadOnly#`
value = abap_true ).Der erste Knoten hat die Attribute DDL1 und DDL2 vom Typ deines Keys.Trulchen hat geschrieben:Der erste Versuch hat schon mal nicht geklappt -.-
Du hast einen Knoten erstellt für die DDL1 und für was ist der KNoten gs_read_visible ?
Geht das auch mit der Variante:
http://help.sap.com/saphelp_erp60_sp/he ... ontent.htm