ePrivacy and GPDR Cookie Consent by Cookie Consent
Willkommen Gast! Um alle Funktionen zu aktivieren müssen Sie sich Anmelden oder Registrieren.

Mitteilung

Icon
Error

2 Seiten12>
Optionen
Gehe zum aktuellsten Beitrag Gehe zum letzten Ungelesenen
Offline Yeti67  
#1 Geschrieben : Montag, 11. April 2022 05:09:00(UTC)
Yeti67

Beiträge: 80
Hallo zusammen,
zur Zeit erstelle ich eine Query, wo zeilenweise eine Liste aufgebaut wird. Dieser wird dann am Schluß in eine CSV-Tabelle exportiert und abgespeichert. Soweit so gut, aber diese Liste soll noch nach einem Feld sortiert werden. Und das klappt nicht.


SORT: itab BY betrag.
READ TABLE itab INTO itab_zeile.
TRANSFER itab_zeile TO lv_file.
BREAK-POINT.
TRANSFER zaehler TO lv_file.
TRANSFER 'ENDE der Liste ' TO lv_file.

Und wichtig! Es ist mit einem Infoset aufgebaut mit ein paar ABAP-Schnipsel.

Danke im vorraus!
Jobangebote

Nehmen Sie an dieser Diskussion teil! SAP FORUM - SAP Community LoginHier registrieren.

Offline wreichelt  
#2 Geschrieben : Montag, 11. April 2022 07:28:15(UTC)
wreichelt

Beiträge: 2,717
Hallo,

warum machst du die Sortierung nicht im Layout ?

Gruß Wolfgang
Offline Yeti67  
#3 Geschrieben : Montag, 11. April 2022 08:07:26(UTC)
Yeti67

Beiträge: 80
Hallo,
war auch meine Idee, leider wird nur die ALV-Ausgabe und die interne Tabelle (kontrolliert über den Debugger) sortiert. Die Exceldatei (sprich der Export) leider nicht.
Offline wreichelt  
#4 Geschrieben : Montag, 11. April 2022 08:15:02(UTC)
wreichelt

Beiträge: 2,717
Hallo,

ich lasse mir die sortierte Tabelle im ALV anzeigen, dann starte ich den Excel Download , werden da die Daten nicht so übernommen wie im ALV angezeigt ?

Gruß Wolfgang
Offline Yeti67  
#5 Geschrieben : Montag, 11. April 2022 08:20:25(UTC)
Yeti67

Beiträge: 80
Doch, ich hätte noch erwähnen sollen, dass das Ganze hauptsächlich als Hintergrundjob laufen soll. Der manuelle Aufruf, also mit ALV nur ab und zu.
Offline unkelbach  
#6 Geschrieben : Montag, 11. April 2022 08:45:08(UTC)
unkelbach

Beiträge: 163
Germany
Wohnort: Hessen
Vielleicht ein etwas naiver Ansatz.

Innerhalb der Grundliste (SQ01) kann ich über die Werkzeugleiste Sortieren einzelne Felder in die Werkzeugleiste Sortierfelder ziehen. Damit ist eine Sortierreihenfolge unabhängig vom Layout vorgegeben und sollte eigentlich auch im Ausgabeformat Datei entsprechend sortiert sein. Zumindest bei einen schnellen Test war dieses der Fall.

Die Werkzeugleiste ist per STRG + F7 in der Grundliste einsehbar und es können die Felder aus dem Beispieldatensatz direkt auf die Feldliste Sortierfelder gezogen werden.
Offline Yeti67  
#7 Geschrieben : Montag, 11. April 2022 08:57:03(UTC)
Yeti67

Beiträge: 80
Danke für den Tipp, leider nicht mit Erfolg gekrönt. Die ALV-Liste hat zwar die Sortierung aber die Exportliste hat danach nur noch einen Datensatz.
Offline wreichelt  
#8 Geschrieben : Montag, 11. April 2022 10:08:32(UTC)
wreichelt

Beiträge: 2,717
Hallo,

vielleicht hilft das weiter:

* Codingabschnitt - END-OF-SELECTION (nach Liste)
*----------------------------------------------------------------------
" %G00 - Tabelle für finale Ausgabe

str = '%G00[]'.
ASSIGN (str) TO <g00>.

LOOP AT <g00> INTO <s_g00>.

" hier jetzt den SORT einbauen

ENDLOOP.
ENDIF.


Gruß Wolfgang
Offline Yeti67  
#9 Geschrieben : Montag, 11. April 2022 10:45:11(UTC)
Yeti67

Beiträge: 80
Hallo,

mein Coding oben steht in "End-of-Selection.

str? mein Lv_file?

Am Ende Deines Coding steht ein ENDIF. Muss nicht auch ein if irgendwo stehen?
Offline wreichelt  
#10 Geschrieben : Montag, 11. April 2022 10:51:47(UTC)
wreichelt

Beiträge: 2,717
Hallo,

ja das ENDIF kann raus,
Im str wird die Tabelle einfach zugewiesen.

Hatte das einfach kopiert aus einer Query, ohne Check

Gruß Wolfgang
Offline Yeti67  
#11 Geschrieben : Montag, 11. April 2022 11:17:52(UTC)
Yeti67

Beiträge: 80
Habe es jetzt dort eingebaut. Jetzt sind aber noch ein paar Felder unbekannt (keine DATA-Anweisungen)
Rückmeldung ohne DATA-Anweisungen:
<G00>
<s_g00>
str

Entschuldige, dass ich so nachbohre, aber ich bin leider nur Gelegenheitsprogrammierer BigGrin
Offline wreichelt  
#12 Geschrieben : Montag, 11. April 2022 11:25:15(UTC)
wreichelt

Beiträge: 2,717
Hallo,

