ALV: data_changed und/oder button_click?

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

ALV: data_changed und/oder button_click?

Beitrag von newbie007 (ForumUser / 31 / 1 / 0 ) »
Hallo!

Ich möchte durch den Klick auf einen Button meine ALV-Liste um eine Zeile erweitern. In dieser Zeile sollen dann sowohl bereits gefüllte Zellen enthalten sein, als auch noch leere Zellen, die dann vom User geändert/befüllt werden.
Könnt ihr mir vllt. mal das generelle Vorgehen erläutern? Ganz besonders würde mich interessieren, welchen Event/welche Events ich dafür benötige. Zum einen soll die Zeile ja hinzugefügt werden, wenn ich auf einen Button klicke, andererseits muss ich auch die Eingaben prüfen, die der User macht.

Unterscheidet sich das Vorgehen grundlegend, wenn ich OO programmieren möchte?

Viele Grüße

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


Re: ALV: data_changed und/oder button_click?

Beitrag von a-dead-trousers (Top Expert / 4485 / 231 / 1205 ) »
hi!

Ganz schnell und ganz kurz:
Neue Zeilen musst du in der Datentabelle einfügen, die du dem ALV bei SET_TABLE_FOR_FIRST_DISPLAY übergibts.
Zum Prüfen der Eingaben kannst du entweder den Event DATA_CHANGED verwenden, oder einfach die Zeilen nach PAI in der Datetabelle überprüfen.
Denn sofern du bei SET_TABLE_FOR_FIRST_DISPLAY eine "globale" interne Tabelle übergibts werden alle Änderungen im ALV in diese zurückgespeichert.
Wichtig ist hier, dass die Tabelle im Verlauf des Aufrufes nicht "READ-ONLY" wird. z.B. indem man sie als Importing-Parameter übergibt.

lg ADT
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: data_changed und/oder button_click?

Beitrag von newbie007 (ForumUser / 31 / 1 / 0 ) »
Cool, danke!

Re: ALV: data_changed und/oder button_click?

Beitrag von newbie007 (ForumUser / 31 / 1 / 0 ) »
Hi,

muss den Thread nochmals hervor holen...

Kann ich im Event DATA_CHANGED unterscheiden, ob eine Zelle zum Zeitpunkt PBO oder PAI editiert wird.
Ich hab nun festgestellt, dass ich mit getbefore und changeafter festlegen kann, wann ein Event ausgelöst wird. Nun möchte ich aber beide setzen, allerdings mit unterschiedlichen Methoden hinterlegen.

Ist es möglich da eine Unterscheidung zu machen oder kann man ggf. dazu einen zweiten Event verwenden?

Und noch was zweites. Wenn ich eine Zelle editieren möchte erscheinen mögliche Vorschlagswerte, da das Feld mit TYPE Bezug auf ein Dictionary nimmt. Nur möchte ich dort nun nicht alle Ergebnisse ausgeben. Wie muss man denn dabei vorgehen?


Danke und viele Grüße

Re: ALV: data_changed und/oder button_click?

Beitrag von newbie007 (ForumUser / 31 / 1 / 0 ) »
Keiner ne Idee bzw. ist die Frage nicht klar?

Re: ALV: data_changed und/oder button_click?

Beitrag von a-dead-trousers (Top Expert / 4485 / 231 / 1205 ) »
Hi!

Ad 1)
GETBEFORE
CHNGEAFTER

Ich vermute mal du meinst die F4-Hilfe, woanders hab ich nichts dazu gefunden :(
--> Schau dir den DATA_CHANGED mal genauer an, bzw. den ONF4
--> DATA_CHANGED_FINISHED wird meines Wissens NACH DATA_CHANGED aufgerufen. Vielleicht hilft dir ja das.
Ob du im PBO/PAI bist, kannst du dir uU mit einer Hilfsvariable die du in den entsprechenden Modulen setzt ermitteln.
Obwohl ich glaube, sowas in der Art in der SY-Variable oder woanders mal gesehen zu haben.

Ad 2)
Das erreichst du durch bearbeitung des Feldkatalogs:
Schau dir mal die Felder F4AVAILABL, VALEXI, DRDN_HNDL mal an!
Tip: Schau dir die Online-Hilfe zum ALV mal durch. Vorallem wie eigene DropDowns realisiert werden ist da ganz gut beschrieben.

