Rechenaufgabe ....

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

Rechenaufgabe ....

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

Ich habe ein Problem mit meinem Coding.

Ich habe meinem Feldkatalog eine Spalte hinzugefügt.

In dieser Spalte möchte ich nun ein Rechenergebnis ausgeben.

z.B.: BSAK-DMBTR - 50.

Aber das einizige was ich in meiner Spalte angezeigt bekomme ist dann -50.00.

Hoffe Ihr könnt mir helfen und mir erklären warum das nicht funktioniert.

Danke für Eure Hilfe

Robin

Code: Alles auswählen.

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,
      END OF itab_sumla.

DATA: wa_soha like line OF itab_sumla.


  LOOP AT itab_sumla INTO wa_soha.

    wa_soha-soha = bsak-dmbtr - 50.

  MODIFY itab_sumla FROM wa_soha transporting soha.
  
  ENDLOOP.

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

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


Beitrag von ewx (Top Expert / 4913 / 332 / 653 ) »
...denn wird bsak-dmbtr wohl nicht gefüllt sein...
Enno

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

Danke für Deine Antwort.

Doch bsak-dmbtr ist gefüllt mit 120.00.

Schöne Grüße

Robin

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

entweder ist dies nur ein ausschnitt aus deinem Coding oder BSAK sollte villeicht wa_soha heissen, da dein Loop über diese Struktur funktioniert.

Sollte der Loop über Performs aufgerufen werden, solltest du sicherstellen, das BSAK Global definiert ist.

Vielleicht helfen dir die Kommentare ja weiter.

Gruß

Thomas

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

Hier ist mein ganzes Coding.

Hoffe Ihr könnt mir helfen. Weis im Moment absolut nicht mehr weiter.

Vielen Dank

Robin

Code: Alles auswählen.

REPORT zsumla.

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,
      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.

DATA result TYPE p DECIMALS 2.

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').

 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.

    wa_soha-soha = wa_bsak-dmbtr - 50.

    MODIFY itab_sumla FROM wa_soha TRANSPORTING soha.
  ENDLOOP.

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

  wa_fieldcat-fieldname = 'SOHA'.
  wa_fieldcat-col_pos = 16.
  wa_fieldcat-seltext_l = 'Differenz'.
  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 = 'WRBTR'
                               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.

Beitrag von ewx (Top Expert / 4913 / 332 / 653 ) »
Hi Robin,

1. überschreibt dein zweiter Select die Daten aus dem ersten Select (--> APPENDING TABLE!!)
2. wird wa_bsak nirgends gefüllt...

Enno

Beitrag von Andreas G (Specialist / 175 / 0 / 0 ) »
bist du dir sicher das in wa_bsak-dmbtr ein wert steht? hab mir dein programm kopiert und ausprobiert. wenn ich im debugging z.B. 120 in wa_bsak-dmbtr schreibe werden die 50 richtig weggerechnet und es steht 70 in wa_soha-soha.

Seh auch nirgendwo, wo das feld wa_bsak-dmbtr beschrieben wird!

bitte noch mal über den code schauen!

mfg Andi
Hauptsoch: HAUPTSOCH!

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

Danke für Eure Hilfe!

Hab meinen Fehler gefunden. Verwende ja itab_sumla. :oops:

so ist es richtig:

wa_soha-soha = wa_soha-dmbtr - 50.

Schöne Grüße

Robin

Seite 1 von 1

Über diesen Beitrag


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

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.