Berechnung einer Differenz im ALV

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

Berechnung einer Differenz im ALV

Beitrag von robin1at (Specialist / 190 / 0 / 0 ) »
Hallo liebe Helfer!

Ich brauche mal wieder Eure Hilfe!

Nachdem ich das Forum schon durchforstet habe, und leider nicht das richtige finde, hoffe ich daß Ihr meine Frage versteht und mir helfen könnt.

Ich möchte bei meiner ALV Ausgabe in der letzen Zeile wo die Summen stehen, eine Differenz berechnen.

Ich habe folgende Spalten: soll, haben, haben - soll.

Bei haben - soll, sollte dann die Differenz zu sehen sein.

Bis jetzt habe ich es leider nur geschafft die einzelnen Spalten zu summieren. Hoffe Ihr könnt mir helfen.

Danke

Robin

Im Anhang mein Coding ...

Code: Alles auswählen.

TYPE-POOLS slis.

TABLES: lfa1, bseg, bkpf, bsik, bsak, zdlkz_t.

DATA: wa_lfa1 TYPE lfa1,
      wa_zdlkz_t TYPE zdlkz_t,
      wa_bkpf TYPE bkpf,
      wa_bsak TYPE bsak,
      wa_bsik TYPE bsik.

DATA: BEGIN OF itab_sumla OCCURS 10,
        lifnr LIKE lfa1-lifnr,
        land1 LIKE lfa1-land1,
        diekz LIKE bsak-diekz,
        belnr LIKE bsak-belnr,
        zuonr LIKE bsak-zuonr,
        blart LIKE bsak-blart,
        bukrs LIKE bsak-bukrs,
        monat LIKE bsak-monat,
        gjahr LIKE bsak-gjahr,
        shkzg LIKE bsak-shkzg,
        bschl LIKE bsak-bschl,
        dmbtr LIKE bsak-dmbtr,
        wrbtr LIKE bsak-wrbtr,
        zdlkz LIKE zdlkz_t-zdlkz,
        bezeichnung LIKE zdlkz_t-bezeichnung,
        soha TYPE p DECIMALS 2,
        soll TYPE p DECIMALS 2,
        haben TYPE p DECIMALS 2,
      END OF itab_sumla.

DATA: wa_soha LIKE LINE OF itab_sumla.

DATA: my_fieldcat TYPE slis_t_fieldcat_alv,
      wa_layout   TYPE slis_layout_alv,
      wa_fieldcat LIKE LINE OF my_fieldcat,
      repid TYPE sy-repid.

SELECT-OPTIONS: so_land FOR lfa1-land1,
                so_perio FOR bkpf-monat.

PARAMETERS pa_gj LIKE bseg-gjahr.

SELECT-OPTIONS: so_dlkz FOR zdlkz_t-zdlkz.

START-OF-SELECTION.
*##################

 SELECT a~lifnr a~land1 b~diekz b~belnr b~zuonr b~blart b~bukrs b~monat
                b~gjahr b~shkzg b~bschl b~dmbtr b~wrbtr
                INTO TABLE itab_sumla
                FROM ( lfa1 AS a
                            INNER JOIN bsak AS b
                              ON a~lifnr = b~lifnr )
                WHERE land1 IN so_land
                AND gjahr = pa_gj
                AND monat IN so_perio
                AND bukrs IN ('1001')
                AND blart IN ('A1', 'A2', 'A3').
  APPEND itab_sumla.

 SELECT a~lifnr a~land1 b~diekz b~belnr b~zuonr b~blart b~bukrs b~monat
                b~gjahr b~shkzg b~bschl b~dmbtr b~wrbtr
                INTO TABLE itab_sumla
                FROM ( lfa1 AS a
                            INNER JOIN bsik AS b
                              ON a~lifnr = b~lifnr )
                WHERE land1 IN so_land
                AND gjahr = pa_gj
                AND monat IN so_perio
                AND bukrs IN ('1001')
                AND blart IN ('A1', 'A2', 'A3').

  IF sy-subrc <> 0.
    MESSAGE i819(3f).
*   Keine Daten im gewählten Zeitraum vorhanden
  ENDIF.

  LOOP AT itab_sumla INTO wa_soha.

    IF wa_soha-shkzg = 'H'.
      wa_soha-haben = - wa_soha-dmbtr.
    ELSE.
      wa_soha-soll  = wa_soha-dmbtr.
    ENDIF.

    wa_soha-soha = wa_soha-haben - wa_soha-soll.

    MODIFY itab_sumla FROM wa_soha TRANSPORTING soll.
    MODIFY itab_sumla FROM wa_soha TRANSPORTING haben.
    MODIFY itab_sumla FROM wa_soha TRANSPORTING soha.


  ENDLOOP.

