Summierung von Spalten in Abhängigkeit einer Eingabe

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

Summierung von Spalten in Abhängigkeit einer Eingabe

Beitrag von chiara (ForumUser / 3 / 0 / 0 ) »
Hallo zusammen,

ich habe immer mal über Google Beiträge von diesem Forum hier gefunden, die ich klasse fand, deshalb wende ich mich nun auch mal an euch, in der Hoffnung, es kann mir jemand bei meinem Problem weiterhelfen.

Ich stehe gerade vor dem Problem, dass ich die Summe von Kostenstellen ausgeben möchte, die ich in der Tabelle cosp (wog001-wog016) finde. So, jetzt steht aber leider nicht eben nur eine Summe in der Tabelle, sondern für jede Periode die Summe einzeln....

Ich müsste nun also irgendwie??? dem Programm beibringen, wenn auf dem Selektionsbildschirm Periode 2-6 eingegeben wird, dass nach meinem select, er sich die Spalten wog002-wog006 nimmt und diese summiert.
Und genau hier scheitere ich kläglich... ich habe leider keine Ahnung, wie man so was macht... habe nur mal was von Assign mitbekommen, aber keinen Schimmer, wie man das umsetzten könnte...

Kann mir vielleicht irgendjemand von euch weiterhelfen???
Ich häge mal meine (klägliche) select anweisung dran, vielleicht hilft das oder man kann da was einbauen..??? :roll:

Viele Grüße
Chiara



LOOP AT gt_kostl INTO gs_kostl.

* Alle Objektnummern zu einer Kostenstelle ausgeben*---------------------


SELECT objnr wog001 wog002 wog003 wog004 wog005 wog006
wog007 wog008 wog009 wog010 wog011 wog012
wog013 wog014 wog015 wog016
FROM cosp
INTO CORRESPONDING FIELDS OF gs_cosp
WHERE objnr = gs_kostl-objnr "Objektnummer
AND gjahr = p_gjahr "Geschäftsjahr
AND lednr = '00' "Hauptbuch
AND wrttp = '04' "Werttyp
AND versn = '000' "Version
AND twaer = h_waers. "Währung
* AND 'WOG%' In s_perio.
* AND fieldname LIKE 'WOG%'. "Wertfelder



APPEND gs_cosp TO gt_cosp.

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


Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Hallo,
hier mein Lösungsansatz.

Code: Alles auswählen.

*&---------------------------------------------------------------------*
*& Report  ZTEST81                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*

REPORT  ztest81.

DATA sum(15) TYPE p DECIMALS 2.


PARAMETERS: p_jahr TYPE cosp-gjahr DEFAULT '2002'.
PARAMETERS: p_von(3) TYPE n DEFAULT '003'.
PARAMETERS: p_bis(3) TYPE n DEFAULT '010'.

if p_bis ge p_von. 
PERFORM add_cosp USING p_von p_bis CHANGING sum.
endif.

*&---------------------------------------------------------------------*
*&      Form  add_cosp
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->VON        text
*      -->BIS        text
*      -->SUMME      text
*----------------------------------------------------------------------*
FORM add_cosp USING von bis CHANGING summe.
  DATA ls_cosp TYPE cosp.
  DATA pointer(20).
  DATA max TYPE i.
  DATA tmp(3) TYPE n.

  FIELD-SYMBOLS <p>.

  CLEAR summe.
  SELECT SINGLE * FROM cosp INTO ls_cosp WHERE
  gjahr = p_jahr "Geschäftsjahr
  AND lednr = '00' "Hauptbuch
  AND wrttp = '01' "Werttyp
  AND kstar = '0000469710'
  AND versn = '000'. "Version

  IF NOT ls_cosp IS INITIAL.
    max = bis - von + 1.

    DO max TIMES.
      tmp = von + sy-index - 1.
* wir basteln uns einen Feldnamen
      CONCATENATE 'LS_COSP-WOG' tmp INTO pointer.
* und weisen zu
      ASSIGN (pointer) TO <p>.
* wenn es funktioniert
      IF sy-subrc = 0.
* feld summieren
        ADD <p> TO summe.
* zuweisung aufheben
        UNASSIGN <p>.
      ENDIF.
* nächstes Feld
    ENDDO.
  ENDIF.

