Eingabe im ALV

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
15 Beiträge • Seite 1 von 1
15 Beiträge Seite 1 von 1

Eingabe im ALV

Beitrag von RiffRaff (Specialist / 379 / 0 / 1 ) »
Hallo Freaks,

ich habe meinen ALV mit REUSE_ALV_GRID_DISPLAY gebaut.Im Field-Katalog habe ich folgende Parameter gesetzt:
input = 'X'. " input
edit = 'X'. " internal use only

Jetzt kann ich die Spalte zwar editieren, aber
er merkt sich nichts in der Übergabetabelle.
Fehlt mir da noch eine Einstellung, oder funkt das mit den REUSE Bausteinen nicht????

Das Ereigniss DATA_CHANGED gibt es beim REUSE wohl auch nicht!? Wie kann mann hier auf das Ändern einer Zelle reagieren???

mfg
Richard

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


Beitrag von Norbert (ForumUser / 52 / 0 / 0 ) »
Ich habe da auch so meine Zweifel, ob die REUSE-Bausteine das können, da die Editierfähigkeit relativ neu ist.
Lieber ausprogrammieren ...
...........
Just do it !

Beitrag von zonken (ForumUser / 16 / 0 / 0 ) »
Hallo,
versuch mal folgendes beim Aufruf des Funktionsbausteins:
1. im fieldcat das Feld 'edit' setzen (hast du ja)
(input muss nicht gesetzt werden)
2. der Importparameter is_layout hat das Feld 'GROUP_CHANGE_EDIT' setzen (bzw. 'EDIT' um alle Spalten editierbar zu setzen wobei schritt 1 dann nicht mehr nötig wäre)
3. den Parameter 'i_callback_program' setzen (das aufrufende (sy-repid??) Programm)
6. den Parameter 'i_callback_user_command' mit einem Unterprogrammnamen füllen (z.B.: 'DEMO' )
7. im aufrufenden Programm eine Form 'DEMO' anlegen:
form DEMO using r_ucomm type sy-ucomm
rs_selfield type slis_selfield.
8. den r_ucomm auswerten, zu diesem Zeitpunkt solltest Du die Tabelle die aktuellen Werte haben.

Gruß Rico

Beitrag von RiffRaff (Specialist / 379 / 0 / 1 ) »
Hallo,

danke für die Antworten, daß löst aber leider nicht mein Problem.

Ich hatte schon herausgefunden, daß wenn der User bestimmte Funktionscodes auslöst (zb: Doppelklick, Save..) die Tabelle aktualisiert wird.

Also: sollte der User SAVE drücken (was er ja sollte) ist allse OK. Verläßt er allerdings das ALV ohne einen dieser FK zu drücken, sind die Daten verloren. Da das ALV (REUSE) keinen EVENT beim verlassen anbietet, kann ich mit einer Sicherheitsabfrage (Wollen Sie speichern??) erst nach dem Abbau reagiern, und dann sind die Daten ja schon weg.

mfg
Richard

Beitrag von Gast ( / / 0 / 3 ) »
Hallo Richard,

du könntest einmal versuchen mit IT_EVENT_EXIT zu arbeiten. Damit kannst du den ALV veranlassen, vor und/oder nach der Behandlung von ALV-Funktionen in deine Callback-Routine zu verzweigen. So könntest du auf die "Verlassen"-Funktionen &F03, &F12 und &F15 und natürlich andere selbst noch reagieren.

mfg dele

Beitrag von RiffRaff (Specialist / 379 / 0 / 1 ) »
Hallo,

soweit so gut - es wird immer komplizierter.

Damit kann ich mal mit 'FORM user_command...' die Eingabe abfangen. Zu diesem Zeitpunkt ist die Übergabetabelle jedoch nicht aktualisiert. Das heißt: Bei einer Sicherheitsabfrage (mit Speichern Ja beantwortet) kann ich den User nur zurück zum ALV schicken, und dort soll er speichern drücken. Um ihn beim erneuten verlassen nicht wieder zurück zu schicken, sollte man ein FLAG (gespeichert) setzen.
Soweit so gut.
Jetzt bräuchte man noch ein EVENT DATA_CHANGED, sowie beim ALV über Funktionsbausteine um das FLAG wieder aufzuheben, falls der User nach speichern nochmal Daten ändert.

Leider habe ich beim REUSE ALV noch nichts gefunden, mit dem man auf Datenänderung reagieren kann.
Währe auch wichtig, um eine Eingabeprüfung durchzuführen.

mfg
Richard

Beitrag von Gast ( / / 0 / 3 ) »
Hallo.

Also 'mal' doch einfach ein Dynpro mit nur einem CustomControl-Element.

Im PBO dann mit create eine CustomControl-Instanz erzeugen und darin ein ALV einbinden.

Code: Alles auswählen.

  create object alvContainer EXPORTING
         CONTAINER_NAME = 'CUSTOMALV'.
  create object alvGrid exporting 
         i_parent = alvContainer.
Danach definierst Dunoch die Strukturen (field, layout, ...) die Du bereits kennst. Mit einem

Code: Alles auswählen.

  call method alvGrid->SET_TABLE_FOR_FIRST_DISPLAY(
              EXPORTING IS_LAYOUT = layout
              CHANGING IT_OUTTAB = itabAccountData
                      IT_FIELDCATALOG = itab_field ).
diese Strukturen der Instanz übergeben und zur Anzeige bringen.

Da dies nun eine Anzeige über ein "EnjoySAP" Control ist. Kann man mit 'set handler' auf Ereignisse reagieren.

---
alvContainer type ref to cl_gui_custom_container
alvGrid type ref to cl_gui_alv_grid

