Teilergebnis für mehrere Spalten in interner Tabelle

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

Teilergebnis für mehrere Spalten in interner Tabelle

Beitrag von GL1234 (ForumUser / 3 / 0 / 0 ) »
Hallo,

ich bräuchte bitte eure Hilfe. Bin gerade am Abap lernen als SAP-Berater und habe auch schon einige Programme erstellt.

Trotz googeln, F1-Hilfe und stöbern hier im Forum konnte ich folgendes Problem noch nicht lösen:

Ich lese derzeit aus der GLT3-Tabelle Daten aus und gebe sie für eine monatliche Buchungsanweisung in Excel mittels ALV aus.
Nun kam die neue Anforderung, die Zeilen gruppiert, also "reduziert" auszulesen. Und zwar mit Zwischensummen je Buchungsperiode in Konzernwährung je Konto, Bewegungsart und Partnergesellschaft. Ich denke, es müsste mit einer Schleife und einer "At End of" und "Sum" Anweisung gehen.

Es gibt sicher elegantere Ansätze, habe jetzt aber mehrere interne Tabellen angelegt, um das gewünschte Ergebnis zu bekommen. Es funktioniert aber noch nicht. Problem ist auch, dass ich ja für jede Konstellation von Konto / BWA / Partnergesellschaft eine summierte Zeile je Periode in Konzernwährung ausgeben soll. Aber z.B. die Partnergesellschaft und BWA ist ja nicht überall befüllt.

Mein derzeitiger Ansatz. In der internen Tabelle gt_glt3item_rassc sind die Daten mittels eines select aus der glt3 zuvor eingelesen worden für die betroffenen Bukr.

Code: Alles auswählen.


 SORT gt_glt3item_rassc BY racct rmvct rassc.

  LOOP AT gt_glt3item_rassc INTO wa_glpct.
    AT NEW racct.
    gv_racct = wa_glpct-racct.
    AT END OF rassc.
      SUM.
        gv_rassc = wa_glpct-rassc.
        APPEND wa_glpct TO gt_glt3item_rmvct.
     ENDAT.
    ENDAT.
  ENDLOOP.

SORT gt_glt3item_rmvct BY racct rmvct rassc.

  LOOP AT gt_glt3item_rmvct INTO wa_glpct.
    AT NEW racct.
    gv_racct = wa_glpct-racct.
    AT END OF rmvct.
      SUM.
        gv_rmvct = wa_glpct-rmvct.
        APPEND wa_glpct TO gt_glt3.
     ENDAT.
    ENDAT.
  ENDLOOP.

  SORT gt_glt3 BY racct rmvct rassc.

Kann mir hier jemand bitte einen Denkanstoß geben?

Danke!

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


Re: Teilergebnis für mehrere Spalten in interner Tabelle

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Da brauchst du nicht viel zu "programmieren".
https://answers.sap.com/questions/48052 ... n-alv.html

Wichtig ist die Sortierung mit Gruppierung und das Setzen von DO_SUM. (Zwischen-)summen funktionieren aber nur bei "nummerischen" Spalten.
Die Anleitung bezieht sich zwar auf die REUSE-Bausteine, funktioniert aber auch mit der ALV-Control-Klasse und (mit OO-Überbau) im SALV.
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: Teilergebnis für mehrere Spalten in interner Tabelle

Beitrag von GL1234 (ForumUser / 3 / 0 / 0 ) »
Vielen Dank für deine Antwort. Ganz habe ich es leider nicht verstanden, soweit ich sehe geht es hier ja um eine zusätzliche Zwischenzeile mit Zwischensumme. Ich würde jedoch gerne die interne Tabelle zusammenkürzen wie z.b. in Excel mit Teilergebnissen oder Pivot-Tabelle ohne Zwischensummen.

Nur als Beispiel:

Meine interne (Ausgangs)-Tabelle:

