Merkwürdiges Sortier-"Phänomen"

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

Merkwürdiges Sortier-"Phänomen"

Beitrag von ABAP_User (Specialist / 146 / 20 / 0 ) »
Hi,

ich hab ein merkwürdiges Sortier-"Phänomen'. Wenn ich meine interne Tabelle nicht sortiere, wird meine ALV korrekt angezeigt. Sortiere ich sie hingegen, wird ein Wert in der Tabelle falsch angezeigt. Hab bereits debuggt, die interne Tabelle ist, wenn ich die Methode refresh_alv_display aufrufe, korrekt.

Der Wert der falsch ist, wird ermittelt, indem eine Referenz ausgelesen wird und in das Feld der internen Tabelle gelesen.
Er hat genau den Wert, den ich an einer anderen Stelle einer Referenz übergebe.

Bei der Problembeschreibung kann ich sicherlich keine konkreten Lösungsvorschläge erwarten, aber könnt ihr euch in irgendeiner Weise vorstellen, womit das zusammenhängen könnte? Was genau passiert in der Methode alv_refresh_display? Könnte der Fehler damit zusammenhängen, denn die interne Tabelle, die ich übergebe, ist ja korrekt.


Viele Grüße

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


Re: Merkwürdiges Sortier-"Phänomen"

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
hi!

Wann überträgt du den Wert aus der Referenz in die interne Tabelle? Vor oder nach dem Sortieren?
Beinhaltet die interne Tabelle bereits eine Referenz?
Wie erfolgt die Ermittlung der Referenz deren Daten du in die interen Tabelle schreibst? Per Index?
Wird vielleicht nach einer Spalte sortiert die eine Referenz-Variable beinhaltet?

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: Merkwürdiges Sortier-"Phänomen"

Beitrag von ABAP_User (Specialist / 146 / 20 / 0 ) »
Hi!
a-dead-trousers hat geschrieben:Wann überträgt du den Wert aus der Referenz in die interne Tabelle? Vor oder nach dem Sortieren?
Vor dem sortieren.
a-dead-trousers hat geschrieben:Beinhaltet die interne Tabelle bereits eine Referenz?
Ja, beinhaltet sie.
a-dead-trousers hat geschrieben:Wie erfolgt die Ermittlung der Referenz deren Daten du in die interen Tabelle schreibst? Per Index?
Die werden selbst aus einer Referenz bezogen, die über eine interne Tabelle mit diesen Referenzen verfügt. 1:n-Beziehung.
--> hier liegt vermutlich auch der Knackpunkt. Leider hat mir das bislang nicht wirklich weitergeholfen. =/
a-dead-trousers hat geschrieben:Wird vielleicht nach einer Spalte sortiert die eine Referenz-Variable beinhaltet?
Nein, nach einer Spalte vom Typ dats.

Re: Merkwürdiges Sortier-"Phänomen"

Beitrag von black_adept (Top Expert / 4099 / 128 / 941 ) »
Hallo ABAP_USER,

was genau ist denn falsch an dem Wert? Wird der "alte" Wert weiterhin angezeigt oder wird ein völlig willkürlicher Wert angezeigt?
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Merkwürdiges Sortier-"Phänomen"

Beitrag von ABAP_User (Specialist / 146 / 20 / 0 ) »
Nee. Ich editiere eine Zelle und setze diesen Wert, der in die Zelle eingetragen wird. Der Fehler ist nun, dass nicht eine Objektreferenz den Wert bekommt, sondern eine Zweite. Eben genau diesen, denn ich bei einer anderen Referenz setze. Die übrigen Werte sind korrekt.

Re: Merkwürdiges Sortier-"Phänomen"

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
hi!

Sortiertst du die Tabelle auch noch am Frontend?
Wenn ja, musst du der Event-Verarbeitung (DATA_CHANGED & Co.) mit den Zeilen-Indizes aufpassen, wo du was reinschreibst.
Denn der Index am Frontend ist jener im sortierten Zustand des Frontend.

Besser:
Immer wenn ich ein editierbares ALV-Grid verwende, stelle ich sicher, dass die Tabelle "global" erreichbar ist.
Sprich nie per "Importing"-Parameter übergeben wird. Dann ist gewährleistet, dass das ALV die Daten NACH dem Editieren wieder in die richtigen Zellen der internen Tabelle schreibt.
Um jetzt das Ergebnis zu erhalten, brauch ich nur die Tabelle auszulesen.
Mit der Methode CHECK_CHANGED_DATA kann man jederzeit das ALV-Grid veranlassen den aktuellen Stand zurückzuschreiben.
Sobald du nun das ganze Ergebnis hast, musst du nur noch alle Zeilen durchloopen und die Daten von den Spalten in die Referenzen übertragen.

Anm.: Wenn du mit der Zeilenmarkierung arbeitest und die Daten am Frontend sortiert hast, musst du bei GET_SELECTED_ROWS usw. den Wert der im Feld INDEX der Struktur LVC_S_ROW steht verwenden.

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: Merkwürdiges Sortier-"Phänomen"

Beitrag von ABAP_User (Specialist / 146 / 20 / 0 ) »
Hi!

