SAP Jobsuche bei DV-Treff
Yeti67
  • Yeti67
  • SAP Forum - Profi Thema Starter
vor 3 Jahre
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!

Förderer

Yeti67
  • Yeti67
  • SAP Forum - Profi Thema Starter
vor 3 Jahre
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.

Yeti67
  • Yeti67
  • SAP Forum - Profi Thema Starter
vor 3 Jahre
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.
unkelbach
vor 3 Jahre
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.

Yeti67
  • Yeti67
  • SAP Forum - Profi Thema Starter
vor 3 Jahre
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.
Yeti67
  • Yeti67
  • SAP Forum - Profi Thema Starter
vor 3 Jahre
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?

Yeti67
  • Yeti67
  • SAP Forum - Profi Thema Starter
vor 3 Jahre
Habe es jetzt dort eingebaut. Jetzt sind aber noch ein paar Felder unbekannt (keine DATA-Anweisungen)

Rückmeldung ohne DATA-Anweisungen:

str

Entschuldige, dass ich so nachbohre, aber ich bin leider nur Gelegenheitsprogrammierer 😁

Yeti67
  • Yeti67
  • SAP Forum - Profi Thema Starter
vor 3 Jahre
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 .

IF IS ASSIGNED.

SORT BY (sort_f1) "(sort_f2) (sort_f3)

ASCENDING.

ENDIF.

Yeti67
  • Yeti67
  • SAP Forum - Profi Thema Starter
vor 3 Jahre
Read raus und sort2 und sort3 drin, aber es bleibt bei einer Zeile
Yeti67
  • Yeti67
  • SAP Forum - Profi Thema Starter
vor 3 Jahre
Kein Problem, trotzdem vielen Dank!
SanduhrAnzeigeProgramm
vor 3 Jahre
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)


*... who can do field replacements in the debugger can do anything in the system

*so this check can not stop (him) anyway.

Yeti67
  • Yeti67
  • SAP Forum - Profi Thema Starter
vor 3 Jahre
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 .

IF IS ASSIGNED.

SORT BY (sort_f1) (sort_f2) (sort_f3)

ASCENDING.

ENDIF.

*

TRANSFER zaehler TO lv_file.

TRANSFER 'ENDE der Liste ' TO lv_file.

Yeti67
  • Yeti67
  • SAP Forum - Profi Thema Starter
vor 3 Jahre
Hier ist der Open

#

*Öffnen der Datei

OPEN DATASET lv_file FOR OUTPUT IN TEXT MODE ENCODING NON-UNICODE.

TRANSFER 'Daten D7 RGWF' TO lv_file.

TRANSFER ' ' TO lv_file.

TRANSFER itab_zeile TO lv_file.

IF sy-subrc = 0.

ENDIF.

Yeti67
  • Yeti67
  • SAP Forum - Profi Thema Starter
vor 3 Jahre
Hallo,

leider kann ich nicht nachvollziehen, ob in der %G00 Daten vorhanden sind, da im Debugger diese anscheinend keine gültige Variable ist, so die Rückmeldung. Auch in sind keine Daten. Weiterhin werden im ALV 26 Datensätze angezeigt, in der Exportdatei nur einer (die erste Belegnummer).

*Öffnen der Datei

OPEN DATASET lv_file FOR OUTPUT IN TEXT MODE ENCODING NON-UNICODE.

TRANSFER 'Daten D7 RGWF' TO lv_file.

TRANSFER ' ' TO lv_file.

LOOP.

TRANSFER itab_zeile TO lv_file.

endloop.

IF sy-subrc = 0.

ENDIF.

ENDIF.