Beitrag von RiffRaff (Specialist / 379 / 0 / 1 ) »
Hallo,

:shock: AHHHHR :evil:

ich glaub, ich programmier das ganze im ACCESS oder im COREL DRAW. Ist sicher einfacher.

Habe jetzt zwei Progs (zum testen): einmal ALV mit REUSE und einmal mit OBJECTS.
Beide haben das gleiche :twisted: Verhalten:
Zwei Spalten mit Eingabemöglichkeit.
Habe inzwischen die die 2 Felder mehrfach in der Tabelle geändert (Datenelement, Domäne).
letzter Versuch: Beide Felder gleiche Domäne (CHAR7)
Beim Auslesen der Felder aus der Tabelle und Anzeige im ALV werden sie richtig dargestellt.
Allerdings bei der Eingabe: Ein Feld 4 Zeichen eins 3 Zeichen. Die Felder in den ALV's (Eingabe) haben einen Stand wie vor 2 Tagen.

Domäne aktiviert
Datenelement aktiviert
Tabelle aktiviert
Programm generiert
Programm aktiviert
System verlassen, neu eingeloggt
Es ändert sich nichts :?

Wieso reagiert der ALV nicht auf die Änderungen in der Tabelle :?: :?:

mfg
Richard

Beitrag von Haubi (Expert / 625 / 20 / 30 ) »
Moinsen.

Aus aktuellem Anlass (weil ein Kollege grad das gleiche Problem hatte):
Versuch mal, bevor Du die Tabelle nach der Eingabe anfasst Front- und Backend zu synchronisieren:

Code: Alles auswählen.

CALL METHOD cl_gui_cfw=>flush.
Bei uns hat's danach gefunzt.

Gruss,
Haubi
Das ABAP Kochbuch ab sofort bei Amazon...

I'd rather write code that writes code than write code...

Beitrag von RiffRaff (Specialist / 379 / 0 / 1 ) »
Hallo,

habe die Codezeile in beide Programme eingebaut.
Gleich nach START-OF-SELECTION

Hat leider nichts gebracht

mfg
Richard

Beitrag von Haubi (Expert / 625 / 20 / 30 ) »
RiffRaff hat geschrieben: habe die Codezeile in beide Programme eingebaut.
Gleich nach START-OF-SELECTION
Zu welchem Zeitpunkt baust Du denn das ALV-Grid auf? Bei S-O-S selektiere ich normalerweise erstmal die Daten und schiebe diese erst danach in das Grid.

Der erwähnte Methoden-Aufruf sollte nach der Rückkehr aus dem ALV erfolgen. Wenn Du bspw. das Grid auf 'nem eigenen Dynpro hast wäre das entsprechend bei der PAI-Verarbeitung.
Bei den Bausteinen der Reuse-Bibliothek wäre das (wenn überhaupt) hinter dem Aufruf des FuBa bzw. in der Callback-Routine.

Gruss,
Haubi

Beitrag von RiffRaff (Specialist / 379 / 0 / 1 ) »
Hallo,

bringt auch nach dem FuBau nix.

Hab das ganze zuerst vorher eingebaut, da ich dachte, daß soll mein Frontend abgleichen.

Das Problem ist, daß die Anzeige des ALV offensichtlich nicht mitbekommt, daß sich die Tabelle geändert hat.

mfg
Richard

Beitrag von Haubi (Expert / 625 / 20 / 30 ) »
Und wie sieht das aus, wenn Du direkt das Objekt CL_GUI_ALV_GRID nutzt? Damit hat's bei uns geklappt.

Haubi
Das ABAP Kochbuch ab sofort bei Amazon...

I'd rather write code that writes code than write code...

Beitrag von black_adept (Top Expert / 4093 / 128 / 940 ) »
Parameter BYPASSING_BUFFER ( Oder I_BYPASSING__BUFFER ) beim Aufbau des Fieldcat oder Aufruf des Grid = 'X' gesetzt?
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Beitrag von RiffRaff (Specialist / 379 / 0 / 1 ) »
Hallo,

jetzt schon :lol: der bringts

mfg
Richard

Seite 1 von 1

Vergleichbare Themen

4
Antw.
6832
Views
Eingabe im ALV
von RiffRaff » 07.02.2005 08:39 • Verfasst in ABAP® Core
8
Antw.
3207
Views
Eingabe mit '*'
von andreas.l » 17.11.2016 09:14 • Verfasst in ABAP® für Anfänger
3
Antw.
1575
Views
ALV Eingabe
von SAP_ENTWICKLER » 26.05.2014 07:44 • Verfasst in ABAP® Core
1
Antw.
4663
Views
dynpro pop-up mit eingabe?
von ismailer » 16.02.2005 11:16 • Verfasst in ABAP® Core
1
Antw.
1443
Views
ALV GRID als Eingabe
von ryd » 06.01.2006 15:58 • Verfasst in ABAP Objects®

Aktuelle Forenbeiträge

Trennen Strasse und Hausnummer
vor 15 Stunden von msfox 18 / 11110
Dialog-Container mit Toolbar/Status
vor 18 Stunden von black_adept gelöst 27 / 4244
IT0024 Qualifikationen CP-ID
vor 19 Stunden von ArjenR 1 / 170

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

Trennen Strasse und Hausnummer
vor 15 Stunden von msfox 18 / 11110
Dialog-Container mit Toolbar/Status
vor 18 Stunden von black_adept gelöst 27 / 4244
IT0024 Qualifikationen CP-ID
vor 19 Stunden von ArjenR 1 / 170

Unbeantwortete Forenbeiträge

IT0024 Qualifikationen CP-ID
vor 19 Stunden von ArjenR 1 / 170
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 3106
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9700