Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Help!!!!!!!!!!

Former Member
0 Kudos

Dear All,

Below given program is written in SAP version 6.0 and I copied the same program in SAP verdion 4.7. But its not working and showing the error that " The type "cl_dopr_writer" is unknown.

Can anybody help me out to execute the same program in SAP version 4.7.

need help.

Regards,

Abhay.

report zfi_kfa_RFKOPR00

message-id fr

line-size 132

no standard page heading.

tables: b0sg, lfa1, lfb1, lfb5, lfc1,lfc3, bsik, bsega.

tables: bhdgd, t001, t001s, *t001s, t074t, t074u, tbsl, tbslt,

tcurx, adrs, rfpdo, rfpdo1, rfsdo,faede.

field-symbols: .

*-----

data: lo_writer type ref to cl_dopr_writer,

l_title_1 type string,

l_title_part1 type string,

l_title_part2 type string,

l_hlp_txt type c length 130,

l_hlp_txt1 type c length 15,

l_hlp_string type string,

l_raster type p.

*-----

data: cfakt(3) type p,

checksaldo(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.

*-----

data: curry like bsik-gjahr.

data: zeilenanzahl like adrs-anzzl value 7.

data: ksaldo(6) type p.

  • ----------------------------------------

data: index(2) type p value 0.

  • -----------------------------------------------------------

data: hf(1) type c.

data: txt_1(78) type c,

txt_2(78) type c,

txt_3(78) type c,

txt_4(78) type c,

txt_5(78) type c,

txt_6(78) type c,

txt_7(78) type c,

txt_8(78) type c.

data: begin of xmahn occurs 10.

include structure lfb5.

data: end of xmahn.

  • -----------------------------------------------------------

data: char1(1) type c.

data: flag1(1) type c.

data: intens(1) type c.

data: flag2(1) type c.

*----


*

data: dnull(8) type c value '00000000'.

data: deckblatt type c value 'N'.

*----


*

data: begin of h,

stichtag(8),

offset(2) type p,

offse1(2) type p,

soll like lfc1-um01s,

haben like lfc1-um01h,

saldo like lfc1-umsav,

shbkz like lfc3-shbkz,

saldv like lfc3-saldv,

shbls like lfc3-solll,

shbsl like lfc3-solll,

shbhb like lfc3-habnl,

text(15),

umlow like bsik-umskz,

umhig like bsik-umskz,

end of h.

*----


*

data: begin of c,

saldo type p,

umkz1 like lfc3-shbkz,

sums1 type p,

umkz2 like lfc3-shbkz,

sums2 type p,

umkz3 like lfc3-shbkz,

sums3 type p,

umkz4 like lfc3-shbkz,

sums4 type p,

umkz5 like lfc3-shbkz,

sums5 type p,

umkz6 like lfc3-shbkz,

sums6 type p,

umkz7 like lfc3-shbkz,

sums7 type p,

umkz8 like lfc3-shbkz,

sums8 type p,

umkz9 like lfc3-shbkz,

sums9 type p,

umkz10 like lfc3-shbkz,

sums10 type p,

sonob type p,

babzg type p,

uabzg type p,

kzins type p,

kumum type p,

kumag type p,

agobli like lfc1-umsav,

end of c.

*----


*

data: begin of c2 occurs 0,

bukrs like lfc1-bukrs,

saldo type p,

umkz1 like lfc3-shbkz,

sums1 type p,

umkz2 like lfc3-shbkz,

sums2 type p,

umkz3 like lfc3-shbkz,

sums3 type p,

umkz4 like lfc3-shbkz,

sums4 type p,

umkz5 like lfc3-shbkz,

sums5 type p,

umkz6 like lfc3-shbkz,

sums6 type p,

umkz7 like lfc3-shbkz,

sums7 type p,

umkz8 like lfc3-shbkz,

sums8 type p,

umkz9 like lfc3-shbkz,

sums9 type p,

umkz10 like lfc3-shbkz,

sums10 type p,

sonob type p,

babzg type p,

uabzg type p,

kzins type p,

kumum type p,

kumag type p,

agobli like lfc1-umsav,

lftage(3) type p,

mftage(3) type p,

kftage(3) type p,

zvtyp(1) type c,

zvper(6) type c,

zvverzug(8) type p,

end of c2.

*----


*

data: begin of c3,

saldo type p,

umkz1 like lfc3-shbkz,

sums1 type p,

umkz2 like lfc3-shbkz,

sums2 type p,

umkz3 like lfc3-shbkz,

sums3 type p,

umkz4 like lfc3-shbkz,

sums4 type p,

umkz5 like lfc3-shbkz,

sums5 type p,

umkz6 like lfc3-shbkz,

sums6 type p,

umkz7 like lfc3-shbkz,

sums7 type p,

umkz8 like lfc3-shbkz,

sums8 type p,

umkz9 like lfc3-shbkz,

sums9 type p,

umkz10 like lfc3-shbkz,

sums10 type p,

sonob type p,

babzg type p,

uabzg type p,

kzins type p,

kumum type p,

kumag type p,

agobli like lfc1-umsav, "Gesamt-Obligo (absolut)

end of c3.

data: shbetrag like bsega-dmshb. "TYPE P.

*----


*

data: begin of rtab occurs 30,

sortk(1) type c,

bukrs like bsik-bukrs,

gsber like bsik-gsber,

waers like bsik-waers,

raart type c,

sperr type p,

kumum type p,

anzah type p,

opsum type p,

rast1 type p,

rast2 type p,

rast3 type p,

rast4 type p,

rast5 type p,

rast6 type p,

end of rtab.

*----


*

data: begin of rbuk occurs 30,

sortk(1) type c,

bukrs like bsik-bukrs,

gsber like bsik-gsber,

waers like bsik-waers,

raart type c,

sperr type p,

kumum type p,

anzah type p,

opsum type p,

rast1 type p,

rast2 type p,

rast3 type p,

rast4 type p,

rast5 type p,

rast6 type p,

end of rbuk.

*----


*

data: begin of rsum occurs 30,

sortk(1) type c,

waers like bsik-waers,

raart type c,

sperr type p,

kumum type p,

anzah type p,

opsum type p,

rast1 type p,

rast2 type p,

rast3 type p,

rast4 type p,

rast5 type p,

rast6 type p,

end of rsum.

*----


*

ranges: bmonat for rfpdo-doprbmon.

*----


*

data: rp01(2) type p,

rp02(2) type p,

rp03(2) type p,

rp04(2) type p,

rp05(2) type p,

rp06(2) type p,

rp07(2) type p,

rp08(2) type p,

rp09(2) type p,

rp10(2) type p.

*----


*

data: rc01(4) type c,

rc02(4) type c,

rc03(4) type c,

rc04(4) type c,

rc05(4) type c,

rc06(4) type c,

rc07(4) type c,

rc08(4) type c,

rc09(4) type c,

rc10(4) type c.

*----


*

data: humkz1 like lfc3-shbkz,

humkz2 like lfc3-shbkz,

humkz3 like lfc3-shbkz,

humkz4 like lfc3-shbkz,

humkz5 like lfc3-shbkz,

humkz6 like lfc3-shbkz,

humkz7 like lfc3-shbkz,

humkz8 like lfc3-shbkz,

humkz9 like lfc3-shbkz,

humkz10 like lfc3-shbkz.

data: gbzaehl(3) type p.

data: top-flag(1) type c.

data: begin of sel,

stamm(1) type c,

postn(1) type c,

post2(1) type c,

end of sel.

data: satzart(1) type c.

data: rart(1) type c.

data: tage(4) type p,

ntage(4) type p,

stage(4) type p,

atage(4) type p,

utage(4) type p.

data: rasteruu(1) type c.

data: begin of gb,

gsber like bsik-gsber,

waers like bsik-waers,

end of gb.

*----


*

*---- Variable Ueberschriften -


*

*----


*

data: begin of varueb1,

feld1(45) 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(45) 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 bsik-bukrs,

belnr like bsik-belnr,

gjahr like bsik-gjahr,

buzei like bsik-buzei,

end of blkey.

data: begin of rtage,

ntage like ntage,

stage like stage,

atage like atage,

utage like utage,

end of rtage.

data: begin of hbsik occurs 10.

include structure bsik.

include structure bsega.

include structure rtage.

data: end of hbsik.

data: begin of refbl occurs 10.

include structure blkey.

include structure rtage.

data: end of refbl.

data: begin of hlfb1 occurs 10.

include structure lfb1.

data: end of hlfb1.

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 bsik-bukrs,

lifnr like lfa1-lifnr,

name1 like lfa1-name1,

busab like lfb1-busab,

sortl like lfa1-sortl,

land1 like lfa1-land1,

gsber like bsik-gsber,

waers like bsik-waers,

  • hwaer like rf140-hwaer,

raart like rf140-raart, "Rasterart

  • shkzg like bsik-shkzg,

  • XGUTS TYPE C, "Gutschrift

kumum like rf140-kumumhw, "Umsatz

anzah like rf140-anzbthw, "Anzahlungen

opsum like rf140-gsaldd, "Offene Posten Summe

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

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

  • print

*DATA: GS_PRINT TYPE SLIS_PRINT_ALV.

*----


*

*---- FIELD-GROUPS -


*

*----


*

field-groups:

header,

stammdaten,

op-raster,

einzelposten.

insert

lfb1-bukrs " Buchungskreis

  • lfB1-BUSAB " Sachbearbeiter

lfa1-lifnr " Kontonummer

lfa1-name1 " NAME1

satzart " Satzart

rtab-sortk " Sortkz fuer Tabelle RTAB

" '0' = normale Eintraege

" '1' = Summeneintraege

gb " Geschaeftsbereich

" - GB-GSBER

" - GB-WAERS

rasteruu " Kennzeichen fuer Detailposten bzw Raster

*----


ab hier nur fuer Einzelposten -


*

tage " Rastertage fuer Detailposten

bsik-umskz " Umsatzkennzeichen

bsik-blart " Belegart

  • BSIK-ZUONR " Zuordnungsnummer

bsik-belnr " Belegnummer

bsik-buzei " Belegzeile

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

  • Obligos

c-saldo " Saldo ohne SHB-Vorgänge

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

c-agobli " Absolutes Gesamtobligo

  • Zahlungdaten

lfb1-zterm "Zahlungsbedingung

lfb1-zahls "Sperrschlüssel für Zahlung

lfb1-zwels "Zahlwege

lfb1-xverr "Zahlungsverrechnung

lfb1-webtr "Wechsellimit

lfb1-busab " Sachbearbeiter

lfa1-sortl

lfa1-name1

lfa1-land1

into stammdaten.

insert

rtab-raart "Rasterart

rtab-sperr "gesperrte Posten

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

into op-raster.

insert

bsik-budat " Buchungsdatum

bsik-bldat " Belegdatum

bsik-cpudt " CPU-Datum

  • BKPF-USNAM " User-ID

bsik-waers " Wahrungsschluessel

bsega-netdt " Nettofaelligkeitsdatum

  • FAEDE-NETDT " Nettofaelligkeitsdatum

bsik-zfbdt " Zahlungsfristen-Basisdatum

bsik-bschl " Buchungsschluessel

bsik-zlsch " Zahlungsschluessel

  • BSIK-MANST " Mahnstufe

shbetrag " Hauswaehrungsbetrag

bsega-dmshb " Hauswaehrungsbetrag

bsega-wrshb " Fremwaehrungsbetrag

into einzelposten.

begin_of_block 1.

*ELECT-OPTIONS:

  • GESBER FOR BSIK-GSBER.

parameters:

monat like rfpdo-doprbmon.

select-options:

kksaldo2 for rfsdo-koprsal2, "Saldovortrag

agoblig2 for rfsdo-koprago2. "Absolutes Obligo

  • RGOBLIGO FOR RFSDO-DOPRRGOB. "Relatives Obligo

select-options:

  • LAND FOR LFA1-LAND1,

  • KONTENGR FOR LFA1-KTOKK,

  • SACHBEAR FOR LFB1-BUSAB,

akonts for lfb1-akont,

akontp for bsik-hkont.

select-options:

budat for bsik-budat,

bldat for bsik-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 rfpdo1-koprsoar default '1', "Doku

verdicht like rfpdo1-koprverd default '1', "Doku

rastverd like rfpdo1-koprrast default '0', "Doku

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.

selection-screen begin of line.

parameters: rart-alt like rfpdo1-koprralt default 'X'.

*SELECTION-SCREEN COMMENT 03(28) text-031. "N740800

selection-screen comment 03(28) text-031 for field rart-alt."N740800

selection-screen position pos_high.

parameters rbldat like rfpdo2-kord10bd.

*SELECTION-SCREEN COMMENT 61(12) text-032. "N740800

selection-screen comment 61(12) text-032 for field rbldat. "N740800

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. "N740800

selection-screen comment 01(31) text-026 for field rastbis1."N740800

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. "N740800

selection-screen comment 01(31) text-029 for field faktor. "N740800

parameters: faktor like rfpdo-doprfakt default '0'.

*SELECTION-SCREEN COMMENT 35(1) text-028. "N740800

selection-screen comment 35(1) text-028 for field stellen. "N740800

parameters: stellen like rfpdo-doprfakt default '0'.

selection-screen end of line.

parameters: pzuor like rfpdo2-doprzuor.

parameters: umsatzkz like rfpdo1-doprshbo. "DEFAULT 'WSABIMVD'.

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

initialization.

get_frame_title: 1, 2.

monat = '16'.

acc_mode = 'X'.

  • changes by vkb dted. 20/08/2007.

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

cl_abap_list_layout=>suppress_implicit_page_breaks( abap_true ).

*- Fuellen zusätzlicher DB Sel-Opts

copy: akonts to kd_akont, akontp to kd_hkont.

select * from t001 appending table ht001

where bukrs in kd_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 lfa1.

*HECK LAND.

*HECK KONTENGR.

clear adrs.

move-corresponding lfa1 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 checkagobl.

clear waers2.

clear wflag2.

clear hbsik.

refresh hbsik.

clear refbl.

refresh refbl.

sel-stamm = 'N'.

sel-postn = 'N'.

sel-post2 = 'N'.

clear rtab.

refresh rtab.

clear hlfb1.

refresh hlfb1.

clear c2.

refresh c2.

clear c3.

endif.

get lfb1.

*HECK SACHBEAR.

check akonts.

if konzvers is initial.

clear checksaldo.

clear checkagobl.

clear hbsik.

refresh hbsik.

clear refbl.

refresh refbl.

sel-stamm = 'N'.

sel-postn = 'N'.

clear rtab.

refresh rtab.

endif.

clear c.

clear h-saldo.

clear: gb,

rasteruu,

tage.

  • Lfd. Geschaeftsjahr gemaess Stichtag besorgen ---------------------*

  • laufendes Geschäftsjahr ermitteln

  • ---------------------------------

call function 'GET_CURRENT_YEAR'

exporting

bukrs = lfb1-bukrs

date = kd_stida

importing

curry = curry.

  • SELECT SINGLE * FROM T001 WHERE BUKRS EQ LFB1-BUKRS.

read table ht001 with key bukrs = lfb1-bukrs.

t001 = ht001.

if not waers2 is initial

and waers2 ne t001-waers.

wflag2 = '1'.

endif.

waers2 = t001-waers.

get lfc1.

check: lfc1-gjahr = curry.

  • aktuellen Saldo ermitteln (fuer CHECK auf Saldo) ------------------*

perform saldo_aktuell.

perform kum_werte.

  • CHECK CHECKSALDO IN KKSALDO2.

sel-stamm = 'J'.

get lfc3.

check lfc3-gjahr = curry.

  • 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 bsik.

if konzvers is initial.

check checksaldo in kksaldo2.

check: checkagobl in agoblig2.

endif.

  • C-RGOBLI IN RGOBLIGO.

  • CHECK GESBER.

check akontp.

case bsik-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 bsik-waers ne t001-waers.

endif.

*ET BKPF.

  • CHECK SEL-STAMM = 'J'.

check bsik-budat le kd_stida.

*ET BSEG.

  • CHECK SEL-STAMM = 'J'.

clear faede.

move-corresponding bsik to faede.

faede-koart = 'K'.

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

ntage = faede-netdt - kd_stida.

  • Ueber-Faelligkeit --------------------------------------------------*

  • UTAGE = KD_STIDA - BSEGA-NETDT.

utage = kd_stida - faede-netdt.

  • IF NOT BSIK-ZFBDT IS INITIAL.

  • Skonto1-Faelligkeit ------------------------------------------------*

  • STAGE = BSIK-ZFBDT + BSIK-ZBD1T - KD_STIDA.

  • ELSE.

  • Skonto1-Faelligkeit ------------------------------------------------*

  • STAGE = BSIK-BLDAT + BSIK-ZBD1T - KD_STIDA.

  • ENDIF.

stage = faede-sk1dt - kd_stida.

  • Alter der Belege ---------------------------------------------------*

if rbldat is initial.

atage = kd_stida - bsik-budat.

else.

atage = kd_stida - bsik-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-alt = 'X'.

tage = atage.

else.

if rart-ueb = 'X'.

tage = utage.

endif.

endif.

endif.

endif.

case bsik-umsks.

*----


Anzahlungen sammeln -


*

*----


auch wenn nicht von aussen abgegrenzt -


*

when 'A'.

clear rtab.

if bsik-bstat ne 'S'.

move: bsik-bukrs to rtab-bukrs,

'0' to rtab-sortk,

bsik-gsber to rtab-gsber,

rart to rtab-raart.

if sortart = '2'.

move bsik-waers to rtab-waers.

move bsega-wrshb to rtab-anzah.

else. "748519

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 bsik-waers.

move bsik-waers to gb-waers.

endif.

---- nur bei Verdichtungsstufe '0' werden EINZELPOSTEN extrahiert --

if verdicht = '0'.

move '3' to satzart.

move bsik-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 bsik-waers eq t001-waers.

move space to bsega-wrshb.

endif.

extract einzelposten.

endif.

  • EXIT. " <== einmal verteilt, das reicht

  • ENDIF.

  • ENDLOOP.

endif.

get lfb1 late.

if konzvers is initial.

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 ---------------------------------------------*

check: checkagobl in agoblig2.

extract stammdaten.

  • CLEAR C.

  • CLEAR: ZVVERZUG,ZVPER,ZVTYP.

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

hlfb1 = lfb1.

append hlfb1.

move-corresponding c to c2.

c2-bukrs = lfb1-bukrs.

append c2.

endif.

*EJECT

get lfa1 late.

if not konzvers is initial.

if wflag2 is initial.

check checksaldo in kksaldo2.

check: checkagobl in agoblig2.

endif.

if not pzuor is initial.

perform einzelposten_link.

endif.

clear sel-post2.

loop at hlfb1.

lfb1 = hlfb1.

loop at c2

where bukrs = lfb1-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 bsik.

extract stammdaten.

  • clear c.

  • OP-Raster extrahieren ----------------------------------------------*

sort rtab ascending.

loop at rtab

where bukrs = lfb1-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 lfb1.

  • 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 bsik.

extract stammdaten.

  • clear c.

  • OP-Raster extrahieren ----------------------------------------------*

sort rtab ascending.

loop at rtab

where bukrs = lfb1-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 *

*----


*

create object lo_writer.

clear rtab.

refresh rtab.

*ORT.

if konzvers = space.

sort by lfb1-bukrs

  • lfB1-BUSAB

lfa1-lifnr

satzart

rtab-sortk

gb

rasteruu

tage

bsik-umskz

bsik-blart

bsik-belnr

bsik-buzei.

else.

sort by lfa1-lifnr

lfb1-bukrs

  • lfB1-BUSAB

satzart

rtab-sortk

gb

rasteruu

tage

bsik-umskz

bsik-blart

bsik-belnr

bsik-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 lfb1-bukrs.

move lfb1-bukrs to bhdgd-grpin(4). "<= Micro-Fiche Info

move lfb1-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 lfb1-bukrs.

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.

move text-607 to l_title_part2.

replace '$SKAL' with l_hlp_txt into l_title_part2.

else.

if rastverd < '2'.

move text-165 to varueb4.

move text-665 to l_title_part2.

else.

move text-107 to varueb4.

replace '$SKAL' with h-text into varueb4.

move text-607 to l_title_part2.

replace '$SKAL' with l_hlp_txt into l_title_part2.

endif.

endif.

write kd_stida to h-stichtag dd/mm/yy.

replace '$STIDA' with h-stichtag into varueb4.

replace '$STIDA' with h-stichtag into l_title_part2.

endat.

at new lfa1-lifnr.

move lfa1-lifnr 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 5 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 lfa1-lifnr.

  • CLEAR RBUA.

  • REFRESH RBUA.

move lfa1-lifnr to bhdgd-grpin(10). "<= Micro-Fiche Info

if sortart = '1'.

move text-168 to varueb4.

move text-670 to l_title_part2.

else.

if rastverd < '2'.

move text-165 to varueb4.

move text-665 to l_title_part2.

else.

move text-168 to varueb4.

move text-670 to l_title_part2.

endif.

endif.

write kd_stida to h-stichtag dd/mm/yy.

replace '$STIDA' with h-stichtag into varueb4.

replace '$STIDA' with h-stichtag into l_title_part2.

endat.

at new lfb1-bukrs.

clear rbuk.

refresh rbuk.

clear gbzaehl.

move lfb1-bukrs to bhdgd-grpin+10(4). "<= Micro-Fiche Info

if not lfb1-bukrs is initial.

read table ht001 with key bukrs = lfb1-bukrs.

t001 = ht001.

if waers eq space.

move t001-waers to waers.

endif.

if waers ne t001-waers.

wflag = '1'.

endif.

endif.

endat.

endif.

at new satzart.

case satzart.

when '2'. "Raster

if acc_mode is initial.

if rastverd < '2'.

if verdicht < '3'.

if not konzvers is initial

and not lfb1-bukrs is initial.

check xbukrdat ne '2'.

endif.

*----


Wenn ein neues Raster beginnt, muessen mindestens noch -


*

*----


9 Zeilen Platz haben. -


*

top-flag = '3'.

reserve 9 lines.

l_title_1 = text-513.

replace '&1' with lfb1-bukrs into l_title_1.

replace '&2' with lfb1-busab into l_title_1.

replace '&3' with lfa1-lifnr into l_title_1.

concatenate l_title_1 l_title_part2 into l_title_1 separated by space.

condense l_title_1.

if rtab-sortk <> '2'.

if sortart = '1'.

lo_writer->new_table( id_type = '5' id_title = l_title_1 ).

else.

lo_writer->new_table( id_type = '2' id_title = l_title_1 ).

endif.

lo_writer->title_write( ).

varueb1-feld2 = text-500.

lo_writer->add_header_field( text-520 ).

if sortart = '1'.

lo_writer->add_header_field( text-522 ).

else.

lo_writer->add_header_field( text-519 ).

endif.

lo_writer->add_header_field( text-524 ).

lo_writer->add_header_field( text-525 ).

lo_writer->add_header_field( text-526 ).

lo_writer->add_header_field( varueb1-feld2 ).

lo_writer->add_header_field( varueb1-feld3 ).

lo_writer->add_header_field( varueb1-feld4 ).

lo_writer->add_header_field( varueb1-feld5 ).

lo_writer->add_header_field( varueb1-feld6 ).

lo_writer->add_header_field( varueb1-feld7 ).

lo_writer->add_header_field( '' ).

if sortart = '1'.

lo_writer->add_header_field( text-523 ).

else.

lo_writer->add_header_field( '' ).

endif.

lo_writer->add_header_field( '' ).

lo_writer->add_header_field( '' ).

lo_writer->add_header_field( '' ).

lo_writer->add_header_field( varueb2-feld2 ).

lo_writer->add_header_field( varueb2-feld3 ).

lo_writer->add_header_field( varueb2-feld4 ).

lo_writer->add_header_field( varueb2-feld5 ).

lo_writer->add_header_field( varueb2-feld6 ).

lo_writer->add_header_field( varueb2-feld7 ).

lo_writer->ruler_write( ).

endif.

endif.

endif.

endif.

when '3'. "Einzelposten

top-flag = '1'.

reserve 8 lines.

write kd_stida to h-stichtag dd/mm/yy.

concatenate text-547 text-110 lfb1-bukrs text-111 lfb1-busab text-112 lfa1-lifnr

text-548 h-stichtag into l_title_1 separated by space.

lo_writer->new_table( id_type = '3' id_title = l_title_1 ).

lo_writer->title_write( ).

lo_writer->add_header_field( text-530 ).

lo_writer->add_header_field( text-531 ).

lo_writer->add_header_field( text-532 ).

lo_writer->add_header_field( text-533 ).

lo_writer->add_header_field( text-534 ).

lo_writer->add_header_field( text-535 ).

lo_writer->add_header_field( text-536 ).

lo_writer->add_header_field( text-537 ).

lo_writer->add_header_field( text-538 ).

lo_writer->add_header_field( text-539 ).

lo_writer->add_header_field( text-540 ).

lo_writer->add_header_field( text-541 ).

lo_writer->add_header_field( text-542 ).

lo_writer->add_header_field( text-543 ).

lo_writer->add_header_field( text-544 ).

lo_writer->add_header_field( text-545 ).

lo_writer->add_header_field( text-546 ).

lo_writer->ruler_write( ).

endcase.

endat.

at stammdaten. "Satzart '1'

if acc_mode is initial.

if verdicht < '3'.

detail.

if not konzvers is initial

and not lfb1-bukrs is initial.

if xbukrdat = '2'

and verdicht > '0'.

check 1 = 2.

endif.

endif.

if konzvers is initial.

concatenate text-549

text-110

lfb1-bukrs

text-111

lfb1-busab

text-112

lfa1-lifnr

into l_title_1

separated by space.

else.

if lfb1-bukrs is initial.

concatenate text-549

text-112

lfa1-lifnr

into l_title_1.

else.

concatenate text-549

text-112

lfa1-lifnr

text-110

lfb1-bukrs

text-111

lfb1-busab

into l_title_1

separated by space.

endif.

endif.

if not konzvers is initial

and not lfb1-bukrs is initial

and xbukrdat = '2'.

else.

concatenate l_title_1 ',' l_title_part2 into l_title_1 separated by space.

endif.

condense l_title_1.

lo_writer->new_table( id_type = '1' id_title = l_title_1 ).

lo_writer->add_group_header_field( text-550 ).

lo_writer->add_header_field( text-551 ).

lo_writer->add_header_field( text-552 ).

lo_writer->add_header_field( text-553 ).

lo_writer->add_header_field( text-554 ).

lo_writer->add_header_field( text-555 ).

lo_writer->add_header_field( text-556 ).

lo_writer->add_header_field( text-557 ).

lo_writer->add_header_field( text-558 ).

lo_writer->add_header_field( text-559 ).

lo_writer->add_header_field( text-560 ).

clear top-flag.

reserve 10 lines.

lo_writer->title_write( ).

lo_writer->ruler_write( ).

top-flag = '4'.

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

endif.

endat.

at einzelposten. "Satzart '3'

reserve 2 lines.

new-line.

perform einzelposten_ausgabe.

endat.

at end of rasteruu.

if satzart = '3'.

lo_writer->row_open( ).

lo_writer->format_total( ).

case rasteruu.

when '1'.

move text-052 to vartxt1.

replace '$BIS' with rc01 into vartxt1.

write sum(shbetrag) to l_hlp_txt1(12)

currency t001-waers.

concatenate vartxt1 l_hlp_txt1 into l_hlp_txt separated by space.

lo_writer->write_inserted_line( l_hlp_txt ).

lo_writer->row_close( ib_inserted_line = abap_true ).

lo_writer->uline( ).

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 sum(shbetrag) to l_hlp_txt1(12)

currency t001-waers.

concatenate vartxt1 l_hlp_txt1 into l_hlp_txt separated by space.

lo_writer->write_inserted_line( l_hlp_txt ).

lo_writer->row_close( ib_inserted_line = abap_true ).

lo_writer->uline( ).

else.

move text-054 to vartxt1.

replace '$VON' with rc06 into vartxt1.

write sum(shbetrag) to l_hlp_txt1(12)

currency t001-waers.

concatenate vartxt1 l_hlp_txt1 into l_hlp_txt separated by space.

lo_writer->write_inserted_line( l_hlp_txt ).

lo_writer->row_close( ib_inserted_line = abap_true ).

lo_writer->uline( ).

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 sum(shbetrag) to l_hlp_txt1(12)

currency t001-waers.

concatenate vartxt1 l_hlp_txt1 into l_hlp_txt separated by space.

lo_writer->write_inserted_line( l_hlp_txt ).

lo_writer->row_close( ib_inserted_line = abap_true ).

lo_writer->uline( ).

else.

move text-054 to vartxt1.

replace '$VON' with rc07 into vartxt1.

write sum(shbetrag) to l_hlp_txt1(12)

currency t001-waers.

concatenate vartxt1 l_hlp_txt1 into l_hlp_txt separated by space.

lo_writer->write_inserted_line( l_hlp_txt ).

lo_writer->row_close( ib_inserted_line = abap_true ).

lo_writer->uline( ).

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 sum(shbetrag) to l_hlp_txt1(12)

currency t001-waers.

concatenate vartxt1 l_hlp_txt1 into l_hlp_txt separated by space.

lo_writer->write_inserted_line( l_hlp_txt ).

lo_writer->row_close( ib_inserted_line = abap_true ).

lo_writer->uline( ).

else.

move text-054 to vartxt1.

replace '$VON' with rc08 into vartxt1.

write sum(shbetrag) to l_hlp_txt1(12)

currency t001-waers.

concatenate vartxt1 l_hlp_txt1 into l_hlp_txt separated by space.

lo_writer->write_inserted_line( l_hlp_txt ).

lo_writer->row_close( ib_inserted_line = abap_true ).

lo_writer->uline( ).

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 sum(shbetrag) to l_hlp_txt1(12)

currency t001-waers.

concatenate vartxt1 l_hlp_txt1 into l_hlp_txt separated by space.

lo_writer->write_inserted_line( l_hlp_txt ).

lo_writer->row_close( ib_inserted_line = abap_true ).

lo_writer->uline( ).

else.

move text-054 to vartxt1.

replace '$VON' with rc09 into vartxt1.

write sum(shbetrag) to l_hlp_txt1(12)

currency t001-waers.

concatenate vartxt1 l_hlp_txt1 into l_hlp_txt separated by space.

lo_writer->write_inserted_line( l_hlp_txt ).

lo_writer->row_close( ib_inserted_line = abap_true ).

lo_writer->uline( ).

endif.

when '6'.

move text-054 to vartxt1.

replace '$VON' with rc10 into vartxt1.

write sum(shbetrag) to l_hlp_txt1(12)

currency t001-waers.

concatenate vartxt1 l_hlp_txt1 into l_hlp_txt separated by space.

lo_writer->write_inserted_line( l_hlp_txt ).

lo_writer->row_close( ).

lo_writer->uline( ).

when others.

write sum(shbetrag) to l_hlp_txt(12)

currency t001-waers.

lo_writer->write_inserted_line( l_hlp_txt ).

lo_writer->row_close( ).

lo_writer->uline( ).

endcase.

endif.

endat.

at end of satzart.

if satzart = '2'.

if rastverd < '2'.

if verdicht < '3'.

if acc_mode is initial.

if ( lo_writer->md_is_table_open = abap_true ) .

lo_writer->table_close( ). " Accessibility

endif.

  • ULINE.

endif.

endif.

endif.

endif.

endat.

if acc_mode is initial.

if konzvers is initial.

at end of lfb1-bukrs.

move space to bhdgd-grpin+4. "<= Micro-Fiche Info

if verdicht < '4'.

new-page.

move text-050 to varueb3.

replace '$BUK' with lfb1-bukrs into varueb3.

top-flag = '2'.

perform raster_ausgabe_bukrb.

endif.

endat.

at end of lfb1-bukrs.

move space to bhdgd-grpin+14. "<= Micro-Fiche Info

endat.

at end of lfa1-lifnr.

move space to bhdgd-grpin+10. "<= Micro-Fiche Info

endat.

else.

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.

move text-609 to l_title_part2.

else.

move text-165 to varueb4.

move text-665 to l_title_part2.

endif.

  • WRITE kD_STIDA TO H-STICHTAG DD/MM/YY.

replace '$STIDA' with h-stichtag into varueb4.

replace '$STIDA' with h-stichtag into l_title_part2.

flag2 = 'X'.

if acc_mode is initial.

concatenate varueb3 ',' into l_hlp_string.

concatenate l_hlp_string l_title_part2 into l_title_1 separated by space.

perform raster_ausgabe_total.

else.

perform raster_ausgabe_alv_grid.

endif.

clear flag2.

endat.

endloop.

if sy-pagno = 0. "Keine Liste ausgegeben

call function 'POPUP_NO_LIST'.

endif.

top-of-page.

*- Standard-Seitenkopf drucken -

-


*

perform batch-heading(rsbtchh0).

*-- ab der zweiten Seite pro Konto Ueberschrift fuer Einzelposten ---*

detail.

case top-flag.

when '1'.

*-- Ueberschriften fuer Listenteil 2 ausgeben -

-


*

when '2'.

if sortart = '1'.

if flag2 is initial.

concatenate varueb3 ',' into l_hlp_string.

concatenate l_hlp_string l_title_part2 into l_title_1 separated by space.

lo_writer->new_table( id_type = '5' id_title = l_title_1 ).

lo_writer->title_write( ).

varueb1-feld2 = text-500.

lo_writer->add_header_field( text-520 ).

lo_writer->add_header_field( text-519 ).

lo_writer->add_header_field( text-524 ).

lo_writer->add_header_field( text-525 ).

lo_writer->add_header_field( text-526 ).

lo_writer->add_header_field( varueb1-feld2 ).

lo_writer->add_header_field( varueb1-feld3 ).

lo_writer->add_header_field( varueb1-feld4 ).

lo_writer->add_header_field( varueb1-feld5 ).

lo_writer->add_header_field( varueb1-feld6 ).

lo_writer->add_header_field( varueb1-feld7 ).

lo_writer->add_header_field( '' ).

lo_writer->add_header_field( '' ).

lo_writer->add_header_field( '' ).

lo_writer->add_header_field( '' ).

lo_writer->add_header_field( '' ).

lo_writer->add_header_field( varueb2-feld2 ).

lo_writer->add_header_field( varueb2-feld3 ).

lo_writer->add_header_field( varueb2-feld4 ).

lo_writer->add_header_field( varueb2-feld5 ).

lo_writer->add_header_field( varueb2-feld6 ).

lo_writer->add_header_field( varueb2-feld7 ).

lo_writer->ruler_write( ).

else.

concatenate varueb3 ',' into l_hlp_string.

concatenate l_hlp_string l_title_part2 into l_title_1 separated by space.

lo_writer->new_table( id_type = '2' id_title = l_title_1 ).

lo_writer->title_write( ).

varueb1-feld2 = text-500.

lo_writer->add_header_field( text-520 ).

lo_writer->add_header_field( text-522 ).

lo_writer->add_header_field( text-524 ).

lo_writer->add_header_field( text-525 ).

lo_writer->add_header_field( text-526 ).

lo_writer->add_header_field( varueb1-feld2 ).

lo_writer->add_header_field( varueb1-feld3 ).

lo_writer->add_header_field( varueb1-feld4 ).

lo_writer->add_header_field( varueb1-feld5 ).

lo_writer->add_header_field( varueb1-feld6 ).

lo_writer->add_header_field( varueb1-feld7 ).

lo_writer->add_header_field( '' ).

lo_writer->add_header_field( text-523 ).

lo_writer->add_header_field( '' ).

lo_writer->add_header_field( '' ).

lo_writer->add_header_field( '' ).

lo_writer->add_header_field( varueb2-feld2 ).

lo_writer->add_header_field( varueb2-feld3 ).

lo_writer->add_header_field( varueb2-feld4 ).

lo_writer->add_header_field( varueb2-feld5 ).

lo_writer->add_header_field( varueb2-feld6 ).

lo_writer->add_header_field( varueb2-feld7 ).

lo_writer->ruler_write( ).

endif.

else.

concatenate varueb3 ',' into l_hlp_string.

concatenate l_hlp_string l_title_part2 into l_title_1 separated by space.

lo_writer->new_table( id_type = '2' id_title = l_title_1 ).

lo_writer->title_write( ).

varueb1-feld2 = text-500.

lo_writer->add_header_field( text-520 ).

lo_writer->add_header_field( text-522 ).

lo_writer->add_header_field( text-524 ).

lo_writer->add_header_field( text-525 ).

lo_writer->add_header_field( text-526 ).

lo_writer->add_header_field( varueb1-feld2 ).

lo_writer->add_header_field( varueb1-feld3 ).

lo_writer->add_header_field( varueb1-feld4 ).

lo_writer->add_header_field( varueb1-feld5 ).

lo_writer->add_header_field( varueb1-feld6 ).

lo_writer->add_header_field( varueb1-feld7 ).

lo_writer->add_header_field( '' ).

lo_writer->add_header_field( text-523 ).

lo_writer->add_header_field( '' ).

lo_writer->add_header_field( '' ).

lo_writer->add_header_field( '' ).

lo_writer->add_header_field( varueb2-feld2 ).

lo_writer->add_header_field( varueb2-feld3 ).

lo_writer->add_header_field( varueb2-feld4 ).

lo_writer->add_header_field( varueb2-feld5 ).

lo_writer->add_header_field( varueb2-feld6 ).

lo_writer->add_header_field( varueb2-feld7 ).

lo_writer->ruler_write( ).

endif.

when '3'.

*-- Ueberschrift fuer Stammsatzinformationen -

-


*

when '4'.

concatenate text-549 text-110 lfb1-bukrs text-111 lfb1-busab text-112 lfa1-kunnr

l_title_part2 into l_title_1 separated by space.

lo_writer->new_table( id_type = '1' id_title = l_title_1 ).

lo_writer->add_group_header_field( text-550 ).

lo_writer->add_header_field( text-551 ).

lo_writer->add_header_field( text-552 ).

lo_writer->add_header_field( text-553 ).

lo_writer->add_header_field( text-554 ).

lo_writer->add_header_field( text-555 ).

lo_writer->add_header_field( text-556 ).

lo_writer->add_header_field( text-557 ).

lo_writer->add_header_field( text-558 ).

lo_writer->add_header_field( text-559 ).

lo_writer->add_header_field( text-560 ).

lo_writer->title_write( ).

lo_writer->ruler_write( ).

endcase.

*----


*

  • 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-alt = 'X'.

rart = '3'.

else.

if rart-ueb = 'X'.

rart = '4'.

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 varueb1-feld1.

move text-163 to varueb2-feld1.

move text-201 to varueb2-feld2.

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 lfc1-um01s then lfc1-um02s until lfc1-um16s giving h-soll

according to bmonat.

add lfc1-um01h then lfc1-um02h until lfc1-um16h giving h-haben

according to bmonat.

h-saldo = h-soll - h-haben + lfc1-umsav.

  • aktueller Saldo = Teil des Gesamtobligos --------------------------*

  • PERFORM SALDO_AKTUELL.

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.

  • Jahresumsatz -------------------------------------------------------*

  • C-KUMUM = lfC1-KUMUM. ECKERT: FELD KUMUM NICHT MEHR VORHANDEN

add lfc1-um01u then lfc1-um02u until lfc1-um16u giving c-kumum

according to bmonat.

if sortart = '1' . "Ausgabe kum Kum.Umsatz wenn Hauswährung gewünscht.

  • Kum. Umsatz---------------------------------------------------------*

clear rtab.

move: lfc1-bukrs to rtab-bukrs.

  • SORTK = 1.

  • Satz für Ausgabe des kummulierten 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.

endif.

endform. "KUM_WERTE

*----


*

  • FORM SONDER_UMSAETZE *

*----


*

  • ........ *

*----


*

form sonder_umsaetze.

  • CLEAR: C.

  • Errechnen Sonderumsatz-Salden, Gesamtsaldo ------------------------*

*----


Trend, Umsatz pro Gesch.Bereich -


*

h-shbls = lfc3-solll - lfc3-habnl.

*-- Gesamt-Obligo -

-


*

c-agobli = lfc3-saldv + h-shbls.

perform cfaktor.

if cfakt ne 0.

checkagobl = checkagobl + c-agobli / cfakt.

else.

checkagobl = checkagobl + c-agobli.

endif.

*-- Sonderumsatz-Salden -

-


*

case lfc3-shbkz.

when humkz1.

c-umkz1 = lfc3-shbkz.

c-sums1 = c-sums1 + lfc3-saldv + h-shbls.

when humkz2.

c-umkz2 = lfc3-shbkz.

c-sums2 = c-sums2 + lfc3-saldv + h-shbls.

when humkz3.

c-umkz3 = lfc3-shbkz.

c-sums3 = c-sums3 + lfc3-saldv + h-shbls.

when humkz4.

c-umkz4 = lfc3-shbkz.

c-sums4 = c-sums4 + lfc3-saldv + h-shbls.

when humkz5.

c-umkz5 = lfc3-shbkz.

c-sums5 = c-sums5 + lfc3-saldv + h-shbls.

when humkz6.

c-umkz6 = lfc3-shbkz.

c-sums6 = c-sums6 + lfc3-saldv + h-shbls.

when humkz7.

c-umkz7 = lfc3-shbkz.

c-sums7 = c-sums7 + lfc3-saldv + h-shbls.

when humkz8.

c-umkz8 = lfc3-shbkz.

c-sums8 = c-sums8 + lfc3-saldv + h-shbls.

when humkz9.

c-umkz9 = lfc3-shbkz.

c-sums9 = c-sums9 + lfc3-saldv + h-shbls.

when humkz10.

c-umkz10 = lfc3-shbkz.

c-sums10 = c-sums10 + lfc3-saldv + h-shbls.

when others.

c-sonob = c-sonob + lfc3-saldv + h-shbls.

endcase.

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-alt = 'X'.

if sortart = '1'.

perform r using atage '3' bsega-dmshb posten_waers.

else.

perform r using atage '3' bsega-wrshb posten_waers.

endif.

endif.

if rart-ueb = 'X'.

if sortart = '1'.

perform r using utage '4' bsega-dmshb posten_waers.

else.

perform r using utage '4' 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: bsik-bukrs to rtab-bukrs,

'0' to rtab-sortk,

bsik-gsber to rtab-gsber,

r_waers to rtab-waers,

r_art to rtab-raart,

r_betrag to rtab-opsum.

*-- gesperrte Posten -

-


*

if bsik-zlspr ne space.

if bsik-zlspr ne '*'.

move r_betrag to rtab-sperr.

endif.

endif.

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.

define address_line.

if not adrs-line&2 is initial.

lo_writer->row_open( ).

concatenate text-113 '(&1):' into l_hlp_txt.

lo_writer->single_write_field( l_hlp_txt ).

lo_writer->single_write_field( adrs-line&2(35) ).

lo_writer->row_close( ).

endif.

end-of-definition.

if not lfb1-bukrs is initial.

if not konzvers is initial.

check xbukrdat = 0.

endif.

endif.

perform obligos.

if konzvers is initial or

lfb1-bukrs is initial.

  • <<<<<<<<<<<< Anschrift >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

lo_writer->section_write( text-113 ).

lo_writer->format_normal( ).

address_line: 1 0, 2 1, 3 2, 4 3, 5 4, 6 5, 7 6, 8 7, 9 8, 10 9.

lo_writer->uline( ).

endif.

  • <<<<<<<<<<<< Obligos >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

if not aobligo[] is initial.

lo_writer->section_write( text-116 ).

lo_writer->format_normal( ).

loop at aobligo from 1 to 12.

shbbez = aobligo-ltext.

asums = aobligo-oblig.

lo_writer->row_open( ).

concatenate shbbez text-161 into l_hlp_txt.

lo_writer->single_write_field( l_hlp_txt ).

write asums to l_hlp_txt(12)

currency t001-waers

no-zero

round faktor

decimals stellen.

lo_writer->single_write_field( l_hlp_txt(12) ).

lo_writer->row_close( ).

endloop.

lo_writer->uline( ).

endif.

  • <<<<<<<<<<<<<<<<<<<< Umsatzdaten >>>>>>>>>>>>>>>>>>>>>>>>>>>>>

lo_writer->section_write( text-115 ).

lo_writer->format_normal( ).

lo_writer->row_open( ).

lo_writer->single_write_field( text-122 ).

write c-kumum to l_hlp_txt(12)

currency t001-waers

no-zero

round faktor

decimals stellen.

lo_writer->single_write_field( l_hlp_txt(12) ).

lo_writer->row_close( ).

lo_writer->table_close( ).

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 lfb1-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 '**'.

gbzaehl = gbzaehl + 1.

endif.

if acc_mode is initial.

reserve 5 lines.

if gb-gsber ne '**'.

lo_writer->format_subtotal( ).

else.

lo_writer->format_total( ).

endif.

top-flag = '2'.

lo_writer->row_open( ).

lo_writer->single_write_field( rbuk-gsber ).

if sortart = '1' and konzvers is initial.

write rtab-sperr to l_hlp_txt(11)

currency gb-waers

round faktor

decimals stellen no-zero.

lo_writer->single_write_field( l_hlp_txt(11) ).

else.

lo_writer->single_write_field( gb-waers ).

endif.

if sortart = '1' and konzvers is initial.

write rtab-anzah to l_hlp_txt(11)

currency t001-waers

round faktor

decimals stellen.

lo_writer->single_write_field( l_hlp_txt(11) ).

write rtab-opsum to l_hlp_txt(12)

currency t001-waers

round faktor

decimals stellen.

lo_writer->single_write_field( l_hlp_txt(12) ).

else.

write rtab-anzah to l_hlp_txt(11)

currency gb-waers

round faktor

decimals stellen.

lo_writer->single_write_field( l_hlp_txt(11) ).

write rtab-opsum to l_hlp_txt(12)

currency gb-waers

round faktor

decimals stellen.

lo_writer->single_write_field( l_hlp_txt(12) ).

endif.

endif.

else.

if acc_mode is initial.

lo_writer->row_open( ).

endif.

endif.

if acc_mode is initial.

case rasteruu.

when '1'. " Net-Fae

lo_writer->single_write_field( i_field = text-019 i_abs_position = 5 ).

when '2'. " Skt-Fae

lo_writer->single_write_field( i_field = text-020 i_abs_position = 5 ).

when '3'. " Zhl-Fae

lo_writer->single_write_field( i_field = text-021 i_abs_position = 5 ).

when '4'. " Alt-Fae

lo_writer->single_write_field( i_field = text-022 i_abs_position = 5 ).

endcase.

if sortart = '1' and konzvers is initial.

do 6 times varying l_raster from rtab-rast1 next rtab-rast2.

write l_raster to l_hlp_txt(11)

currency t001-waers no-zero

round faktor decimals stellen.

lo_writer->single_write_field( l_hlp_txt(11) ).

enddo.

else.

do 6 times varying l_raster from rtab-rast1 next rtab-rast2.

write l_raster to l_hlp_txt(12)

currency gb-waers no-zero

round faktor decimals stellen.

lo_writer->single_write_field( l_hlp_txt(12) ).

enddo.

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-lifnr = lfa1-lifnr.

rtab_alv-name1 = lfa1-name1.

rtab_alv-land1 = lfa1-land1.

rtab_alv-sortl = lfa1-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 = 6.

endcase.

if konzvers is initial

and not lfb1-bukrs is initial.

rtab_alv-bukrs = lfb1-bukrs.

endif.

if not rtab_alv-bukrs is initial.

rtab_alv-busab = lfb1-busab.

endif.

  • if ... is initial.

move c-kumum to rtab_alv-kumum.

move gb-gsber to rtab_alv-gsber.

  • endif.

if not rtab_alv is initial.

append rtab_alv.

endif.

endif.

endform. "RASTER_AUSGABE

*----


*

  • FORM SUM_BUKRS_TOTAL *

*----


*

  • ........ *

*----


*

form sum_bukrs_total.

if rtab-sortk = '0'.

if konzvers is initial

or ( not konzvers is initial

and not rtab-bukrs is initial ) .

*-- Summen pro Buchungskreis -

-


*

move-corresponding rtab to rbuk.

move: lfb1-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: lfb1-bukrs to rbuk-bukrs,

'**' to rbuk-gsber,

'1' to rbuk-sortk.

collect rbuk.

  • ENDIF.

endif.

*-- Summen fuer Listenteil 2 ermitteln -

-


*

move: lfb1-bukrs to rtab-bukrs,

gb-gsber to rtab-gsber,

gb-waers to rtab-waers.

collect rtab.

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

if sortart = '1'.

move-corresponding rtab to rbuk.

move: lfb1-bukrs to rbuk-bukrs,

gb-gsber to rbuk-gsber,

gb-waers to rbuk-waers,

'2' to rbuk-sortk.

collect rbuk.

endif.

endif.

endform. "SUM_BUKRS_TOTAL

*----


*

  • FORM EINZELPOSTEN_AUSGABE *

*----


*

  • ........ *

*----


*

form einzelposten_ausgabe.

lo_writer->format_normal( ).

lo_writer->row_open( ).

lo_writer->single_write_field( lfb1-bukrs ).

lo_writer->single_write_field( gb-gsber ).

write tage to l_hlp_txt(8).

lo_writer->single_write_field( l_hlp_txt(8) ).

lo_writer->single_write_field( bsik-umskz ).

lo_writer->single_write_field( bsik-blart ).

lo_writer->single_write_field( bsik-belnr ).

write bsik-buzei to l_hlp_txt(3).

lo_writer->single_write_field( l_hlp_txt(3) ).

write bsega-netdt to l_hlp_txt(8).

lo_writer->single_write_field( l_hlp_txt(8) ).

write bsik-zfbdt to l_hlp_txt(8).

lo_writer->single_write_field( l_hlp_txt(8) ).

write bsik-budat to l_hlp_txt(8).

lo_writer->single_write_field( l_hlp_txt(8) ).

write bsik-bldat to l_hlp_txt(8).

lo_writer->single_write_field( l_hlp_txt(8) ).

lo_writer->single_write_field( bsik-bschl ).

lo_writer->single_write_field( bsik-zlsch ).

write bsik-manst no-zero to l_hlp_txt(1).

lo_writer->single_write_field( l_hlp_txt(1) ).

write bsega-dmshb currency t001-waers to l_hlp_txt(21).

lo_writer->single_write_field( l_hlp_txt(21) ).

lo_writer->single_write_field( bsik-waers ).

write bsega-wrshb currency bsik-waers no-zero to l_hlp_txt(20).

lo_writer->single_write_field( l_hlp_txt(20) ).

lo_writer->row_close( ).

endform. "EINZELPOSTEN_AUSGABE

*----


*

  • FORM RASTER_AUSGABE_BUKRB *

*----


*

  • ........ *

*----


*

form raster_ausgabe_bukrb.

if rastverd < '2'.

detail.

sort rbuk.

clear gbzaehl.

loop at rbuk.

  • 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 '**'.

lo_writer->format_subtotal( ).

else.

lo_writer->format_total( ).

endif.

if rbuk-sortk ne '2'.

  • Bei der ersten Rasterart Anzahlungen usw. ausgeben ---------*

if rbuk-raart = rart.

if rbuk-gsber ne '**'.

gbzaehl = gbzaehl + 1.

endif.

reserve 5 lines.

lo_writer->row_open( ).

lo_writer->single_write_field( rbuk-gsber ).

if sortart = '1' and konzvers is initial.

write rbuk-sperr to l_hlp_txt(11)

currency t001-waers

round faktor

decimals stellen no-zero.

lo_writer->single_write_field( l_hlp_txt(11) ).

else.

lo_writer->single_write_field( rbuk-waers ).

endif.

if sortart = '2'.

write rbuk-anzah to l_hlp_txt(11)

currency rbuk-waers

round faktor

decimals stellen.

lo_writer->single_write_field( l_hlp_txt(11) ).

write rbuk-opsum to l_hlp_txt(12)

currency rbuk-waers

round faktor

decimals stellen.

lo_writer->single_write_field( l_hlp_txt(12) ).

else.

write rbuk-anzah to l_hlp_txt(11)

currency t001-waers

round faktor

decimals stellen.

lo_writer->single_write_field( l_hlp_txt(11) ).

write rbuk-opsum to l_hlp_txt(12)

currency t001-waers

round faktor

decimals stellen.

lo_writer->single_write_field( l_hlp_txt(12) ).

endif.

else.

lo_writer->row_open( ).

endif.

case rbuk-raart.

when '1'. " Net-Fae

lo_writer->single_write_field( i_field = text-019 i_abs_position = 5 ).

when '2'. " Skt-Fae

lo_writer->single_write_field( i_field = text-020 i_abs_position = 5 ).

when '3'. " Zhl-Fae

lo_writer->single_write_field( i_field = text-021 i_abs_position = 5 ).

when '4'. " Alt-Fae

lo_writer->single_write_field( i_field = text-022 i_abs_position = 5 ).

endcase.

if sortart = '1' and konzvers is initial.

do 6 times varying l_raster from rbuk-rast1 next rbuk-rast2.

write l_raster to l_hlp_txt(11)

currency t001-waers no-zero

round faktor decimals stellen.

lo_writer->single_write_field( l_hlp_txt(11) ).

enddo.

else.

do 6 times varying l_raster from rbuk-rast1 next rbuk-rast2.

write l_raster to l_hlp_txt(12)

currency rbuk-waers no-zero

round faktor decimals stellen.

lo_writer->single_write_field( l_hlp_txt(12) ).

enddo.

endif.

else.

  • Ausgabe des Jahresumsatzes -----------------------------------------*

lo_writer->format_total( ).

lo_writer->row_open( ).

clear l_hlp_txt.

write: rbuk-gsber(4) to l_hlp_txt,

text-166 to l_hlp_txt+7,

rbuk-kumum currency t001-waers to l_hlp_txt+87(18).

lo_writer->write_inserted_line( l_hlp_txt ).

lo_writer->row_close( ib_inserted_line = abap_true ).

endif.

at end of waers.

lo_writer->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-feld1.

move text-106 to varueb2-feld1.

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.

lo_writer->format_total( ).

loop at rsum.

  • Bei Verdichtung der Geschaeftsbereiche nur das Summenraster ausgeben*

if rastverd = '1' and verdicht > 0.

check rsum-sortk = '1'.

endif.

  • Bei der ersten Rasterart Umsatz, Anzahlungen usw. ausgeben ---------*

if rsum-raart = rart.

reserve 5 lines.

lo_writer->row_open( ).

lo_writer->single_write_field( '**' ).

lo_writer->single_write_field( rsum-waers ).

write rsum-anzah to l_hlp_txt(11)

currency rsum-waers

round faktor

decimals stellen.

lo_writer->single_write_field( l_hlp_txt(11) ).

write rsum-opsum to l_hlp_txt(12)

currency rsum-waers

round faktor

decimals stellen.

lo_writer->single_write_field( l_hlp_txt(12) ).

else.

lo_writer->row_open( ).

endif.

case rsum-raart.

when '1'. " Net-Fae

lo_writer->single_write_field( i_field = text-019 i_abs_position = 5 ).

when '2'. " Skt-Fae

lo_writer->single_write_field( i_field = text-020 i_abs_position = 5 ).

when '3'. " Zhl-Fae

lo_writer->single_write_field( i_field = text-021 i_abs_position = 5 ).

when '4'. " Alt-Fae

lo_writer->single_write_field( i_field = text-022 i_abs_position = 5 ).

endcase.

do 6 times varying l_raster from rsum-rast1 next rsum-rast2.

write l_raster to l_hlp_txt(13)

currency rsum-waers no-zero

round faktor decimals stellen.

lo_writer->single_write_field( l_hlp_txt(13) ).

enddo.

at end of waers.

lo_writer->uline( ).

endat.

lo_writer->row_close( ).

endloop.

endif.

endform. "RASTER_AUSGABE_TOTAL

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 = 'K'.

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 = 'K'

and umskz = char1.

if not t074u-merkp is initial.

if sy-batch is initial.

set cursor field 'UMSATZKZ'.

endif.

message w376 with char1 'K'.

endif.

select single * from t074t

where spras = sy-langu

and koart = 'K'

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 e375 with char1 'K'.

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

clear refbl.

move-corresponding bsik to hbsik.

move-corresponding bsega to hbsik.

move ntage to hbsik-ntage.

move stage to hbsik-stage.

move atage to hbsik-atage.

move utage to hbsik-utage.

append hbsik.

move-corresponding bsik to refbl.

move ntage to refbl-ntage.

move stage to refbl-stage.

move atage to refbl-atage.

move utage to refbl-utage.

append refbl.

endform. "EINZELPOSTEN_SAVE

*----


*

  • FORM EINZELPOSTEN_LINK *

*----


*

  • ........ *

*----


*

form einzelposten_link.

loop at hbsik

where rebzg ne space.

loop at refbl

where bukrs = hbsik-bukrs

and belnr = hbsik-rebzg

and gjahr = hbsik-rebzj

and buzei = hbsik-rebzz.

hbsik-ntage = refbl-ntage.

hbsik-stage = refbl-stage.

hbsik-atage = refbl-atage.

hbsik-utage = refbl-utage.

modify hbsik.

endloop.

endloop.

endform. "EINZELPOSTEN_LINK

*----


*

  • FORM EINZELPOSTEN_PROC *

*----


*

  • ........ *

*----


*

form einzelposten_proc.

loop at hbsik

where bukrs = lfb1-bukrs.

if t001-bukrs ne lfb1-bukrs.

read table ht001 with key bukrs = lfb1-bukrs.

t001 = ht001.

endif.

clear bsik.

clear bsega.

move-corresponding hbsik to bsik.

move-corresponding hbsik to bsega.

ntage = hbsik-ntage.

stage = hbsik-stage.

atage = hbsik-atage.

utage = hbsik-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-alt = 'X'.

tage = atage.

else.

if rart-ueb = 'X'.

tage = utage.

endif.

endif.

endif.

endif.

case bsik-umsks.

*----


Anzahlungen sammeln -


*

*----


auch wenn nicht von aussen abgegrenzt -


*

when 'A'.

clear rtab.

if bsik-bstat ne 'S'.

move: bsik-bukrs to rtab-bukrs,

'0' to rtab-sortk,

bsik-gsber to rtab-gsber,

rart to rtab-raart.

if sortart = '2'.

move bsik-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 bsik-waers.

move bsik-waers to gb-waers.

endif.

---- nur bei Verdichtungsstufe '0' werden EINZELPOSTEN extrahiert --

if verdicht = '0'.

move '3' to satzart.

move bsik-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 bsik-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 kd_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 = 'BSIK'.

append ls_fieldcat to rt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-tabname = g_tabname.

ls_fieldcat-fieldname = 'LIFNR'.

  • LS_FIELDCAT-KEY = ' '. "sets key field

ls_fieldcat-ref_fieldname = 'LIFNR'.

ls_fieldcat-ref_tabname = 'LFA1'.

append ls_fieldcat to rt_fieldcat.

clear ls_fieldcat.

ls_fieldcat-tabname = g_tabname.

ls_fieldcat-fieldname = 'NAME1'.

  • LS_FIELDCAT-KEY = ' '. "sets key field

ls_fieldcat-ref_fieldname = 'NAME1'.

ls_fieldcat-ref_tabname = 'LFA1'.

append ls_fieldcat to rt_fieldcat.

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 = 'LFB1'.

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 = 'LFA1'.

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 = 'LFA1'.

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 = 'BSIK'.

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 = 'BSIK'.

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 = 'BSIK'.

  • 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 = 'KD_LIFNR'.

lt_seltab-sign = 'I'.

lt_seltab-option = 'EQ'.

lt_seltab-low = rtab_alv-lifnr.

append lt_seltab.

if not rtab_alv-bukrs is initial.

lt_seltab-selname = 'KD_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 = kd_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 rfitemap 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

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi Abhay,

i think the only way is to copy zfi_kfa_RFKOPR00 from RFKOPR00 on the

4.70-System and do the changes wich you have done under 6.0.

I'm not quite sure, but i think it's not possible to create the

class cl_dopr_writer in 4.7 like in 6.0.

Regards, Dieter

4 REPLIES 4

Former Member
0 Kudos

Hi Abhay,

Check cl_dopr_writer is available in 4.7.

Satish

0 Kudos

Hi satish I have checked its not available. SO any other alteranatives.

See if u can help on the same.

Thanks.

0 Kudos

Abhay,

If it is not available check for alternative class which will serve the same purpose as cl_dopr_writer.

Reward points if helps,

Satish

Former Member
0 Kudos

Hi Abhay,

i think the only way is to copy zfi_kfa_RFKOPR00 from RFKOPR00 on the

4.70-System and do the changes wich you have done under 6.0.

I'm not quite sure, but i think it's not possible to create the

class cl_dopr_writer in 4.7 like in 6.0.

Regards, Dieter