* Zusätzliche Spalte für Haben - Soll Berechnung

  wa_fieldcat-fieldname = 'SOLL'.
  wa_fieldcat-col_pos = 14.
  wa_fieldcat-seltext_l = 'Soll'.
  wa_fieldcat-do_sum = 'X'.
  APPEND wa_fieldcat TO my_fieldcat.

  wa_fieldcat-fieldname = 'HABEN'.
  wa_fieldcat-col_pos = 15.
  wa_fieldcat-seltext_l = 'Haben'.
  wa_fieldcat-do_sum = 'X'.
  APPEND wa_fieldcat TO my_fieldcat.

  wa_fieldcat-fieldname = 'SOHA'.
  wa_fieldcat-col_pos = 16.
  wa_fieldcat-seltext_l = 'Haben - Soll'.
  APPEND wa_fieldcat TO my_fieldcat.

  wa_layout-colwidth_optimize = 'X'.

  repid = sy-repid.

  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
       EXPORTING
            i_program_name         = sy-repid
            i_structure_name       = 'ZMYSTRUKTUR'
       CHANGING
            ct_fieldcat            = my_fieldcat
       EXCEPTIONS
            inconsistent_interface = 1
            program_error          = 2
            OTHERS                 = 3.
  IF sy-subrc <> 0.
    MESSAGE e707(69).
*   Lesefehler
  ENDIF.

  DELETE my_fieldcat WHERE NOT ( fieldname = 'BLART'
                               OR  fieldname = 'ZDLKZ'
                               OR  fieldname = 'LAND1'
                               OR  fieldname = 'GJAHR'
                               OR  fieldname = 'SHKZG'
                               OR  fieldname = 'DMBTR'
                               OR  fieldname = 'SOLL'
                               OR  fieldname = 'HABEN'
                               OR  fieldname = 'SOHA'
                               OR  fieldname = 'MONAT' ).

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
            is_layout     = wa_layout
            it_fieldcat   = my_fieldcat
       TABLES
            t_outtab      = itab_sumla
       EXCEPTIONS
            program_error = 1
            OTHERS        = 2.
  IF sy-subrc <> 0.
    MESSAGE e707(69).
*   Lesefehler
  ENDIF.

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


Beitrag von CAT ( / / 0 / 3 ) »
Hi,

wenn ich das richtig sehe, möchtest du unter dein SOHA Spalte eine Summe haben.

Setze für das Feld im Feldkatalog wa_fieldcat-do_sum = 'X' und du hast auch hier eine Summe.

Wenn ich das flasch verstanden haben sollte, erkläre dein Problem etwas genauer.

Gruß

Thomas

Beitrag von robin1at (Specialist / 190 / 0 / 0 ) »
Hallo Thomas!

Danke für Deine schnelle Antwort.

Das mache ich bei den Spalten Soll und Haben.

Wenn ich das bei meiner letzten Spalte mache, bekomme ich dort nur die Summe von Haben - Soll.

Ich möchte aber nicht die Summe, sondern die Differenz der ersten beiden Spalten (Soll, Haben).

Danke

Robin

Beitrag von Gast ( / / 0 / 3 ) »
Hi Robin,

nochmal:
1) wenn du einen Betrag hast der im Haben (- 100) steht und du diesem vom Soll (was in diesem Fall dann 0 ist) abziehst, sollte in deiner soha - Spalte -100 stehen

2) machst du das für alle deine Zeilen, so sollte die differenz = der Summe der Spalte soha sein.

soll haben soha
Zeile 1 0 100 -100
zeile 2 50 0 50
zeile ...
Summe 50 100 -50

und wenn dich die - 50 stört, dann stelle in die HabenSpalte das Vorzeichen mit rein und dann sieht es ordentlich aus.

Gruß

Thomas

Beitrag von robin1at (Specialist / 190 / 0 / 0 ) »
Danke Thomas!

Jetzt hab ich es!

War ein totaler Denkfehler von mir. :oops:

Vielen vielen Dank!!!

Schöne Grüße

Robin

Seite 1 von 1

Vergleichbare Themen

2
Antw.
2573
Views
Differenz Datumsfelder vom typ BCOS_TSTMP (DEC 15)
von Jüüürgen » 24.06.2005 11:31 • Verfasst in ABAP® für Anfänger
2
Antw.
1702
Views
Differenz aus Nachkommastellen berechnen
von kbit100 » 11.04.2018 11:55 • Verfasst in ABAP® für Anfänger
4
Antw.
7957
Views
Differenz in Jahren zwischen 2 Datumsangaben
von sap-known » 17.06.2007 17:26 • Verfasst in ABAP® für Anfänger
0
Antw.
808
Views
IDOC GSVERF01 Summen Differenz
von autohandel7 » 12.09.2016 11:55 • Verfasst in ABAP® für Anfänger
1
Antw.
3495
Views
Große Umsatzprobe Differenz SAPF190
von Nowack » 23.06.2017 08:31 • Verfasst in Financials

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Artikel automatisch in va01
vor 2 Tagen von wreichelt 2 / 53
langtexte beim Fertigungsauftrag
vor 3 Tagen von ByteMeBaby 7 / 6427
Updates der Daten, Fehlermeldung
vor 4 Tagen von Egzon gelöst 1 / 75

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

Artikel automatisch in va01
vor 2 Tagen von wreichelt 2 / 53
langtexte beim Fertigungsauftrag
vor 3 Tagen von ByteMeBaby 7 / 6427
Updates der Daten, Fehlermeldung
vor 4 Tagen von Egzon gelöst 1 / 75

Unbeantwortete Forenbeiträge

Updates der Daten, Fehlermeldung
vor 4 Tagen von Egzon 1 / 75
Zwischensumme Adobe Forms
letzen Monat von Lucyalison 1 / 298