interne Tabelle sortieren

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

interne Tabelle sortieren

Beitrag von Marc K. (ForumUser / 62 / 3 / 0 ) »
Hallo,

ich möchte meine interne tabelle nach z.b. Zahl sortieren, d.h:

sort LT_TABLE by ZAHL ascending.

Die Anweisung bringt mir aber Inhalt meiner Spalte in so einem Format:
1
11
12
2
21
22
3
31
32

wie komme ich aber zu dem Ergebnis:
1
2
3
11
12
21
22
31
32

Danke!

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


Re: interne Tabelle sortieren

Beitrag von Alexander D. (Expert / 682 / 30 / 84 ) »
hi Marc,

wie ist deine interne Tabelle definiert? Unter Umständen musst du statt 1 den Wert 01 speichern, dann klappt es auch mit der Sortierung.
schöne Grüße
Alexander

ECC 6.0 EHP 7

Re: interne Tabelle sortieren

Beitrag von Murdock (Specialist / 115 / 55 / 8 ) »
Hi Marc,

der Typ der Spalte ist bei dir ein String und wird dementsprechend sortiert.
Wenn Du die Tabellenzeile als Zahl deklarierst, wird sie auch so sortiert, wie Du es erwartest.

Gruß,
Murdock.

Re: interne Tabelle sortieren

Beitrag von black_adept (Top Expert / 3943 / 105 / 886 ) »
Hi Marc,

deine Spalte mit den Zahlen hat keinen Zahl- sondern einen Charactertyp. Somit wird die lexikografische statt der nummerischen Sortierung angewendet.
Somit solltest du entweder (z.B. mittels alpha-konvertierung) deine Zahlen in ein normiertes Format bringen oder gleich das Feld anders typisieren.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: interne Tabelle sortieren

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
z.b. INT4 anstatt CHAR.

Wenn es trotzdem eine CHARLIKE Variable bleiben soll (z.B. DB-Schlüssel) würde ich NUMC empfehlen. Da braucht man sich über die führenden Nullen keine Gedanken zu machen und hat trotzdem eine Zahl mit der man rechnen kann.
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: interne Tabelle sortieren

Beitrag von Marc K. (ForumUser / 62 / 3 / 0 ) »
vielen Dank für Eure Rückmeldungen!!!

Meine Tabelle ist vom type SOI_GENERIC_TABLE.

Ich möchte den Feld COLUMN(4) TYPE C sortieren.

Wie kann ich aber das Feld wie gewünsch formatieren???

Re: interne Tabelle sortieren

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
Wenn du die Struktur nicht verändern kannst oder darfst:

Code: Alles auswählen.

loop at lt_table assigning <ls_line>.
  write <ls_line>-column to <ls_line>-column using edit_mask '==ALPHA'.
endloop.
sort lt_table by column.
Ansonsten

Code: Alles auswählen.

column(4) TYPE n
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: interne Tabelle sortieren

Beitrag von Marc K. (ForumUser / 62 / 3 / 0 ) »

Code: Alles auswählen.

  loop at LT_DATA assigning <DATA>.
    write <DATA>-COLUMN to <DATA>-COLUMN using edit mask '==ALPHA'.
  endloop.
passiert leider nix!

Was soll aber die Anweisung using edit mask '==ALPHA'. heissen?

Re: interne Tabelle sortieren

Beitrag von Marc K. (ForumUser / 62 / 3 / 0 ) »
und wenn ich

COLUMN type N,

mache. Sortiert er mir trotzdem nicht wie gewünscht.

Bei COLUMN type INT4, sagt er mir: ... muss ein zeichenartiges Feld sein!!!

????

Re: interne Tabelle sortieren

Beitrag von black_adept (Top Expert / 3943 / 105 / 886 ) »
Hi Marc,

die Editmask verwendet die Alpha-Output-Funktion, aber du benötigst die Alpha-Input-Funktion.
Somit musst du

Code: Alles auswählen.

  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
      input  = <DATA>-COLUMN
    IMPORTING
      output = <DATA>-COLUMN.
verwenden.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: interne Tabelle sortieren

Beitrag von Marc K. (ForumUser / 62 / 3 / 0 ) »
OK, hat's geklappt!!!

Vielen herzlichen Dank!!!

Re: interne Tabelle sortieren

Beitrag von Alexander D. (Expert / 682 / 30 / 84 ) »
hier ist ein Beispiel wie es mit TYPE N und EDIT MASK funktioniert:

Code: Alles auswählen.

TYPES: BEGIN OF t_itab,
  feld(4) TYPE n,
  END OF t_itab.

DATA: gt_itab TYPE STANDARD TABLE OF t_itab WITH DEFAULT KEY,
      wa_itab LIKE LINE OF gt_itab.

FIELD-SYMBOLS: <ls_line> TYPE t_itab.

wa_itab-feld = '1'. APPEND wa_itab TO gt_itab.
wa_itab-feld = '11'. APPEND wa_itab TO gt_itab.
wa_itab-feld = '12'. APPEND wa_itab TO gt_itab.
wa_itab-feld = '2'. APPEND wa_itab TO gt_itab.
wa_itab-feld = '21'. APPEND wa_itab TO gt_itab.
wa_itab-feld = '22'. APPEND wa_itab TO gt_itab.
wa_itab-feld = '3'. APPEND wa_itab TO gt_itab.
wa_itab-feld = '31'. APPEND wa_itab TO gt_itab.

"erst sortieren...
SORT gt_itab BY feld ASCENDING.

"bei der ausgabe dann die führenden Nullen entfernen
LOOP AT gt_itab ASSIGNING <ls_line>.
  WRITE <ls_line>-feld USING EDIT MASK '==ALPHA'.
  NEW-LINE.
ENDLOOP.
schöne Grüße
Alexander

ECC 6.0 EHP 7

Re: interne Tabelle sortieren

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
black_adept hat geschrieben:Hi Marc,

die Editmask verwendet die Alpha-Output-Funktion, aber du benötigst die Alpha-Input-Funktion.
Somit musst du

Code: Alles auswählen.

  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
      input  = <DATA>-COLUMN
    IMPORTING
      output = <DATA>-COLUMN.
verwenden.
Ach Mist... Sorry... Das verwechsel ich immer wieder!
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

11
Antw.
3367
Views
interne Tabelle sortieren?
von b0rsti » 10.06.2008 13:07 • Verfasst in ABAP® für Anfänger
5
Antw.
5542
Views
Interne Tabelle Sortieren: Ein Phänomen!!
von duchemin » 23.06.2004 18:55 • Verfasst in ABAP® Core
11
Antw.
7158
Views
dynamische interne Tabelle dynamisch sortieren
von Gast » 14.10.2004 14:27 • Verfasst in ABAP® Core
3
Antw.
1023
Views
Interne Tabelle nach dynamischer Spalte sortieren
von JanR » 27.10.2020 12:20 • Verfasst in ABAP® für Anfänger
6
Antw.
319
Views
Tabelle sortieren
von ralf.wenzel » 22.08.2022 13:28 • Verfasst in ABAP® Core

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.