ALV Grid - einzelne Zellen editierbar machen

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

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

ALV Grid - einzelne Zellen editierbar machen

Beitrag von STDIN (ForumUser / 39 / 16 / 0 ) »
Hallo zusammen,

ich hoffe ihr könnt mir helfen. Ich habe ein ALV-Grid auf welchen Daten geändert und hinzugefügt werden können. Der aktuelle Stand des Codings ist, dass nur die Einträge/Zeilen geändert werden können, welche man selbst erstellt hat oder die Personen die in einer Administrationstabelle stehen. Allerdings sollen in dieser Zeile nicht alle Spalten editierbar sein. Ich habe es zusätzlich noch mit dem Feldkatalog versucht, jedoch wird dieser nicht beachtet. Meine Recherche ergab, dass ich das auch mit der Style-Tabelle umsetzen muss. Allerdings füge ich diese Struktur ja der Ausgabetabelle hinzu. Gibt es eine Möglichkeit die Struktur in eine Tabelle zu schreiben und diese anschließend in das zugehörige Feld in der Ausgabetabelle hinzuzufügen. Das Coding zum aktuellen Stand habe ich unten hinzugefügt.

Vielen Dank schon mal.
LG STDIN

Code: Alles auswählen.

* Set editing mode
  LOOP AT gt_thdr INTO ls_thdr.
    CLEAR ls_style.

    MOVE-CORRESPONDING ls_thdr TO ls_header.

    IF ls_thdr-cruser EQ sy-uname.
      ls_style-style = cl_gui_alv_grid=>mc_style_enabled.
    ELSE.
      LOOP AT gt_admin INTO ls_admin.
        IF sy-uname EQ ls_admin-sap_user.
          ls_style-style = cl_gui_alv_grid=>mc_style_enabled.

          EXIT.
        ELSE.
          ls_style-style = cl_gui_alv_grid=>mc_style_disabled.
        ENDIF.
      ENDLOOP.

    ENDIF.

    APPEND ls_style TO ls_header-edit.
    APPEND ls_header TO gt_header.
  ENDLOOP.

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


Re: ALV Grid - einzelne Zellen editierbar machen

Beitrag von a-dead-trousers (Top Expert / 4414 / 224 / 1186 ) »
Hi.
STDIN hat geschrieben:
26.01.2021 09:19
Gibt es eine Möglichkeit die Struktur in eine Tabelle zu schreiben und diese anschließend in das zugehörige Feld in der Ausgabetabelle hinzuzufügen.
Den Satz versteh ich jetzt zwar nicht, aber dein Coding schaut soweit nicht schlecht aus. Dir fehlt nur noch in der Struktur LS_STYLE den Feldnamen der Spalte zu setzen für die das "editierbar" bzw. "nicht editierbar" gelten soll. Wenn mehrere Spalten gleichzeitig denselben Stil haben sollen, dann musst du je Spalte den entsprechenden Style in deine EDIT-Tabelle eintragen. Schließlich noch die Tabelle GT_HEADER an dein Grid übergeben und im Layout (LVC_S_LAYO) den Feldnamen "EDIT" (aus deiner HEADER-Struktur) in das Feld STYLEFNAME reinschreiben.
Das Grid muss zudem komplett auf "editierbar" (SET_READY_FOR_INPUT) geschalten sein.
Wenn du eine spezielle Verarbeitung während der Eingabe benötigst (z.B. Feldprüfungen) musst du das über den Event DATA_CHANGED implementieren. Dazu gibt es jede Menge Beispiele im Netz und hier im Forum. Ansonsten reicht es am Ende deines Programms die GT_HEADER zu durchlaufen und die Daten von dort zu verarbeiten, da das Grid automatisch alle Änderungen auch dort vornimmt.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: ALV Grid - einzelne Zellen editierbar machen

Beitrag von STDIN (ForumUser / 39 / 16 / 0 ) »
Das Coding oben funktioniert auch. Hier sind allerdings alle Spalten editierbar. Ich möchte allerdings die Spalten Adresse und E-Mail nicht editierbar machen, da diese aus den Stammdaten übernommen wird.
Ich habe ja die Möglichkeit in der Style-Tabelle den Feldnamen anzugeben.

Code: Alles auswählen.

ls_style-fieldname = 'ADRESS'.
ls_style-style = cl_gui_alv_grid=>mc_style_disabled.
append ls_style to lt_style.

ls_style-fieldname = 'MAIL'.
ls_style-style = cl_gui_alv_grid=>mc_style_disabled.
append ls_style to lt_style.
Darüber müsste ich doch auch festlegen können, welche Spalten editierbar/nicht editierbar sein sollen.
Allerdings habe ich ja am Ende die Tabelle lt_style mit 2 Einträgen. Bekomme ich diese Tabelle in die Struktur der Ausgabetabelle?

Momentan sage ich ja nur, dass die komplette Zeile editierbar sein soll und übergebe sie wie folgt in meine Ausgabetabelle.

Code: Alles auswählen.

APPEND ls_style TO ls_header-edit.
    APPEND ls_header TO gt_header.

Re: ALV Grid - einzelne Zellen editierbar machen

Beitrag von a-dead-trousers (Top Expert / 4414 / 224 / 1186 ) »
Ach so.
Du musst nur ein Feld mit dem Typ LVC_T_STYL in deine Ausgabestruktur aufnehmen, analog wie du es jetzt mit EDIT für die Zeilenformatierung machst. Im Layout (LVC_S_LAYO) den neuen Feldnamen in STYLEFNAME eintragen, dann erkennt das ALV die Spalte korrekterweise auch als technische Information für die Zellenformatierung.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Seite 1 von 1

Vergleichbare Themen

6
Antw.
3795
Views
ALV GRID einzelne Zellen ausblenden
von ek53 » 06.04.2017 15:41 • Verfasst in ABAP® für Anfänger
2
Antw.
2381
Views
Einzelne Zeile editierbar machen ALV-Grid
von hmaxi96 » 11.01.2017 10:42 • Verfasst in ABAP® für Anfänger
2
Antw.
4970
Views
einzelne zeile im alv grid editierbar machen
von marina » 01.12.2005 16:24 • Verfasst in ABAP® für Anfänger
10
Antw.
14824
Views
Einzelne Zellen im ALV-Grid farblich gestalten
von honeyjam » 16.02.2011 18:12 • Verfasst in ABAP® für Anfänger
4
Antw.
5682
Views
ALV Einzelne Zeile Editierbar
von SaskuAc » 27.09.2018 07:52 • 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

Nach MESSAGE TYPE E Felder entsperren
vor einer Woche von rob_abc gelöst 8 / 8704
ABAP - Mail so10 Text
vor einer Woche von retsch 6 / 2591
selection-screen comment mit icon
vor einer Woche von DeathAndPain 9 / 3901

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

Nach MESSAGE TYPE E Felder entsperren
vor einer Woche von rob_abc gelöst 8 / 8704
ABAP - Mail so10 Text
vor einer Woche von retsch 6 / 2591
selection-screen comment mit icon
vor einer Woche von DeathAndPain 9 / 3901

Unbeantwortete Forenbeiträge

SD_PRINT_TERMS_OF_PAYMENT
vor 2 Wochen von Manfred K. 1 / 2993
BUSOBJEKT zu CMIS PHIO ermitteln
vor 4 Wochen von snooga87 1 / 4803