hier ein Beispiel mit Sort

FIELD-SYMBOLS <fs_dtab> TYPE STANDARD TABLE.
DATA: sort_f1 TYPE fieldname,
sort_f2 TYPE fieldname,
sort_f3 TYPE fieldname.

In INITIALIZATION Event write the following code.
sort_f1 = 'VBAK-VBELN'.
sort_f2 = 'VBAK-ERDAT'.
sort_f3 = 'VBAK-ERZET'.

In END-OF-SELECTION (after list) Event write the following code.
ASSIGN ('%G00[]') TO <fs_dtab>.
IF <fs_dtab> IS ASSIGNED.
SORT <fs_dtab> BY (sort_f1) (sort_f2) (sort_f3)
ASCENDING.

ENDIF.

Bestimmt wird es jetzt klarer. Für Gelegenheitsprogrammierer ist die Sache auch anspruchsvoll

Gruß Wolfgang
Offline Yeti67  
#13 Geschrieben : Montag, 11. April 2022 11:37:57(UTC)
Yeti67

Beiträge: 80
Wir kommen der Sache näher.
- Query läuft, kein Absturz
- ALV Grid wird nach Feld (Betrag) sortiert, wunderbar!

Aber die Exportdatei hat nur eine Zeile, das eingebaute Feld "Zähler" sagt aber, dass es eigentlich 63 Zeilen haben sollte.
Diese werden aber unterschlagen.

Das ist das jetztige Coding aus END of SELECTION

READ TABLE itab INTO itab_zeile.
TRANSFER itab_zeile TO lv_file.
*BREAK-POINT.
TRANSFER zaehler TO lv_file.
TRANSFER 'ENDE der Liste ' TO lv_file.
*
*In END-OF-SELECTION (after list) Event write the following code.
ASSIGN ('%G00[]') TO <fs_dtab>.
IF <fs_dtab> IS ASSIGNED.
SORT <fs_dtab> BY (sort_f1) "(sort_f2) (sort_f3)
ASCENDING.
ENDIF.
Offline wreichelt  
#14 Geschrieben : Montag, 11. April 2022 12:17:50(UTC)
wreichelt

Beiträge: 2,717
Hallo,

verstehe es nicht. Die Query ermittelt Daten, für was ist der READ .... ?
Und natürlich muss fs_dtab alle Spalten enthalten nicht nur sort_f1.....

Gruß Wolfgang
Offline Yeti67  
#15 Geschrieben : Montag, 11. April 2022 12:33:26(UTC)
Yeti67

Beiträge: 80
Read raus und sort2 und sort3 drin, aber es bleibt bei einer Zeile
Offline wreichelt  
#16 Geschrieben : Montag, 11. April 2022 12:40:26(UTC)
wreichelt

Beiträge: 2,717
Hallo,

also ich kann jetzt nicht mehr Helfen.

Alles was mir bekannt war, habe ich dazu beigetragen

Gruß Wolfgang
Offline Yeti67  
#17 Geschrieben : Montag, 11. April 2022 12:42:52(UTC)
Yeti67

Beiträge: 80
Kein Problem, trotzdem vielen Dank!
Offline SanduhrAnzeigeProgramm  
#18 Geschrieben : Dienstag, 12. April 2022 07:05:04(UTC)
SanduhrAnzeigeProgramm

Beiträge: 1,344
In Unwissenheit über die Gesamtheit der Programmierung und wie Wolfgang ja auch schon geschrieben hat, was soll der Read und wo ist der Loop?

Natürlich erhältst du mit dem hier geposteten Coding nur eine Zeile.
Wie gesagt in Unwissenheit was da noch so programmeirt ist (davor, danach, sonst wo)
Frag dich nach jedem Post, "was würden Dunning & Kruger dazu sagen?"
Offline Yeti67  
#19 Geschrieben : Dienstag, 12. April 2022 07:40:42(UTC)
Yeti67

Beiträge: 80
Guten Morgen,

der Read ist nach dem letzten Post raus, aber ich habe noch keinen Loop. Habe zwar gestern mal mit einem gespielt, kam aber kein vernünftiges Ergebnis raus. Habe wahrscheinlich an der falschen Stelle in eingebaut. Wo käme er sinngemäß hin? Und wie ist das Coding?

TRANSFER itab_zeile TO lv_file.
BREAK-POINT.
*In END-OF-SELECTION (after list) Event write the following code.
ASSIGN ('%G00[]') TO <fs_dtab>.
IF <fs_dtab> IS ASSIGNED.
SORT <fs_dtab> BY (sort_f1) (sort_f2) (sort_f3)
ASCENDING.
ENDIF.
*
TRANSFER zaehler TO lv_file.
TRANSFER 'ENDE der Liste ' TO lv_file.
Offline wreichelt  
#20 Geschrieben : Dienstag, 12. April 2022 07:49:20(UTC)
wreichelt

Beiträge: 2,717
Hallo,

in der Tabelle %G00 müssen bereits alle Selektierten Daten vorhanden sein.
Das kann ja an dem Break-Point mit dem Debugger geprüft werden.

vor dem Transfer ist ja bestimmt auch ein OPEN....

OPEN DATASET file FOR OUTPUT IN BINARY MODE.
TRANSFER ...... TO file.
ENDSELECT.

CLOSE DATASET file.

Gruß Wolfgang
Benutzer, die gerade dieses Thema lesen
2 Seiten12>
Das Forum wechseln  
Du kannst keine neue Themen in diesem Forum eröffnen.
Du kannst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge nicht löschen.
Du darfst deine Beiträge nicht editieren.
Du kannst keine Umfragen in diesem Forum erstellen.
Du kannst nicht an Umfragen teilnehmen.

- Impressum / Datenschutz -