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.
3578
Views
Selektierte Zeile in einer Table sichtbar machen, wie?
von Obelix1 » 10.11.2017 16:27 • Verfasst in Web-Dynpro, BSP + BHTML
10
Antw.
5285
Views
Selektierte Zeile im View nach Aktion löschen
von d4n » 06.01.2006 14:15 • Verfasst in Web-Dynpro, BSP + BHTML
4
Antw.
5501
Views
ALV Einzelne Zeile Editierbar
von SaskuAc » 27.09.2018 07:52 • Verfasst in ABAP® Core
2
Antw.
2273
Views
Einzelne Zeile editierbar machen ALV-Grid
von hmaxi96 » 11.01.2017 10:42 • Verfasst in ABAP® für Anfänger
2
Antw.
4814
Views
einzelne zeile im alv grid editierbar machen
von marina » 01.12.2005 16:24 • Verfasst in ABAP® für Anfänger

Ü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

Zeilenumbrüche ersetzen
vor 10 Minuten von rob_abc 4 / 19
Dialog-Container mit Toolbar/Status
vor 19 Stunden von tar gelöst 19 / 2084
SAP Trial Version für SAP Fiori
Gestern von tar 2 / 1444

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

Zeilenumbrüche ersetzen
vor 10 Minuten von rob_abc 4 / 19
Dialog-Container mit Toolbar/Status
vor 19 Stunden von tar gelöst 19 / 2084
SAP Trial Version für SAP Fiori
Gestern von tar 2 / 1444

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
Gestern von Bright4.5 1 / 505
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2143
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8738