Soll/Haben ????

SAP R/3 Finanzwesen: Hauptbuchhaltung; Kreditorenbuchhaltung; Debitorenbuchhaltung; Bankbuchhaltung; Anlagenbuchhaltung; ...
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Soll/Haben ????

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

Ich bin blutiger ABAP und FI Anfänger.

Ich habe einen Report geschrieben, der mir jetzt SOLL, HABEN und HABEN - Soll ausgeben soll.

Mein Problem liegt jetzt darin, daß ich nicht weis, welche Spalte Soll und welche Spalte Haben ist.

Habe bis jetzt nur verzweifelt im Netz gesucht und auch ein bischen was gefunden.

Wenn ich es richtig verstanden habe, gibt es da die Spalte SHKZG die Bestimmt ob etwas Soll oder Haben ist.

Ich habe in mein Coding die Spalten DMBTR und WRBTR mit einbezogen.

Hoffe Ihr habt mein Problem verstanden und könnt mir helfen.

Vielen Dank im Voraus

Robin


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,
END 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 lifnr land1
FROM lfa1 INTO CORRESPONDING FIELDS OF wa_lfa1
WHERE land1 IN so_land.
MOVE-CORRESPONDING wa_lfa1 TO itab_sumla.
SELECT lifnr zuonr gjahr belnr monat blart diekz bukrs shkzg dmbtr
wrbtr bschl
FROM bsak INTO CORRESPONDING FIELDS OF wa_bsak
WHERE lifnr = wa_lfa1-lifnr
AND gjahr = pa_gj
AND monat IN so_perio
AND bukrs IN ('1001')
AND blart IN ('A1', 'A2', 'A3').
MOVE-CORRESPONDING wa_bsak TO itab_sumla.
SELECT lifnr zuonr gjahr belnr monat blart diekz bukrs shkzg dmbtr
wrbtr bschl
FROM bsik INTO CORRESPONDING FIELDS OF wa_bsik
WHERE lifnr = wa_lfa1-lifnr
AND blart = wa_bsak-blart
AND bukrs = wa_bsak-bukrs
AND bschl = wa_bsak-bschl
AND monat IN so_perio
AND gjahr = pa_gj.
MOVE-CORRESPONDING wa_bsik TO itab_sumla.
SELECT zdlkz bezeichnung
FROM zdlkz_t INTO CORRESPONDING FIELDS OF wa_zdlkz_t
WHERE zdlkz IN so_dlkz.
* AND zdlkz IN ('2080', '2090', '2070').
MOVE-CORRESPONDING wa_zdlkz_t TO itab_sumla.
APPEND itab_sumla.
ENDSELECT.
ENDSELECT.
ENDSELECT.
CLEAR itab_sumla.
ENDSELECT.

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

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 = '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.
[/code]

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


Beitrag von MrBojangles ( / / 0 / 3 ) »
Hallo Robin,

sollte kein Problem sein.
In DMBTR steht der Betrag in Hauswährung, in WRBTR der Betrag in Belegwährung drin. Die Beträge sind hierbei Positiv abgelegt, im SHKZG steht 'S' drin für Soll und 'H' für Haben. Wenn Du Rechenoperationen ausführen willst, solltest Du dir ein Hilfsfeld mit Vorzeichen definieren und dann in Abhängigkeit des S/H-Kennz. addieren bzw. subtrahieren, also in etwa so:

Code: Alles auswählen.

data: saldo type p decimals 2.
...
if ...-shkzg = 'S'. 
  add ...-dmbtr to saldo.
else.
  subtract ...-dmbtr from saldo.
endif.
oder so ähnlich...

Cheers
MrB.

Beitrag von robin1at (Specialist / 190 / 0 / 0 ) »
Vielen Dank für Deine Hilfe Mr.B!!!

Robin

Seite 1 von 1

Über diesen Beitrag


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

Aktuelle Forenbeiträge

ATC Finding in Smartforms
vor 2 Tagen von sap_enthusiast 2 / 298
LSMW-Problem
vor 4 Tagen von rob_abc 4 / 361

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

ATC Finding in Smartforms
vor 2 Tagen von sap_enthusiast 2 / 298
LSMW-Problem
vor 4 Tagen von rob_abc 4 / 361

Unbeantwortete Forenbeiträge

SFP/SEGW - Fehler beim Rendering
letzen Monat von Manfred K. 1 / 71564
Benutzerdefinierte Felder PSP
January 2026 von Rabea1103 1 / 124575