ENDFORM.                    "add_cosp
Primär habe ich mich auf die Adressierung der Felder via ASSIGN konzentriert,
kann man natürlich auch über mehrere Tabellenzeilen laufen lassen.Ich hoffe das alles verständlich ist.

gruß Tron
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Beitrag von ewx (Top Expert / 4848 / 312 / 642 ) »
Ein anderer Ansatz wäre auch, dass du in eine Tabelle nur die Felder aufnimmst, die gelesen werden sollen, z.B. T_FELDER.
Dann kannst du im SELECT mittels

Code: Alles auswählen.

 SELECT objnr (T_FELDER) from ... INTO CORRESPONDING FIELDS...
auch nur die Felder lesen.
hinterher kannst du dann ganz stumpf

Code: Alles auswählen.

erg = wog001 + wog002 + wog003 ....
rechnen, weil ja nur die relevanten Felder in der Struktur auch gefüllt sind.
Ganz ohne ASSIGN... 8)
Aber machs lieber so, wie Tron es aus dem jenseits vorgeschlagen hat, dann weisst du, wie der Assign funktioniert... :D

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Hallo zusammen,

dazu eignet sich der DO n TIMES VARYING, sofern die Felder im gleichen Abstand zueinander stehen.

Code: Alles auswählen.

FORM add_cosp USING    iv_von   TYPE <periode>
                       iv_bis   TYPE <periode> 
* muss CHANGING sein, weil könnte im DO-Loop verändert werden
              CHANGING cs_cosp  TYPE cosp
                       cv_summe TYPE <summe>.
  DATA:
...
    lv_wog TYPE cosp-wog001.
...
  DO 16 TIMES VARYING lv_wog FROM cs_cosp-wog001
                             NEXT cs_cosp-wog002.
* nur die Perioden berücksichten, die im Interval liegen
    IF sy-index BETWEEN iv_von AND iv_bis.
      cv_summe = cv_summe 
               + lv_wog.
    ENDIF.
  ENDDO.
ENDFORM.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Beitrag von chiara (ForumUser / 3 / 0 / 0 ) »
Hallo zusammen,

oh super, ich danke euch für eure super ausführlichen Antworen und das Coding!!!! Ich kann es leider erst am Montag versuchen einzubauen, dann berichte ich wieder!!!

Habt vielen lieben Dank für die schnelle Hilfe!!!!!! :)

Liebe Grüße
Chiara

Es klappt :-)

Beitrag von chiara (ForumUser / 3 / 0 / 0 ) »
Hallo noch mal,

es hat leider ein bisschen länger gedauert (da ich noch der blutige Anfänger hier bin, schlage ich mich mit Kleinigkeiten wie lange rum....), aber ich habe für mein Problem das Coding von Tron übernommen und es funzt perfekt!!!!!!

Vielen lieben Dank noch mal!!!!

:D und viele Grüße

Chiara

Seite 1 von 1

Vergleichbare Themen

4
Antw.
2158
Views
Summierung im ALV
von KlausB » 06.12.2007 09:54 • Verfasst in ABAP® für Anfänger
0
Antw.
1119
Views
Summierung in Excel
von KlausB » 19.09.2008 08:39 • Verfasst in ABAP® für Anfänger
2
Antw.
1877
Views
ALV Grid Summierung erzwingen
von Kleenmex » 14.05.2008 16:11 • Verfasst in ABAP Objects®
20
Antw.
16710
Views
ALV-Grid - Summierung nicht möglich
von khb » 29.04.2005 08:18 • Verfasst in ABAP® für Anfänger
1
Antw.
1910
Views
ALV editierbar nach jeder Zelle Summierung in der gl. Spalte
von Kleenmex » 09.05.2008 11:00 • Verfasst in ABAP Objects®

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 10 Stunden von black_adept gelöst 23 / 3646
User Exit EXIT_RQCPRM10_001
vor 11 Stunden von a-dead-trousers 2 / 244
Trennen Strasse und Hausnummer
vor 17 Stunden von payten 13 / 10574
Daten an Tabelle binden
Gestern von Lukas Sanders 2 / 1294

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.

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 10 Stunden von black_adept gelöst 23 / 3646
User Exit EXIT_RQCPRM10_001
vor 11 Stunden von a-dead-trousers 2 / 244
Trennen Strasse und Hausnummer
vor 17 Stunden von payten 13 / 10574
Daten an Tabelle binden
Gestern von Lukas Sanders 2 / 1294

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2837
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9425