WD Table - selektierte Zeile editierbar machen

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

ABAP Web Dynpro, BusinessServerPages; Erstellung von Webapplikationen.
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

WD Table - selektierte Zeile editierbar machen

Beitrag von eucherl (ForumUser / 9 / 0 / 0 ) »
Hallo zusammen,

ich habe zu diesem Thema schon viele Lösungen gefunden, jedoch klappt keine...

Ich habe ein Table Control als Ausgabe einer Selektion (z.b. mit 3 Zeilen), der gesamte Content ist default auf Read_Only. (also alle Context Node Attribute der Tabelle). Dieses Attribute-Property will ich jetzt auf abap_fals setzen. Die für mich verständlichste Lösung ist, dass man die selektierte Zeile über get_selected_elements holt, einen Loop auf die Attributsnamen setzt und in diesem dann mit set_attribute_property die Eigenschaft Read_Only deaktiviert, ergo auf editierbar setzt. Ich kann jedoch keinen Fehler im Code finden, am Ende passiert jedoch nichts und die Table bleibt Read_Only.

Anbei mein Context_Node:
Context_Node Marketing_Attributes.JPG
ContextNode_Attribute_Property_read_only.JPG
Und hier das dazugehörige View-Layout mit der Table:
View_Layout_Table_InputFields.JPG

Jede Spalte bzw. jede Zelle in der jeweiligen Spalte ist mit dem Attribut im Context Node "Marketing_Attributes" gebunden.

Und hier mein Code-Ansatz für das Ändern des Context-Node Attribute-Property Read-Only:

Code: Alles auswählen.

METHOD onactionedit .

  DATA: lr_node                   TYPE REF TO if_wd_context_node,
        lt_elements               TYPE wdr_context_element_set,
        ls_elements               LIKE LINE OF lt_elements,
        ls_data                   TYPE wd_this->element_marketing_attributes,

        lt_attr_names             TYPE                       string_table,
        ls_attr_name              LIKE LINE OF               lt_attr_names.

  FIELD-SYMBOLS: <fs_value> TYPE any.

  lr_node = wd_context->get_child_node( name = wd_this->wdctx_marketing_attributes ).
  lt_elements = lr_node->get_selected_elements( ).

  "get the attributes list

  lt_attr_names = lr_node->get_node_info( )->get_attribute_names( ).

  LOOP AT lt_elements INTO ls_elements.

    ls_elements->get_static_attributes( IMPORTING static_attributes = ls_data ).

    LOOP AT lt_attr_names INTO ls_attr_name.
      UNASSIGN <fs_value>.
      ASSIGN COMPONENT ls_attr_name OF STRUCTURE ls_data TO <fs_value>.
      IF <fs_value> IS NOT INITIAL.
        ls_elements->set_attribute_property( EXPORTING attribute_name = ls_attr_name
                                                       property       = if_wd_context_element=>e_property-read_only
                                                       value          = abap_false ).
      ENDIF.
    ENDLOOP.
  ENDLOOP.

ENDMETHOD.
Die Methode ist mit einem Button verknüpft. Er wirft keine Fehler und beim Debuggen fällt mir auch nichts auf. Er findet alle gewollten Werte und auch die letzte Methode set_attribute_property führt er für jede Spalte der ausgewählten Zeile einwandfrei aus.

Wo übersehe ich etwas? Ich habe das Gefühl am Ende muss ich noch irgendwas angeben, damit dieses Setzen des Attribute-Property zieht.

Danke und Grüße,
Stefan

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


Re: WD Table - selektierte Zeile editierbar machen

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
Hallo Stefan,

soweit ich weiß kann diese Methode das nur besetzen, aber nicht ändern, soll heißen, einmal gesetzt ist gesetzt.
Wesentlich einfacher ist es sich im Context ein weiteres Element zu schaffen vom typ WDY_BOOLEAN und dieses an das read-only-Attribut jeder Spalte in dieser Zeile zu binden. Dann kannst du beim selektieren der Zeile das Attribut ändern, den geänderten Inhalt zurück geben und deine Zeile wird eingabebereit. (Auf diese Weise kannst du auch jede Zelle einzeln steuern, wenn du für jede Spalte der Zeile ein eigenes Read-only-Attribut zum Context hinzufügst.
Gruß,
der Matze

Re: WD Table - selektierte Zeile editierbar machen

Beitrag von eucherl (ForumUser / 9 / 0 / 0 ) »
Hallo Matze,

vielen Dank für die Info! Lustigerweise war das mein 1. Versuch mit dem eigenen Context Element. Nur war hier der Fehler, dass ich einen eigenen Knoten erstellt habe mit diesem Attribut. Somit hat er mir den ganzen Table Content auf editierbar gesetzt. Den Knoten für den Tabellencontent konnte ich nicht abändern, weil an Dictionary Structure gebunden. Diese Bindung zum Dictionary habe ich jetzt gelöscht, die Attribute einzeln eingepflegt und das Read_Only in diesen Knoten mit übernommen. So setzt er das Read_Only Attribute logischerweise nur für dieses Knotenelement (also für alle Attribute in dieser Zeile).
Dein Tipp hat das Verständnis meiner Grundlagen wieder verbessert, danke ;)

Seite 1 von 1

Vergleichbare Themen

1
Antw.
8856
Views
Selektierte Zeile in einer Table sichtbar machen, wie?
von Obelix1 » 10.11.2017 16:27 • Verfasst in Web-Dynpro, BSP + BHTML
4
Antw.
7152
Views
ALV Einzelne Zeile Editierbar
von SaskuAc » 27.09.2018 07:52 • Verfasst in ABAP® Core
2
Antw.
2962
Views
Einzelne Zeile editierbar machen ALV-Grid
von hmaxi96 » 11.01.2017 10:42 • Verfasst in ABAP® für Anfänger
1
Antw.
2974
Views
Table View Spalten einmal editierbar einmal nicht
von Aggressor » 08.06.2006 08:39 • Verfasst in Web-Dynpro, BSP + BHTML
2
Antw.
2240
Views
Table Control + Zeile ausblenden
von jensschladitz » 17.05.2016 14:24 • Verfasst in ABAP® Core

Ü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

Aktuelle Forenbeiträge

Benutzerdefinierte Felder PSP
vor 2 Tagen von Rabea1103 1 / 230
Zukunft des ABAP Entwicklers
vor 6 Tagen von DeathAndPain 14 / 3579
HR in der Zukunft?
vor einer Woche von DeathAndPain 6 / 5424
Analyse abhängiger Objekte zu einem ABAP-Programm
vor einer Woche von MAJOR_TOM gelöst 5 / 3217

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.

Aktuelle Forenbeiträge

Benutzerdefinierte Felder PSP
vor 2 Tagen von Rabea1103 1 / 230
Zukunft des ABAP Entwicklers
vor 6 Tagen von DeathAndPain 14 / 3579
HR in der Zukunft?
vor einer Woche von DeathAndPain 6 / 5424
Analyse abhängiger Objekte zu einem ABAP-Programm
vor einer Woche von MAJOR_TOM gelöst 5 / 3217

Unbeantwortete Forenbeiträge

Benutzerdefinierte Felder PSP
vor 2 Tagen von Rabea1103 1 / 230
Spool vereinen OTF und PDF
vor einer Woche von anna2205 1 / 2853
XSLT und Loipro05 Transformation
letzen Monat von Torsten1965 1 / 9167
VOLL Artikel in einem Display Typ 12
November 2025 von ThomasM84 1 / 27635