Konto / BWA / Partnergesellschaft / Summe
1200 / - / - / 50
1200 / - / 1000 / 20
1200 / - / 1000 / 120
1200 / 120 / 2000 / 100
1300 / - / - / 70
1300 / 130 / - / 30
1300 / 130 / - / 10


Gewünschter Outcome für interne Tabelle die ich dann in ALV ausgebe:

Konto / BWA / Partnergesellschaft / Summe
1200 / - / - / 50
1200 / - / 1000 / 140
1200 / 120 / 2000 / 100
1300 / - / - / 70
1300 / 130 / - / 40

Ich hätte es mit Loops mit GROUP BY oder ENDAT SUM versucht aber irgendwie will es nicht gelingen :-(.

Danke!

Re: Teilergebnis für mehrere Spalten in interner Tabelle

Beitrag von wreichelt (Top Expert / 1046 / 30 / 192 ) »
Hallo,

dann versuche es mal mit Collect in einem Loop.

Gruß Wolfgang

Re: Teilergebnis für mehrere Spalten in interner Tabelle

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
GL1234 hat geschrieben:
04.01.2021 16:13
Vielen Dank für deine Antwort. Ganz habe ich es leider nicht verstanden, soweit ich sehe geht es hier ja um eine zusätzliche Zwischenzeile mit Zwischensumme. Ich würde jedoch gerne die interne Tabelle zusammenkürzen wie z.b. in Excel mit Teilergebnissen oder Pivot-Tabelle ohne Zwischensummen.
Das wäre ein "programmatischer" Ansatz. Wie Wolfgang bereits erwähnt hat lässt sich das mit COLLECT lösen. Es geht auch "händisch" mit LOOP und AT NEW, wobei hier aber die Reihenfolge der Felder in deiner Tabelle zu berücksichtigen ist (siehe ABAP-Hilfe zu AT NEW).
Meine Lösung zielt darauf ab, dass du deine Tabelle gar nicht verändern musst und die Gruppierung sowie die Summenbildung vom ALV erledigen lässt.
Pivot in ABAP ist zwar möglich, dafür brauchst du aber RTTC bzw. RTTI um die Felder der internen Tabelle dynamisch zur Laufzeit zu erstellen und befüllen. Außerdem musst du das dann komplett selbst programmieren, weil es dafür (soweit ich weis) nichts out-of-the-box gibt. Nichts für Anfänger und mit einem Export nach Excel und Nutzung der dortigen Funktionen zehnmal schneller gelöst. Dazu benötigst du aber wiederum möglichst "unveränderte" Daten, womit wir wieder bei meinem Lösungsansatz wären.
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: Teilergebnis für mehrere Spalten in interner Tabelle

Beitrag von GL1234 (ForumUser / 3 / 0 / 0 ) »
Hallo ihr beiden,

vielen Dank für die Tipps. Der COLLECT-Befehl hat funktioniert!
Das war für mich als Anfänger dann doch einfacher wie die objektorientierte Lösung mit der Summenbildung über ALV.

Schönen Tag,
lg,
Gernot

Seite 1 von 1

Vergleichbare Themen

17
Antw.
7781
Views
Spalten Interner Tabellen nacheinander auslesen.
von JulDen » 13.02.2018 18:33 • Verfasst in ABAP® für Anfänger
5
Antw.
1716
Views
SPALTEN INTERNER TABELLEN NACHEINANDER AUSLESEN mit einer lOOP.
von Geny » 15.06.2020 15:47 • Verfasst in ABAP® für Anfänger
0
Antw.
2078
Views
OLE excel -> teilergebnis
von mleitner » 10.04.2006 16:42 • Verfasst in ABAP Objects®
10
Antw.
3884
Views
Select mit interner Tabelle
von Kenny » 13.11.2013 12:17 • Verfasst in ABAP® für Anfänger
2
Antw.
1853
Views
Problem mit interner Tabelle
von Troilus » 17.11.2007 23:09 • 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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 14 Stunden von Bright4.5 1 / 288
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1927
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8530