Zwei ALV-Grids - ein Protokol

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
17 Beiträge • Seite 1 von 2 (current) Nächste
17 Beiträge Seite 1 von 2 (current) Nächste

Zwei ALV-Grids - ein Protokol

Beitrag von TomSd (ForumUser / 15 / 0 / 0 ) »
Hallo,
habe zwei ALV-Gris auf einer Seite. Beide sind editierbar. Falls beim Event data_changed Fehler auftreten sollen diese in einem Fenster angezeigt werden und nicht in zwei. Ist das möglich?
MFG
TomSd

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


Beitrag von BlackMail (ForumUser / 79 / 0 / 0 ) »
Ganz einfach ist das wohl nicht, weil bei jeder Änderung des Grids ein neues Protokollobjekt erzeugt wird. Wahrscheinlich ist es am einfachsten, die Nachrichten bei data_changed zu sammeln (aus beiden Grids) und sie in einem eigenen Protokollfenster anzuzeigen.

Gruß BlackMail.

Beitrag von TomSd (ForumUser / 15 / 0 / 0 ) »
Hi,
die Idee ist gut. Mit welcher Methode kann ich die Protokole auslesen.
Und wie bekomm ich die Verknüpfung zum jeweiligen ALV Grid hin d.h. bei Anklciken der Fehlermeldung wird in die richtige Zelle gesprungen.
MFG
TomSd

Beitrag von BlackMail (ForumUser / 79 / 0 / 0 ) »
Bei der genannten Lösung ist es vermutlich einfacher, auf den Doppelklick zu verzichten, wenn Du das gemeinsame Protokoll über die FuGr SBAL anzeigen willst. Die Standard-Grid-Lösung ist in dem Punkt auch nicht sehr schön gelöst. Im Standard werden die Funktionen der FuGr SBAL verwendet, um ein Protokoll zu erzeugen. Ein Doppelklick wird dann über ein Callback abgefangen.

An das jeweilige Protokoll kommt du in der Ereignisbehandlung für das data_changed-Ereignis. Als Parameter bekommt man eine Referenz auf er_data_changed, welches eine Tabelle (mt_protocol) mit den Protokolleinträgen enthält.

Beitrag von TomSd (ForumUser / 15 / 0 / 0 ) »
Hi,
nochmals danke für deine Tipps.
Habe es hinbekommen.
Habe allerdings noch eine weitere Frage.
Wie kann ich die fehlerhaften Zellen rot umranden, wie bei der Standardlösung.
MFG
TomSd

Beitrag von BlackMail (ForumUser / 79 / 0 / 0 ) »
Die Zellen rot einzufärben geht nicht ohne Weiteres, ist auch nicht zu empfehlen und hängt vor allem davon ab, wie du jetzt das Protokoll anzeigst. Wie sieht denn Deine Lösung aus?

Beitrag von TomSd (ForumUser / 15 / 0 / 0 ) »
Hallo,
lese mir die nachrichten zusammen und gebe sie dann über die FB's BAL_LOG_CREATE, BAL_LOG_MSG_ADD, BAL_CNTL_CREATE aus.
Da Du dich anscheinend mit dem ALV gut auskennst noch ne Frage.
Wie kann ich einen Zellenwert ändern, nachdem ein Wert in eine andere Zelle geschrieben wurde. Gibt es eine Methode? Über data_changed fank ich den wert ab und multiplizier ihn dann mit einem anderen. das ergebnis muss dann in eine andere zelle.
MFG
TomSd

Beitrag von BlackMail (ForumUser / 79 / 0 / 0 ) »
Hallo TomSd,
TomSd hat geschrieben: Wie kann ich einen Zellenwert ändern, nachdem ein Wert in eine andere Zelle geschrieben wurde.
MFG
TomSd
Der Zeitpunkt data_changed ist eigentlich nur dazu da, die geänderten Zellen daraufhin zu überprüfen, ob sie korrekt sind. Zu diesem Zeitpunkt sind die geänderten Daten auch noch nicht in der internen Tabelle angekommen.
Richtig wäre der Zeitpunkt data_changed_finished. Die Zellen, die korrekt waren und in Deine interne Tabelle übertragen wurden, werden über et_good_cells an deinen Ereignisbehandler übergeben.

Gruß BlackMail.

Beitrag von TomSd (ForumUser / 15 / 0 / 0 ) »
Hallo,