lg ADT
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: data_changed und/oder button_click?

Beitrag von newbie007 (ForumUser / 31 / 1 / 0 ) »
a-dead-trousers hat geschrieben: --> Schau dir den DATA_CHANGED mal genauer an, bzw. den ONF4
--> DATA_CHANGED_FINISHED wird meines Wissens NACH DATA_CHANGED aufgerufen. Vielleicht hilft dir ja das.
Hi!

Also über

Code: Alles auswählen.

    CLEAR ls_f4.
    ls_f4-fieldname  = 'ABC'.
    ls_f4-getbefore  = 'X'.
    ls_f4-chngeafter = 'X'.
    APPEND ls_f4 TO lt_f4.
kann ich steuern, ob die Events vor der Änderung oder nach der Änderung ausgelöst werden. Allerdings gilt das sowohl für ONF4, DATA_CHANGED und DATA_CHANGED_FINISHED. Das Problem dabei ist, dass ich ja gerne eine Unterscheidung hätte.

Du (adt) meintest, ich solle mir eine Hilfsvariable setzen. Aber wenn das ALV aufgerufen wird, befinde ich mich im PBO. Wenn ich Änderungen mache ebenso. Erst wenn ich meinen Report verlasse springe ich ins PAI-Modul. Das hatte ich nicht berücksichtigt, daher bringt es mir nichts, wenn ich da Unterscheidungen machen.
Ich möchte ja lediglich beim Editieren meines ALVs unterscheiden, ob ich den Wert vor dem editieren habe, oder danach.

Noch eine Idee?


Gruß

Re: ALV: data_changed und/oder button_click?

Beitrag von a-dead-trousers (Top Expert / 4485 / 231 / 1205 ) »
ok, ja stimmt. Ich dachte du drückst irgendeine Taste zum Bestätigen der Eingabe, dann würde PAI/PBO ausgelöst werden.

Wenn ich dich richtig verstanden habe, möchtest du wissen wann ein Wert im ALV geändert wird bzw. versucht wird zu ändern.
Das lässt sich nicht herausfinden.

Stell dir SAP als eine Art Webserver vor.
Eine HTML-Seite mit einem Formular wird ausgeliefert.
Der User gibt was ein und drückt auf abschicken.
Der Server weiß nicht "wie" der User die Daten verändert hat. (Von AJAX mal abgesehen :P )
Es gibt nur die Info was vorher war und was nacher drinnensteht.

Was vorher war steht bei DATA_CHANGED in deiner Tabelle und was sich ändern wird in ER_DATA_CHANGED.
(Hier kannst du auch noch drauf reagieren ob die Eingabe vom User in der Form in Ordnung ist oder nicht)
Was nachher ist steht bei DATA_CHANGED_FINISHED in deiner Tabelle.

Wobei sichergestellt sein muss, dass die Tabelle von der Grid-Klasse geändert werden darf. (Siehe meinen ersten Post)

lg ADT
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

0
Antw.
3613
Views
DATA-CHANGED-PROTOCOL vom ALV-Grid manipulieren
von Frog » 27.05.2008 21:31 • Verfasst in ABAP Objects®
1
Antw.
4488
Views
F8 im Report mit Button-Click simulieren
von donossi » 15.06.2012 08:48 • Verfasst in ABAP® für Anfänger
6
Antw.
7620
Views
Radiobutton Click ?
von 5Jacken » 04.12.2012 11:08 • Verfasst in ABAP® für Anfänger
5
Antw.
6803
Views
Per Button klick ein symbol in den Button einfügen
von alex1986 » 03.08.2011 15:57 • Verfasst in ABAP® für Anfänger
1
Antw.
2418
Views
statt Button F8 Button Close setzen
von HH_ABAP » 18.05.2023 21:16 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Stücklisten
Gestern von Selma.schwarz 1 / 73
Belege
Gestern von Selma.schwarz 1 / 65
Belege
Gestern von Selma.schwarz 1 / 66

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

Stücklisten
Gestern von Selma.schwarz 1 / 73
Belege
Gestern von Selma.schwarz 1 / 65
Belege
Gestern von Selma.schwarz 1 / 66

Unbeantwortete Forenbeiträge

Stücklisten
Gestern von Selma.schwarz 1 / 73
Belege
Gestern von Selma.schwarz 1 / 65
Belege
Gestern von Selma.schwarz 1 / 66