11-21-2007 5:17 AM
Dear All,
Below is my code given but in output screen it does not show any value of ceratain fields like KOSTL,BELNR,BLDAT,WRBTR,DMBTR,BDIFF from BSID table.
Can anybody go through the program and let me know where is the error and where I am mistaking.
Regards,
Abhay.
REPORT rfdopr00
MESSAGE-ID fr
LINE-SIZE 132
NO STANDARD PAGE HEADING.
TABLES: b0sg,
kna1, "Daten auf Mandantenebene
KNKA,
knb1, "Daten auf Buchungskreisebene
knb4, "Zahlungsverhalten
knb5, "Mahndaten
KNKK, "Kreditkontrolle
knc1, "Verkehrszahlen
knc3, "Sonderumsätze
bsid, "Offend Posten
BKPF,
BSEG,
bsega.
TABLES:
bhdgd,
t001,
t001s,
*t001s,
t074t,
t074u,
tbsl,
tbslt,
tcurx,
adrs,
rfpdo,
rfsdo,
RFPOSXEXT,
faede.
FIELD-SYMBOLS: .
*Hilfsfelder
*---Prüfung ob mehrere Hauswährungen verarbeitet werden.
DATA: cfakt(3) TYPE p,
checksaldo(8) TYPE p,
checksald1(8) TYPE p,
checksald2(8) TYPE p,
checksald3(8) TYPE p,
checksald4(8) TYPE p,
checkagobl(8) TYPE p,
waers LIKE t001-waers,
wflag(1) TYPE p VALUE '0',
waers2 LIKE t001-waers,
wflag2(1) TYPE p VALUE '0',
ph-line(132) TYPE c.
*---Ermittlung aktuelles Geschäftsjahr über Funktionsbaustein.
DATA: curry LIKE bsid-gjahr.
*-Ermittlung Zahlungseingang bei Zahlungen mit Skontoabzug--
*
DATA: zvtage LIKE knb4-vzs01, "Verzugstage
zvskonto(8) TYPE p, "Zahlungsvolumen bei Zahlung mit Skonto
zvnetto(8) TYPE p, "Zahlungsvolumen bei Nettozahlung
zvverzug(8) TYPE p, "Verzugstage
zvmalvz(10) TYPE p, "Zahlungvolumen * Verzugstage
"KNB4-VZSxx)
zvtyp(1) TYPE c, "Skonto oder Nettozahler
ZVPER(4) TYPE C. "Periode letze Zahlung
zvper(6) TYPE c. "Periode letze Zahlung
*---Zeilenanzahl fü Adressausgabe -
*
DATA: zeilenanzahl LIKE adrs-anzzl VALUE 7.
DATA: ksaldo(6) TYPE p, "Saldovortrag
beabzug(6) TYPE p, "Berechtigte Abzüge
ubabzug(6) TYPE p, "Unberechtigte Abzüge
jahraug(6) TYPE p, "Kumulierter Jahresausgleich
kumzins(6) TYPE p. "Kumulierter Zins
Ausgabe der Mahndaten pro Buchungskreis.
----------------------------------------
DATA: index(2) TYPE p VALUE 0.
Hilfsfelder
-----------------------------------------------------------
DATA: hf(1) TYPE c.
DATA: txt_1(78) TYPE c, "Mahnbereich
txt_2(78) TYPE c, "Mahnart
txt_3(78) TYPE c, "Mahnempfänger
txt_4(78) TYPE c, "Mahndatum
txt_5(78) TYPE c, "Mahnstufe
txt_6(78) TYPE c, "Mahnsperre
txt_7(78) TYPE c, "Mahnverfahren
txt_8(78) TYPE c. "Sachbearbeiter
DATA: BEGIN OF xmahn OCCURS 10.
INCLUDE STRUCTURE knb5.
DATA: END OF xmahn.
Hilfsfeld für Sicherung der knka Felder
-----------------------------------------------------------
*ATA: SAVE_KLIMG LIKE KNKA-KLIMG, "Gesamtlimit
SAVE_KLIME LIKE KNKA-KLIME, "Einzellimit
SAVE_WAERS LIKE KNKA-WAERS, "Währung
SAVE_DLAUS LIKE KNKA-DLAUS. "letzte Auskunft
Hilfsfelder
-----------------------------------------------------------
DATA: char1(1) TYPE c.
DATA: flag1(1) TYPE c.
DATA: intens(1) TYPE c.
DATA: rastza(1) TYPE c.
*----
*
*---- K o n s t a n t e n -
*
*----
*
*---- DNULL zum Vergleich mit Datumsfeldern -
*
DATA: dnull(8) TYPE c VALUE '00000000'.
*---- DECKBLATT = 'N' ==> Kein Deckblatt bei NEW-SECTION -
*
DATA: deckblatt TYPE c VALUE 'N'.
*----
*
*---- 'H' = Hilfsfelder, die jederzeit fuer Berechnungen ver- -
*
*---- wendet werden koennen. -
*
*----
*
DATA: BEGIN OF h,
stichtag(8),
offset(2) TYPE p,
offse1(2) TYPE p,
soll LIKE knc1-um01s,
haben LIKE knc1-um01h,
saldo LIKE knc1-umsav,
shbkz LIKE knc3-shbkz, "Sonderhauptbuchkennzeichen
saldv LIKE knc3-saldv, "Sonderhauptbuch-Saldovortrag
shbls LIKE knc3-solll, "Sonderhauptbuch-Lfd.-Saldo
shbsl LIKE knc3-solll, "Sonderhauptbuch-Lfd.-SOLL
shbhb LIKE knc3-habnl, "Sonderhauptbuch-Lfd.-HABEN
GBNUM LIKE KNC1-GBN01, "Geschaeftsber. Nummer ECKERT
GBUMS LIKE KNC1-GBU01, "Geschaeftsber. Umsatz
text(15),
umlow LIKE bsid-umskz, "Umsatzkennzeichen
umhig LIKE bsid-umskz, "Umsatzkennzeichen
**************AB*******
kostl LIKE bsid-kostl,
belnr LIKE bsid-belnr,
bldat LIKE bsid-bldat,
wrbtr LIKE bsid-wrbtr,
bdiff LIKE bsid-bdiff,
**************AB*******
END OF h.
*----
*
---- 'C' = Zwischenergebnisse, die aus Feldern des C-Segmentes ---
*---- berechnet werden. -
*
*----
*
DATA: BEGIN OF c,
saldo TYPE p, "Saldo
WEXOB TYPE P, "Wechsel-Obligo W,S,B
ANZOB TYPE P, "Anzahlungs-Obligo A
ZANFB TYPE P, "Zahlungs-Anforderung F
umkz1 LIKE knc3-shbkz, "SHBKZ 1
sums1 TYPE p, "Sonderumsatz 1
umkz2 LIKE knc3-shbkz, "SHBKZ 2
sums2 TYPE p, "Sonderumsatz 2
umkz3 LIKE knc3-shbkz, "SHBKZ 3
sums3 TYPE p, "Sonderumsatz 3
umkz4 LIKE knc3-shbkz, "SHBKZ 4
sums4 TYPE p, "Sonderumsatz 4
umkz5 LIKE knc3-shbkz, "SHBKZ 5
sums5 TYPE p, "Sonderumsatz 5
umkz6 LIKE knc3-shbkz, "SHBKZ 6
sums6 TYPE p, "Sonderumsatz 6
umkz7 LIKE knc3-shbkz, "SHBKZ 7
sums7 TYPE p, "Sonderumsatz 7
umkz8 LIKE knc3-shbkz, "SHBKZ 8
sums8 TYPE p, "Sonderumsatz 8
umkz9 LIKE knc3-shbkz, "SHBKZ 9
sums9 TYPE p, "Sonderumsatz 9
umkz10 LIKE knc3-shbkz, "SHBKZ 10
sums10 TYPE p, "Sonderumsatz 10
sonob TYPE p, "Sonstige Umsatz-Kz
babzg TYPE p, "Berechtigte Abzuege
uabzg TYPE p, "Unberechtigte Abzuege
kzins TYPE p, "Zinszahlungen
kumum TYPE p, "Umsatz
kumag TYPE p, "Kum. Jahresausgleich
KREUEB TYPE P, "Kreditueberschreitung
AGOBLI TYPE P, "Gesamt-Obligo (absolut)
agobli LIKE knc1-umsav, "Gesamt-Obligo (absolut)
RGOBLI TYPE P, "Gesamt-Obligo (relativ)
lftage(3) TYPE p, "Langfristige Überzugstage
mftage(3) TYPE p, "Mittelfristige Überzugstage
kftage(3) TYPE p, "Kurzfristige Überzugstage
zvtyp(1) TYPE c, "Flag Skonto oder Nettozahler
zvper(6) TYPE c, "letze Zahlungsperiode
zvverzug(8) TYPE p, "Durchschittliche Verzugst
END OF c.
*----
*
---- 'C2'= Zwischenergebnisse, die aus Feldern des C-Segmentes ---
*---- berechnet werden. -
*
*----
*
DATA: BEGIN OF c2 OCCURS 0,
bukrs LIKE knc1-bukrs,
saldo TYPE p, "Saldo
WEXOB TYPE P, "Wechsel-Obligo W,S,B
ANZOB TYPE P, "Anzahlungs-Obligo A
ZANFB TYPE P, "Zahlungs-Anforderung F
umkz1 LIKE knc3-shbkz, "SHBKZ 1
sums1 TYPE p, "Sonderumsatz 1
umkz2 LIKE knc3-shbkz, "SHBKZ 2
sums2 TYPE p, "Sonderumsatz 2
umkz3 LIKE knc3-shbkz, "SHBKZ 3
sums3 TYPE p, "Sonderumsatz 3
umkz4 LIKE knc3-shbkz, "SHBKZ 4
sums4 TYPE p, "Sonderumsatz 4
umkz5 LIKE knc3-shbkz, "SHBKZ 5
sums5 TYPE p, "Sonderumsatz 5
umkz6 LIKE knc3-shbkz, "SHBKZ 6
sums6 TYPE p, "Sonderumsatz 6
umkz7 LIKE knc3-shbkz, "SHBKZ 7
sums7 TYPE p, "Sonderumsatz 7
umkz8 LIKE knc3-shbkz, "SHBKZ 8
sums8 TYPE p, "Sonderumsatz 8
umkz9 LIKE knc3-shbkz, "SHBKZ 9
sums9 TYPE p, "Sonderumsatz 9
umkz10 LIKE knc3-shbkz, "SHBKZ 10
sums10 TYPE p, "Sonderumsatz 10
sonob TYPE p, "Sonstige Umsatz-Kz
babzg TYPE p, "Berechtigte Abzuege
uabzg TYPE p, "Unberechtigte Abzuege
kzins TYPE p, "Zinszahlungen
kumum TYPE p, "Umsatz
kumag TYPE p, "Kum. Jahresausgleich
KREUEB TYPE P, "Kreditueberschreitung
AGOBLI TYPE P, "Gesamt-Obligo (absolut)
agobli LIKE knc1-umsav, "Gesamt-Obligo (absolut)
RGOBLI TYPE P, "Gesamt-Obligo (relativ)
lftage(3) TYPE p, "Langfristige Überzugstage
mftage(3) TYPE p, "Mittelfristige Überzugstage
kftage(3) TYPE p, "Kurzfristige Überzugstage
zvtyp(1) TYPE c, "Flag Skonto oder Nettozahler
zvper(6) TYPE c, "letze Zahlungsperiode
zvverzug(8) TYPE p, "Durchschittliche Verzugst
END OF c2.
*----
*
---- 'C3'= Zwischenergebnisse, die aus Feldern des C-Segmentes ---
*---- berechnet werden. -
*
*----
*
DATA: BEGIN OF c3,
saldo TYPE p, "Saldo
WEXOB TYPE P, "Wechsel-Obligo W,S,B
ANZOB TYPE P, "Anzahlungs-Obligo A
ZANFB TYPE P, "Zahlungs-Anforderung F
umkz1 LIKE knc3-shbkz, "SHBKZ 1
sums1 TYPE p, "Sonderumsatz 1
umkz2 LIKE knc3-shbkz, "SHBKZ 2
sums2 TYPE p, "Sonderumsatz 2
umkz3 LIKE knc3-shbkz, "SHBKZ 3
sums3 TYPE p, "Sonderumsatz 3
umkz4 LIKE knc3-shbkz, "SHBKZ 4
sums4 TYPE p, "Sonderumsatz 4
umkz5 LIKE knc3-shbkz, "SHBKZ 5
sums5 TYPE p, "Sonderumsatz 5
umkz6 LIKE knc3-shbkz, "SHBKZ 6
sums6 TYPE p, "Sonderumsatz 6
umkz7 LIKE knc3-shbkz, "SHBKZ 7
sums7 TYPE p, "Sonderumsatz 7
umkz8 LIKE knc3-shbkz, "SHBKZ 8
sums8 TYPE p, "Sonderumsatz 8
umkz9 LIKE knc3-shbkz, "SHBKZ 9
sums9 TYPE p, "Sonderumsatz 9
umkz10 LIKE knc3-shbkz, "SHBKZ 10
sums10 TYPE p, "Sonderumsatz 10
sonob TYPE p, "Sonstige Umsatz-Kz
babzg TYPE p, "Berechtigte Abzuege
uabzg TYPE p, "Unberechtigte Abzuege
kzins TYPE p, "Zinszahlungen
kumum TYPE p, "Umsatz
kumag TYPE p, "Kum. Jahresausgleich
KREUEB TYPE P, "Kreditueberschreitung
AGOBLI TYPE P, "Gesamt-Obligo (absolut)
agobli LIKE knc1-umsav, "Gesamt-Obligo (absolut)
RGOBLI TYPE P, "Gesamt-Obligo (relativ)
LFTAGE(3) TYPE P, "Langfristige Überzugstage
MFTAGE(3) TYPE P, "Mittelfristige Überzugstage
KFTAGE(3) TYPE P, "Kurzfristige Überzugstage
ZVTYP(1) TYPE C, "Flag Skonto oder Nettozahler
ZVPER(6) TYPE C, "letze Zahlungsperiode
ZVVERZUG(8) TYPE P, "Durchschittliche Verzugst
END OF c3.
DATA: shbetrag LIKE bsega-dmshb. "TYPE P.
*----
*
*---- 'RTAB' = Rastertabelle fuer offene Posten -
*
*----
*
DATA: BEGIN OF rtab OCCURS 30,
sortk(1) TYPE c, "0 = Summe Gesber
"1 = Summe aller Gesber
"2 = Umsatzdaten
bukrs LIKE bsid-bukrs,
gsber LIKE bsid-gsber,
waers LIKE bsid-waers,
********AB********
kostl LIKE bsid-kostl,
belnr LIKE bsid-belnr,
bldat LIKE bsid-bldat,
wrbtr LIKE bsid-wrbtr,
bdiff LIKE bsid-bdiff,
********AB********
raart TYPE c, "Rasterart
"1 = Netto-Faelligkeit
"2 = Skonto1-Faelligkeit
"3 = Zahlungseingang
"4 = Belegalter
"5 = Ueber-Faelligkeit
kumum TYPE p, "Umsatz
anzah TYPE p, "Anzahlungen
opsum TYPE p, "Offene Posten Summe
rast1 TYPE p, "Rasterfeld 1
rast2 TYPE p, "Rasterfeld 2
rast3 TYPE p, "Rasterfeld 3
rast4 TYPE p, "Rasterfeld 4
rast5 TYPE p, "Rasterfeld 5
rast6 TYPE p, "Rasterfeld 6
COUNT TYPE P, "count für Gesber
END OF rtab.
*----
*
*---- 'RBUS' = Rastertabelle fuer Summen pro Sachbearbeiter -
*
*----
*
DATA: BEGIN OF rbus OCCURS 30,
sortk(1) TYPE c, "0 = Summe Gesber
"1 = Summe aller Gesber
"2 = Umsatzdaten
bukrs LIKE bsid-bukrs,
gsber LIKE bsid-gsber,
waers LIKE bsid-waers,
raart TYPE c, "Rasterart
"1 = Netto-Faelligkeit
"2 = Skonto1-Faelligkeit
"3 = Zahlungseingang
"4 = Ueber-Faelligkeit
kumum TYPE p, "Umsatz
anzah TYPE p, "Anzahlungen
opsum TYPE p, "Offene Posten Summe
rast1 TYPE p, "Rasterfeld 1
rast2 TYPE p, "Rasterfeld 2
rast3 TYPE p, "Rasterfeld 3
rast4 TYPE p, "Rasterfeld 4
rast5 TYPE p, "Rasterfeld 5
rast6 TYPE p, "Rasterfeld 6
COUNT TYPE P, "count für Gesber
END OF rbus.
*----
*
*---- 'RBUK' = Rastertabelle fuer Summen pro Buchungskreis -
*
*----
*
DATA: BEGIN OF rbuk OCCURS 30,
sortk(1) TYPE c, "0 = Summe Gesber
"1 = Summe aller Gesber
"2 = Umsatzdaten
bukrs LIKE bsid-bukrs,
gsber LIKE bsid-gsber,
waers LIKE bsid-waers,
raart TYPE c, "Rasterart
"1 = Netto-Faelligkeit
"2 = Skonto1-Faelligkeit
"3 = Zahlungseingang
"4 = Ueber-Faelligkeit
kumum TYPE p, "Umsatz
anzah TYPE p, "Anzahlungen
opsum TYPE p, "Offene Posten Summe
rast1 TYPE p, "Rasterfeld 1
rast2 TYPE p, "Rasterfeld 2
rast3 TYPE p, "Rasterfeld 3
rast4 TYPE p, "Rasterfeld 4
rast5 TYPE p, "Rasterfeld 5
rast6 TYPE p, "Rasterfeld 6
COUNT TYPE P, "count für Gesber
END OF rbuk.
*----
*
---- 'RSUM' = Rastertabelle pro Währung über alle Buchungskreise ---
*----
*
DATA: BEGIN OF rsum OCCURS 30,
sortk(1) TYPE c, "0 = Summe Gesber
"1 = Summe aller Gesber
BUKRS LIKE BSID-BUKRS,
GSBER LIKE BSID-GSBER,
waers LIKE bsid-waers,
raart TYPE c, "Rasterart
"1 = Netto-Faelligkeit
"2 = Skonto1-Faelligkeit
"3 = Zahlungseingang
"4 = Ueber-Faelligkeit
kumum TYPE p, "Umsatz
anzah TYPE p, "Anzahlungen
opsum TYPE p, "Offene Posten Summe
rast1 TYPE p, "Rasterfeld 1
rast2 TYPE p, "Rasterfeld 2
rast3 TYPE p, "Rasterfeld 3
rast4 TYPE p, "Rasterfeld 4
rast5 TYPE p, "Rasterfeld 5
rast6 TYPE p, "Rasterfeld 6
COUNT TYPE P, "count für Gesber
END OF rsum.
*----
*
*---- interne Tabelle für Periodenabgrenzung----
*
*----
*
RANGES: bmonat FOR rfpdo-doprbmon.
*----
*
*---- interne Tabelle für Kreditkontrollbereichsdaten----
*
*----
*
*ATA: BEGIN OF KREDK OCCURS 10,
KKBER LIKE KNKK-KKBER, "Kreditkontrollbereich
UEDAT LIKE KNKK-UEDAT, "Datum Kreditlimitüberschreitung
KLIMK LIKE KNKK-KLIMK, "Kreditkontrollbereichslimit
SSOBL LIKE KNKK-SSOBL, "Relevantes Sonderobligo
SAUFT LIKE KNKK-SAUFT, "Summe Auftragswerte
SKFOR LIKE KNKK-SKFOR, "Summe Forderungen
END OF KREDK.
*----
*
---- interne Tabellen für Konsistenzcheck Kreditkontrollbereiche ---
*----
*
*ATA: BEGIN OF KKBERSEL OCCURS 10,
KKBER LIKE KNKK-KKBER, "Kreditkontrollbereich
END OF KKBERSEL.
*ATA: BEGIN OF KKBERGES OCCURS 10,
KKBER LIKE KNKK-KKBER, "Kreditkontrollbereich
BUKRS LIKE T001-BUKRS, "Buchungskreis
END OF KKBERGES.
*----
*
---- In die Felder RP01 bis RP05 werden dynamisch die von aussen ---
*---- eingegebenen Rasterpunkte uebertragen -
*
*----
*
DATA: rp01(2) TYPE p, " 0
rp02(2) TYPE p, " 20
rp03(2) TYPE p, " 40
rp04(2) TYPE p, " 80
rp05(2) TYPE p, " 100
rp06(2) TYPE p, " 1
rp07(2) TYPE p, " 21
rp08(2) TYPE p, " 41
rp09(2) TYPE p, " 81
rp10(2) TYPE p. " 101
*----
*
*---- In die Felder RC01 bis RC10 werden die Rasterpunkte in -
*
---- charakterform abgestellt. (fuer REPLACE-Funktion in Variabler -
*---- Ueberschrift) -
*
*----
*
DATA: rc01(4) TYPE c, " 0
rc02(4) TYPE c, " 20
rc03(4) TYPE c, " 40
rc04(4) TYPE c, " 80
rc05(4) TYPE c, " 100
rc06(4) TYPE c, " 1
rc07(4) TYPE c, " 21
rc08(4) TYPE c, " 41
rc09(4) TYPE c, " 81
rc10(4) TYPE c. " 101
*----
*
*---- Felder für Umsatzkennzeichen -
*
*---- für Ausweis der Sonderumsätze----
*
*----
*
DATA: humkz1 LIKE knc3-shbkz,
humkz2 LIKE knc3-shbkz,
humkz3 LIKE knc3-shbkz,
humkz4 LIKE knc3-shbkz,
humkz5 LIKE knc3-shbkz,
humkz6 LIKE knc3-shbkz,
humkz7 LIKE knc3-shbkz,
humkz8 LIKE knc3-shbkz,
humkz9 LIKE knc3-shbkz,
humkz10 LIKE knc3-shbkz.
*----
*
*---- 'GAG' = Hilfsfelder für die Berechnung der Gauss'chen -
*
*---- Ausgleichsgeraden. ( Trend ) -
*
*----
*
DATA:BEGIN OF gag OCCURS 5,
f TYPE c, "1 = langfristig
"2 = mittelfristig
"3 = kurzfristig
"4 = letzter Vorgang
d(4) TYPE p, "Mitteldatum
t(4) TYPE p, "MW Überzgustage
u(8) TYPE p, "MW Umsatz
ut(8) TYPE p, "MW Umsatz * Tage
dt(8) TYPE p, "MW Datum * Tage
dd(8) TYPE p, "MW Datum * Datum
END OF gag.
*----
*
*---- Weitere Hilfsfelder für die Berechnung der Gauss'chen -
*
*---- Ausgleichsgeraden. ( Trend ) -
*
*----
*
DATA: lz(4) TYPE p, "Letzte Zahlung
dm(8) TYPE p, "Rechenfeld
vw(16) TYPE p, "Rechenfeld
vw1(16) TYPE p, "Rechenfeld
vw2(16) TYPE p. "Rechenfeld
DATA: BEGIN OF trend,
text(7) TYPE c,
trendda(4) TYPE c,
trenddb(4) TYPE c,
trenddc(4) TYPE c VALUE '/100',
END OF trend.
DATA: BEGIN OF s,
m(4) TYPE p, "Anzahl akzeptierter Mittelwerte
d(4) TYPE p, "Summe (Datum)
t(5) TYPE p, "Summe (Tage)
dt(8) TYPE p, "Summe (Datum * Tage)
dd(8) TYPE p, "Summe (Datum * Datum)
aw(4) TYPE p, "Schätzwert f. akt. Überzugstage
ae(9) TYPE p, "dto. aufbereitet.
bw(4) TYPE p, "Tendenz Tage /100 Tage
be(9) TYPE p, "dto. aufbereitet
END OF s.
*----
*
*---- E N D E der Hilfsfelder für Berechnung der Gauss'chen -
*
*---- Ausgleichsgeraden. ( Trend ) -
*
*----
*
*---- GBZAEHL - In diesem Feld wird vermerkt, fuer wieviele Ge- -
*
*---- schaeftsbereiche ein OP-Raster ausgegeben wird. -
*
---- Wird das Raster nur fuer einen Geschaeftsbereich ge- -
*---- druckt, so entfaellt das Summen-Raster. -
*
DATA: gbzaehl(3) TYPE p.
---- TOP-FLAG '1' = bei TOP-OF-PAGE Einzelpostenueberschrift ausg. --
*---- '2' = bei TOP-OF-PAGE Ueberschrift fuer Raster ausgeb. *
*---- '3' = bei TOP-OF-PAGE ULINE ausgeben. -
*
---- '4' = bei TOP-OF-PAGE Stammsatzueberschrift ausgeben --
DATA: top-flag(1) TYPE c.
*---- SEL-STAMM 'J' = Saldo Normalumsätze *
*---- SEL-POSTN 'J' = Stammsatz hat Posten gerastert *
*---- 'N' = Stammsatz hat keine Posten gerastert *
*---- SEL-POST2 'J' = Stammsatz hat Posten gerastert *
*---- 'N' = Stammsatz hat keine Posten gerastert *
DATA: BEGIN OF sel,
stamm(1) TYPE c,
postn(1) TYPE c,
post2(1) TYPE c,
END OF sel.
*---- SATZART '1' = Stammdaten -
*
*---- '2' = Faelligkeitsraster -
*
*---- '3' = Einzelposten -
*
DATA: satzart(1) TYPE c.
*---- RART = Erste ausgewaehlte Rasterart -
*
DATA: rart(1) TYPE c.
*---- TAGE = Tage nach denen die Posten sortiert sind -
*
DATA: tage(4) TYPE p,
*---- NTAGE = Tage fuer Netto-Faelligkeit -
*
ntage(4) TYPE p,
*---- STAGE = Tage fuer Skonto1-Faelligkeit -
*
stage(4) TYPE p,
*---- ZTAGE = Tage fuer voraussichtlichen Zahlungseingang -
*
ztage(4) TYPE p,
*---- ATAGE = Alter der Belege -
*
atage(4) TYPE p,
*---- UTAGE = Tage fuer Ueber-Faelligkeit -
*
utage(4) TYPE p.
*---- RASTERUU dient zur Sortierung der Einzelposten. Die Posten -
*
*---- gemaess ihrer Rasterung die Werte '1' bis '6' -
*
DATA: rasteruu(1) TYPE c.
*---- RAART Rasterart -
*
---- Die einzelnen Felder der Feldleiste werden bei SART-OF-SELECTION
*---- mit 1 oder 0 bestueckt. -
*
*ATA: BEGIN OF RAART,
NET(1) TYPE C, "X = ausgewaehlt, ' ' = nicht ausgewaehlt
SKT(1) TYPE C, "X = ausgewaehlt, ' ' = nicht ausgewaehlt
UEB(1) TYPE C, "X = ausgewaehlt, ' ' = nicht ausgewaehlt
END OF RAART.
DATA: BEGIN OF gb,
gsber LIKE bsid-gsber,
waers LIKE bsid-waers,
END OF gb.
*----
*
*---- Variable Ueberschriften -
*
*----
*
DATA: BEGIN OF varueb1,
feld1(40) TYPE c,
feld2(14) TYPE c,
feld3(14) TYPE c,
feld4(14) TYPE c,
feld5(14) TYPE c,
feld6(14) TYPE c,
feld7(14) TYPE c,
END OF varueb1.
DATA: BEGIN OF varueb2,
feld1(40) TYPE c,
feld2(14) TYPE c,
feld3(14) TYPE c,
feld4(14) TYPE c,
feld5(14) TYPE c,
feld6(14) TYPE c,
feld7(14) TYPE c,
END OF varueb2.
DATA: varueb3(132),
varueb4(132),
vartxt1(40),
vartxt(40) TYPE c.
*----
*
*---- Variable für Ausgabe der Sonderumsätze----
*
*----
*
DATA: shbbez LIKE t074t-ltext.
DATA: asums TYPE p. "
*----
*
*---- Interne Tabelle für Bezeichnungen der SHBKZ----
*
*----
*
DATA: BEGIN OF bezshb OCCURS 10,
shbkz LIKE t074t-shbkz,
ltext LIKE t074t-ltext,
END OF bezshb.
*----
*
*---- Interne Tabelle für Zwischenspeicherung -
*
*----
*
DATA: BEGIN OF blkey,
bukrs LIKE bsid-bukrs,
belnr LIKE bsid-belnr,
gjahr LIKE bsid-gjahr,
buzei LIKE bsid-buzei,
END OF blkey.
DATA: BEGIN OF rtage,
ntage LIKE ntage,
stage LIKE stage,
ztage LIKE ztage,
atage LIKE atage,
utage LIKE utage,
END OF rtage.
DATA: BEGIN OF hbsid OCCURS 10.
INCLUDE STRUCTURE bsid.
INCLUDE STRUCTURE bsega.
INCLUDE STRUCTURE rtage.
DATA: END OF hbsid.
DATA: BEGIN OF refbl OCCURS 10.
INCLUDE STRUCTURE blkey.
INCLUDE STRUCTURE rtage.
DATA: END OF refbl.
DATA: BEGIN OF hknb1 OCCURS 10.
INCLUDE STRUCTURE knb1.
DATA: END OF hknb1.
DATA: BEGIN OF ht001 OCCURS 10.
INCLUDE STRUCTURE t001.
DATA: END OF ht001.
*----
*
*---- Interne Tabelle für Ausgabe der Obligos -
*
*----
*
DATA: BEGIN OF aobligo OCCURS 12,
obart TYPE c, "Flag für Obligoart 1 = Kontokorrent
" 2 = SHBKZ
" 3 = sonstige SHB
shbkz LIKE t074t-shbkz, "SHB-Kennzeichen
ltext LIKE t074t-ltext, "Bezeichnung
oblig TYPE p, "Obligobetrag
END OF aobligo.
*----
*
*---- Declarationen für Accessibility /ALV GRID -
*
*----
*
DATA: acc_mode TYPE c.
DATA: uebtext(22) TYPE c.
DATA: uektext(15) TYPE c.
DATA: tittext(100) TYPE c.
DATA: dattext(10) TYPE c.
DATA: BEGIN OF rtab_alv OCCURS 30,
SORTK(1) TYPE C, "0 = Summe Gesber
"1 = Summe aller Gesber
"2 = Umsatzdaten
bukrs LIKE bsid-bukrs,
kunnr LIKE kna1-kunnr,
busab LIKE knb1-busab,
sortl LIKE kna1-sortl,
land1 LIKE kna1-land1,
gsber LIKE bsid-gsber,
waers LIKE bsid-waers,
hwaer like rf140-hwaer,
raart LIKE rf140-raart, "Rasterart
shkzg like bsid-shkzg,
XGUTS TYPE C, "Gutschrift
kumum LIKE rf140-kumumhw, "Umsatz
anzah LIKE rf140-anzbthw, "Anzahlungen
opsum LIKE rf140-gsaldd, "Offene Posten Summe
**************
belnr LIKE rf140-belnr,
**************
rast1 LIKE rf140-rast1, "Rasterfeld 1
rast2 LIKE rf140-rast2, "Rasterfeld 2
rast3 LIKE rf140-rast3, "Rasterfeld 3
rast4 LIKE rf140-rast4, "Rasterfeld 4
rast5 LIKE rf140-rast5, "Rasterfeld 5
rast6 LIKE rf140-rast6, "Rasterfeld 6
************AB*****
kostl LIKE bsid-kostl,
belnr LIKE bsid-belnr,
bldat LIKE bsid-bldat,
wrbtr LIKE bsid-wrbtr,
bdiff LIKE bsid-bdiff,
************AB*****
END OF rtab_alv.
*"General Data
TYPE-POOLS: slis.
*DATA: BEGIN OF GT_OUTTAB OCCURS 0.
INCLUDE STRUCTURE rtab_alv.
*DATA: END OF GT_OUTTAB.
DATA: gs_layout TYPE slis_layout_alv,
G_EXIT_CAUSED_BY_CALLER,
GS_EXIT_CAUSED_BY_USER TYPE SLIS_EXIT_BY_USER,
g_repid LIKE sy-repid,
g_grid_title TYPE lvc_title.
*"Callback
*Data: GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
G_STATUS_SET TYPE SLIS_FORMNAME VALUE 'PF_STATUS_SET',
DATA: g_user_command TYPE slis_formname VALUE 'USER_COMMAND'.
G_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
G_TOP_OF_LIST TYPE SLIS_FORMNAME VALUE 'TOP_OF_LIST',
G_END_OF_LIST TYPE SLIS_FORMNAME VALUE 'END_OF_LIST'.
*"Variants
DATA: gs_variant LIKE disvariant,
g_save.
Global structure of list
fieldcatalog
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.
sort
*DATA: GT_SORT TYPE SLIS_T_SORTINFO_ALV.
events
*DATA: GT_EVENTS TYPE SLIS_T_EVENT.
*----- Structure for specific color settings -
-
*DATA: COL_TAB_T TYPE SLIS_T_SPECIALCOL_ALV,
COL_TAB TYPE SLIS_SPECIALCOL_ALV.
DATA: g_tabname TYPE slis_tabname VALUE 'RTAB_ALV'.
*DATA: GS_PRINT TYPE SLIS_PRINT_ALV.
*----
*
*---- FIELD-GROUPS -
*
*----
*
FIELD-GROUPS:
header,
stammdaten,
op-raster,
einzelposten.
INSERT
knb1-bukrs " Buchungskreis
knb1-busab " Sachbearbeiter
kna1-kunnr " Kontonummer
satzart " Satzart
rtab-sortk " Sortkz fuer Tabelle RTAB
" '0' = normale Eintraege
" '1' = Summeneintraege
" '2' = Jahresumsatz
gb " Geschaeftsbereich
" - GB-GSBER
" - GB-WAERS
rasteruu " Kennzeichen fuer Detailposten bzw Raster
*----
ab hier nur fuer Einzelposten -
*
tage " Rastertage fuer Detailposten
bsid-umskz " Umsatzkennzeichen
bsid-blart " Belegart
BSID-ZUONR " Zuordnungsnummer
bsid-belnr " Belegnummer
bsid-buzei " Belegzeile
************AB*****
bsid-kostl
bsid-belnr
bsid-bldat
bsid-wrbtr
bsid-bdiff
************AB*****
INTO header.
INSERT
Addressdaten
adrs-line0 " 1. Zeile Adressenaufbereitung
adrs-line1 " 2. " "
adrs-line2 " 3. " "
adrs-line3 " 4. " "
adrs-line4 " 5. " "
adrs-line5 " 6. " "
adrs-line6 " 7. " "
ADRS-LINE7 " 8. " "
ADRS-LINE8 " 9. " "
ADRS-LINE9 " 10." "
Umsatzdaten
c-kumum " Umsatz
c-babzg " Berechtigt. Abzuege
c-uabzg " Unberechtigt. Abzuege
c-kzins " Zinszahlungen
c-kumag " Kum. Jahresausgleich
Warenkreditversicherung
knb1-vrsnr " Vertragsnummer
knb1-vrbkz " Institutsnummer
knb1-vlibb " Versicherungssumme
knb1-verdt " Gültig bis
knb1-vrszl " Ziel-Monate
knb1-vrspr " Selbstbeiteiligung in %
Obligos
c-saldo " Saldo ohne SHB-Vorgänge
C-WEXOB " Wechselobligo
C-ANZOB " Anzahlungsobligo
C-ZANFB " Zahlungsanforderungen
c-umkz1 "SHBKZ 1
c-sums1 "Sonderumsatz 1
c-umkz2 "SHBKZ 2
c-sums2 "Sonderumsatz 2
c-umkz3 "SHBKZ 3
c-sums3 "Sonderumsatz 3
c-umkz4 "SHBKZ 4
c-sums4 "Sonderumsatz 4
c-umkz5 "SHBKZ 5
c-sums5 "Sonderumsatz 5
c-umkz6 "SHBKZ 6
c-sums6 "Sonderumsatz 6
c-umkz7 "SHBKZ 7
c-sums7 "Sonderumsatz 7
c-umkz8 "SHBKZ 8
c-sums8 "Sonderumsatz 8
c-umkz9 "SHBKZ 9
c-sums9 "Sonderumsatz 9
c-umkz10 "SHBKZ 10
c-sums10 "Sonderumsatz 10
c-sonob " Sonst. Obligen
Limits
KNKA-KLIMG "Gesamtkreditlimit
KNKA-DLAUS "Datum letzte Auskunft
KREDK "Kreditkontrollbereichsdaten
c-agobli " Absolutes Gesamtobligo
C-KREUEB " Kreditueberschr.
C-RGOBLI " Relatives Gesamtobligo
Zahlungdaten
c-zvtyp "Flag Skonto oder Nettozahler
c-zvper "letze Zahlungsperiode
c-zvverzug "Durchschittliche Verzugstage
knb1-zterm "Zahlungsbedingung
knb1-xverr "Zahlungsverrechnung
kna1-sortl
kna1-land1
************AB*****
bsid-kostl
bsid-belnr
bsid-bldat
bsid-wrbtr
bsid-bdiff
************AB*****
INTO stammdaten.
INSERT
rtab-raart "Rasterart
rtab-kumum "Umsatz
rtab-anzah "Anzahlungen
rtab-opsum "Offene Posten Summe
rtab-rast1 "Rasterfeld 1
rtab-rast2 "Rasterfeld 2
rtab-rast3 "Rasterfeld 3
rtab-rast4 "Rasterfeld 4
rtab-rast5 "Rasterfeld 5
rtab-rast6 "Rasterfeld 6
RTAB-COUNT "count für gsber
************AB*****
rtab-kostl
rtab-belnr
rtab-bldat
rtab-wrbtr
rtab-bdiff
************AB*****
INTO op-raster.
INSERT
bsid-budat " Buchungsdatum
bsid-bldat " Belegdatum
bsid-cpudt " CPU-Datum
BKPF-USNAM " User-ID
bsid-waers " Wahrungsschluessel
bsega-netdt " Nettofaelligkeitsdatum
FAEDE-NETDT " Nettofaelligkeitsdatum
bsid-zfbdt " Zahlungsfristen-Basisdatum
bsid-bschl " Buchungsschluessel
bsid-zlsch " Zahlungsschluessel
bsid-manst " Mahnstufe
shbetrag " Hauswaehrungsbetrag
bsega-dmshb " Hauswaehrungsbetrag
bsega-wrshb " Fremwaehrungsbetrag
************AB*****
bsid-kostl
bsid-belnr
bsid-bldat
bsid-wrbtr
bsid-bdiff
************AB*****
INTO einzelposten.
begin_of_block 1.
*ELECT-OPTIONS:
GESBER FOR BSID-GSBER.
PARAMETERS:
monat LIKE rfpdo-doprbmon.
SELECT-OPTIONS:
kksaldo2 FOR rfsdo-doprsal2, "Saldovortrag
agoblig2 FOR rfsdo-doprago2. "Absolutes Obligo
RGOBLIGO FOR RFSDO-DOPRRGOB. "Relatives Obligo
SELECT-OPTIONS:
LAND FOR KNA1-LAND1,
KONTENGR FOR KNA1-KTOKD,
SACHBEAR FOR KNB1-BUSAB,
akonts FOR knb1-akont,
akontp FOR bsid-hkont.
SELECT-OPTIONS:
berabzu2 FOR rfsdo-doprbabz,
unbabzu2 FOR rfsdo-dopruabz,
zinse2 FOR rfsdo-doprkzin,
jhrausg2 FOR rfsdo-doprkuma.
BERABZUG FOR BEABZUG NO-DISPLAY, "Berechtigter Abzug
UNBABZUG FOR UBABZUG NO-DISPLAY, "Unberechtigter Abzug
ZINSEN FOR KUMZINS NO-DISPLAY, "Kumulierter Zins
JHRAUSGL FOR JAHRAUG NO-DISPLAY. "Kumulierter Jahresausgl.
SELECT-OPTIONS:
budat FOR bsid-budat,
bldat FOR bsid-bldat,
netdt FOR bsega-netdt.
PARAMETERS: n_belege LIKE rfpdo-bpetnbel
DEFAULT 'X', "Normale Belege.
stat_blg LIKE rfpdo-bpetsbel. "Statistische Belege
end_of_block 1.
begin_of_block 2.
PARAMETERS:
sortart LIKE rfpdo-doprsoar DEFAULT '1',
verdicht LIKE rfpdo-doprverd DEFAULT '1',
rastverd LIKE rfpdo-doprrast DEFAULT '0',
konzvers LIKE rfpdo-dopokonz, "Konzernversion
xbukrdat LIKE rfpdo3-allgbukd DEFAULT 0, "Bukr.daten
kausgabe LIKE rfpdo3-allgkaor.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 01(30) TEXT-030.
PARAMETERS: rart-net LIKE rfpdo-doprrnet DEFAULT 'X'.
SELECTION-SCREEN COMMENT 33(01) TEXT-028.
PARAMETERS: rart-skt LIKE rfpdo-doprrskt DEFAULT 'X'.
SELECTION-SCREEN COMMENT 35(01) TEXT-028.
PARAMETERS: rart-zhl LIKE rfpdo-doprrzhl DEFAULT 'X'.
SELECTION-SCREEN COMMENT 35(01) TEXT-028.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: rart-alt LIKE rfpdo1-koprralt DEFAULT 'X'.
SELECTION-SCREEN COMMENT 03(28) text-031.
SELECTION-SCREEN POSITION pos_high.
PARAMETERS rbldat LIKE rfpdo2-kord10bd.
SELECTION-SCREEN COMMENT 61(12) text-032.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN COMMENT 37(01) TEXT-028.
PARAMETERS: rart-ueb LIKE rfpdo-doprrueb DEFAULT 'X'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 01(31) text-026.
SELECTION-SCREEN POSITION pos_low.
PARAMETERS: rastbis1 LIKE rfpdo1-allgrogr DEFAULT '000'.
SELECTION-SCREEN COMMENT 35(02) TEXT-027.
PARAMETERS: rastbis2 LIKE rfpdo1-allgrogr DEFAULT '020'.
SELECTION-SCREEN COMMENT 41(02) TEXT-027.
PARAMETERS: rastbis3 LIKE rfpdo1-allgrogr DEFAULT '040'.
SELECTION-SCREEN COMMENT 47(02) TEXT-027.
PARAMETERS: rastbis4 LIKE rfpdo1-allgrogr DEFAULT '080'.
SELECTION-SCREEN COMMENT 53(02) TEXT-027.
PARAMETERS: rastbis5 LIKE rfpdo1-allgrogr DEFAULT '100'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 01(31) text-029.
SELECTION-SCREEN POSITION pos_low.
PARAMETERS: faktor LIKE rfpdo-doprfakt DEFAULT '0'.
SELECTION-SCREEN COMMENT 35(1) text-028.
PARAMETERS: stellen LIKE rfpdo-doprfakt DEFAULT '0'.
SELECTION-SCREEN END OF LINE.
PARAMETERS: pzuor LIKE rfpdo2-doprzuor DEFAULT 'X'.
PARAMETERS: umsatzkz LIKE rfpdo1-doprshbo. "DEFAULT 'WBSA'.
PARAMETERS:
title LIKE rfpdo1-allgline,
listsep LIKE rfpdo-allglsep,
mikfiche LIKE rfpdo-allgmikf.
PARAMETERS:
p_lvar LIKE gs_variant-variant DEFAULT space MODIF ID 508.
end_of_block 2.
AT SELECTION-SCREEN OUTPUT.
IF acc_mode IS INITIAL.
LOOP AT SCREEN.
IF screen-group1 = '508'.
screen-active = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
AT SELECTION-SCREEN ON akonts.
Konvertierung der Kontonummer
-----------------------------
LOOP AT akonts.
PERFORM alphaformat(sapfs000)
USING akonts-low akonts-low.
PERFORM alphaformat(sapfs000)
USING akonts-high akonts-high.
MODIFY akonts.
ENDLOOP.
AT SELECTION-SCREEN ON akontp.
Konvertierung der Kontonummer
-----------------------------
LOOP AT akontp.
PERFORM alphaformat(sapfs000)
USING akontp-low akontp-low.
PERFORM alphaformat(sapfs000)
USING akontp-high akontp-high.
MODIFY akontp.
ENDLOOP.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_lvar.
gs_variant-report = sy-repid.
gs_variant-variant = p_lvar.
PERFORM f4_for_s_lvar USING gs_variant.
p_lvar = gs_variant-variant.
AT SELECTION-SCREEN.
IF rastbis1 GT '998'
OR rastbis2 GT '998'
OR rastbis3 GT '998'
OR rastbis4 GT '998'
OR rastbis5 GT '998'.
SET CURSOR FIELD RASTBIS5.
MESSAGE e381.
ENDIF.
IF NOT rastbis5 IS INITIAL.
IF rastbis5 GT rastbis4
AND rastbis4 GT rastbis3
AND rastbis3 GT rastbis2
AND rastbis2 GT rastbis1.
ELSE.
MESSAGE e379.
ENDIF.
ELSE.
IF NOT rastbis4 IS INITIAL.
IF rastbis4 GT rastbis3
AND rastbis3 GT rastbis2
AND rastbis2 GT rastbis1.
ELSE.
MESSAGE e379.
ENDIF.
ELSE.
IF NOT rastbis3 IS INITIAL.
IF rastbis3 GT rastbis2
AND rastbis2 GT rastbis1.
ELSE.
MESSAGE e379.
ENDIF.
ELSE.
IF NOT rastbis2 IS INITIAL.
IF rastbis2 GT rastbis1.
ELSE.
MESSAGE e379.
ENDIF.
ELSE.
nichts zu tun
ENDIF.
ENDIF.
ENDIF.
ENDIF.
CLEAR bezshb.
REFRESH bezshb.
CONDENSE umsatzkz NO-GAPS.
IF NOT umsatzkz(1) IS INITIAL.
CLEAR char1.
MOVE umsatzkz(1) TO char1.
PERFORM shbkz_pruefen.
ENDIF.
IF NOT umsatzkz+1(1) IS INITIAL.
CLEAR char1.
MOVE umsatzkz+1(1) TO char1.
PERFORM shbkz_pruefen.
ENDIF.
IF NOT umsatzkz+2(1) IS INITIAL.
CLEAR char1.
MOVE umsatzkz+2(1) TO char1.
PERFORM shbkz_pruefen.
ENDIF.
IF NOT umsatzkz+3(1) IS INITIAL.
CLEAR char1.
MOVE umsatzkz+3(1) TO char1.
PERFORM shbkz_pruefen.
ENDIF.
IF NOT umsatzkz+4(1) IS INITIAL.
CLEAR char1.
MOVE umsatzkz+4(1) TO char1.
PERFORM shbkz_pruefen.
ENDIF.
IF NOT umsatzkz+5(1) IS INITIAL.
CLEAR char1.
MOVE umsatzkz+5(1) TO char1.
PERFORM shbkz_pruefen.
ENDIF.
IF NOT umsatzkz+6(1) IS INITIAL.
CLEAR char1.
MOVE umsatzkz+6(1) TO char1.
PERFORM shbkz_pruefen.
ENDIF.
IF NOT umsatzkz+7(1) IS INITIAL.
CLEAR char1.
MOVE umsatzkz+7(1) TO char1.
PERFORM shbkz_pruefen.
ENDIF.
IF NOT umsatzkz+8(1) IS INITIAL.
CLEAR char1.
MOVE umsatzkz+8(1) TO char1.
PERFORM shbkz_pruefen.
ENDIF.
IF NOT umsatzkz+9(1) IS INITIAL.
CLEAR char1.
MOVE umsatzkz+9(1) TO char1.
PERFORM shbkz_pruefen.
ENDIF.
IF NOT acc_mode IS INITIAL.
verdicht = '1'.
sortart = '1'.
RASTVERD = '1'.
xbukrdat = '2'.
ENDIF.
*
SELECT * FROM T001.
MOVE-CORRESPONDING T001 TO KKBERGES.
APPEND KKBERGES.
IF T001-BUKRS IN DD_BUKRS.
MOVE T001-KKBER TO KKBERSEL-KKBER.
COLLECT KKBERSEL.
ENDIF.
ENDSELECT.
LOOP AT KKBERSEL.
LOOP AT KKBERGES
WHERE KKBER = KKBERSEL-KKBER.
IF KKBERGES-BUKRS IN DD_BUKRS.
ELSE.
message Aussagkraft kreditüberschreitung usw. gefährdet.
ENDIF.
ENDLOOP.
ENDLOOP.
INITIALIZATION.
get_frame_title: 1, 2.
monat = '16'.
acc_mode = 'X'.
CALL FUNCTION 'GET_ACCESSIBILITY_MODE'
IMPORTING
accessibility = acc_mode
EXCEPTIONS
its_not_available = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IF NOT acc_mode IS INITIAL.
g_repid = sy-repid.
PERFORM FIELDCAT_INIT USING GT_FIELDCAT[].
PERFORM SORT_INIT USING GT_SORT[].
PERFORM EVENTS_INIT USING GT_EVENTS[].
PERFORM PRINT_INIT.
ENDIF.
START-OF-SELECTION.
COMMIT WORK.
*- Fuellen zusätzlicher DB Sel-Opts
COPY: GESBER TO DD_GSBER, LAND TO DD_LAND1, SACHBEAR TO DD_BUSAB,
AKONTS TO DD_AKONT, AKONTP TO DD_HKONT.
copy: akonts to dd_akont, akontp to dd_hkont.
SELECT * FROM t001 APPENDING TABLE ht001
WHERE bukrs IN dd_bukrs.
*- Standardseitenkopf fuellen -
*
MOVE '0' TO bhdgd-inifl.
MOVE sy-linsz TO bhdgd-lines.
MOVE sy-uname TO bhdgd-uname.
MOVE sy-repid TO bhdgd-repid.
MOVE sy-title TO bhdgd-line1.
MOVE title TO bhdgd-line2.
MOVE ' ' TO bhdgd-bukrs.
MOVE mikfiche TO bhdgd-miffl.
MOVE listsep TO bhdgd-separ.
MOVE 'BUKRS' TO bhdgd-domai.
*- OP-Raster und Ueberschriften aufbereiten -
*
PERFORM raster_aufbau.
PERFORM shb_kennzeichen.
IF n_belege <> space.
n_belege = 'X'.
b0sg-xstan = 'X'.
ELSE.
b0sg-xstan = ' '.
ENDIF.
IF stat_blg <> space.
stat_blg = 'X'.
b0sg-xstas = 'X'.
ENDIF.
IF monat IS INITIAL
OR monat GT '16'.
monat = '16'.
ENDIF.
bmonat-low = '1'.
bmonat-high = monat.
bmonat-option = 'BT'.
bmonat-sign = 'I'.
APPEND bmonat.
GET kna1.
*HECK LAND.
*HECK KONTENGR.
CLEAR adrs.
MOVE-CORRESPONDING kna1 TO adrs.
MOVE zeilenanzahl TO adrs-anzzl.
CALL FUNCTION 'ADDRESS_INTO_PRINTFORM'
EXPORTING
adrswa_in = adrs
IMPORTING
adrswa_out = adrs.
IF NOT konzvers IS INITIAL.
CLEAR checksaldo.
CLEAR checksald1.
CLEAR checksald2.
CLEAR checksald3.
CLEAR checksald4.
CLEAR checkagobl.
CLEAR waers2.
CLEAR wflag2.
CLEAR hbsid.
REFRESH hbsid.
CLEAR refbl.
REFRESH refbl.
sel-stamm = 'N'.
sel-postn = 'N'.
sel-post2 = 'N'.
CLEAR rtab.
REFRESH rtab.
CLEAR hknb1.
REFRESH hknb1.
CLEAR c2.
REFRESH c2.
CLEAR c3.
ENDIF.
*ET KNKA.
SAVE_KLIMG = KNKA-KLIMG. "Gesamtlimit
SAVE_KLIME = KNKA-KLIME. "Einzellimit
SAVE_WAERS = KNKA-WAERS. "Währung
SAVE_DLAUS = KNKA-DLAUS. "letzte Auskunft
*ET KNKK.
MOVE-CORRESPONDING KNKK TO KREDK.
INDEX = 0.
DO VARYING HF
FROM KREDK-KKBER+3
NEXT KREDK-KKBER+2.
IF HF <> SPACE. EXIT. ENDIF.
INDEX = SY-INDEX.
ENDDO.
SHIFT KREDK-KKBER BY INDEX PLACES RIGHT.
INDEX = 0.
GET knb1.
CHECK SACHBEAR.
CHECK akonts.
IF konzvers IS INITIAL.
CLEAR checksaldo.
CLEAR checksald1.
CLEAR checksald2.
CLEAR checksald3.
CLEAR checksald4.
CLEAR checkagobl.
CLEAR hbsid.
REFRESH hbsid.
CLEAR refbl.
REFRESH refbl.
sel-stamm = 'N'.
sel-postn = 'N'.
CLEAR rtab.
REFRESH rtab.
ENDIF.
CLEAR c.
CLEAR h-saldo.
CLEAR KREDK.
CLEAR: zvverzug,zvper,zvtyp.
CLEAR: gb,
rasteruu,
tage.
Lfd. Geschaeftsjahr gemaess Stichtag besorgen ---------------------*
laufendes Geschäftsjahr ermitteln
---------------------------------
CALL FUNCTION 'GET_CURRENT_YEAR'
EXPORTING
bukrs = knb1-bukrs
date = dd_stida
IMPORTING
curry = curry.
SELECT SINGLE * FROM T001 WHERE BUKRS EQ KNB1-BUKRS.
READ TABLE ht001 WITH KEY bukrs = knb1-bukrs.
t001 = ht001.
IF NOT waers2 IS INITIAL
AND waers2 NE t001-waers.
wflag2 = '1'.
ENDIF.
waers2 = t001-waers.
GET knb4.
Ermittlung Zahlungseingang bei Zahlungen mit Skontoabzug-----------*
IF knb1-xzver <> space. "Daten über Zahlungsverhalten aufgezeichnet?
PERFORM payment_forecast.
MOVE KNB4-JAH012(2) TO ZVPER2(2).
MOVE knb4-jah01 TO zvper+2(4).
MOVE knb4-mon01 TO zvper(2).
ELSE.
zvtage = space.
zvper = space.
ENDIF.
c-zvtyp = zvtyp.
c-zvper = zvper.
c-zvverzug = zvverzug.
GET knc1.
CHECK: knc1-gjahr = curry.
PERFORM cfaktor.
IF cfakt NE 0.
checksald1 = checksald1 + knc1-babzg / cfakt.
checksald2 = checksald2 + knc1-uabzg / cfakt.
checksald3 = checksald3 + knc1-kzins / cfakt.
checksald4 = checksald4 + knc1-kumag / cfakt.
ELSE.
checksald1 = checksald1 + knc1-babzg.
checksald2 = checksald2 + knc1-uabzg.
checksald3 = checksald3 + knc1-kzins.
checksald4 = checksald4 + knc1-kumag.
ENDIF.
CHECK CHECKSALD1 IN BERABZU2.
CHECK CHECKSALD2 IN UNBABZU2.
CHECK CHECKSALD3 IN ZINSE2.
CHECK CHECKSALD4 IN JHRAUSG2.
aktuellen Saldo ermitteln (fuer CHECK auf Saldo) ------------------*
PERFORM saldo_aktuell.
PERFORM kum_werte.
CHECK CHECKSALDO IN KKSALDO2.
sel-stamm = 'J'.
GET knc3.
CHECK knc3-gjahr = curry.
CHECK CHECKSALD1 IN BERABZU2.
CHECK CHECKSALD2 IN UNBABZU2.
CHECK CHECKSALD3 IN ZINSE2.
CHECK CHECKSALD4 IN JHRAUSG2.
CHECK CHECKSALDO IN KKSALDO2.
Errechnen Sonderumsatz-Salden, Gesamtsaldo ------------------------*
Trend, Umsatz pro Gesch.Bereich -----------------------------------*
PERFORM sonder_umsaetze.
CHECK: C-AGOBLI IN AGOBLIG0,
check: C-RGOBLI IN RGOBLIGO.
sel-stamm = 'J'.
GET bsid.
IF konzvers IS INITIAL.
CHECK checksald1 IN berabzu2.
CHECK checksald2 IN unbabzu2.
CHECK checksald3 IN zinse2.
CHECK checksald4 IN jhrausg2.
CHECK checksaldo IN kksaldo2.
CHECK checkagobl IN agoblig2.
ENDIF.
C-RGOBLI IN RGOBLIGO.
CHECK GESBER.
CHECK akontp.
CASE bsid-bstat.
WHEN ' '.
CHECK n_belege EQ 'X'.
WHEN 'S'.
CHECK stat_blg EQ 'X'.
WHEN OTHERS.
EXIT.
ENDCASE.
CHECK SEL-STAMM = 'J'.
Einzelposten werden nur dann weiterverarbeitet, wenn ueberhaupt ---*
ein OP-Raster gewuenscht wird. ------------------------------------*
CHECK rastverd < '2'.
Bei SORTART = '2' werden nur Belege verarbeitet, welche in Fremd- -*
waehrung gebucht sind ---------------------------------------------*
IF sortart = '2'.
CHECK bsid-waers NE t001-waers.
ENDIF.
*ET BKPF.
CHECK SEL-STAMM = 'J'.
CHECK bsid-budat LE dd_stida.
*ET BSEG.
CHECK SEL-STAMM = 'J'.
CLEAR faede.
MOVE-CORRESPONDING bsid TO faede.
faede-koart = 'D'.
CALL FUNCTION 'DETERMINE_DUE_DATE'
EXPORTING
i_faede = faede
IMPORTING
e_faede = faede
EXCEPTIONS
OTHERS = 1.
bsega-netdt = faede-netdt.
TAGE gemaess Rasterart ermitteln -----------------------------------*
Netto-Faelligkeit --------------------------------------------------*
NTAGE = BSEGA-NETDT - DD_STIDA.
ntage = faede-netdt - dd_stida.
Ueber-Faelligkeit --------------------------------------------------*
UTAGE = DD_STIDA - BSEGA-NETDT.
utage = dd_stida - faede-netdt.
IF NOT BSID-ZFBDT IS INITIAL.
Skonto1-Faelligkeit ------------------------------------------------*
STAGE = BSID-ZFBDT + BSID-ZBD1T - DD_STIDA.
Voraussichtlicher Zahlungseingang-----------------------------------*
ZTAGE = BSID-ZFBDT + BSID-ZBD1T - DD_STIDA + ZVVERZUG.
ELSE.
Skonto1-Faelligkeit ------------------------------------------------*
STAGE = BSID-BLDAT + BSID-ZBD1T - DD_STIDA.
Voraussichtlicher Zahlungseingang-----------------------------------*
ZTAGE = BSID-BLDAT + BSID-ZBD1T - DD_STIDA + ZVVERZUG.
ENDIF.
Skonto1-Faelligkeit ------------------------------------------------*
stage = faede-sk1dt - dd_stida.
Voraussichtlicher Zahlungseingang-----------------------------------*
ztage = faede-sk1dt - dd_stida + zvverzug.
Alter der Belege ---------------------------------------------------*
IF rbldat IS INITIAL.
atage = dd_stida - bsid-budat.
ELSE.
atage = dd_stida - bsid-bldat.
ENDIF.
IF NOT pzuor IS INITIAL
OR NOT konzvers IS INITIAL.
PERFORM einzelposten_save.
ELSE.
die Einzelposten werden nach den Tagen der ersten Rasterart --------*
sortiert -----------------------------------------------------------*
IF rart-net = 'X'.
tage = ntage.
ELSE.
IF rart-skt = 'X'.
tage = stage.
ELSE.
IF rart-zhl = 'X'.
tage = ztage.
ELSE.
IF rart-alt = 'X'.
tage = atage.
ELSE.
IF rart-ueb = 'X'.
tage = utage.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
CASE bsid-umsks.
*----
Anzahlungen sammeln -
*
*----
auch wenn nicht von aussen abgegrenzt -
*
WHEN 'A'.
CLEAR rtab.
IF bsid-bstat NE 'S'.
MOVE: bsid-bukrs TO rtab-bukrs,
'0' TO rtab-sortk,
bsid-gsber TO rtab-gsber,
rart TO rtab-raart.
IF sortart = '2'.
MOVE bsid-waers TO rtab-waers.
MOVE bsega-wrshb TO rtab-anzah.
ELSE.
IF NOT konzvers IS INITIAL.
MOVE t001-waers TO rtab-waers.
MOVE bsega-dmshb TO rtab-anzah.
ELSE.
MOVE bsega-dmshb TO rtab-anzah.
ENDIF.
ENDIF.
COLLECT rtab.
*----
Summieren ueber alle Geschaeftsbereiche -
*
MOVE: '1' TO rtab-sortk,
'**' TO rtab-gsber.
COLLECT rtab.
ENDIF.
ENDCASE.
CHECK: budat,
bldat,
netdt.
sel-postn = 'J'.
IF sortart = '1'.
IF konzvers IS INITIAL .
PERFORM posten_rastern USING space.
MOVE space TO gb-waers.
ELSE.
PERFORM posten_rastern USING t001-waers.
MOVE t001-waers TO gb-waers.
ENDIF.
ELSE.
PERFORM posten_rastern USING bsid-waers.
MOVE bsid-waers TO gb-waers.
ENDIF.
---- nur bei Verdichtungsstufe '0' werden EINZELPOSTEN extrahiert --
IF verdicht = '0'.
MOVE '3' TO satzart.
MOVE bsid-gsber TO gb-gsber.
MOVE bsega-dmshb TO shbetrag.
*------Der Fremdwährungsbetrag soll nur Übernommen werden, wenn sich
sich der Währung von der Hauswährung unterscheidet.
IF bsid-waers EQ t001-waers.
MOVE space TO bsega-wrshb.
ENDIF.
EXTRACT einzelposten.
ENDIF.
EXIT. " <== einmal verteilt, das reicht
ENDIF.
ENDLOOP.
ENDIF.
GET knb1 LATE.
IF konzvers IS INITIAL.
CHECK checksald1 IN berabzu2.
CHECK checksald2 IN unbabzu2.
CHECK checksald3 IN zinse2.
CHECK checksald4 IN jhrausg2.
CHECK checksaldo IN kksaldo2.
CHECK: checkagobl IN agoblig2.
CHECK SEL-STAMM = 'J'.
IF NOT pzuor IS INITIAL.
PERFORM einzelposten_link.
PERFORM einzelposten_proc.
ENDIF.
Bei SORTART = '2' werden nur dann Stammsatzdaten ausgegeben, wenn -*
auch Einzelposten gerastert wurden. -------------------------------*
IF rastverd < '3'.
IF sortart = '2'.
CHECK sel-postn = 'J'.
ENDIF.
IF NOT kausgabe IS INITIAL.
CHECK sel-postn = 'J'.
ENDIF.
ENDIF.
CLEAR: gb,
rasteruu,
tage.
MOVE '1' TO satzart.
Stammdaten extrahieren ---------------------------------------------*
Kreditueberschreitung ----------------------------------------------*
C-KREUEB = C-AGOBLI - KREDK-KLIMK.
Kreditlimit noch nicht überschritten?------------------------------*
IF C-KREUEB < 0.
C-KREUEB = 0.
ENDIF.
Gesamt-Obligo (relativ) --------------------------------------------*
IF KREDK-KLIMK > 0.
C-RGOBLI = ( C-AGOBLI * 100 ) / KREDK-KLIMK.
ELSE.
C-RGOBLI = 0.
ENDIF.
CHECK: C-AGOBLI IN AGOBLIG2.
C-RGOBLI IN RGOBLIGO.
CHECK: CHECKAGOBL IN AGOBLIG2.
CLEAR bsid.
EXTRACT stammdaten.
clear c.
OP-Raster extrahieren ----------------------------------------------*
SORT rtab ASCENDING.
LOOP AT rtab.
MOVE: '2' TO satzart,
rtab-gsber TO gb-gsber,
rtab-waers TO gb-waers,
rtab-raart TO rasteruu.
EXTRACT op-raster.
ENDLOOP.
ELSE.
hknb1 = knb1.
APPEND hknb1.
MOVE-CORRESPONDING c TO c2.
c2-bukrs = knb1-bukrs.
APPEND c2.
ENDIF.
*EJECT
GET kna1 LATE.
IF NOT konzvers IS INITIAL.
IF wflag2 IS INITIAL.
CHECK checksald1 IN berabzu2.
CHECK checksald2 IN unbabzu2.
CHECK checksald3 IN zinse2.
CHECK checksald4 IN jhrausg2.
CHECK checksaldo IN kksaldo2.
CHECK: checkagobl IN agoblig2.
ENDIF.
IF NOT pzuor IS INITIAL.
PERFORM einzelposten_link.
ENDIF.
CLEAR sel-post2.
LOOP AT hknb1.
knb1 = hknb1.
LOOP AT c2
WHERE bukrs = knb1-bukrs.
CLEAR c.
MOVE-CORRESPONDING c2 TO c.
EXIT.
ENDLOOP.
PERFORM summ_c3.
CLEAR sel-postn.
PERFORM einzelposten_proc.
Bei SORTART = '2' werden nur dann Stammsatzdaten ausgegeben, wenn -*
auch Einzelposten gerastert wurden. -------------------------------*
IF rastverd < '3'.
IF sortart = '2'.
CHECK sel-postn = 'J'.
ENDIF.
IF NOT kausgabe IS INITIAL.
CHECK sel-postn = 'J'.
ENDIF.
ENDIF.
sel-post2 = 'J'.
CLEAR: gb,
rasteruu,
tage.
MOVE '1' TO satzart.
Stammdaten extrahieren ---------------------------------------------*
Kreditueberschreitung ----------------------------------------------*
C-KREUEB = C-AGOBLI - KREDK-KLIMK.
Kreditlimit noch nicht überschritten?------------------------------*
IF C-KREUEB < 0.
C-KREUEB = 0.
ENDIF.
Gesamt-Obligo (relativ) --------------------------------------------*
IF KREDK-KLIMK > 0.
C-RGOBLI = ( C-AGOBLI * 100 ) / KREDK-KLIMK.
ELSE.
C-RGOBLI = 0.
ENDIF.
CHECK: C-AGOBLI IN AGOBLIG2.
C-RGOBLI IN RGOBLIGO.
CHECK: CHECKAGOBL IN AGOBLIG2.
CLEAR bsid.
EXTRACT stammdaten.
clear c.
OP-Raster extrahieren ----------------------------------------------*
SORT rtab ASCENDING.
LOOP AT rtab
WHERE bukrs = knb1-bukrs.
MOVE: '2' TO satzart,
rtab-gsber TO gb-gsber,
rtab-waers TO gb-waers,
rtab-raart TO rasteruu.
EXTRACT op-raster.
CLEAR rtab-bukrs.
COLLECT rtab.
ENDLOOP.
ENDLOOP.
CLEAR knb1.
Bei SORTART = '2' werden nur dann Stammsatzdaten ausgegeben, wenn -*
auch Einzelposten gerastert wurden. -------------------------------*
CLEAR c.
IF wflag2 IS INITIAL.
MOVE-CORRESPONDING c3 TO c.
ENDIF.
IF rastverd < '3'.
IF sortart = '2'.
CHECK sel-post2 = 'J'.
ENDIF.
IF NOT kausgabe IS INITIAL.
CHECK sel-post2 = 'J'.
ENDIF.
ENDIF.
CLEAR: gb,
rasteruu,
tage.
MOVE '1' TO satzart.
Stammdaten extrahieren ---------------------------------------------*
Kreditueberschreitung ----------------------------------------------*
C-KREUEB = C-AGOBLI - KREDK-KLIMK.
Kreditlimit noch nicht überschritten?------------------------------*
IF C-KREUEB < 0.
C-KREUEB = 0.
ENDIF.
Gesamt-Obligo (relativ) --------------------------------------------*
IF KREDK-KLIMK > 0.
C-RGOBLI = ( C-AGOBLI * 100 ) / KREDK-KLIMK.
ELSE.
C-RGOBLI = 0.
ENDIF.
CHECK: C-AGOBLI IN AGOBLIG2.
C-RGOBLI IN RGOBLIGO.
CHECK: CHECKAGOBL IN AGOBLIG2.
CLEAR bsid.
EXTRACT stammdaten.
clear c.
OP-Raster extrahieren ----------------------------------------------*
SORT rtab ASCENDING.
LOOP AT rtab
WHERE bukrs = knb1-bukrs.
MOVE: '2' TO satzart,
rtab-gsber TO gb-gsber,
rtab-waers TO gb-waers,
rtab-raart TO rasteruu.
EXTRACT op-raster.
ENDLOOP.
ENDIF.
CLEAR adrs.
END-OF-SELECTION.
*----
*
Aufbereitung *
*----
*
CLEAR rtab.
REFRESH rtab.
*SORT.
IF konzvers = space.
SORT BY knb1-bukrs
knb1-busab
kna1-kunnr
satzart
rtab-sortk
gb
rasteruu
tage
bsid-umskz
bsid-blart
bsid-belnr
bsid-buzei.
ELSE.
SORT BY kna1-kunnr
knb1-bukrs
knb1-busab
satzart
rtab-sortk
gb
rasteruu
tage
bsid-umskz
bsid-blart
bsid-belnr
bsid-buzei.
ENDIF.
LOOP.
AT FIRST.
IF konzvers = 'X'.
MOVE '0000' TO bhdgd-werte.
PERFORM new-section(rsbtchh0).
ELSE.
Listseparation wird bei jedem neuen BK durchgefuehrt
ENDIF.
ENDAT.
IF konzvers IS INITIAL.
AT NEW knb1-bukrs.
MOVE knb1-bukrs TO bhdgd-grpin(4). "<= Micro-Fiche Info
MOVE knb1-bukrs TO bhdgd-bukrs.
MOVE bhdgd-bukrs TO bhdgd-werte.
PERFORM new-section(rsbtchh0).
CLEAR rbuk.
REFRESH rbuk.
SELECT SINGLE * FROM T001 WHERE BUKRS EQ KNB1-BUKRS.
READ TABLE ht001 WITH KEY bukrs = knb1-bukrs.
t001 = ht001.
IF waers EQ space.
MOVE t001-waers TO waers.
ENDIF.
IF waers NE t001-waers.
wflag = '1'.
ENDIF.
*- Betraege in gemaess Skalierung aufbereiten -
-
*
CLEAR h-text.
IF faktor(1) GT '0'.
MOVE '1' TO h-text.
WHILE sy-index LT 10 AND sy-index LE faktor(1).
ASSIGN h-text+sy-index(1) TO .
EXIT.
ENDIF.
ENDDO.
IF sortart = '1'.
MOVE text-107 TO varueb4.
REPLACE '$SKAL' WITH h-text INTO varueb4.
ELSE.
IF rastverd < '2'.
MOVE text-165 TO varueb4.
ELSE.
MOVE text-107 TO varueb4.
REPLACE '$SKAL' WITH h-text INTO varueb4.
ENDIF.
ENDIF.
WRITE dd_stida TO h-stichtag DD/MM/YY.
REPLACE '$STIDA' WITH h-stichtag INTO varueb4.
ENDAT.
AT NEW knb1-busab.
MOVE knb1-busab TO bhdgd-grpin+4(2). "<= Micro-Fiche Info
CLEAR rbus.
REFRESH rbus.
SELECT SINGLE * FROM t001s WHERE bukrs EQ knb1-bukrs
AND busab EQ knb1-busab.
ENDAT.
AT NEW kna1-kunnr.
MOVE kna1-kunnr TO bhdgd-grpin+6(10). "<= Micro-Fiche Info
CLEAR gbzaehl.
*-- Nur bei Verdichtungsstufe < 2 erfolgt Seitenvorschub pro Konto ---*
IF verdicht < '2'.
IF acc_mode IS INITIAL.
NEW-PAGE.
ENDIF.
*---- Es bleibt Platz fuer ein Raster -
*
RESERVE 7 LINES.
ENDIF.
top-flag = '0'.
*-- Bei Verdichtungsstufe '2' und Ausgabe von OP-Rastern muss Platz --*
*-- fuer Stamminfo inclusive Ueberschrift bleiben, weil kein Seiten- -*
*-- vorschub bei neuem Konto erfolgt. -
-
*
IF verdicht = '2' AND rastverd < '2'.
RESERVE 10 LINES.
ENDIF.
*-- Bei Verdichtungsstufe '2' o h n e Ausgabe von OP-Rastern muss --*
*-- Platz fuer Stamminfo ohne Ueberschrift bleiben, weil kein Seiten- *
*-- vorschub bei neuem Konto erfolgt. -
-
*
*-- Die Ueberschrift wird einmal bei TOP-OF-PAGE ausgegeben. -
-
*
*-- TOP-FLAG = '4' -
-
*
IF verdicht = '2' AND rastverd = '2'.
RESERVE 7 LINES.
ENDIF.
ENDAT.
ELSE.
AT NEW kna1-kunnr.
CLEAR RBUA.
REFRESH RBUA.
MOVE kna1-kunnr TO bhdgd-grpin(10). "<= Micro-Fiche Info
IF sortart = '1'.
MOVE text-168 TO varueb4.
ELSE.
IF rastverd < '2'.
MOVE text-165 TO varueb4.
ELSE.
MOVE text-168 TO varueb4.
ENDIF.
ENDIF.
WRITE dd_stida TO h-stichtag DD/MM/YY.
REPLACE '$STIDA' WITH h-stichtag INTO varueb4.
ENDAT.
AT NEW knb1-bukrs.
CLEAR rbuk.
REFRESH rbuk.
CLEAR gbzaehl.
MOVE knb1-bukrs TO bhdgd-grpin+10(4). "<= Micro-Fiche Info
IF NOT knb1-bukrs IS INITIAL.
READ TABLE ht001 WITH KEY bukrs = knb1-bukrs.
t001 = ht001.
IF waers EQ space.
MOVE t001-waers TO waers.
ENDIF.
IF waers NE t001-waers.
wflag = '1'.
ENDIF.
ENDIF.
ENDAT.
AT NEW knb1-busab.
CLEAR rbus.
REFRESH rbus.
IF NOT knb1-bukrs IS INITIAL
AND NOT knb1-busab IS INITIAL.
MOVE knb1-busab TO bhdgd-grpin+14(2). "<= Micro-Fiche Info
SELECT SINGLE * FROM t001s WHERE bukrs EQ knb1-bukrs
AND busab EQ knb1-busab.
ENDIF.
ENDAT.
ENDIF.
AT NEW satzart.
CASE satzart.
WHEN '2'. "Raster
IF acc_mode IS INITIAL.
IF rtab-sortk < '2'.
IF rastverd < '2'.
IF verdicht < '3'.
IF NOT konzvers IS INITIAL
AND NOT knb1-bukrs IS INITIAL.
CHECK xbukrdat NE '2'.
ENDIF.
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
*----
Wenn ein neues Raster beginnt, muessen mindestens noch -
*
*----
9 Zeilen Platz haben. -
*
top-flag = '3'.
RESERVE 9 LINES.
WRITE: /01 sy-vline,
02 varueb1-feld1,
42 sy-vline,
43 varueb1-feld2,
57 sy-vline,
58 varueb1-feld3,
72 sy-vline,
73 varueb1-feld4,
87 sy-vline,
88 varueb1-feld5,
102 sy-vline,
103 varueb1-feld6,
117 sy-vline,
118 varueb1-feld7,
132 sy-vline.
WRITE: /01 sy-vline,
02 varueb2-feld1,
42 sy-vline,
43 varueb2-feld2,
57 sy-vline,
58 varueb2-feld3,
72 sy-vline,
73 varueb2-feld4,
87 sy-vline,
88 varueb2-feld5,
102 sy-vline,
103 varueb2-feld6,
117 sy-vline,
118 varueb2-feld7,
132 sy-vline.
ENDIF.
ENDIF.
ELSE.
IF rastverd < '2'.
IF verdicht < '3'.
FORMAT COLOR COL_NORMAL INTENSIFIED.
WRITE: /01 sy-vline, 02 text-167, 132 sy-vline.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
WHEN '3'. "Einzelposten
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
SUMMARY.
WRITE: /01 sy-vline, 02 text-108, 132 sy-vline.
/ TEXT-109.
DETAIL.
WRITE: /01 sy-vline, 02 sy-uline(130), 132 sy-vline.
top-flag = '1'.
ENDCASE.
ENDAT.
AT stammdaten. "Satzart '1'
IF acc_mode IS INITIAL.
CHECK VERDICHT < '3'.
IF verdicht < '3'.
IF RASTVERD < '2'.
DETAIL.
IF NOT konzvers IS INITIAL
AND NOT knb1-bukrs IS INITIAL.
IF xbukrdat = '2'
AND verdicht > '0'.
CHECK 1 = 2.
ENDIF.
ENDIF.
IF NOT konzvers IS INITIAL
AND NOT knb1-bukrs IS INITIAL
AND xbukrdat = '2'.
ELSE.
FORMAT COLOR COL_HEADING INVERSE.
WRITE: 01 sy-vline, 02 varueb4(130), 132 sy-vline.
FORMAT COLOR COL_HEADING INVERSE OFF.
ENDIF.
FORMAT COLOR COL_GROUP INTENSIFIED.
FORMAT COLOR COL_HEADING INTENSIFIED.
IF konzvers IS INITIAL.
WRITE: /01 sy-vline,
text-110,
knb1-bukrs,
text-111,
knb1-busab,
text-112,
kna1-kunnr,
132 sy-vline.
ELSE.
IF knb1-bukrs IS INITIAL.
WRITE: /01 sy-vline,
text-112,
kna1-kunnr,
132 sy-vline.
ELSE.
WRITE: /01 sy-vline,
text-112,
kna1-kunnr,
text-110,
knb1-bukrs,
text-111,
knb1-busab,
132 sy-vline.
ENDIF.
ENDIF.
DETAIL.
IF NOT konzvers IS INITIAL
AND NOT knb1-bukrs IS INITIAL
AND xbukrdat = '2'.
ELSE.
WRITE: /01 sy-vline, 02 sy-uline(130), 132 sy-vline.
ENDIF.
ELSE.
IF RASTVERD > '1'.
*--- Wenn nur Stammsatzinformationen ausgegeben werden, reicht eine -
**--- ueberschrfit pro Seite. Dies geschieht bei TOP-OF-PAGE. -
*
top-flag = '4'.
ENDIF.
PERFORM anschrift.
intens = 'X'.
ENDIF.
ENDIF.
ENDAT.
AT op-raster. "Satzart '2'
IF verdicht < '3'.
IF acc_mode IS INITIAL.
NEW-LINE.
ENDIF.
PERFORM raster_ausgabe.
ENDIF.
*-- Summen fuer hoehere Gruppenstufen bilden -
-
*
IF acc_mode IS INITIAL.
PERFORM sum_busab_bukrs_total.
ENDIF.
ENDAT.
AT einzelposten. "Satzart '3'
RESERVE 2 LINES.
NEW-LINE.
PERFORM einzelposten_ausgabe.
ENDAT.
AT END OF rasteruu.
IF satzart = '3'.
FORMAT COLOR COL_TOTAL INTENSIFIED OFF.
WRITE: /01 sy-vline, 02 sy-uline(130), 132 sy-vline.
CASE rasteruu.
WHEN '1'.
MOVE text-052 TO vartxt1.
REPLACE '$BIS' WITH rc01 INTO vartxt1.
WRITE: /01 sy-vline,
40 vartxt1,
87 sum(shbetrag) CURRENCY t001-waers,
ROUND FAKTOR DECIMALS STELLEN,
'*' UNDER BSID-WAERS.
'*' UNDER bsid-waers.
WRITE: 132 sy-vline.
WHEN '2'.
IF NOT rc02 IS INITIAL.
MOVE text-053 TO vartxt1.
REPLACE '$VON' WITH rc06 INTO vartxt1.
REPLACE '$BIS' WITH rc02 INTO vartxt1.
WRITE: /01 sy-vline,
40 vartxt1,
87 sum(shbetrag) CURRENCY t001-waers,
ROUND FAKTOR DECIMALS STELLEN,
'*' UNDER BSID-WAERS.
'*' UNDER bsid-waers.
WRITE: 132 sy-vline.
ELSE.
MOVE text-054 TO vartxt1.
REPLACE '$VON' WITH rc06 INTO vartxt1.
WRITE: /01 sy-vline,
40 vartxt1,
87 sum(shbetrag) CURRENCY t001-waers,
ROUND FAKTOR DECIMALS STELLEN,
'*' UNDER BSID-WAERS.
'*' UNDER bsid-waers.
WRITE: 132 sy-vline.
ENDIF.
WHEN '3'.
IF NOT rc03 IS INITIAL.
MOVE text-053 TO vartxt1.
REPLACE '$VON' WITH rc07 INTO vartxt1.
REPLACE '$BIS' WITH rc03 INTO vartxt1.
WRITE: /01 sy-vline,
40 vartxt1,
87 sum(shbetrag) CURRENCY t001-waers,
ROUND FAKTOR DECIMALS STELLEN,
'*' UNDER bsid-waers.
WRITE: 132 sy-vline.
ELSE.
MOVE text-054 TO vartxt1.
REPLACE '$VON' WITH rc07 INTO vartxt1.
WRITE: /01 sy-vline,
40 vartxt1,
87 sum(shbetrag) CURRENCY t001-waers,
ROUND FAKTOR DECIMALS STELLEN,
'*' UNDER BSID-WAERS.
'*' UNDER bsid-waers.
WRITE: 132 sy-vline.
ENDIF.
WHEN '4'.
IF NOT rc04 IS INITIAL.
MOVE text-053 TO vartxt1.
REPLACE '$VON' WITH rc08 INTO vartxt1.
REPLACE '$BIS' WITH rc04 INTO vartxt1.
WRITE: /01 sy-vline,
40 vartxt1,
87 sum(shbetrag) CURRENCY t001-waers,
ROUND FAKTOR DECIMALS STELLEN,
'*' UNDER bsid-waers.
WRITE: 132 sy-vline.
ELSE.
MOVE text-054 TO vartxt1.
REPLACE '$VON' WITH rc08 INTO vartxt1.
WRITE: /01 sy-vline,
40 vartxt1,
87 sum(shbetrag) CURRENCY t001-waers,
ROUND FAKTOR DECIMALS STELLEN,
'*' UNDER BSID-WAERS.
'*' UNDER bsid-waers.
WRITE: 132 sy-vline.
ENDIF.
WHEN '5'.
IF NOT rc05 IS INITIAL.
MOVE text-053 TO vartxt1.
REPLACE '$VON' WITH rc09 INTO vartxt1.
REPLACE '$BIS' WITH rc05 INTO vartxt1.
WRITE: /01 sy-vline,
40 vartxt1,
87 sum(shbetrag) CURRENCY t001-waers,
ROUND FAKTOR DECIMALS STELLEN,
'*' UNDER bsid-waers.
WRITE: 132 sy-vline.
ELSE.
MOVE text-054 TO vartxt1.
REPLACE '$VON' WITH rc09 INTO vartxt1.
WRITE: /01 sy-vline,
40 vartxt1,
87 sum(shbetrag) CURRENCY t001-waers,
ROUND FAKTOR DECIMALS STELLEN,
'*' UNDER BSID-WAERS.
'*' UNDER bsid-waers.
WRITE: 132 sy-vline.
ENDIF.
WHEN '6'.
MOVE text-054 TO vartxt1.
REPLACE '$VON' WITH rc10 INTO vartxt1.
WRITE: /01 sy-vline,
40 vartxt1,
87 sum(shbetrag) CURRENCY t001-waers,
ROUND FAKTOR DECIMALS STELLEN,
'*' UNDER bsid-waers.
WRITE: 132 sy-vline.
WHEN OTHERS.
WRITE: /01 sy-vline,
87 sum(shbetrag) CURRENCY t001-waers,
ROUND FAKTOR DECIMALS STELLEN,
'*' UNDER bsid-waers.
WRITE: 132 sy-vline.
ENDCASE.
WRITE: /01 sy-vline, 02 sy-uline(130), 132 sy-vline.
ENDIF.
ENDAT.
AT END OF satzart.
IF satzart = '2'.
IF rastverd < '2'.
IF verdicht < '3'.
IF acc_mode IS INITIAL.
ULINE.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDAT.
IF acc_mode IS INITIAL.
IF konzvers IS INITIAL.
AT END OF knb1-busab.
MOVE space TO bhdgd-grpin+6. "<= Micro-Fiche Info
IF verdicht < '4'.
NEW-PAGE.
MOVE text-051 TO varueb3.
REPLACE '$BUK' WITH knb1-bukrs INTO varueb3.
REPLACE '$SAB' WITH knb1-busab INTO varueb3.
REPLACE '$SBZ' WITH t001s-sname INTO varueb3.
top-flag = '2'.
PERFORM raster_ausgabe_busab.
ENDIF.
CLEAR t001s.
ENDAT.
AT END OF knb1-bukrs.
MOVE space TO bhdgd-grpin+4. "<= Micro-Fiche Info
IF verdicht < '5'.
NEW-PAGE.
MOVE text-050 TO varueb3.
REPLACE '$BUK' WITH knb1-bukrs INTO varueb3.
top-flag = '2'.
PERFORM raster_ausgabe_bukrb.
ENDIF.
ENDAT.
ELSE.
AT END OF knb1-busab.
MOVE SPACE TO BHDGD-GRPIN+6. "<= Micro-Fiche Info
CLEAR t001s.
ENDAT.
AT END OF knb1-bukrs.
MOVE space TO bhdgd-grpin+14. "<= Micro-Fiche Info
ENDAT.
AT END OF kna1-kunnr.
MOVE space TO bhdgd-grpin+10. "<= Micro-Fiche Info
ENDAT.
ENDIF.
ENDIF.
AT LAST.
MOVE space TO bhdgd-grpin. "<= Micro-Fiche Info
MOVE ' ' TO bhdgd-bukrs.
MOVE bhdgd-bukrs TO bhdgd-werte.
PERFORM new-section(rsbtchh0).
MOVE text-055 TO varueb3.
top-flag = '2'.
IF sortart = '1'.
MOVE text-109 TO varueb4.
ELSE.
MOVE text-165 TO varueb4.
ENDIF.
WRITE DD_STIDA TO H-STICHTAG DD/MM/YY.
REPLACE '$STIDA' WITH h-stichtag INTO varueb4.
IF acc_mode IS INITIAL.
PERFORM raster_ausgabe_total.
ELSE.
PERFORM raster_ausgabe_alv_grid.
ENDIF.
ENDAT.
ENDLOOP.
IF sy-pagno = 0. "Keine Liste ausgegeben
CALL FUNCTION 'POPUP_NO_LIST'.
ENDIF.
TOP-OF-PAGE.
IF acc_mode IS INITIAL.
*- Standard-Seitenkopf drucken -
-
*
PERFORM batch-heading(rsbtchh0).
*-- ab der zweiten Seite pro Konto Ueberschrift fuer Einzelposten ---*
DETAIL.
CASE top-flag.
WHEN '1'.
WRITE: / sy-vline, 2 sy-uline(130), 132 sy-vline.
SUMMARY.
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
WRITE: / sy-vline, 2 text-108, 132 sy-vline.
TEXT-109.
WRITE: / sy-vline, 2 sy-uline(130), 132 sy-vline.
DETAIL.
*-- Ueberschriften fuer Listenteil 2 ausgeben -
-
*
WHEN '2'.
SUMMARY.
FORMAT COLOR COL_HEADING INVERSE.
WRITE: /01 sy-vline, 02 varueb4(130), 132 sy-vline..
FORMAT COLOR COL_HEADING INVERSE OFF.
FORMAT COLOR COL_GROUP INTENSIFIED.
FORMAT COLOR COL_HEADING INTENSIFIED.
WRITE: /01 sy-vline, 02 varueb3(130), 132 sy-vline.
ULINE.
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
WRITE: VARUEB1,
VARUEB2.
WRITE: /01 sy-vline,
02 varueb1-feld1,
42 sy-vline,
43 varueb1-feld2,
57 sy-vline,
58 varueb1-feld3,
72 sy-vline,
73 varueb1-feld4,
87 sy-vline,
88 varueb1-feld5,
102 sy-vline,
103 varueb1-feld6,
117 sy-vline,
118 varueb1-feld7,
132 sy-vline.
WRITE: /01 sy-vline,
02 varueb2-feld1,
42 sy-vline,
43 varueb2-feld2,
57 sy-vline,
58 varueb2-feld3,
72 sy-vline,
73 varueb2-feld4,
87 sy-vline,
88 varueb2-feld5,
102 sy-vline,
103 varueb2-feld6,
117 sy-vline,
118 varueb2-feld7,
132 sy-vline.
ULINE.
WRITE: /01 sy-vline, 02 sy-uline(130), 132 sy-vline.
DETAIL.
WHEN '3'.
SUMMARY.
ULINE.
DETAIL.
*-- Ueberschrift fuer Stammsatzinformationen -
-
*
WHEN '4'.
SUMMARY.
FORMAT COLOR COL_HEADING INVERSE.
WRITE: VARUEB4.
FORMAT COLOR COL_HEADING INVERSE OFF.
FORMAT COLOR COL_HEADING INTENSIFIED.
WRITE: TEXT-100,
TEXT-101.
ULiNE.
DETAIL.
DETAIL.
FORMAT COLOR COL_HEADING INVERSE.
WRITE: 01 sy-vline, 02 varueb4(130), 132 sy-vline.
FORMAT COLOR COL_HEADING INVERSE OFF.
FORMAT COLOR COL_GROUP INTENSIFIED.
FORMAT COLOR COL_HEADING INTENSIFIED.
WRITE: /01 sy-vline,
text-110,
knb1-bukrs,
text-111,
knb1-busab,
text-112,
kna1-kunnr,
132 sy-vline.
DETAIL.
WRITE: /01 sy-vline, 02 sy-uline(130), 132 sy-vline.
ENDCASE.
ENDIF.
*eject
*----
*
U N T E R R O U T I N E N *
*----
*
*------- Faktor fuer Dezimalen bestimmen -
*
FORM cfaktor.
IF t001-waers NE tcurx-currkey.
SELECT SINGLE * FROM tcurx WHERE currkey = t001-waers.
IF sy-subrc NE 0.
tcurx-currkey = t001-waers.
cfakt = 100.
ELSE.
cfakt = 1.
DO tcurx-currdec TIMES.
cfakt = cfakt * 10.
ENDDO.
ENDIF.
ENDIF.
ENDFORM. "CFAKTOR
OP-Raster und Ueberschriften aufbereiten --------------------------*
FORM raster_aufbau.
Erste ausgewaehlte Rasterarte sichern ------------------------------*
IF rart-net = 'X'.
rart = '1'.
ELSE.
IF rart-skt = 'X'.
rart = '2'.
ELSE.
IF rart-zhl = 'X'.
rart = '3'.
ELSE.
IF rart-alt = 'X'.
rart = '4'.
ELSE.
IF rart-ueb = 'X'.
rart = '5'.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
Obergrenze Intervall -----------------------------------------------*
rp01 = rastbis1.
rp02 = rastbis2.
rp03 = rastbis3.
rp04 = rastbis4.
rp05 = rastbis5.
Untergrenze Intervall -----------------------------------------------*
rp06 = rp01 + 1.
IF NOT rp02 IS INITIAL.
rp07 = rp02 + 1.
ENDIF.
IF NOT rp03 IS INITIAL.
rp08 = rp03 + 1.
ENDIF.
IF NOT rp04 IS INITIAL.
rp09 = rp04 + 1.
ENDIF.
IF NOT rp05 IS INITIAL.
rp10 = rp05 + 1.
ENDIF.
Rasterpunkte in Charakterform für REPLACE.
WRITE: rp01 TO rc01.
IF NOT rp02 IS INITIAL.
WRITE: rp02 TO rc02.
MOVE text-202 TO varueb2-feld3.
ENDIF.
IF NOT rp03 IS INITIAL.
WRITE: rp03 TO rc03.
MOVE text-203 TO varueb2-feld4.
ENDIF.
IF NOT rp04 IS INITIAL.
WRITE: rp04 TO rc04.
MOVE text-204 TO varueb2-feld5.
ENDIF.
IF NOT rp05 IS INITIAL.
WRITE: rp05 TO rc05.
MOVE text-205 TO varueb2-feld6.
ENDIF.
IF NOT rp06 IS INITIAL.
WRITE: rp06 TO rc06.
MOVE text-206 TO varueb1-feld3.
ENDIF.
IF NOT rp07 IS INITIAL.
WRITE: rp07 TO rc07.
MOVE text-207 TO varueb1-feld4.
ENDIF.
IF NOT rp08 IS INITIAL.
WRITE: rp08 TO rc08.
MOVE text-208 TO varueb1-feld5.
ENDIF.
IF NOT rp09 IS INITIAL.
WRITE: rp09 TO rc09.
MOVE text-209 TO varueb1-feld6.
ENDIF.
IF NOT rp10 IS INITIAL.
WRITE: rp10 TO rc10.
MOVE text-210 TO varueb1-feld7.
ENDIF.
Variable ersetzen --------------------------------------------------*
IF SORTART = '1'.
MOVE TEXT-103 TO VARUEB2.
ELSE.
MOVE text-102 TO varueb1-feld1.
MOVE text-106 TO varueb2-feld1.
MOVE text-201 TO varueb2-feld2.
ENDIF.
REPLACE 'RP01' WITH rc01 INTO varueb2. "bis 0
REPLACE 'RP02' WITH rc02 INTO varueb2. "bis 20
REPLACE 'RP03' WITH rc03 INTO varueb2. "bis 40
REPLACE 'RP04' WITH rc04 INTO varueb2. "bis 80
REPLACE 'RP05' WITH rc05 INTO varueb2. "bis 100
REPLACE 'RP06' WITH rc06 INTO varueb1. "von 1
REPLACE 'RP07' WITH rc07 INTO varueb1. "von 21
REPLACE 'RP08' WITH rc08 INTO varueb1. "von 41
REPLACE 'RP09' WITH rc09 INTO varueb1. "von 81
REPLACE 'RP10' WITH rc10 INTO varueb1. "von 101
ENDFORM. "RASTER_AUFBAU
*----
*
FORM SALDO_AKTUELL *
*----
*
........ *
*----
*
FORM saldo_aktuell.
ADD knc1-um01s THEN knc1-um02s UNTIL knc1-um16s GIVING h-soll
ACCORDING TO bmonat.
ADD knc1-um01h THEN knc1-um02h UNTIL knc1-um16h GIVING h-haben
ACCORDING TO bmonat.
h-saldo = h-soll - h-haben + knc1-umsav.
PERFORM CFAKTOR.
c-agobli = h-saldo.
IF cfakt NE 0.
checksaldo = checksaldo + h-saldo / cfakt.
checkagobl = checkagobl + c-agobli / cfakt.
ELSE.
checksaldo = checksaldo + h-saldo.
checkagobl = checkagobl + c-agobli.
ENDIF.
c-saldo = h-saldo.
ENDFORM. "SALDO_AKTUELL
*----
*
FORM KUM_WERTE *
*----
*
........ *
*----
*
FORM kum_werte.
Berechtigte Abzuege ------------------------------------------------*
c-babzg = knc1-babzg.
Unberechtigte Abzuege ----------------------------------------------*
c-uabzg = knc1-uabzg.
Zinszahlung --------------------------------------------------------*
c-kzins = knc1-kzins.
Jahresumsatz -------------------------------------------------------*
C-KUMUM = KNC1-KUMUM. ECKERT: FELD KUMUM NICHT MEHR VORHANDEN
ADD knc1-um01u THEN knc1-um02u UNTIL knc1-um16u GIVING c-kumum
ACCORDING TO bmonat.
Kum. Jahresausgleich -----------------------------------------------*
c-kumag = knc1-kumag.
IF sortart = '1' . "Ausgabe kum Kum.Umsatz wenn Hauswährung gewünscht.
Kum. Umsatz---------------------------------------------------------*
CLEAR rtab.
MOVE: knc1-bukrs TO rtab-bukrs.
SORTK = 1.
Satz für Ausgabe des kummulieten Umsatzes auf Summenebene.
(Summe pro Sachbearbeiter und Buchungskreis)
MOVE: '2' TO rtab-sortk,
'** ' TO rtab-gsber,
RART TO RTAB-RAART,
c-kumum TO rtab-kumum.
COLLECT rtab.
CLEAR RTAB-BUKRS.
COLLECT RTAB.
ENDIF.
ENDFORM. "KUM_WERTE
*----
*
FORM SONDER_UMSAETZE *
*----
*
........ *
*----
*
FORM sonder_umsaetze.
CLEAR: C.
Errechnen Sonderumsatz-Salden, Gesamtsaldo ------------------------*
*----
Trend, Umsatz pro Gesch.Bereich -
*
h-shbls = knc3-solll - knc3-habnl.
*-- Gesamt-Obligo -
-
*
c-agobli = knc3-saldv + h-shbls.
PERFORM cfaktor.
IF cfakt NE 0.
checkagobl = checkagobl + c-agobli / cfakt.
ELSE.
checkagobl = checkagobl + c-agobli.
ENDIF.
*-- Sonderumsatz-Salden -
-
*
CASE knc3-shbkz.
*----
Wechsel-Forderung -
*
WHEN 'W'. C-WEXOB = C-WEXOB + KNC3-SALDV + H-SHBLS.
*----
Scheckwechsel-Forderung -
*
WHEN 'S'. C-WEXOB = C-WEXOB + KNC3-SALDV + H-SHBLS.
*----
Wechsel-Forderung NB -
*
WHEN 'B'. C-WEXOB = C-WEXOB + KNC3-SALDV + H-SHBLS.
*----
Anzahlungs-Obligo -
*
WHEN 'A'. C-ANZOB = C-ANZOB + KNC3-SALDV + H-SHBLS.
*----
Zahlungs-Anforderung -
*
WHEN 'F'. C-ZANFB = C-ZANFB + KNC3-SALDV + H-SHBLS.
*----
Sonstige Sonderumsaetze -
*
*----
Einzel-Wertberichtigung -
*
WHEN 'E'. C-SONOB = C-SONOB + KNC3-SALDV + H-SHBLS.
*----
Buergschaften -
*
WHEN 'G'. C-SONOB = C-SONOB + KNC3-SALDV + H-SHBLS.
*----
Zins-Forderung -
*
WHEN 'Z'. C-SONOB = C-SONOB + KNC3-SALDV + H-SHBLS.
WHEN humkz1.
c-umkz1 = knc3-shbkz.
c-sums1 = c-sums1 + knc3-saldv + h-shbls.
WHEN humkz2.
c-umkz2 = knc3-shbkz.
c-sums2 = c-sums2 + knc3-saldv + h-shbls.
WHEN humkz3.
c-umkz3 = knc3-shbkz.
c-sums3 = c-sums3 + knc3-saldv + h-shbls.
WHEN humkz4.
c-umkz4 = knc3-shbkz.
c-sums4 = c-sums4 + knc3-saldv + h-shbls.
WHEN humkz5.
c-umkz5 = knc3-shbkz.
c-sums5 = c-sums5 + knc3-saldv + h-shbls.
WHEN humkz6.
c-umkz6 = knc3-shbkz.
c-sums6 = c-sums6 + knc3-saldv + h-shbls.
WHEN humkz7.
c-umkz7 = knc3-shbkz.
c-sums7 = c-sums7 + knc3-saldv + h-shbls.
WHEN humkz8.
c-umkz8 = knc3-shbkz.
c-sums8 = c-sums8 + knc3-saldv + h-shbls.
WHEN humkz9.
c-umkz9 = knc3-shbkz.
c-sums9 = c-sums9 + knc3-saldv + h-shbls.
WHEN humkz10.
c-umkz10 = knc3-shbkz.
c-sums10 = c-sums10 + knc3-saldv + h-shbls.
WHEN OTHERS.
c-sonob = c-sonob + knc3-saldv + h-shbls.
ENDCASE.
Der Umsatz pro GESBER wird nur dann in das OP-Raster gestellt, ---*
wenn ein OP-Raster gewuenscht wird. -------------------------------*
IF RASTVERD < '2'. .....ECKERT / FELDER NICHT MEHR VORHANDEN ??
WHILE H-GBNUM NE SPACE AND SY-INDEX <= 16
VARY H-GBNUM FROM KNC1-GBN01 NEXT KNC1-GBN02
VARY H-GBUMS FROM KNC1-GBU01 NEXT KNC1-GBU02.
*---- Umsatz vorhanden ?????? -
*
CHECK H-GBUMS NE 0.
*
IF SORTART = '1'.
CLEAR RTAB.
MOVE: KNC1-BUKRC TO RTAB-BUKRS,
'0' TO RTAB-SORTK,
H-GBNUM TO RTAB-GSBER,
RART TO RTAB-RAART,
H-GBUMS TO RTAB-KUMUM.
COLLECT RTAB.
*------ Summieren ueber alle Geschaeftsbereiche -
*
MOVE: '1' TO RTAB-SORTK,
'**' TO RTAB-GSBER.
COLLECT RTAB.
ENDIF.
ENDWHILE.
ENDIF.
ENDFORM. "SONDER_UMSAETZE
*----
*
FORM POSTEN_RASTERN *
*----
*
........ *
*----
*
--> POSTEN_WAERS *
*----
*
FORM posten_rastern USING posten_waers.
IF rart-net = 'X'.
IF sortart = '1'.
PERFORM r USING ntage '1' bsega-dmshb posten_waers.
ELSE.
PERFORM r USING ntage '1' bsega-wrshb posten_waers.
ENDIF.
ENDIF.
IF rart-skt = 'X'.
IF sortart = '1'.
PERFORM r USING stage '2' bsega-dmshb posten_waers.
ELSE.
PERFORM r USING stage '2' bsega-wrshb posten_waers.
ENDIF.
ENDIF.
IF rart-zhl = 'X'.
IF sortart = '1'.
PERFORM r USING ztage '3' bsega-dmshb posten_waers.
ELSE.
PERFORM r USING ztage '3' bsega-wrshb posten_waers.
ENDIF.
ENDIF.
IF rart-alt = 'X'.
IF sortart = '1'.
PERFORM r USING atage '4' bsega-dmshb posten_waers.
ELSE.
PERFORM r USING atage '4' bsega-wrshb posten_waers.
ENDIF.
ENDIF.
IF rart-ueb = 'X'.
IF sortart = '1'.
PERFORM r USING utage '5' bsega-dmshb posten_waers.
ELSE.
PERFORM r USING utage '5' bsega-wrshb posten_waers.
ENDIF.
ENDIF.
ENDFORM. "POSTEN_RASTERN
*----
*
FORM R *
*----
*
........ *
*----
*
--> R_TAGE *
--> R_ART *
--> R_BETRAG *
--> R_WAERS *
*----
*
FORM r USING r_tage r_art r_betrag r_waers.
CLEAR rtab.
MOVE: bsid-bukrs TO rtab-bukrs,
'0' TO rtab-sortk,
bsid-gsber TO rtab-gsber,
r_waers TO rtab-waers,
r_art TO rtab-raart,
r_betrag TO rtab-opsum.
IF r_tage <= rp01.
MOVE: r_betrag TO rtab-rast1.
IF r_art = rart.
MOVE '1' TO rasteruu.
ENDIF.
ELSE.
IF r_tage <= rp02
OR rp07 IS INITIAL.
MOVE: r_betrag TO rtab-rast2.
IF r_art = rart.
MOVE '2' TO rasteruu.
ENDIF.
ELSE.
IF r_tage <= rp03
OR rp08 IS INITIAL.
MOVE: r_betrag TO rtab-rast3.
IF r_art = rart.
MOVE '3' TO rasteruu.
ENDIF.
ELSE.
IF r_tage <= rp04
OR rp09 IS INITIAL.
MOVE: r_betrag TO rtab-rast4.
IF r_art = rart.
MOVE '4' TO rasteruu.
ENDIF.
ELSE.
IF r_tage <= rp05
OR rp10 IS INITIAL.
MOVE: r_betrag TO rtab-rast5.
IF r_art = rart.
MOVE '5' TO rasteruu.
ENDIF.
ELSE.
MOVE: r_betrag TO rtab-rast6.
IF r_art = rart.
MOVE '6' TO rasteruu.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
COLLECT rtab.
Summieren ueber alle Geschaeftsbereiche ---------------------------*
aber nur wenn SORTART = '1' ----------------------------------------*
IF SORTART = '1'.
MOVE: '1' TO rtab-sortk,
'**' TO rtab-gsber.
COLLECT rtab.
ENDIF.
ENDFORM. "R
*----
*
FORM ANSCHRIFT *
*----
*
........ *
*----
*
FORM anschrift.
IF NOT knb1-bukrs IS INITIAL.
PERFORM mahndaten.
IF NOT konzvers IS INITIAL.
CHECK xbukrdat = 0.
ENDIF.
ENDIF.
PERFORM obligos.
IF konzvers IS INITIAL.
Ausgabe der Debitoreninformationen pro Buchungskreis
<<<<<<<<<<<< Block 1>>>>>>>>>>>>>>>
*----
-
Zeile 1 -
-
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
WRITE: /01 sy-vline. "Anschrift
WRITE: 02 text-113 INTENSIFIED, "Anschrift
39 sy-vline,
40 text-116 INTENSIFIED, "Obligo
132 sy-vline.
WRITE: /01 sy-vline, 02 sy-uline(37), 39 sy-vline,
40 sy-uline(108), 132 sy-vline.
90 TEXT-115 INTENSIFIED. "Umsatzdaten
99 TEXT-127 INTENSIFIED. "Zahlungsdaten
*----
-
ZEILE 2 -
-
FORMAT COLOR COL_BACKGROUND INTENSIFIED OFF.
DETAIL.
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '1'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT adrs-line0 IS INITIAL
OR NOT asums IS INITIAL.
WRITE:
/01 sy-vline,
02 adrs-line0(35),
39 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."1. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 68 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
70 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 132 sy-vline.
*WRITE: TEXT-122 UNDER TEXT-115, "Jahresumsatz
*110 C-KUMUM CURRENCY T001-WAERS NO-ZERO
ROUND FAKTOR DECIMALS STELLEN.
*WRITE: TEXT-157 UNDER TEXT-127, "Zahlungsbedingung
KNB1-ZTERM.
ENDIF.
*----
-
Zeile 3 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '2'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT adrs-line1 IS INITIAL
OR NOT asums IS INITIAL.
WRITE:
/01 sy-vline,
02 adrs-line1(35), "Adressausgabe
39 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."2. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 68 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
70 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 132 sy-vline.
*WRITE: TEXT-123 UNDER TEXT-122, "Berechtigte Abzüge
*110 C-BABZG CURRENCY T001-WAERS NO-ZERO
ROUND FAKTOR DECIMALS STELLEN.
*WRITE: TEXT-158 UNDER TEXT-157. "Zahlungstyp.
*CASE ZVTYP.
*WHEN 'S'.
WRITE TEXT-155. "Skontozahler
*WHEN 'N'.
WRITE TEXT-156. "Nettozahler
*WHEN OTHERS.
*ENDCASE.
ENDIF.
*----
-
Zeile 4 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '3'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT adrs-line2 IS INITIAL
OR NOT asums IS INITIAL.
WRITE:
/01 sy-vline,
02 adrs-line2(35), "Adressausgabe
39 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."3. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 68 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
70 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 132 sy-vline.
*WRITE: TEXT-124 UNDER TEXT-123, "Unberecht. Abzüge
*110 C-UABZG CURRENCY T001-WAERS NO-ZERO
ROUND FAKTOR DECIMALS STELLEN.
*WRITE: TEXT-159 UNDER TEXT-158, "Verzugsstage
*120(5) ZVVERZUG NO-ZERO.
ENDIF.
*----
-
Zeile 5 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '4'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT adrs-line3 IS INITIAL
OR NOT asums IS INITIAL.
WRITE:
/01 sy-vline,
02 adrs-line3(35), "Adressausgabe
39 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."4. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 68 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
70 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 132 sy-vline.
*WRITE: TEXT-125 UNDER TEXT-124, "Zinsen
*110 C-KZINS CURRENCY T001-WAERS NO-ZERO
ROUND FAKTOR DECIMALS STELLEN.
*WRITE: TEXT-160 UNDER TEXT-159, "letzte Zahlperiode
*120(4) ZVPER NO-ZERO.
ENDIF.
*----
-
Zeile 6 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '5'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT adrs-line4 IS INITIAL
OR NOT asums IS INITIAL.
WRITE:
/01 sy-vline,
02 adrs-line4(35), "Adressausgabe
39 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."5. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 68 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
70 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 132 sy-vline.
*SUMMARY.
*WRITE: TEXT-127 UNDER TEXT-124. "Zahlungsdaten
*DETAIL.
ENDIF.
*----
-
Zeile 7 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '6'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT adrs-line5 IS INITIAL
OR NOT asums IS INITIAL.
WRITE:
/01 sy-vline,
02 adrs-line5(35), "Adressausgabe
39 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."6. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 68 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
70 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 132 sy-vline.
*WRITE: TEXT-157 UNDER TEXT-127, "Zahlungsbedingung
*110 KNB1-ZTERM.
ENDIF.
*----
-
Zeile 8 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '7'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT adrs-line6 IS INITIAL
OR NOT asums IS INITIAL.
WRITE:
/01 sy-vline,
02 adrs-line6(35), "Adressausgabe
39 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."7. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 68 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
70 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 132 sy-vline.
*WRITE: TEXT-162 UNDER TEXT-127, "Zahlungsverrechnung
*110 KNB1-XVERR.
ENDIF.
*----
-
Zeile 9 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '8'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT adrs-line7 IS INITIAL
OR NOT asums IS INITIAL.
WRITE:
/01 sy-vline,
02 adrs-line7(35), "Adressausgabe
39 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."8. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 68 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
70 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 132 sy-vline.
*WRITE: TEXT-158 UNDER TEXT-157. "Zahlungstyp.
*CASE ZVTYP.
WHEN 'S'.
WRITE 110 TEXT-155. "Skontozahler
WHEN 'N'.
WRITE 110 TEXT-156. "Nettozahler
WHEN OTHERS.
*ENDCASE.
ENDIF.
*----
-
Zeile 10 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '9'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT adrs-line8 IS INITIAL
OR NOT asums IS INITIAL.
WRITE:
/01 sy-vline,
02 adrs-line8(35), "Adressausgabe
39 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."9. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 68 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
70 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 132 sy-vline.
*WRITE: TEXT-159 UNDER TEXT-158, "Verzugsstage
*110 ZVVERZUG NO-ZERO.
ENDIF.
*----
-
Zeile 11 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '10'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT adrs-line9 IS INITIAL
OR NOT asums IS INITIAL.
WRITE:
/01 sy-vline,
02 adrs-line9(35), "Adressausgabe
39 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."10. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 68 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
70 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 132 sy-vline.
*WRITE: TEXT-160 UNDER TEXT-159, "letzte Zahlperiode
*110 ZVPER NO-ZERO.
ENDIF.
*----
-
Zeile 12 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '11'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
WRITE:
/01 sy-vline,
39 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."11. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 68 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
70 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 132 sy-vline.
ENDIF.
*----
-
Zeile 13 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '12'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
WRITE:
/01 sy-vline,
39 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."12. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 68 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
70 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 132 sy-vline.
ENDIF.
*
Block 2
*
*SKIP.
WRITE: /01 sy-vline, 02 sy-uline(37), 39 sy-vline,
40 sy-uline(108), 132 sy-vline.
*----
-
Zeile 1 -
-
"Überschriften
SUMMARY.
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
WRITE: /01 sy-vline,
02 text-115 INTENSIFIED, "Umsatzdaten
39 sy-vline,
40 text-127 INTENSIFIED, "Zahlungsdaten
132 sy-vline.
*DETAIL.
FORMAT COLOR COL_BACKGROUND INTENSIFIED OFF.
WRITE: /01 sy-vline, 02 sy-uline(37), 39 sy-vline,
40 sy-uline(108), 132 sy-vline.
*----
-
Zeile 2 -
-
WRITE: /01 sy-vline,
text-122 UNDER text-115 COLOR COL_HEADING INVERSE,
22 c-kumum CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen,
39 sy-vline.
WRITE: text-157 UNDER text-127 COLOR COL_HEADING INVERSE,
60 knb1-zterm,
132 sy-vline.
*----
-
Zeile 3 -
-
WRITE: /01 sy-vline,
text-123 UNDER text-122 COLOR COL_HEADING INVERSE,
22 c-babzg CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen,
39 sy-vline.
WRITE: text-162 UNDER text-157 COLOR COL_HEADING INVERSE,
60 knb1-xverr,
132 sy-vline.
*----
-
Zeile 4 -
-
WRITE: /01 sy-vline,
text-124 UNDER text-123 COLOR COL_HEADING INVERSE,
22 c-uabzg CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen,
39 sy-vline.
WRITE: text-158 UNDER text-162 COLOR COL_HEADING INVERSE.
CASE c-zvtyp.
WHEN 'S'.
WRITE 60 text-155. "Skontozahler
WHEN 'N'.
WRITE 60 text-156. "Nettozahler
WHEN OTHERS.
ENDCASE.
WRITE: 132 sy-vline.
*----
-
Zeile 5 -
-
WRITE: /01 sy-vline,
text-125 UNDER text-124 COLOR COL_HEADING INVERSE,
22 c-kzins CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen,
39 sy-vline.
WRITE: text-159 UNDER text-158 COLOR COL_HEADING INVERSE,
60 c-zvverzug NO-ZERO.
WRITE: 132 sy-vline.
*----
-
Zeile 6 -
-
WRITE: /01 sy-vline,
text-126 UNDER text-125 COLOR COL_HEADING INVERSE,
22 c-kumag CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen,
39 sy-vline.
WRITE: text-160 UNDER text-159 COLOR COL_HEADING INVERSE,
60 c-zvper NO-ZERO.
WRITE: 132 sy-vline.
*
Block 3
*
*SKIP.
WRITE: /01 sy-vline, 02 sy-uline(37), 39 sy-vline,
40 sy-uline(108), 132 sy-vline.
*----
-
Zeile 1 -
-
"Überschriften
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
WRITE: /01 sy-vline,
02 text-114 INTENSIFIED, "Warenkredversicherung
39 sy-vline,
33 TEXT-128 INTENSIFIED, "Limits
40 text-129 INTENSIFIED. "Mahndaten
WRITE: 132 sy-vline.
FORMAT COLOR COL_BACKGROUND INTENSIFIED OFF.
WRITE: /01 sy-vline, 02 sy-uline(37), 39 sy-vline,
40 sy-uline(108), 132 sy-vline.
*----
-
Zeile 2 -
-
"Überschriften
DETAIL.
WRITE: /01 sy-vline,
text-130 UNDER text-114 COLOR COL_HEADING INVERSE.
WRITE: 22 knb1-vrsnr, " TO VARTXT, "Vertragsnummer
39 sy-vline.
*WRITE: VARTXT UNDER VARTXT.
TEXT-144 UNDER TEXT-128, "Gesamtkreditlimit
*53(10) KNKA-KLIMG CURRENCY T001-WAERS NO-ZERO
ROUND FAKTOR DECIMALS STELLEN.
WRITE: text-136 UNDER text-129 COLOR COL_HEADING INVERSE.
WRITE: 56 txt_1. CLEAR txt_1.
WRITE: 132 sy-vline.
*----
-
Zeile 3 -
-
"Überschriften
DETAIL.
WRITE: /01 sy-vline,
text-131 UNDER text-130 COLOR COL_HEADING INVERSE.
WRITE: 22 knb1-vrbkz, " TO vARTXT, "Institutsnummer
39 sy-vline.
*WRITE: VARTXT UNDER VARTXT.
TEXT-145 UNDER TEXT-144, "Datum letzte Auskunft
*54 KNKA-DLAUS DD/MM/YY NO-ZERO.
WRITE: text-137 UNDER text-136 COLOR COL_HEADING INVERSE.
WRITE: txt_2 UNDER txt_1. CLEAR txt_2.
WRITE: 132 sy-vline.
*----
-
Zeile 4 -
-
"Überschriften
WRITE: /01 sy-vline,
text-132 UNDER text-131 COLOR COL_HEADING INVERSE.
WRITE: 22(16) knb1-vlibb CURRENCY t001-waers "Versicherungssumme
NO-ZERO ROUND faktor DECIMALS stellen,
39 sy-vline.
CONDENSE VARTXT. WRITE VARTXT.
*WRITE: TEXT-146 UNDER TEXT-145, "Kreditkontrollbereich
*58 KREDK-KKBER NO-ZERO.
WRITE: text-138 UNDER text-137 COLOR COL_HEADING INVERSE.
WRITE: txt_3 UNDER txt_2. CLEAR txt_3.
WRITE: 132 sy-vline.
*----
-
Zeile 5 -
-
WRITE: /01 sy-vline,
text-133 UNDER text-132 COLOR COL_HEADING INVERSE.
WRITE: 22 knb1-verdt DD/MM/YY NO-ZERO, " VARTXT DD/MM/YY NO-ZERO.
39 sy-vline.
*WRITE: VARTXT UNDER VARTXT.
TEXT-147 UNDER TEXT-146. "Limit Kredkontrollbe
*WRITE:
*53(10) KREDK-KLIMK CURRENCY T001-WAERS NO-ZERO
ROUND FAKTOR DECIMALS STELLEN.
WRITE: text-139 UNDER text-138 COLOR COL_HEADING INVERSE.
WRITE: txt_4 UNDER txt_3. CLEAR txt_4.
WRITE: 132 sy-vline.
*----
-
Zeile 6 -
-
WRITE: /01 sy-vline,
text-134 UNDER text-133 COLOR COL_HEADING INVERSE.
WRITE: 22 knb1-vrszl NO-ZERO, " TO VARTXT NO-ZERO. "Zielmonate
39 sy-vline.
CONDENSE VARTXT. WRITE VARTXT.
*WRITE: TEXT-148 UNDER TEXT-147, "Datum Kredlimüberschr
*54 KREDK-UEDAT DD/MM/YY NO-ZERO.
WRITE: text-140 UNDER text-139 COLOR COL_HEADING INVERSE.
WRITE: txt_5 UNDER txt_4. CLEAR txt_5.
WRITE: 132 sy-vline.
*----
-
Zeile 7 -
-
WRITE: /01 sy-vline,
text-135 UNDER text-134 COLOR COL_HEADING INVERSE.
WRITE: 22 knb1-vrspr NO-ZERO, "TO VARTXT NO-ZERO. "Selbstbeteiligung
39 sy-vline.
CONDENSE VARTXT. WRITE VARTXT.
*WRITE: TEXT-153 UNDER TEXT-148, "Limit überschrit. um
*53(10) C-KREUEB CURRENCY T001-WAERS NO-ZERO
ROUND FAKTOR DECIMALS STELLEN.
WRITE: text-141 UNDER text-140 COLOR COL_HEADING INVERSE.
WRITE: txt_6 UNDER txt_5. CLEAR txt_6.
WRITE: 132 sy-vline.
*----
-
Zeile 8 -
-
*WRITE:
/ TEXT-154 UNDER TEXT-153. "Kreditausschöfung
**3(10) KREDK-SAUFT CURRENCY T001-WAERS NO-ZERO "
ROUND FAKTOR DECIMALS STELLEN.
*56(04) C-RGOBLI, '%'. "Relative Kreditauss
WRITE: /01 sy-vline,
39 sy-vline,
text-142 UNDER text-141 COLOR COL_HEADING INVERSE.
WRITE: txt_7 UNDER txt_6. CLEAR txt_7.
WRITE: 132 sy-vline.
*----
-
Zeile 9 -
-
*WRITE:
/ TEXT-151 UNDER TEXT-150, "Forderungswerte
**3(10) KREDK-SKFOR CURRENCY T001-WAERS NO-ZERO
ROUND FAKTOR DECIMALS STELLEN.
/ TEXT-150 UNDER TEXT-154. "Summe Auftragswerte
*53(10) KREDK-SAUFT CURRENCY T001-WAERS NO-ZERO "
ROUND FAKTOR DECIMALS STELLEN."
WRITE: /01 sy-vline,
39 sy-vline,
text-143 UNDER text-142 COLOR COL_HEADING INVERSE.
WRITE: txt_8 UNDER txt_7. CLEAR txt_8.
WRITE: 132 sy-vline.
ELSE.
IF knb1-bukrs IS INITIAL.
Konzerndaten
<<<<<<<<<<<< Block 1>>>>>>>>>>>>>>>
*----
-
Zeile 1 -
-
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
WRITE: /01 sy-vline, "Anschrift
02 text-113 INTENSIFIED, "Anschrift
39 sy-vline,
40 text-116 INTENSIFIED, "Obligo
90 sy-vline,
91 text-115 INTENSIFIED, "Umsatzdaten
132 sy-vline.
WRITE: /01 sy-vline, 02 sy-uline(37), 39 sy-vline,
40 sy-uline(50), 90 sy-vline, 91 sy-uline(41), 132 sy-vline.
99 TEXT-127 INTENSIFIED. "Zahlungsdaten
*----
-
ZEILE 2 -
-
FORMAT COLOR COL_BACKGROUND INTENSIFIED OFF.
DETAIL.
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '1'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
WRITE:
/01 sy-vline,
02 adrs-line0(35), "Adressausgabe
39 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."1. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 68 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
70 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 90 sy-vline,
91 text-122 COLOR COL_HEADING INVERSE, "Jahresumsatz
110 c-kumum CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 132 sy-vline.
*----
-
Zeile 3 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '2'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT adrs-line1 IS INITIAL
OR NOT asums IS INITIAL
OR NOT c-babzg IS INITIAL.
WRITE:
/01 sy-vline,
02 adrs-line1(35), "Adressausgabe
39 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."2. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 68 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
70 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 90 sy-vline,
91 text-123 COLOR COL_HEADING INVERSE, "Jahresumsatz
110 c-babzg CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 132 sy-vline.
ENDIF.
*----
-
Zeile 4 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '3'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT adrs-line2 IS INITIAL
OR NOT asums IS INITIAL
OR NOT c-uabzg IS INITIAL.
WRITE:
/01 sy-vline,
02 adrs-line2(35), "Adressausgabe
39 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."3. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 68 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
70 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 90 sy-vline,
91 text-124 COLOR COL_HEADING INVERSE, "Jahresumsatz
110 c-uabzg CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 132 sy-vline.
ENDIF.
*----
-
Zeile 5 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '4'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT adrs-line3 IS INITIAL
OR NOT asums IS INITIAL
OR NOT c-kzins IS INITIAL.
WRITE:
/01 sy-vline,
02 adrs-line3(35), "Adressausgabe
39 sy-vline, "Adressausgabe
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."4. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 68 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
70 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 90 sy-vline,
91 text-125 COLOR COL_HEADING INVERSE, "Jahresumsatz
110 c-kzins CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 132 sy-vline.
ENDIF.
*----
-
Zeile 6 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '5'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT adrs-line4 IS INITIAL
OR NOT asums IS INITIAL
OR NOT c-kumag IS INITIAL.
WRITE:
/01 sy-vline,
02 adrs-line4(35), "Adressausgabe
39 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."5. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 68 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
70 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 90 sy-vline,
91 text-126 COLOR COL_HEADING INVERSE, "Jahresumsatz
110 c-kumag CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 132 sy-vline.
ENDIF.
*----
-
Zeile 7 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '6'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT adrs-line5 IS INITIAL
OR NOT asums IS INITIAL.
WRITE:
/01 sy-vline,
02 adrs-line5(35), "Adressausgabe
39 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."6. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 68 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
70 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 90 sy-vline.
WRITE: 132 sy-vline.
ENDIF.
*----
-
Zeile 8 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '7'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT adrs-line6 IS INITIAL
OR NOT asums IS INITIAL.
WRITE:
/01 sy-vline,
02 adrs-line6(35), "Adressausgabe
39 sy-vline, "Adressausgabe
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."7. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 68 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
70 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 90 sy-vline.
WRITE: 132 sy-vline.
ENDIF.
*----
-
Zeile 9 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '8'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT adrs-line7 IS INITIAL
OR NOT asums IS INITIAL.
WRITE:
/01 sy-vline,
02 adrs-line7(35), "Adressausgabe
39 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."8. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 68 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
70 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 90 sy-vline.
WRITE: 132 sy-vline.
ENDIF.
*----
-
Zeile 10 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '9'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT adrs-line8 IS INITIAL
OR NOT asums IS INITIAL.
WRITE:
/01 sy-vline,
02 adrs-line8(35), "Adressausgabe
39 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."9. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 68 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
70 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 90 sy-vline.
WRITE: 132 sy-vline.
ENDIF.
*----
-
Zeile 11 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '10'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT adrs-line9 IS INITIAL
OR NOT asums IS INITIAL.
WRITE:
/01 sy-vline,
02 adrs-line9(35), "Adressausgabe
39 sy-vline,
shbbez UNDER text-116. "10. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 68 text-161.
ENDIF.
WRITE:
70 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 90 sy-vline.
WRITE: 132 sy-vline.
ENDIF.
*----
-
Zeile 12 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '11'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
WRITE:
/01 sy-vline,
39 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."11. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 68 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
70 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 90 sy-vline.
WRITE: 132 sy-vline.
ENDIF.
*----
-
Zeile 13 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '12'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
WRITE:
/01 sy-vline,
39 sy-vline,
shbbez UNDER text-116. "12. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 68 text-161.
ENDIF.
WRITE:
70 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen.
WRITE: 90 sy-vline.
WRITE: 132 sy-vline.
ENDIF.
ELSE.
Buchungskreisdaten
<<<<<<<<<<<< Block 1>>>>>>>>>>>>>>>
*----
-
Zeile 1 -
-
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
WRITE: /01 sy-vline. "Anschrift
WRITE: 02 text-116 INTENSIFIED, "Anschrift
51 sy-vline,
52 text-115 INTENSIFIED, "Obligo
91 sy-vline,
92 text-127 INTENSIFIED, "Obligo
132 sy-vline.
WRITE: /01 sy-vline, 02 sy-uline(50), 51 sy-vline,
52 sy-uline(39), 91 sy-vline, 92 sy-uline(40),
132 sy-vline.
*----
-
ZEILE 2 -
-
FORMAT COLOR COL_BACKGROUND INTENSIFIED OFF.
DETAIL.
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '1'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT asums IS INITIAL
OR NOT c-kumum IS INITIAL
OR NOT knb1-zterm IS INITIAL.
WRITE:
/01 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."1. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 31 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
33 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen,
51 sy-vline,
52 text-122 COLOR COL_HEADING INVERSE, "Jahresumsatz
72 c-kumum CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen,
91 sy-vline,
text-157 UNDER text-127 COLOR COL_HEADING INVERSE,
112 knb1-zterm.
WRITE: 132 sy-vline.
*WRITE: TEXT-122 UNDER TEXT-115, "Jahresumsatz
*110 C-KUMUM CURRENCY T001-WAERS NO-ZERO
ROUND FAKTOR DECIMALS STELLEN.
*WRITE: TEXT-157 UNDER TEXT-127, "Zahlungsbedingung
KNB1-ZTERM.
ENDIF.
*----
-
Zeile 3 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '2'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT asums IS INITIAL
OR NOT c-babzg IS INITIAL
OR NOT knb1-xverr IS INITIAL.
WRITE:
/01 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."1. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 31 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
33 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen,
51 sy-vline,
52 text-123 COLOR COL_HEADING INVERSE, "Jahresumsatz
72 c-babzg CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen,
91 sy-vline,
text-162 UNDER text-127 COLOR COL_HEADING INVERSE,
112 knb1-xverr.
ENDIF.
*----
-
Zeile 4 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '3'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT asums IS INITIAL
OR NOT c-uabzg IS INITIAL
OR NOT c-zvtyp IS INITIAL.
WRITE:
/01 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."1. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 31 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
33 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen,
51 sy-vline,
52 text-124 COLOR COL_HEADING INVERSE, "Jahresumsatz
72 c-uabzg CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen,
91 sy-vline,
text-158 UNDER text-127 COLOR COL_HEADING INVERSE.
CASE c-zvtyp.
WHEN 'S'.
WRITE 112 text-155. "Skontozahler
WHEN 'N'.
WRITE 112 text-156. "Nettozahler
WHEN OTHERS.
ENDCASE.
ENDIF.
*----
-
Zeile 5 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '4'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT asums IS INITIAL
OR NOT c-kzins IS INITIAL
OR NOT c-zvverzug IS INITIAL.
WRITE:
/01 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."1. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 31 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
33 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen,
51 sy-vline,
52 text-125 COLOR COL_HEADING INVERSE, "Jahresumsatz
72 c-kzins CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen,
91 sy-vline,
text-159 UNDER text-127 COLOR COL_HEADING INVERSE,
112 c-zvverzug.
ENDIF.
*----
-
Zeile 6 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '5'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT asums IS INITIAL
OR NOT c-kumag IS INITIAL
OR NOT c-zvper IS INITIAL.
WRITE:
/01 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."1. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 31 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
33 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen,
51 sy-vline,
52 text-126 COLOR COL_HEADING INVERSE, "Jahresumsatz
72 c-kumag CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen,
91 sy-vline,
text-160 UNDER text-127 COLOR COL_HEADING INVERSE,
112 c-zvper NO-ZERO.
ENDIF.
*----
-
Zeile 7 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '6'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT asums IS INITIAL.
WRITE:
/01 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."1. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 31 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
33 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen,
51 sy-vline,
91 sy-vline.
WRITE: 132 sy-vline.
ENDIF.
*----
-
Zeile 8 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '7'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT asums IS INITIAL.
WRITE:
/01 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."1. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 31 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
33 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen,
51 sy-vline,
91 sy-vline.
WRITE: 132 sy-vline.
ENDIF.
*----
-
Zeile 9 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '8'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT asums IS INITIAL.
WRITE:
/01 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."1. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 31 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
33 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen,
51 sy-vline,
91 sy-vline.
WRITE: 132 sy-vline.
ENDIF.
*----
-
Zeile 10 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '9'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT asums IS INITIAL.
WRITE:
/01 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."1. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 31 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
33 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen,
51 sy-vline,
91 sy-vline.
WRITE: 132 sy-vline.
ENDIF.
*----
-
Zeile 11 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '10'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
ENDIF.
IF NOT asums IS INITIAL.
WRITE:
/01 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."1. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 31 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
33 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen,
51 sy-vline,
91 sy-vline.
WRITE: 132 sy-vline.
ENDIF.
*----
-
Zeile 12 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '11'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
WRITE:
/01 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."1. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 31 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
33 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen,
51 sy-vline,
91 sy-vline.
WRITE: 132 sy-vline.
ENDIF.
*----
-
Zeile 13 -
-
CLEAR shbbez.
CLEAR asums.
READ TABLE aobligo INDEX '12'.
IF sy-subrc = 0.
shbbez = aobligo-ltext.
asums = aobligo-oblig.
WRITE:
/01 sy-vline,
shbbez UNDER text-116 COLOR COL_HEADING INVERSE."1. Obligo
IF NOT shbbez IS INITIAL.
WRITE: 31 text-161 COLOR COL_HEADING INVERSE.
ENDIF.
WRITE:
33 asums CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen,
51 sy-vline,
91 sy-vline.
WRITE: 132 sy-vline.
ENDIF.
*
Block 3
*
*SKIP.
WRITE: /01 sy-vline, 02 sy-uline(37), 39 sy-vline,
40 sy-uline(108), 132 sy-vline.
*----
-
Zeile 1 -
-
"Überschriften
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
WRITE: /01 sy-vline,
02 text-114 INTENSIFIED, "Warenkredversicherung
39 sy-vline,
33 TEXT-128 INTENSIFIED, "Limits
40 text-129 INTENSIFIED. "Mahndaten
WRITE: 132 sy-vline.
FORMAT COLOR COL_BACKGROUND INTENSIFIED OFF.
WRITE: /01 sy-vline, 02 sy-uline(37), 39 sy-vline,
40 sy-uline(108), 132 sy-vline.
*----
-
Zeile 2 -
-
"Überschriften
DETAIL.
WRITE: /01 sy-vline,
text-130 UNDER text-114 COLOR COL_HEADING INVERSE.
WRITE: 22 knb1-vrsnr, " TO VARTXT, "Vertragsnummer
39 sy-vline.
*WRITE: VARTXT UNDER VARTXT.
TEXT-144 UNDER TEXT-128, "Gesamtkreditlimit
*53(10) KNKA-KLIMG CURRENCY T001-WAERS NO-ZERO
ROUND FAKTOR DECIMALS STELLEN.
WRITE: text-136 UNDER text-129 COLOR COL_HEADING INVERSE.
WRITE: 56 txt_1. CLEAR txt_1.
WRITE: 132 sy-vline.
*----
-
Zeile 3 -
-
"Überschriften
DETAIL.
WRITE: /01 sy-vline,
text-131 UNDER text-130 COLOR COL_HEADING INVERSE.
WRITE: 22 knb1-vrbkz, " TO vARTXT, "Institutsnummer
39 sy-vline.
*WRITE: VARTXT UNDER VARTXT.
TEXT-145 UNDER TEXT-144, "Datum letzte Auskunft
*54 KNKA-DLAUS DD/MM/YY NO-ZERO.
WRITE: text-137 UNDER text-136 COLOR COL_HEADING INVERSE.
WRITE: txt_2 UNDER txt_1. CLEAR txt_2.
WRITE: 132 sy-vline.
*----
-
Zeile 4 -
-
"Überschriften
WRITE: /01 sy-vline,
text-132 UNDER text-131 COLOR COL_HEADING INVERSE.
WRITE: 22(16) knb1-vlibb CURRENCY t001-waers "Versicherungssumme
NO-ZERO ROUND faktor DECIMALS stellen,
39 sy-vline.
CONDENSE VARTXT. WRITE VARTXT.
*WRITE: TEXT-146 UNDER TEXT-145, "Kreditkontrollbereich
*58 KREDK-KKBER NO-ZERO.
WRITE: text-138 UNDER text-137 COLOR COL_HEADING INVERSE.
WRITE: txt_3 UNDER txt_2. CLEAR txt_3.
WRITE: 132 sy-vline.
*----
-
Zeile 5 -
-
WRITE: /01 sy-vline,
text-133 UNDER text-132 COLOR COL_HEADING INVERSE.
WRITE: 22 knb1-verdt DD/MM/YY NO-ZERO, " VARTXT DD/MM/YY NO-ZERO.
39 sy-vline.
*WRITE: VARTXT UNDER VARTXT.
TEXT-147 UNDER TEXT-146. "Limit Kredkontrollbe
*WRITE:
*53(10) KREDK-KLIMK CURRENCY T001-WAERS NO-ZERO
ROUND FAKTOR DECIMALS STELLEN.
WRITE: text-139 UNDER text-138 COLOR COL_HEADING INVERSE.
WRITE: txt_4 UNDER txt_3. CLEAR txt_4.
WRITE: 132 sy-vline.
*----
-
Zeile 6 -
-
WRITE: /01 sy-vline,
text-134 UNDER text-133 COLOR COL_HEADING INVERSE.
WRITE: 22 knb1-vrszl NO-ZERO, " TO VARTXT NO-ZERO. "Zielmonate
39 sy-vline.
CONDENSE VARTXT. WRITE VARTXT.
*WRITE: TEXT-148 UNDER TEXT-147, "Datum Kredlimüberschr
*54 KREDK-UEDAT DD/MM/YY NO-ZERO.
WRITE: text-140 UNDER text-139 COLOR COL_HEADING INVERSE.
WRITE: txt_5 UNDER txt_4. CLEAR txt_5.
WRITE: 132 sy-vline.
*----
-
Zeile 7 -
-
WRITE: /01 sy-vline,
text-135 UNDER text-134 COLOR COL_HEADING INVERSE.
WRITE: 22 knb1-vrspr NO-ZERO, "TO VARTXT NO-ZERO. "Selbstbeteiligung
39 sy-vline.
CONDENSE VARTXT. WRITE VARTXT.
*WRITE: TEXT-153 UNDER TEXT-148, "Limit überschrit. um
*53(10) C-KREUEB CURRENCY T001-WAERS NO-ZERO
ROUND FAKTOR DECIMALS STELLEN.
WRITE: text-141 UNDER text-140 COLOR COL_HEADING INVERSE.
WRITE: txt_6 UNDER txt_5. CLEAR txt_6.
WRITE: 132 sy-vline.
*----
-
Zeile 8 -
-
*WRITE:
/ TEXT-154 UNDER TEXT-153. "Kreditausschöfung
**3(10) KREDK-SAUFT CURRENCY T001-WAERS NO-ZERO "
ROUND FAKTOR DECIMALS STELLEN.
*56(04) C-RGOBLI, '%'. "Relative Kreditauss
WRITE: /01 sy-vline,
39 sy-vline,
text-142 UNDER text-141 COLOR COL_HEADING INVERSE.
WRITE: txt_7 UNDER txt_6. CLEAR txt_7.
WRITE: 132 sy-vline.
*----
-
Zeile 9 -
-
*WRITE:
/ TEXT-151 UNDER TEXT-150, "Forderungswerte
**3(10) KREDK-SKFOR CURRENCY T001-WAERS NO-ZERO
ROUND FAKTOR DECIMALS STELLEN.
/ TEXT-150 UNDER TEXT-154. "Summe Auftragswerte
*53(10) KREDK-SAUFT CURRENCY T001-WAERS NO-ZERO "
ROUND FAKTOR DECIMALS STELLEN."
WRITE: /01 sy-vline,
39 sy-vline,
text-143 UNDER text-142 COLOR COL_HEADING INVERSE.
WRITE: txt_8 UNDER txt_7. CLEAR txt_8.
WRITE: 132 sy-vline.
ENDIF.
ENDIF.
SKIP.
WRITE: /01 sy-vline, 02 sy-uline(130), 132 sy-vline.
IF rastverd = '2'.
SKIP 1.
ENDIF.
ULINE.
NEW-PAGE.
ENDFORM. "ANSCHRIFT
*----
*
FORM RASTER_AUSGABE *
*----
*
........ *
*----
*
FORM raster_ausgabe.
Bei Verdichtung der Geschaeftsbereiche nur das Summenraster ausgeben*
IF rastverd = '1'. " AND VERDICHT > 0.
CHECK rtab-sortk = '1'.
ENDIF.
Das Summen-Raster wird nur ausgegeben, wenn mehr als ein Geschaefts-*
bereich vorhanden ist. ---------------------------------------------*
IF rtab-sortk = '1' AND rastverd NE '1'.
CHECK gbzaehl > 1.
ENDIF.
IF NOT konzvers IS INITIAL
AND NOT knb1-bukrs IS INITIAL.
CHECK xbukrdat NE '2'.
ENDIF.
IF rtab-sortk NE '2'.
Bei der ersten Rasterart , Anzahlungen usw. ausgeben ---------*
IF rasteruu = rart.
IF gb-gsber NE '**'.
OR GB-GSBER NE '***'.
gbzaehl = gbzaehl + 1.
ENDIF.
IF acc_mode IS INITIAL.
ULINE.
RESERVE 5 LINES.
IF gb-gsber NE '**'.
FORMAT COLOR COL_TOTAL INTENSIFIED OFF.
ELSE.
FORMAT COLOR COL_TOTAL INTENSIFIED.
ENDIF.
top-flag = '2'.
IF sortart = '1' AND konzvers IS INITIAL.
WRITE: 01 sy-vline,
02(04) gb-gsber, " Geschaeftsbereich
(11) RTAB-KUMUM CURRENCY T001-WAERS " Umsatz
ROUND FAKTOR DECIMALS STELLEN NO-ZERO,
14(11) rtab-anzah CURRENCY t001-waers " Anzahlungen
ROUND faktor DECIMALS stellen,
26(12) rtab-opsum CURRENCY t001-waers " Offene Posten
ROUND faktor DECIMALS stellen.
ELSE.
WRITE: 01 sy-vline,
02(04) gb-gsber, " Geschaeftsbereich
08(05) gb-waers, " Waehrung
14(11) rtab-anzah CURRENCY gb-waers " Anzahlungen
ROUND faktor DECIMALS stellen,
26(12) rtab-opsum CURRENCY gb-waers " Offene Posten Summe
ROUND faktor DECIMALS stellen.
ENDIF.
ENDIF.
ELSE.
IF acc_mode IS INITIAL.
WRITE: 01 sy-vline.
ENDIF.
ENDIF.
IF acc_mode IS INITIAL.
CASE rasteruu.
WHEN '1'. WRITE: 39(3) text-019, 42 sy-vline. " Net-Fae
WHEN '2'. WRITE: 39(3) text-020, 42 sy-vline. " Skt-Fae
WHEN '3'. WRITE: 39(3) text-021, 42 sy-vline. " Zhl-Ein
WHEN '4'. WRITE: 39(3) text-024, 42 sy-vline. " Alt-Fae
WHEN '5'. WRITE: 39(3) text-022, 42 sy-vline. " Ueb-Fae
ENDCASE.
IF sortart = '1' AND konzvers IS INITIAL.
WRITE: " Betraege in HW ausgeben
(12) rtab-rast1 CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen, 57 sy-vline,
(12) rtab-rast2 CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen, 72 sy-vline,
(12) rtab-rast3 CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen, 87 sy-vline,
(12) rtab-rast4 CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen, 102 sy-vline,
(12) rtab-rast5 CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen, 117 sy-vline,
(12) rtab-rast6 CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen, 132 sy-vline.
ELSE.
WRITE: " Betraege in FW ausgeben
(12) rtab-rast1 CURRENCY gb-waers NO-ZERO
ROUND faktor DECIMALS stellen, 57 sy-vline,
(12) rtab-rast2 CURRENCY gb-waers NO-ZERO
ROUND faktor DECIMALS stellen, 72 sy-vline,
(12) rtab-rast3 CURRENCY gb-waers NO-ZERO
ROUND faktor DECIMALS stellen, 87 sy-vline,
(12) rtab-rast4 CURRENCY gb-waers NO-ZERO
ROUND faktor DECIMALS stellen, 102 sy-vline,
(12) rtab-rast5 CURRENCY gb-waers NO-ZERO
ROUND faktor DECIMALS stellen, 117 sy-vline,
(12) rtab-rast6 CURRENCY gb-waers NO-ZERO
ROUND faktor DECIMALS stellen, 132 sy-vline.
ENDIF.
ENDIF.
ENDIF.
IF NOT acc_mode IS INITIAL.
IF rastverd = '0'.
CHECK rtab-sortk = '0'.
ENDIF.
CLEAR rtab_alv.
MOVE-CORRESPONDING rtab TO rtab_alv.
rtab_alv-kunnr = kna1-kunnr.
rtab_alv-land1 = kna1-land1.
rtab_alv-sortl = kna1-sortl.
IF rtab-waers IS INITIAL.
rtab_alv-waers = t001-waers.
ENDIF.
CASE rtab-raart.
WHEN 1.
rtab_alv-raart = 1.
WHEN 2.
rtab_alv-raart = 2.
WHEN 3.
rtab_alv-raart = 4.
WHEN 4.
rtab_alv-raart = 5.
WHEN 5.
rtab_alv-raart = 6.
ENDCASE.
IF konzvers IS INITIAL
AND NOT knb1-bukrs IS INITIAL.
rtab_alv-bukrs = knb1-bukrs.
ENDIF.
IF NOT rtab_alv-bukrs IS INITIAL.
rtab_alv-busab = knb1-busab.
ENDIF.
if ... is initial.
MOVE c-kumum TO rtab_alv-kumum.
endif.
MOVE gb-gsber TO rtab_alv-gsber.
IF NOT rtab_alv IS INITIAL.
APPEND rtab_alv.
ENDIF.
ENDIF.
ENDFORM. "RASTER_AUSGABE
*----
*
FORM SUM_BUSAB_BUKRS_TOTAL *
*----
*
........ *
*----
*
FORM sum_busab_bukrs_total.
IF rtab-sortk = '0'.
IF konzvers IS INITIAL
OR ( NOT konzvers IS INITIAL
AND NOT rtab-bukrs IS INITIAL ) .
*-- Summen pro Sachbearbeiter -
-
*
MOVE-CORRESPONDING rtab TO rbus.
MOVE: knb1-bukrs TO rbus-bukrs,
gb-gsber TO rbus-gsber,
gb-waers TO rbus-waers.
COLLECT rbus.
*-- Gesamtsumme ueber alle Geschaeftsbereiche pro Sachbearb. -
-
*
*-- ermitteln, aber nur bei SORTART = '1' -
-
*
IF SORTART = '1'.
MOVE: knb1-bukrs TO rbus-bukrs,
'**' TO rbus-gsber,
'1' TO rbus-sortk.
'1' TO RBUS-COUNT.
COLLECT rbus.
ENDIF.
*-- Summen pro Buchungskreis -
-
*
MOVE-CORRESPONDING rtab TO rbuk.
MOVE: knb1-bukrs TO rbuk-bukrs,
gb-gsber TO rbuk-gsber,
gb-waers TO rbuk-waers.
COLLECT rbuk.
*-- Gesamtsumme ueber alle Geschaeftsbereiche und Sachbearb. -
-
*
*-- ermitteln, aber nur bei SORTART = '1' -
-
*
IF SORTART = '1'.
MOVE: knb1-bukrs TO rbuk-bukrs,
'**' TO rbuk-gsber,
'1' TO rbuk-sortk.
'1' TO RBUK-COUNT.
COLLECT rbuk.
ENDIF.
ENDIF.
*-- Summen fuer Listenteil 2 ermitteln -
-
*
MOVE: knb1-bukrs TO rtab-bukrs,
gb-gsber TO rtab-gsber,
gb-waers TO rtab-waers.
COLLECT rtab.
*-- Gesamtsumme ueber alle Buchungs- und Geschaeftsbereiche -
-
*
*-- ermitteln, aber nur bei SORTART = '1' -
-
*
IF SORTART = '1'.
MOVE: '**' TO RTAB-BUKRS,
'**' TO RTAB-GSBER,
'1' TO RTAB-SORTK.
COLLECT RTAB.
ENDIF.
IF konzvers IS INITIAL
OR ( NOT konzvers IS INITIAL
AND rtab-bukrs IS INITIAL ) .
MOVE-CORRESPONDING rtab TO rsum.
IF sortart = '1' AND konzvers IS INITIAL.
MOVE: t001-waers TO rsum-waers.
ENDIF.
MOVE: '1' TO rsum-sortk.
COLLECT rsum.
ENDIF.
ENDIF.
IF rtab-sortk = '2'.
AND GB-GSBER = '***'.
*-- Gesamtumsatz ueber alle Geschaeftsbereiche pro Sachbearb. -
-
*
*-- ermitteln, aber nur bei SORTART = '1' -
-
*
IF sortart = '1'.
MOVE-CORRESPONDING rtab TO rbus.
MOVE: knb1-bukrs TO rbus-bukrs,
gb-gsber TO rbus-gsber,
gb-waers TO rbus-waers,
'2' TO rbus-sortk.
COLLECT rbus.
ENDIF.
*-- Gesamtumsatz ueber alle Geschaeftsbereiche und Sachbearb. -
-
*
*-- ermitteln, aber nur bei SORTART = '1' -
-
*
IF sortart = '1'.
MOVE-CORRESPONDING rtab TO rbuk.
MOVE: knb1-bukrs TO rbuk-bukrs,
gb-gsber TO rbuk-gsber,
gb-waers TO rbuk-waers,
'2' TO rbuk-sortk.
COLLECT rbuk.
ENDIF.
ENDIF.
ENDFORM. "SUM_BUSAB_BUKRS_TOTAL
*----
*
FORM EINZELPOSTEN_AUSGABE *
*----
*
........ *
*----
*
FORM einzelposten_ausgabe.
IF intens IS INITIAL.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
intens = 'X'.
ELSE.
FORMAT COLOR COL_NORMAL INTENSIFIED.
intens = ' '.
ENDIF.
DETAIL.
WRITE: 01 sy-vline,
02 knb1-bukrs, " Buchungskreis
gb-gsber, " Geschaeftsbereich
tage, " Ueberzugstage
21 bsid-umskz, " Umsatzkennzeichen
23 bsid-blart, " Belegart
24 BSID-ZUONR, " Zuordnungsnummer
26 bsid-belnr, " Belegnummer
bsid-buzei, " Belegzeile
(8) bsega-netdt, " Netto-Faelligkeit
(8) FAEDE-NETDT, " Netto-Faelligkeit
(8) bsid-zfbdt, " Zahlungsfristenbasis
(8) bsid-budat, " Buchungsdatum
(8) bsid-bldat, " Belegdatum
(8) BSID-CPUDT, " CPU-Datum
bsid-bschl, " Buchungsschluessel
bsid-zlsch, " Zahlungsschluessel
120 BKPF-USNAM. " Benutzer
82 bsid-manst NO-ZERO,
86 bsega-dmshb CURRENCY t001-waers, "Hauswaehrungsbetrag
ROUND FAKTOR DECIMALS STELLEN,
bsid-waers, "Waehrung
bsega-wrshb CURRENCY bsid-waers NO-ZERO, "Fremdwaehrungsbtr.
ROUND FAKTOR DECIMALS STELLEN.
SUMMARY.
132 sy-vline.
ENDFORM. "EINZELPOSTEN_AUSGABE
*----
*
FORM RASTER_AUSGABE_BUSAB *
*----
*
........ *
*----
*
FORM raster_ausgabe_busab.
IF rastverd < '2'.
DETAIL.
SORT rbus.
CLEAR gbzaehl.
CLEAR rastza.
LOOP AT rbus.
NEW-LINE.
Bei Verdichtung der Geschaeftsbereiche nur das Summenraster ausgeben*
IF rastverd = '1'. "AND VERDICHT > 0.
CHECK rbus-sortk NE '0'.
ENDIF.
Das Summen-Raster wird nur ausgegeben, wenn mehr als ein Geschaefts-*
bereich vorhanden ist. ---------------------------------------------*
IF rbus-sortk = '1' AND rastverd NE '1'.
CHECK gbzaehl GT 1.
ENDIF.
IF rbus-gsber NE '**'.
FORMAT COLOR COL_TOTAL INTENSIFIED OFF.
ELSE.
FORMAT COLOR COL_TOTAL INTENSIFIED.
ENDIF.
IF rbus-sortk NE '2'.
Bei der ersten Rasterart Anzahlungen usw. ausgeben ----------------*
rastza = 'X'.
IF rbus-raart = rart.
IF rbus-gsber NE '**'.
gbzaehl = gbzaehl + 1.
ENDIF.
RESERVE 5 LINES.
IF sortart = '1' AND konzvers IS INITIAL.
WRITE: /01 sy-vline,
02(04) rbus-gsber, " Geschaeftsbereich
(11) RBUS-KUMUM CURRENCY T001-WAERS " Umsatz
ROUND FAKTOR DECIMALS STELLEN NO-ZERO,
14(11) rbus-anzah CURRENCY t001-waers " Anzahlungen
ROUND faktor DECIMALS stellen,
26(12) rbus-opsum CURRENCY t001-waers " Offene Posten Summe
ROUND faktor DECIMALS stellen.
ELSE.
WRITE: /01 sy-vline,
02(04) rbus-gsber, " Geschaeftsbereich
08(05) rbus-waers, " Waehrung
14(11) rbus-anzah CURRENCY rbus-waers " Anzahlungen
ROUND faktor DECIMALS stellen,
26(12) rbus-opsum CURRENCY rbus-waers " Offene Posten Summe
ROUND faktor DECIMALS stellen.
ENDIF.
ELSE.
WRITE: /01 sy-vline.
ENDIF.
CASE rbus-raart.
WHEN '1'. WRITE: 39(3) text-019, 42 sy-vline. " Net-Fae
WHEN '2'. WRITE: 39(3) text-020, 42 sy-vline. " Skt-Fae
WHEN '3'. WRITE: 39(3) text-021, 42 sy-vline. " Zhl-Ein
WHEN '4'. WRITE: 39(3) text-024, 42 sy-vline. " Alt-Fae
WHEN '5'. WRITE: 39(3) text-022, 42 sy-vline. " Ueb-Fae
ENDCASE.
IF sortart = '1' AND konzvers IS INITIAL.
WRITE: " Ausgabe in HW
(12) rbus-rast1 CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen, 57 sy-vline,
(12) rbus-rast2 CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen, 72 sy-vline,
(12) rbus-rast3 CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen, 87 sy-vline,
(12) rbus-rast4 CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen, 102 sy-vline,
(12) rbus-rast5 CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen, 117 sy-vline,
(12) rbus-rast6 CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen, 132 sy-vline.
ELSE.
WRITE: " Ausgabe in FW
(12) rbus-rast1 CURRENCY rbus-waers NO-ZERO
ROUND faktor DECIMALS stellen, 57 sy-vline,
(12) rbus-rast2 CURRENCY rbus-waers NO-ZERO
ROUND faktor DECIMALS stellen, 72 sy-vline,
(12) rbus-rast3 CURRENCY rbus-waers NO-ZERO
ROUND faktor DECIMALS stellen, 87 sy-vline,
(12) rbus-rast4 CURRENCY rbus-waers NO-ZERO
ROUND faktor DECIMALS stellen, 102 sy-vline,
(12) rbus-rast5 CURRENCY rbus-waers NO-ZERO
ROUND faktor DECIMALS stellen, 117 sy-vline,
(12) rbus-rast6 CURRENCY rbus-waers NO-ZERO
ROUND faktor DECIMALS stellen, 132 sy-vline.
ENDIF.
ELSE.
IF rastza IS INITIAL.
FORMAT COLOR COL_NORMAL INTENSIFIED.
WRITE: /01 sy-vline, 02 text-167, 132 sy-vline.
WRITE: /01 sy-vline, 02 sy-uline(130), 132 sy-vline.
NEW-LINE.
IF rbus-gsber NE '**'.
FORMAT COLOR COL_TOTAL INTENSIFIED OFF.
ELSE.
FORMAT COLOR COL_TOTAL INTENSIFIED.
ENDIF.
ENDIF.
Ausgabe des Jahresumsatzes -----------------------------------------*
WRITE: 01 sy-vline.
WRITE: 02 rbus-gsber(4),
08 text-166,
87 rbus-kumum CURRENCY t001-waers.
WRITE: 132 sy-vline.
ENDIF.
AT END OF waers.
ULINE.
ENDAT.
ENDLOOP.
ENDIF.
ENDFORM. "RASTER_AUSGABE_BUSAB
*----
*
FORM RASTER_AUSGABE_BUKRB *
*----
*
........ *
*----
*
FORM raster_ausgabe_bukrb.
IF rastverd < '2'.
DETAIL.
SORT rbuk.
CLEAR gbzaehl.
CLEAR rastza.
LOOP AT rbuk.
NEW-LINE.
Bei Verdichtung der Geschaeftsbereiche nur das Summenraster ausgeben*
IF rastverd = '1'. "AND VERDICHT > 0.
CHECK rbuk-sortk NE '0' .
ENDIF.
Das Summen-Raster wird nur ausgegeben, wenn mehr als ein Geschaefts-*
bereich vorhanden ist. ---------------------------------------------*
IF rbuk-sortk = '1' AND rastverd NE '1'.
CHECK gbzaehl GT 1.
ENDIF.
IF rbuk-gsber NE '**'.
FORMAT COLOR COL_TOTAL INTENSIFIED OFF.
ELSE.
FORMAT COLOR COL_TOTAL INTENSIFIED.
ENDIF.
IF rbuk-sortk NE '2'.
Bei der ersten Rasterart Anzahlungen usw. ausgeben ---------*
rastza = 'X'.
IF rbuk-raart = rart.
IF rbuk-gsber NE '**'.
gbzaehl = gbzaehl + 1.
ENDIF.
RESERVE 5 LINES.
IF sortart = '1' AND konzvers IS INITIAL.
WRITE: /01 sy-vline,
02(04) rbuk-gsber, " Geschaeftsbereich
(11) RBUK-KUMUM CURRENCY T001-WAERS " Umsatz
ROUND FAKTOR DECIMALS STELLEN NO-ZERO,
14(11) rbuk-anzah CURRENCY t001-waers " Anzahlungen
ROUND faktor DECIMALS stellen,
26(12) rbuk-opsum CURRENCY t001-waers " Offene Posten Summe
ROUND faktor DECIMALS stellen.
ELSE.
WRITE: /01 sy-vline,
02(04) rbuk-gsber, " Geschaeftsbereich
08(05) rbuk-waers, " Waehrung
14(11) rbuk-anzah CURRENCY rbuk-waers " Anzahlungen
ROUND faktor DECIMALS stellen,
26(12) rbuk-opsum CURRENCY rbuk-waers " Offene Posten Summe
ROUND faktor DECIMALS stellen.
ENDIF.
ELSE.
WRITE: /01 sy-vline.
ENDIF.
CASE rbuk-raart.
WHEN '1'. WRITE: 39(3) text-019, 42 sy-vline. " Net-Fae
WHEN '2'. WRITE: 39(3) text-020, 42 sy-vline. " Skt-Fae
WHEN '3'. WRITE: 39(3) text-021, 42 sy-vline. " Zhl-Ein
WHEN '4'. WRITE: 39(3) text-024, 42 sy-vline. " Alt-Fae
WHEN '5'. WRITE: 39(3) text-022, 42 sy-vline. " Ueb-Fae
ENDCASE.
IF sortart = '1' AND konzvers IS INITIAL.
WRITE: " Ausgabe in HW
(12) rbuk-rast1 CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen, 57 sy-vline,
(12) rbuk-rast2 CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen, 72 sy-vline,
(12) rbuk-rast3 CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen, 87 sy-vline,
(12) rbuk-rast4 CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen, 102 sy-vline,
(12) rbuk-rast5 CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen, 117 sy-vline,
(12) rbuk-rast6 CURRENCY t001-waers NO-ZERO
ROUND faktor DECIMALS stellen, 132 sy-vline.
ELSE.
WRITE: " Ausgabe in FW
(12) rbuk-rast1 CURRENCY rbuk-waers NO-ZERO
ROUND faktor DECIMALS stellen, 57 sy-vline,
(12) rbuk-rast2 CURRENCY rbuk-waers NO-ZERO
ROUND faktor DECIMALS stellen, 72 sy-vline,
(12) rbuk-rast3 CURRENCY rbuk-waers NO-ZERO
ROUND faktor DECIMALS stellen, 87 sy-vline,
(12) rbuk-rast4 CURRENCY rbuk-waers NO-ZERO
ROUND faktor DECIMALS stellen, 102 sy-vline,
(12) rbuk-rast5 CURRENCY rbuk-waers NO-ZERO
ROUND faktor DECIMALS stellen, 117 sy-vline,
(12) rbuk-rast6 CURRENCY rbuk-waers NO-ZERO
ROUND faktor DECIMALS stellen, 132 sy-vline.
ENDIF.
ELSE.
IF rastza IS INITIAL.
FORMAT COLOR COL_NORMAL INTENSIFIED.
WRITE: /01 sy-vline, 02 text-167, 132 sy-vline.
WRITE: /01 sy-vline, 02 sy-uline(130), 132 sy-vline.
NEW-LINE.
IF rbuk-gsber NE '**'.
FORMAT COLOR COL_TOTAL INTENSIFIED OFF.
ELSE.
FORMAT COLOR COL_TOTAL INTENSIFIED.
ENDIF.
ENDIF.
Ausgabe des Jahresumsatzes -----------------------------------------*
WRITE: 01 sy-vline.
WRITE: 02 rbuk-gsber(4),
07 text-166,
87 rbuk-kumum CURRENCY t001-waers.
WRITE: 132 sy-vline.
ENDIF.
AT END OF waers.
ULINE.
ENDAT.
ENDLOOP.
ENDIF.
ENDFORM. "RASTER_AUSGABE_BUKRB
*----
*
FORM RASTER_AUSGABE_TOTAL *
*----
*
........ *
*----
*
FORM raster_ausgabe_total.
IF rastverd < '2'.
DETAIL.
MOVE TEXT-102 TO VARUEB1.
MOVE TEXT-106 TO VARUEB2.
REPLACE 'RP01' WITH rc01 INTO varueb2. "bis 0
REPLACE 'RP02' WITH rc02 INTO varueb2. "bis 20
REPLACE 'RP03' WITH rc03 INTO varueb2. "bis 40
REPLACE 'RP04' WITH rc04 INTO varueb2. "bis 80
REPLACE 'RP05' WITH rc05 INTO varueb2. "bis 100
REPLACE 'RP06' WITH rc06 INTO varueb1. "von 1
REPLACE 'RP07' WITH rc07 INTO varueb1. "von 21
REPLACE 'RP08' WITH rc08 INTO varueb1. "von 41
REPLACE 'RP09' WITH rc09 INTO varueb1. "von 81
REPLACE 'RP10' WITH rc10 INTO varueb1. "von 101
SORT rsum.
LOOP AT rsum.
NEW-LINE.
Bei Verdichtung der Geschaeftsbereiche nur das Summenraster ausgeben*
IF rastverd = '1' AND verdicht > 0.
CHECK rsum-sortk = '1'.
ENDIF.
FORMAT COLOR COL_TOTAL INTENSIFIED.
Bei der ersten Rasterart Umsatz, Anzahlungen usw. ausgeben ---------*
IF rsum-raart = rart.
RESERVE 5 LINES.
WRITE: 01 sy-vline,
02(02) '**', "
08(05) rsum-waers, " Waehrung
14(11) rsum-anzah CURRENCY rsum-waers " Anzahlungen
ROUND faktor DECIMALS stellen,
26(12) rsum-opsum CURRENCY rsum-waers " Offene Posten Summe
ROUND faktor DECIMALS stellen.
ENDIF.
ELSE.
WRITE: /01 sy-vline.
ENDIF.
CASE rsum-raart.
WHEN '1'. WRITE: 39(3) text-019, 42 sy-vline. " Net-Fae
WHEN '2'. WRITE: 39(3) text-020, 42 sy-vline. " Skt-Fae
WHEN '3'. WRITE: 39(3) text-021, 42 sy-vline. " Zhl-Ein
WHEN '4'. WRITE: 39(3) text-024, 42 sy-vline. " Alt-Fae
WHEN '5'. WRITE: 39(3) text-022, 42 sy-vline. " Ueb-Fae
ENDCASE.
WRITE:
(12) rsum-rast1 CURRENCY rsum-waers NO-ZERO
ROUND faktor DECIMALS stellen, 57 sy-vline,
(12) rsum-rast2 CURRENCY rsum-waers NO-ZERO
ROUND faktor DECIMALS stellen, 72 sy-vline,
(12) rsum-rast3 CURRENCY rsum-waers NO-ZERO
ROUND faktor DECIMALS stellen, 87 sy-vline,
(12) rsum-rast4 CURRENCY rsum-waers NO-ZERO
ROUND faktor DECIMALS stellen, 102 sy-vline,
(12) rsum-rast5 CURRENCY rsum-waers NO-ZERO
ROUND faktor DECIMALS stellen, 117 sy-vline,
(12) rsum-rast6 CURRENCY rsum-waers NO-ZERO
ROUND faktor DECIMALS stellen, 132 sy-vline.
ENDIF.
AT END OF waers.
ULINE.
ENDAT.
ENDLOOP.
ENDIF.
ENDFORM. "RASTER_AUSGABE_TOTAL
*----
*
FORM PAYMENT_FORECAST *
*----
*
........ *
*----
*
FORM payment_forecast.
Es werden die letzten 5 Zahlungseingänge berücksichtigt.
Summe des Zahlungsvolumens 'wenn Kunde auf Skontoabzug verzichtet'.
ADD knb4-agn01 THEN knb4-agn02 UNTIL knb4-agn05 GIVING zvnetto.
Summe des Zahlungsvolumens 'wenn Kunde mit maximalem Skontoabzug
zahlt'.
ADD knb4-ags01 THEN knb4-ags02 UNTIL knb4-ags05 GIVING zvskonto.
zvmalvz = 0.
IF zvskonto > zvnetto.
Kunde zahlt überwiegend mit Skontoabzug.
zvtyp = 'S'.
zvmalvz = knb4-ags01 * knb4-vzs01
+ knb4-ags02 * knb4-vzs02
+ knb4-ags03 * knb4-vzs03
+ knb4-ags04 * knb4-vzs04
+ knb4-ags05 * knb4-vzs05.
IF zvskonto <> 0.
zvverzug = zvmalvz / zvskonto.
ELSE.
zvverzug = 0.
ENDIF.
ELSE.
Kunde zahlt überwiegend netto.
zvtyp = 'N'.
zvmalvz = knb4-agn01 * knb4-vzn01
+ knb4-agn02 * knb4-vzn02
+ knb4-agn03 * knb4-vzn03
+ knb4-agn04 * knb4-vzn04
+ knb4-agn05 * knb4-vzn05.
IF zvnetto <> 0.
zvverzug = zvmalvz / zvnetto.
ELSE.
zvverzug = 0.
ENDIF.
ENDIF. "IF ZVSKONTO > ZVNETTO.
ENDFORM. "PAYMENT_FORECAST
*----
*
FORM MAHNDATEN *
*----
*
........ *
*----
*
FORM mahndaten.
CALL FUNCTION 'FOR_ALL_KNB5'
EXPORTING: xkunnr = kna1-kunnr
xbukrs = knb1-bukrs
TABLES xknb5 = xmahn
EXCEPTIONS key_incomplete = 1
not_authorized = 2
not_found = 3.
IF sy-subrc = 0.
LOOP AT xmahn.
IF sy-tabix LE 6.
WRITE xmahn-maber TO txt_1+index.
WRITE xmahn-mahna TO txt_2+index NO-ZERO.
WRITE xmahn-knrma TO txt_3+index NO-ZERO.
IF NOT xmahn-madat IS INITIAL.
WRITE xmahn-madat TO txt_4+index.
ENDIF.
WRITE xmahn-mahns TO txt_5+index NO-ZERO.
IF NOT xmahn-busab IS INITIAL.
SELECT SINGLE * FROM t001s INTO *t001s
WHERE bukrs EQ xmahn-bukrs
AND busab EQ xmahn-busab.
WRITE *t001s-sname(10) TO txt_6+index.
CLEAR *t001s.
ELSE.
WRITE t001s-sname(10) TO txt_6+index.
ENDIF.
WRITE xmahn-mansp TO txt_7+index NO-ZERO.
WRITE xmahn-gmvdt TO txt_8+index NO-ZERO.
index = index + 13.
ELSE.
EXIT.
ENDIF.
ENDLOOP.
ELSE.
CASE sy-subrc.
WHEN '1'.
MESSAGE e370 WITH knb1-bukrs kna1-kunnr.
WHEN '2'.
MESSAGE e371 WITH knb1-bukrs 'D' kna1-kunnr.
ENDCASE.
ENDIF.
REFRESH xmahn.
CLEAR xmahn.
index = 0.
ENDFORM. "MAHNDATEN
*----
*
FORM SHB_KENNZEICHEN *
*----
*
........ *
*----
*
FORM shb_kennzeichen.
CLEAR humkz1.
CLEAR humkz2.
CLEAR humkz3.
CLEAR humkz4.
CLEAR humkz5.
CLEAR humkz6.
CLEAR humkz7.
CLEAR humkz8.
CLEAR humkz9.
CLEAR humkz10.
IF NOT umsatzkz(1) IS INITIAL.
humkz1 = umsatzkz(1).
ENDIF.
IF NOT umsatzkz+1(1) IS INITIAL.
humkz2 = umsatzkz+1(1).
ENDIF.
IF NOT umsatzkz+2(1) IS INITIAL.
humkz3 = umsatzkz+2(1).
ENDIF.
IF NOT umsatzkz+3(1) IS INITIAL.
humkz4 = umsatzkz+3(1).
ENDIF.
IF NOT umsatzkz+4(1) IS INITIAL.
humkz5 = umsatzkz+4(1).
ENDIF.
IF NOT umsatzkz+5(1) IS INITIAL.
humkz6 = umsatzkz+5(1).
ENDIF.
IF NOT umsatzkz+6(1) IS INITIAL.
humkz7 = umsatzkz+6(1).
ENDIF.
IF NOT umsatzkz+7(1) IS INITIAL.
humkz8 = umsatzkz+7(1).
ENDIF.
IF NOT umsatzkz+8(1) IS INITIAL.
humkz9 = umsatzkz+8(1).
ENDIF.
IF NOT umsatzkz+9(1) IS INITIAL.
humkz10 = umsatzkz+9(1).
ENDIF.
ENDFORM. "SHB_KENNZEICHEN
*----
*
FORM SHBKZ_PRUEFEN *
*----
*
........ *
*----
*
FORM shbkz_pruefen.
CLEAR flag1.
SELECT * FROM tbsl
WHERE koart = 'D'.
IF NOT tbsl-xsonu IS INITIAL.
SELECT * FROM tbslt
WHERE bschl = tbsl-bschl
AND umskz = char1.
flag1 = 'X'.
ENDSELECT.
ENDIF.
ENDSELECT.
IF NOT flag1 IS INITIAL.
SELECT SINGLE * FROM t074u
WHERE koart = 'D'
AND umskz = char1.
IF NOT t074u-merkp IS INITIAL.
IF sy-batch IS INITIAL.
SET CURSOR FIELD 'UMSATZKZ'.
ENDIF.
MESSAGE w376 WITH char1 'D'.
ENDIF.
SELECT SINGLE * FROM t074t
WHERE spras = sy-langu
AND koart = 'D'
AND shbkz = char1.
IF sy-subrc = 0.
bezshb-shbkz = t074t-shbkz.
bezshb-ltext = t074t-ltext.
APPEND bezshb.
ELSE.
CLEAR flag1.
ENDIF.
ENDIF.
IF flag1 IS INITIAL.
IF sy-batch IS INITIAL.
SET CURSOR FIELD 'UMSATZKZ'.
ENDIF.
MESSAGE w375 WITH char1 'D'.
ENDIF.
ENDFORM. "SHBKZ_PRUEFEN
*----
*
FORM OBLIGOS *
*----
*
........ *
*----
*
FORM obligos.
CLEAR aobligo.
REFRESH aobligo.
IF NOT c-saldo IS INITIAL.
CLEAR aobligo.
MOVE '1' TO aobligo-obart.
MOVE c-saldo TO aobligo-oblig.
WRITE text-117 TO aobligo-ltext.
APPEND aobligo.
ENDIF.
IF NOT c-sums1 IS INITIAL.
CLEAR aobligo.
MOVE '2' TO aobligo-obart.
MOVE c-umkz1 TO aobligo-shbkz.
MOVE c-sums1 TO aobligo-oblig.
LOOP AT bezshb
WHERE shbkz = c-umkz1.
MOVE bezshb-ltext TO aobligo-ltext.
ENDLOOP.
APPEND aobligo.
ENDIF.
IF NOT c-sums2 IS INITIAL.
CLEAR aobligo.
MOVE '2' TO aobligo-obart.
MOVE c-umkz2 TO aobligo-shbkz.
MOVE c-sums2 TO aobligo-oblig.
LOOP AT bezshb
WHERE shbkz = c-umkz2.
MOVE bezshb-ltext TO aobligo-ltext.
ENDLOOP.
APPEND aobligo.
ENDIF.
IF NOT c-sums3 IS INITIAL.
CLEAR aobligo.
MOVE '2' TO aobligo-obart.
MOVE c-umkz3 TO aobligo-shbkz.
MOVE c-sums3 TO aobligo-oblig.
LOOP AT bezshb
WHERE shbkz = c-umkz3.
MOVE bezshb-ltext TO aobligo-ltext.
ENDLOOP.
APPEND aobligo.
ENDIF.
IF NOT c-sums4 IS INITIAL.
CLEAR aobligo.
MOVE '2' TO aobligo-obart.
MOVE c-umkz4 TO aobligo-shbkz.
MOVE c-sums4 TO aobligo-oblig.
LOOP AT bezshb
WHERE shbkz = c-umkz4.
MOVE bezshb-ltext TO aobligo-ltext.
ENDLOOP.
APPEND aobligo.
ENDIF.
IF NOT c-sums5 IS INITIAL.
CLEAR aobligo.
MOVE '2' TO aobligo-obart.
MOVE c-umkz5 TO aobligo-shbkz.
MOVE c-sums5 TO aobligo-oblig.
LOOP AT bezshb
WHERE shbkz = c-umkz5.
MOVE bezshb-ltext TO aobligo-ltext.
ENDLOOP.
APPEND aobligo.
ENDIF.
IF NOT c-sums6 IS INITIAL.
CLEAR aobligo.
MOVE '2' TO aobligo-obart.
MOVE c-umkz6 TO aobligo-shbkz.
MOVE c-sums6 TO aobligo-oblig.
LOOP AT bezshb
WHERE shbkz = c-umkz6.
MOVE bezshb-ltext TO aobligo-ltext.
ENDLOOP.
APPEND aobligo.
ENDIF.
IF NOT c-sums7 IS INITIAL.
CLEAR aobligo.
MOVE '2' TO aobligo-obart.
MOVE c-umkz7 TO aobligo-shbkz.
MOVE c-sums7 TO aobligo-oblig.
LOOP AT bezshb
WHERE shbkz = c-umkz7.
MOVE bezshb-ltext TO aobligo-ltext.
ENDLOOP.
APPEND aobligo.
ENDIF.
IF NOT c-sums8 IS INITIAL.
CLEAR aobligo.
MOVE '2' TO aobligo-obart.
MOVE c-umkz8 TO aobligo-shbkz.
MOVE c-sums8 TO aobligo-oblig.
LOOP AT bezshb
WHERE shbkz = c-umkz8.
MOVE bezshb-ltext TO aobligo-ltext.
ENDLOOP.
APPEND aobligo.
ENDIF.
IF NOT c-sums9 IS INITIAL.
CLEAR aobligo.
MOVE '2' TO aobligo-obart.
MOVE c-umkz9 TO aobligo-shbkz.
MOVE c-sums9 TO aobligo-oblig.
LOOP AT bezshb
WHERE shbkz = c-umkz9.
MOVE bezshb-ltext TO aobligo-ltext.
ENDLOOP.
APPEND aobligo.
ENDIF.
IF NOT c-sums10 IS INITIAL.
CLEAR aobligo.
MOVE '2' TO aobligo-obart.
MOVE c-umkz10 TO aobligo-shbkz.
MOVE c-sums10 TO aobligo-oblig.
LOOP AT bezshb
WHERE shbkz = c-umkz10.
MOVE bezshb-ltext TO aobligo-ltext.
ENDLOOP.
APPEND aobligo.
ENDIF.
IF NOT c-sonob IS INITIAL.
CLEAR aobligo.
MOVE '3' TO aobligo-obart.
MOVE c-sonob TO aobligo-oblig.
WRITE text-152 TO aobligo-ltext.
APPEND aobligo.
ENDIF.
SORT aobligo.
ENDFORM. "OBLIGOS
*----
*
FORM EINZELPOSTEN_SAVE *
*----
*
........ *
*----
*
FORM einzelposten_save.
CLEAR hbsid.
CLEAR refbl.
MOVE-CORRESPONDING bsid TO hbsid.
MOVE-CORRESPONDING bsega TO hbsid.
MOVE ntage TO hbsid-ntage.
MOVE stage TO hbsid-stage.
MOVE ztage TO hbsid-ztage.
MOVE atage TO hbsid-atage.
MOVE utage TO hbsid-utage.
APPEND hbsid.
MOVE-CORRESPONDING bsid TO refbl.
MOVE ntage TO refbl-ntage.
MOVE stage TO refbl-stage.
MOVE ztage TO refbl-ztage.
MOVE atage TO refbl-atage.
MOVE utage TO refbl-utage.
APPEND refbl.
ENDFORM. "EINZELPOSTEN_SAVE
*----
*
FORM EINZELPOSTEN_LINK *
*----
*
........ *
*----
*
FORM einzelposten_link.
LOOP AT hbsid
WHERE rebzg NE space.
LOOP AT refbl
WHERE bukrs = hbsid-bukrs
AND belnr = hbsid-rebzg
AND gjahr = hbsid-rebzj
AND buzei = hbsid-rebzz.
hbsid-ntage = refbl-ntage.
hbsid-stage = refbl-stage.
hbsid-ztage = refbl-ztage.
hbsid-atage = refbl-atage.
hbsid-utage = refbl-utage.
MODIFY hbsid.
ENDLOOP.
ENDLOOP.
ENDFORM. "EINZELPOSTEN_LINK
*----
*
FORM EINZELPOSTEN_PROC *
*----
*
........ *
*----
*
FORM einzelposten_proc.
LOOP AT hbsid
WHERE bukrs = knb1-bukrs.
IF t001-bukrs NE knb1-bukrs.
READ TABLE ht001 WITH KEY bukrs = knb1-bukrs.
t001 = ht001.
ENDIF.
CLEAR bsid.
CLEAR bsega.
MOVE-CORRESPONDING hbsid TO bsid.
MOVE-CORRESPONDING hbsid TO bsega.
ntage = hbsid-ntage.
stage = hbsid-stage.
ztage = hbsid-ztage.
atage = hbsid-atage.
utage = hbsid-utage.
die Einzelposten werden nach den Tagen der ersten Rasterart --------*
sortiert -----------------------------------------------------------*
IF rart-net = 'X'.
tage = ntage.
ELSE.
IF rart-skt = 'X'.
tage = stage.
ELSE.
IF rart-zhl = 'X'.
tage = ztage.
ELSE.
IF rart-alt = 'X'.
tage = atage.
ELSE.
IF rart-ueb = 'X'.
tage = utage.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
CASE bsid-umsks.
*----
Anzahlungen sammeln -
*
*----
auch wenn nicht von aussen abgegrenzt -
*
WHEN 'A'.
CLEAR rtab.
IF bsid-bstat NE 'S'.
MOVE: bsid-bukrs TO rtab-bukrs,
'0' TO rtab-sortk,
bsid-gsber TO rtab-gsber,
rart TO rtab-raart.
IF sortart = '2'.
MOVE bsid-waers TO rtab-waers.
MOVE bsega-wrshb TO rtab-anzah.
ELSE.
IF NOT konzvers IS INITIAL.
MOVE t001-waers TO rtab-waers.
MOVE bsega-dmshb TO rtab-anzah.
ELSE.
MOVE bsega-dmshb TO rtab-anzah.
ENDIF.
ENDIF.
COLLECT rtab.
*----
Summieren ueber alle Geschaeftsbereiche -
*
MOVE: '1' TO rtab-sortk,
'**' TO rtab-gsber.
COLLECT rtab.
ENDIF.
ENDCASE.
CHECK: budat,
bldat,
netdt.
sel-postn = 'J'.
IF sortart = '1'.
IF konzvers IS INITIAL.
PERFORM posten_rastern USING space.
MOVE space TO gb-waers.
ELSE.
PERFORM posten_rastern USING t001-waers.
MOVE t001-waers TO gb-waers.
ENDIF.
ELSE.
PERFORM posten_rastern USING bsid-waers.
MOVE bsid-waers TO gb-waers.
ENDIF.
---- nur bei Verdichtungsstufe '0' werden EINZELPOSTEN extrahiert --
IF verdicht = '0'.
MOVE '3' TO satzart.
MOVE bsid-gsber TO gb-gsber.
MOVE bsega-dmshb TO shbetrag.
*------Der Fremdwährungsbetrag soll nur Übernommen werden, wenn sich
sich der Währung von der Hauswährung unterscheidet.
IF bsid-waers EQ t001-waers.
MOVE space TO bsega-wrshb.
ENDIF.
EXTRACT einzelposten.
ENDIF.
ENDLOOP.
ENDFORM. "EINZELPOSTEN_PROC
*----
*
FORM SUMM_C3 *
*----
*
........ *
*----
*
FORM summ_c3.
c3-saldo = c3-saldo + c-saldo.
c3-umkz1 = c-umkz1.
c3-sums1 = c3-sums1 + c-sums1.
c3-umkz2 = c-umkz2.
c3-sums2 = c3-sums2 + c-sums2.
c3-umkz3 = c-umkz3.
c3-sums3 = c3-sums3 + c-sums3.
c3-umkz4 = c-umkz4.
c3-sums4 = c3-sums4 + c-sums4.
c3-umkz5 = c-umkz5.
c3-sums5 = c3-sums5 + c-sums5.
c3-umkz6 = c-umkz6.
c3-sums6 = c3-sums6 + c-sums6.
c3-umkz7 = c-umkz7.
c3-sums7 = c3-sums7 + c-sums7.
c3-umkz8 = c-umkz8.
c3-sums8 = c3-sums8 + c-sums8.
c3-umkz9 = c-umkz9.
c3-sums9 = c3-sums9 + c-sums9.
c3-umkz10 = c-umkz10.
c3-sums10 = c3-sums10 + c-sums10.
c3-sonob = c3-sonob + c-sonob.
c3-babzg = c3-babzg + c-babzg.
c3-uabzg = c3-uabzg + c-uabzg.
c3-kzins = c3-kzins + c-kzins.
c3-kumum = c3-kumum + c-kumum.
c3-kumag = c3-kumag + c-kumag.
c3-agobli = c3-agobli + c-agobli.
ENDFORM. "SUMM_C3
*&----
*
*& Form RASTER_AUSGABE_ALV_GRID
*&----
*
text
*----
*
FORM raster_ausgabe_alv_grid.
tittext = text-300.
WRITE dd_stida TO dattext.
REPLACE '&' WITH dattext INTO tittext.
g_grid_title = tittext.
g_repid = sy-repid.
g_save = 'A'.
PERFORM fieldcat_init USING gt_fieldcat[].
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = g_repid
I_CALLBACK_PF_STATUS_SET = G_STATUS_SET
i_callback_user_command = g_user_command
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
i_grid_title = g_grid_title
I_GRID_SETTINGS =
IS_LAYOUT =
it_fieldcat = gt_fieldcat[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
i_default = 'X'
i_save = g_save
is_variant = gs_variant
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = rtab_alv
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "RASTER_AUSGABE_ALV_GRID
*&----
*
*& Form FIELDCAT_INIT
*&----
*
text
*----
*
-->P_GT_FIELDCAT[] text
*----
*
FORM fieldcat_init
USING rt_fieldcat TYPE slis_t_fieldcat_alv.
CLEAR ls_fieldcat.
ls_fieldcat-tabname = g_tabname.
ls_fieldcat-fieldname = 'BUKRS'.
LS_FIELDCAT-KEY = ' '. "sets key field
ls_fieldcat-ref_fieldname = 'BUKRS'.
ls_fieldcat-ref_tabname = 'BSID'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-tabname = g_tabname.
ls_fieldcat-fieldname = 'KUNNR'.
LS_FIELDCAT-KEY = ' '. "sets key field
ls_fieldcat-ref_fieldname = 'KUNNR'.
ls_fieldcat-ref_tabname = 'KNA1'.
APPEND ls_fieldcat TO rt_fieldcat.
***************AB*************
CLEAR ls_fieldcat.
ls_fieldcat-tabname = g_tabname.
ls_fieldcat-fieldname = 'KOSTL'.
LS_FIELDCAT-KEY = ' '. "sets key field
ls_fieldcat-ref_fieldname = 'KOSTL'.
ls_fieldcat-ref_tabname = 'BSID'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-tabname = g_tabname.
ls_fieldcat-fieldname = 'BELNR'.
LS_FIELDCAT-KEY = ' '. "sets key field
ls_fieldcat-ref_fieldname = 'BELNR'.
ls_fieldcat-ref_tabname = 'RF140'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-tabname = g_tabname.
ls_fieldcat-fieldname = 'BELNR'.
LS_FIELDCAT-KEY = ' '. "sets key field
ls_fieldcat-ref_fieldname = 'BELNR'.
ls_fieldcat-ref_tabname = 'BSID'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-tabname = g_tabname.
ls_fieldcat-fieldname = 'BLDAT'.
LS_FIELDCAT-KEY = ' '. "sets key field
ls_fieldcat-ref_fieldname = 'BLDAT'.
ls_fieldcat-ref_tabname = 'BSID'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-tabname = g_tabname.
ls_fieldcat-fieldname = 'WRBTR'.
LS_FIELDCAT-KEY = ' '. "sets key field
ls_fieldcat-ref_fieldname = 'WRBTR'.
ls_fieldcat-ref_tabname = 'BSID'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-tabname = g_tabname.
ls_fieldcat-fieldname = 'BDIFF'.
LS_FIELDCAT-KEY = ' '. "sets key field
ls_fieldcat-ref_fieldname = 'BDIFF'.
ls_fieldcat-ref_tabname = 'BSID'.
APPEND ls_fieldcat TO rt_fieldcat.
***************AB*************
CLEAR ls_fieldcat.
ls_fieldcat-tabname = g_tabname.
ls_fieldcat-fieldname = 'BUSAB'.
LS_FIELDCAT-KEY = ' '. "sets key field
ls_fieldcat-ref_fieldname = 'BUSAB'.
ls_fieldcat-ref_tabname = 'KNB1'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-tabname = g_tabname.
ls_fieldcat-fieldname = 'SORTL'.
LS_FIELDCAT-KEY = ' '. "sets key field
ls_fieldcat-ref_fieldname = 'SORTL'.
ls_fieldcat-ref_tabname = 'KNA1'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-tabname = g_tabname.
ls_fieldcat-fieldname = 'LAND1'.
LS_FIELDCAT-KEY = ' '. "sets key field
ls_fieldcat-ref_fieldname = 'LAND1'.
ls_fieldcat-ref_tabname = 'KNA1'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-tabname = g_tabname.
ls_fieldcat-fieldname = 'GSBER'.
LS_FIELDCAT-KEY = ' '. "sets key field
ls_fieldcat-ref_fieldname = 'GSBER'.
ls_fieldcat-ref_tabname = 'BSID'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-tabname = g_tabname.
ls_fieldcat-fieldname = 'WAERS'.
LS_FIELDCAT-KEY = ' '. "sets key field
ls_fieldcat-ref_fieldname = 'WAERS'.
ls_fieldcat-ref_tabname = 'BSID'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-TABNAME = G_TABNAME.
LS_FIELDCAT-FIELDNAME = 'HWAER'.
LS_FIELDCAT-KEY = ' '. "sets key field
LS_FIELDCAT-REF_FIELDNAME = 'RF140'.
LS_FIELDCAT-REF_TABNAME = 'HWAER'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR ls_fieldcat.
ls_fieldcat-tabname = g_tabname.
ls_fieldcat-fieldname = 'RAART'.
LS_FIELDCAT-KEY = ' '. "sets key field
ls_fieldcat-ref_fieldname = 'RAART'.
ls_fieldcat-ref_tabname = 'RF140'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-TABNAME = G_TABNAME.
LS_FIELDCAT-FIELDNAME = 'SHKZG'.
LS_FIELDCAT-KEY = ' '. "sets key field
LS_FIELDCAT-REF_FIELDNAME = 'SHKZG'.
LS_FIELDCAT-REF_TABNAME = 'BSID'.
APPEND LS_FIELDCAT TO RT_FIELDCAT.
CLEAR ls_fieldcat.
ls_fieldcat-tabname = g_tabname.
ls_fieldcat-fieldname = 'KUMUM'.
LS_FIELDCAT-KEY = ' '. "sets key field
ls_fieldcat-ref_fieldname = 'KUMUMHW'.
ls_fieldcat-ref_tabname = 'RF140'.
ls_fieldcat-cfieldname = 'WAERS'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-tabname = g_tabname.
ls_fieldcat-fieldname = 'ANZAH'.
LS_FIELDCAT-KEY = ' '. "sets key field
ls_fieldcat-ref_fieldname = 'ANZBTHW'.
ls_fieldcat-ref_tabname = 'RF140'.
ls_fieldcat-cfieldname = 'WAERS'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-tabname = g_tabname.
ls_fieldcat-fieldname = 'OPSUM'.
LS_FIELDCAT-KEY = ' '. "sets key field
ls_fieldcat-ref_fieldname = 'GSALDD'.
ls_fieldcat-ref_tabname = 'RF140'.
ls_fieldcat-cfieldname = 'WAERS'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO rt_fieldcat.
WRITE: rp01 TO rc01.
WRITE: rp02 TO rc02.
WRITE: rp03 TO rc03.
WRITE: rp04 TO rc04.
WRITE: rp05 TO rc05.
WRITE: rp06 TO rc06.
WRITE: rp07 TO rc07.
WRITE: rp08 TO rc08.
WRITE: rp09 TO rc09.
WRITE: rp10 TO rc10.
CLEAR uebtext.
CLEAR uektext.
uebtext = text-201.
uektext = text-201.
REPLACE 'RP01' WITH rc01 INTO uebtext.
REPLACE 'RP01' WITH rc01 INTO uektext.
CONDENSE uebtext.
CONDENSE uektext.
CLEAR ls_fieldcat.
ls_fieldcat-tabname = g_tabname.
ls_fieldcat-fieldname = 'RAST1'.
LS_FIELDCAT-KEY = ' '. "sets key field
ls_fieldcat-ref_fieldname = 'RAST1'.
ls_fieldcat-ref_tabname = 'RF140'.
ls_fieldcat-seltext_s = uebtext.
ls_fieldcat-seltext_m = uebtext.
ls_fieldcat-seltext_l = uebtext.
LS_FIELDCAT-REPTEXT_DDIC = uebtext.
ls_fieldcat-cfieldname = 'WAERS'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR uebtext.
CLEAR uektext.
IF NOT rp06 IS INITIAL.
IF rp02 IS INITIAL.
uektext = text-206.
REPLACE 'RP06' WITH rc06 INTO uektext.
ELSE.
uebtext = text-206.
uektext = rc06(3).
uektext+4(1) = '-'.
ENDIF.
ENDIF.
IF NOT rp02 IS INITIAL.
uebtext+11(11) = text-202.
IF NOT rp06 IS INITIAL.
uektext+6 = rc02(3).
ENDIF.
ENDIF.
REPLACE 'RP02' WITH rc02 INTO uebtext.
REPLACE 'RP06' WITH rc06 INTO uebtext.
CONDENSE uebtext.
CONDENSE uektext.
CLEAR ls_fieldcat.
ls_fieldcat-tabname = g_tabname.
ls_fieldcat-fieldname = 'RAST2'.
LS_FIELDCAT-KEY = ' '. "sets key field
ls_fieldcat-ref_fieldname = 'RAST2'.
ls_fieldcat-ref_tabname = 'RF140'.
ls_fieldcat-seltext_s = uektext.
ls_fieldcat-seltext_m = uebtext.
ls_fieldcat-seltext_l = uebtext.
LS_FIELDCAT-REPTEXT_DDIC = uebtext.
ls_fieldcat-cfieldname = 'WAERS'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR uebtext.
CLEAR uektext.
IF NOT rp07 IS INITIAL.
IF rp03 IS INITIAL.
uektext = text-207.
REPLACE 'RP07' WITH rc07 INTO uektext.
ELSE.
uebtext = text-207.
uektext = rc07(3).
uektext+4(1) = '-'.
ENDIF.
ENDIF.
IF NOT rp03 IS INITIAL.
uebtext+11(11) = text-203.
IF NOT rp07 IS INITIAL.
uektext+6 = rc03(3).
ENDIF.
ENDIF.
REPLACE 'RP03' WITH rc03 INTO uebtext.
REPLACE 'RP07' WITH rc07 INTO uebtext.
CONDENSE uebtext.
CONDENSE uektext.
CLEAR ls_fieldcat.
ls_fieldcat-tabname = g_tabname.
ls_fieldcat-fieldname = 'RAST3'.
LS_FIELDCAT-KEY = ' '. "sets key field
ls_fieldcat-ref_fieldname = 'RAST3'.
ls_fieldcat-ref_tabname = 'RF140'.
ls_fieldcat-seltext_s = uektext.
ls_fieldcat-seltext_m = uebtext.
ls_fieldcat-seltext_l = uebtext.
LS_FIELDCAT-REPTEXT_DDIC = uebtext.
ls_fieldcat-cfieldname = 'WAERS'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR uebtext.
CLEAR uektext.
IF NOT rp08 IS INITIAL.
IF rp04 IS INITIAL.
uektext = text-208.
REPLACE 'RP08' WITH rc08 INTO uektext.
ELSE.
uebtext = text-208.
uektext = rc08(3).
uektext+4(1) = '-'.
ENDIF.
ENDIF.
IF NOT rp04 IS INITIAL.
uebtext+11(11) = text-204.
IF NOT rp08 IS INITIAL.
uektext+6 = rc04(3).
ENDIF.
ENDIF.
REPLACE 'RP04' WITH rc04 INTO uebtext.
REPLACE 'RP08' WITH rc08 INTO uebtext.
CONDENSE uebtext.
CONDENSE uektext.
CLEAR ls_fieldcat.
ls_fieldcat-tabname = g_tabname.
ls_fieldcat-fieldname = 'RAST4'.
LS_FIELDCAT-KEY = ' '. "sets key field
ls_fieldcat-ref_fieldname = 'RAST4'.
ls_fieldcat-ref_tabname = 'RF140'.
ls_fieldcat-seltext_s = uektext.
ls_fieldcat-seltext_m = uebtext.
ls_fieldcat-seltext_l = uebtext.
LS_FIELDCAT-REPTEXT_DDIC = uebtext.
ls_fieldcat-cfieldname = 'WAERS'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR uebtext.
CLEAR uektext.
IF NOT rp09 IS INITIAL.
IF rp05 IS INITIAL.
uektext = text-209.
REPLACE 'RP09' WITH rc09 INTO uektext.
ELSE.
uebtext = text-209.
uektext = rc09(3).
uektext+4(1) = '-'.
ENDIF.
ENDIF.
IF NOT rp05 IS INITIAL.
uebtext+11(11) = text-205.
IF NOT rp09 IS INITIAL.
uektext+6 = rc05(3).
ENDIF.
ENDIF.
REPLACE 'RP05' WITH rc05 INTO uebtext.
REPLACE 'RP09' WITH rc09 INTO uebtext.
CONDENSE uebtext.
CONDENSE uektext.
CLEAR ls_fieldcat.
ls_fieldcat-tabname = g_tabname.
ls_fieldcat-fieldname = 'RAST5'.
LS_FIELDCAT-KEY = ' '. "sets key field
ls_fieldcat-ref_fieldname = 'RAST5'.
ls_fieldcat-ref_tabname = 'RF140'.
ls_fieldcat-seltext_s = uektext.
ls_fieldcat-seltext_m = uebtext.
ls_fieldcat-seltext_l = uebtext.
LS_FIELDCAT-REPTEXT_DDIC = uebtext.
ls_fieldcat-cfieldname = 'WAERS'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO rt_fieldcat.
CLEAR uebtext.
CLEAR uektext.
IF NOT rp10 IS INITIAL.
uebtext = text-210.
uektext = text-210.
ENDIF.
REPLACE 'RP10' WITH rc10 INTO uebtext.
REPLACE 'RP10' WITH rc10 INTO uektext.
CONDENSE uebtext.
CONDENSE uektext.
CLEAR ls_fieldcat.
ls_fieldcat-tabname = g_tabname.
ls_fieldcat-fieldname = 'RAST6'.
LS_FIELDCAT-KEY = ' '. "sets key field
ls_fieldcat-ref_fieldname = 'RAST6'.
ls_fieldcat-ref_tabname = 'RF140'.
ls_fieldcat-seltext_s = uebtext.
ls_fieldcat-seltext_m = uebtext.
ls_fieldcat-seltext_l = uebtext.
LS_FIELDCAT-REPTEXT_DDIC = uebtext.
ls_fieldcat-cfieldname = 'WAERS'.
ls_fieldcat-no_zero = 'X'.
APPEND ls_fieldcat TO rt_fieldcat.
ENDFORM. " FIELDCAT_INIT
*&----
*
*& Form USER_COMMAND
*&----
*
text
*----
*
--> R_UCOMM
--> RS_SELFIELD
*----
*
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
DATA: lt_seltab TYPE STANDARD TABLE OF rsparams WITH HEADER LINE.
CASE r_ucomm.
WHEN '&IC1'.
READ TABLE rtab_alv INTO rtab_alv INDEX rs_selfield-tabindex.
lt_seltab-selname = 'DD_KUNNR'.
lt_seltab-sign = 'I'.
lt_seltab-option = 'EQ'.
lt_seltab-low = rtab_alv-kunnr.
APPEND lt_seltab.
IF NOT rtab_alv-bukrs IS INITIAL.
lt_seltab-selname = 'DD_BUKRS'.
lt_seltab-sign = 'I'.
lt_seltab-option = 'EQ'.
lt_seltab-low = rtab_alv-bukrs.
APPEND lt_seltab.
ENDIF.
lt_seltab-selname = 'X_OPSEL'.
lt_seltab-sign = 'I'.
lt_seltab-option = 'EQ'.
lt_seltab-low = 'X'.
APPEND lt_seltab.
lt_seltab-selname = 'PA_STIDA'.
lt_seltab-sign = 'I'.
lt_seltab-option = 'EQ'.
lt_seltab-low = dd_stida.
APPEND lt_seltab.
lt_seltab-selname = 'X_NORM'.
lt_seltab-sign = 'I'.
lt_seltab-option = 'EQ'.
lt_seltab-low = 'X'.
APPEND lt_seltab.
lt_seltab-selname = 'X_SHBV'.
lt_seltab-sign = 'I'.
lt_seltab-option = 'EQ'.
lt_seltab-low = 'X'.
APPEND lt_seltab.
lt_seltab-selname = 'PA_GRID'.
lt_seltab-sign = 'I'.
lt_seltab-option = 'EQ'.
lt_seltab-low = 'Y'.
APPEND lt_seltab.
SUBMIT rfitemar WITH SELECTION-TABLE lt_seltab
AND RETURN.
ENDCASE.
ENDFORM. " USER_COMMAND
*&----
*
*& Form F4_FOR_s_lvar
*&----
*
text
*----
*
-->P_s_lvar text
*----
*
FORM f4_for_s_lvar CHANGING i_variant LIKE disvariant.
DATA: exit.
DATA: e_variant LIKE disvariant.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = i_variant
i_save = 'A'
IMPORTING
e_exit = exit
es_variant = e_variant
EXCEPTIONS
program_error = 3
OTHERS = 3.
IF sy-subrc = 0 AND exit = space.
i_variant-variant = e_variant-variant.
ENDIF.
ENDFORM. " F4_FOR_s_lvar
11-21-2007 5:22 AM
Hi,
cost center/profit center is not shown in BSID , this depends on ur functional settings.
Fetch these values from BSEG, providing the max possible key fields