Leider habe ich mich um den Report schon eine Weile nicht mehr gekümmert und den Thread daher ruhen lassen. Nun würde ich aber nochmal gerne darauf eingehen.
a-dead-trousers hat geschrieben:Sortiertst du die Tabelle auch noch am Frontend?
Ja.
a-dead-trousers hat geschrieben: Wenn ja, musst du der Event-Verarbeitung (DATA_CHANGED & Co.) mit den Zeilen-Indizes aufpassen, wo du was reinschreibst.
Denn der Index am Frontend ist jener im sortierten Zustand des Frontend.
Ich glaube da liegt das Problem verborgen. Eben hab ich nochmal alles durchdebugged. Anfänglich meinte ich ja, dass bei refresh_table_display der Fehler passiert, das ist aber nicht der Fall. Es passiert definitiv im SAP-Coding, ausgelöst durch den DATA_CHANGED-Event. Im Event wird lediglich erkannt, dass sich eine Zeile verändert hat (mt_good_cells). Allerdings werden ja zwei Zeilen verändert, der Event bekommt jedoch gar nicht mit, dass noch eine zweite Zeile ohne zutun des Anwenders automatisch angepasst wird.
a-dead-trousers hat geschrieben: Besser:
Immer wenn ich ein editierbares ALV-Grid verwende, stelle ich sicher, dass die Tabelle "global" erreichbar ist.
Die Tabelle ist bereits global verfügbar.
a-dead-trousers hat geschrieben: Mit der Methode CHECK_CHANGED_DATA kann man jederzeit das ALV-Grid veranlassen den aktuellen Stand zurückzuschreiben.
Sobald du nun das ganze Ergebnis hast, musst du nur noch alle Zeilen durchloopen und die Daten von den Spalten in die Referenzen übertragen.
Das ist mir nicht ganz klar, wie du das meinst. Ich hab ja gar keinen Zugriff darauf mehr, weil der Fehler am Ende des DATA_CHANGED Events passiert, also schon wieder im SAP-Coding.

Nun hab ich auch noch versucht, anstatt refresh_table_display die Tabelle mit set_table_for_first_display neu aufzubauen, aber selbst dann passiert der Fehler.

Habt ihr noch eine Idee??

Re: Merkwürdiges Sortier-"Phänomen"

Beitrag von ABAP_User (Specialist / 146 / 20 / 0 ) »
Konnte den Fehler endlich mit einem einfachen "CLEAR er_data_changed->mt_good_cells." beheben. :o

Re: Merkwürdiges Sortier-"Phänomen"

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
Hi!
ABAP_User hat geschrieben:Konnte den Fehler endlich mit einem einfachen "CLEAR er_data_changed->mt_good_cells." beheben. :o
Okay. Das ist die Holzhammermethode! Damit verhinderst du, dass das ALV die Daten aktualisiert.

Ich glaub du bist eher beim falschen Event:
Es gibt auch DATA_CHANGED_FINISHED. Dann sind die fertigen Daten bereits in deiner Tabelle und du kannst sie so wie bisher bearbeiten.

Sry, dass mir das nicht schon früher aufgefallen ist. Hab selber eine Ableitung der CL_GUI_ALV_GRID geschrieben, die mir die ganzen PAI/PBO/CHANGED_DATA abnimmt. Die feuert selber nur noch einen ON_CHANGED-Event hinter dem steht bei mir eigentlich der DATA_CHANGED_FINISHED. :oops:

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: Merkwürdiges Sortier-"Phänomen"

Beitrag von ABAP_User (Specialist / 146 / 20 / 0 ) »
a-dead-trousers hat geschrieben:Sry, dass mir das nicht schon früher aufgefallen ist...
Du brauchst dich dafür doch nicht entschuldigen. Bin ja froh, dass du mir hilfst. :)

Seite 1 von 1

Vergleichbare Themen

0
Antw.
1323
Views
ELKO und ein merkwürdiges Phänomen
von alicemal » 05.09.2008 12:54 • Verfasst in Financials
2
Antw.
1297
Views
Dezimalformat Userabhängig? Merkwürdiges Phänomen:
von Nordlicht » 11.07.2006 10:44 • Verfasst in ABAP® für Anfänger
3
Antw.
2188
Views
merkwürdiges Verhalten der Objekthistorie
von Alexander D. » 13.08.2013 10:36 • Verfasst in Basis
11
Antw.
3473
Views
Schräges Phänomen bei verschiedenen SELECT-Versionen
von DeathAndPain » 16.11.2017 16:04 • Verfasst in ABAP® für Anfänger
0
Antw.
814
Views
Merkwürdiges Verhalten bei Datumsaufbereitung aus Benutzerst
von clinke » 26.06.2007 15:19 • Verfasst in ABAP® Core

Aktuelle Forenbeiträge

Regex in where
vor einer Stunde von black_adept 2 / 54
Programm anlegen mit Vorlage
vor 8 Stunden von DeathAndPain 2 / 110
IT0024 Qualifikationen CP-ID
vor 8 Stunden von DeathAndPain 2 / 351
BUSOBJEKT zu CMIS PHIO ermitteln
vor 10 Stunden von snooga87 1 / 82

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

Regex in where
vor einer Stunde von black_adept 2 / 54
Programm anlegen mit Vorlage
vor 8 Stunden von DeathAndPain 2 / 110
IT0024 Qualifikationen CP-ID
vor 8 Stunden von DeathAndPain 2 / 351
BUSOBJEKT zu CMIS PHIO ermitteln
vor 10 Stunden von snooga87 1 / 82

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 10 Stunden von snooga87 1 / 82
aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3260
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9821