wenn ich an die Tabelle et_good_cells einen Wert anhänge,
erscheint er leider nicht in der Ausgabetabelle.
Was muss ich hierbei beachten?

MFG
TomSd

Beitrag von BlackMail (ForumUser / 79 / 0 / 0 ) »
Zum Zeitpunkt data_changed_finished kannst Du einfach die zu berechnenden Werte in deine interne Tabelle schreiben (evtl. ist danach noch ein refresh_table_display nötig, bin mir aber nicht sicher). et_good_cells gibt nur an, welche Zellen erfolgreich über die Oberfläche geändert wurden. Diese dienen dir also nur als Grundlage für die zu berechnenden Werte.

Gruß BlackMail.

Beitrag von TomSd (ForumUser / 15 / 0 / 0 ) »
Hi,
danke nochmal für den Tipp.
Ich habe noch eine weitere Frage.
Ich habe auf dem Alv Grid eine DropDown List. Wenn dort ein Eintrag ausgewählt wird, soll automatisch eine andere DropDownbox gefüllt werden, ohne Enter zu drücken. Ist das möglich?
Und noch eine Frage.
Wöhrend des Events data_changed_finished wird die tabelle neu aufgebaut mit refresh_table_display. dabei springt der cursor wieder auf zeile 1 zelle 1. ich setzt derzeit den cursor mittels set_current_cell_via_id auf dei zuletzt geänderte zelle. allerdings will ich bei einer tab eingabe auf die nächste eingabebereite zelle springen. wie geht das?
MFG
TomSd

Beitrag von BlackMail (ForumUser / 79 / 0 / 0 ) »
Hallo TomSd,

es gibt die Möglichkeit, auf Enter zu reagieren (register_edit_event mit mc_evt_enter), wie du das wahrscheinlich derzeit machst oder auf geänderte Zellen (mc_evt_modified). Letzteres Event wird immer ausgelöst, wenn eine Zelle geändert wurde und diese Zelle verlassen wird. Damit müsste es wahrscheinlich gehen.
TomSd hat geschrieben: dabei springt der cursor wieder auf zeile 1 zelle 1.
Hast Du mal refresh_table_display mit dem stable-Parameter probiert?, dass verhindert dieses Verhalten.
TomSd hat geschrieben: allerdings will ich bei einer tab eingabe auf die nächste eingabebereite zelle springen.
Tab springt automatisch in die nächste eingabebereite Zelle. Vielleicht habe ich Dich aber auch nicht richtig verstanden :(

Gruß BlackMail.

Beitrag von TomSd (ForumUser / 15 / 0 / 0 ) »
danke für die antwort.
ist es eigentlich möglich auf zellenebene einen datentyp zu vergeben?

Beitrag von BlackMail (ForumUser / 79 / 0 / 0 ) »
Das geht nicht. Schließlich basiert die Ausgabe auf einer internen Tabelle, welche auch nicht für jede Zelle einen anderen Typ haben kann :wink:

Gruß BlackMail.

Beitrag von TomSd (ForumUser / 15 / 0 / 0 ) »
Hi,
habe noch eine Frage.
Kann ich ein Dynpro in einen cl_gui_container laden?.
MFG
TomSd

Vergleichbare Themen

3
Antw.
1525
Views
Name des aktuellen Grids
von cwinter » 17.05.2006 11:12 • Verfasst in ABAP Objects®
5
Antw.
4888
Views
Tutorial für ALV Grids
von Senshi » 13.08.2007 08:29 • Verfasst in ABAP® für Anfänger
0
Antw.
1099
Views
Protokoll des ALV-Grids
von MNordlicht » 13.02.2006 12:17 • Verfasst in ABAP® Core
3
Antw.
1864
Views
Fragen zu ALV Grids
von Paul » 14.11.2018 19:14 • Verfasst in ABAP® für Anfänger
3
Antw.
3428
Views
2 ALV Grids in einem Dynpro
von annaarnst » 12.06.2008 17:18 • Verfasst in ABAP Objects®

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1763
HR-Entgeltnachweis
vor 2 Tagen von ChrisB 4 / 2306

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

Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1763
HR-Entgeltnachweis
vor 2 Tagen von ChrisB 4 / 2306

Unbeantwortete Forenbeiträge

Export von Spools in XLSX
vor 4 Tagen von abapamateur 1 / 321
Feldberechnung ME32K
vor einer Woche von ZF_SAPler 1 / 912
MS-Word als Editor
letzen Monat von tekko 1 / 4418