DropBox OnSelect

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
11 Beiträge • Seite 1 von 1
11 Beiträge Seite 1 von 1

DropBox OnSelect

Beitrag von Trulchen (Specialist / 241 / 4 / 1 ) »
Hallo,

ich habe mehrere Fragen zur Drop Box:
Und zwar habe ich 2 Drop Boxen die Abhänig voneinander sind. Ich will jetzt das der Benutzer zu erst DROPBOX 1 "wählen" muss, und erst dann wierd die Auswahl der DROPBOX 2 sichtbar und "auswählbar".
Wie wird das programmiert?

Und wie handhabe ich das ONSELECT bei der DropBox ?
Ich will je nach Auswahl in der DROPBOX 2 das eine View ( View 1 oder View 2 ) im VIEWCONTAINE-UI-Element aufgerufen wird.

Vielen Dank für eure Hilfe
Julia
Zuletzt geändert von Trulchen am 12.03.2013 09:37, insgesamt 1-mal geändert.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: DropBox OnSelect

Beitrag von Tobias85 (ForumUser / 34 / 3 / 1 ) »
Hi,
du meinst sicher Dropdown-Boxen?
Ich habe das so realisiert, dass ich beide Dropdown-Boxen (DropdownByKey) eingefügt habe, aber die zweite aus 'Unsichtbar'.

Unter Einstellungen der ersten Dropdown-Box kannst dann dein On-Select-Event einrichten und unter Action ausprogrammieren (bzw. Doppelklick).

Dann kannste mit den get_attribute() und set_attribute() der if_wd_context_element die Daten auslesen bzw. setzen.

Re: DropBox OnSelect

Beitrag von Trulchen (Specialist / 241 / 4 / 1 ) »
Hey,

ja ich meine die Dropdown_Boxen. ( DropDownByIndex)

Ich hätte sie ungern Unsichtbar.... Also der Benutzer soll schon sehen was er als nächstes zu tun hat.
Es geht darum das die zwei DropDownBoxen über eine DB-Tabelle in Beziehung zueinander stehen (1 zu n).
Also je nach Wert was ich in DropDownBox 1 auswähle erscheinen Werte in DropDownBox2 ....

Und deswegen soll die DropDownBox2 am Anfang noch "Read only" sein und erst mit Auswahl von DropDownBox1 bearbeitbar sein.... Das ist der Plan.
Ist das realisierbar? Und wenn ja wie ?

Re: DropBox OnSelect

Beitrag von Alexander D. (Expert / 682 / 30 / 84 ) »
hi,

vielleicht hilft dir dieser Beitrag weier
http://www.abapforum.com/forum/viewtopic.php?t=2588
schöne Grüße
Alexander

ECC 6.0 EHP 7

Re: DropBox OnSelect

Beitrag von Tobias85 (ForumUser / 34 / 3 / 1 ) »
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:

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 ).
Müsstest halt nur das Visible durch Readonly ersetzen.
Zuletzt geändert von Tobias85 am 06.02.2013 16:05, insgesamt 1-mal geändert.

Re: DropBox OnSelect

Beitrag von Trulchen (Specialist / 241 / 4 / 1 ) »
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:

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 ).
Müsstest halt nur das Visible durch Readonly ersetzen.
Kannst du mir erklären was du da alles gemacht hast ?

Re: DropBox OnSelect

Beitrag von Tobias85 (ForumUser / 34 / 3 / 1 ) »

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 ).

Folgende Benutzer bedankten sich beim Autor Tobias85 für den Beitrag:
Trulchen


Re: DropBox OnSelect

Beitrag von Trulchen (Specialist / 241 / 4 / 1 ) »
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

Re: DropBox OnSelect

Beitrag von Tobias85 (ForumUser / 34 / 3 / 1 ) »
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
Der erste Knoten hat die Attribute DDL1 und DDL2 vom Typ deines Keys.

Der Knoten gs_read_visble ist für die Sichtbarkeit/READ-ONLY-Eigenschaft mit dem Attribut vom Typ BOOLEAN.

Was passiert denn beim Testen?

Müsste auch so wie in dem Beispiel gehen.

Re: DropBox OnSelect

Beitrag von Trulchen (Specialist / 241 / 4 / 1 ) »
Ich habe es jetzt anderst hinbekommen :)

Und zwar habe ich ein Attribut erstellt von TYP Boolean, das an die Eigenschaft ReadOnly gebunden und dann über Set-Attribute es auf true oder false gesetzt :)

Funktoniert einwandfrei.
Aber vielen Dank für deine Hilfe ;)

Re: DropBox OnSelect

Beitrag von Tobias85 (ForumUser / 34 / 3 / 1 ) »
Kein Problem, gern geschehen

Seite 1 von 1

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.