Code: Alles auswählen.
sort lt_table1 by column1 column2 column3
lt_table2 = lt_table1.
delete lt_table2 where column3 ne 4.
insert lines of lt_table2 to lt_table1 index 1.Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
Bjuti
Code: Alles auswählen.
sort lt_table1 by column1 column2 column3.
lt_table2 = lt_table1.
delete lt_table2 where column3 ne 4.
insert lines of lt_table2 to lt_table1 index 1.
sort lt_table1 stable by column1 column2.Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
Bjuti
Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
Bjuti
Dies war der entscheidende Denkanstoß für mich. Es klappt wunderbar. Herzlichen Dank aber auch an a-dead-trousers.black_adept hat geschrieben:Hallo Bijuti,
0 durch 2 ersetzten, sortieren, und dann die Ersetzung rückgängig machen und 2 zurück nach 0 ersetzen.
Eine willkürliche Sortierung wie 4,0,1 bedingt automatisch eine Programmanpassung, wenn neue Feldwerte auftauchen. Das wäre bei einer zusätzlichen Spalte wohl auch nicht anders.edwin hat geschrieben:Hi,
das Ersetzen finde ich gefährlich, was ist wenn mal tatsächlich eine 2 in den Daten auftaucht, dann wird die 2 durch 0 ersetzt und keiner merkt es ! Da finde ich den Vorschlag mit einer neuen Spalte für das Sortieren wesentlich sicherer.
/Edwin
Ich würde es auch über eine zusätzliche Sortierspalte lösen, die Sortierreihenfolge dann noch über eine CustomizingTabelle realiseren und der Aufwand der Nachpflege ist gering. Wenn ein neuer Wert dazu kommt, kann die Sortierreihenfolge nicht gemapped werden und man gibt eine Fehlermeldung aus.edwin hat geschrieben: klar ist das immer mit einem Aufwand verbunden, allerdings bleibe ich dabei - es ist gefährlich einfach die Daten wie beschrieben zu ändern, im ungünstigsten Fall merkt keiner, daß da eine neue Zeichenfolge (2) auftaucht, da diese ja nach dem Sort wieder auf 0 gesetzt wird.