*offene_Debitorenposten
#main
*-------------------------------------------------------------------------
* Variablen:
* Zeile     aktuelle Zeilenummer
* ZlMax     Zeile ab der der Fussbereich beginnt
* Seite     Seitennummer beginnend mit 1
* RandX     linker Rand in cm
* RandY     oberer Rand in cm
* SizeX     Druckbreite ab Rand links
* recMAIN   Datensatz fuer Main-Schleifen
*--------------------------------------------------------------------------
VAR RepTitel(C,50,0)
VAR Zeile(s,2,0)
VAR ZlMax(s,2,0)
VAR Seite(s,2,0)
VAR RandX(d,8,2)
VAR RandY(d,8,2)
VAR SizeX(d,8,2)
VAR Heute(D,10,0)
VAR cyZeile(d,8,3)
VAR mLPI(s,2,0)
VAR mSumme(d,8,2)
VAR mTop(L,1,0)
VAR mFilter(u,6,0)

* Datensatz EIGENE_ANSCHRIFTEN
REC recADR(EIGENE_ANSCHRIFTEN,0,2)01


* Code für den
* Berichtsablauf ein.

SUB #subPaperDefs
REC recMAIN(KONTENPLAN,0,1)P

*-----------------------------------------------------------------------------
* Vorbereiten der Ausgabe 
* Initialisierung der Drucksteuerdaten
OUT INITPAGESIZE
OUT STARTJOB $[RepTitel]
OUT TRANSPARENT
OUT STARTPAGE
Zeile=0
OUT ##KopfBericht
OUT ##KopfDetail
*-----------------------------------------------------------------------------
* Aufruf des Unterprogramms loopMAIN fuer jeden Datensatz
* der an recMAIN gebundenen Tabelle
LOOP recMAIN(#loopMAIN)

* ----------------------------------------------------
* Druckdatei abschliessen
Zeile=$[ZlMax]
OUT ##FussBericht
OUT ##outPost
OUT ENDPAGE
OUT ENDJOB


#end

##KopfBericht
CY=3
L=0;0;50;1;Times New Roman,10,N;$[recADR.NAME1] $[recADR.NAME2]
L=0;1;50;1;Times New Roman,10,N;$[recADR.STRASSE]
L=0,0;2,0;50,0;1,0;Times New Roman,10,N;$[recADR.PLZORT]
R=50;0;50;1;Times New Roman,10,F;$[RepTitel]
R=85;1;15;1;Times New Roman,10,N;$[Heute]
R=85;2;15;1;Times New Roman,10,N;Seite -$[Seite]-

#end

##KopfSeite
CY=3
L=0;0;50;1;Times New Roman,10,N;$[recADR.NAME1] $[recADR.NAME2]
L=0;1;50;1;Times New Roman,10,N;$[recADR.STRASSE]
L=0,0;2,0;50,0;1,0;Times New Roman,10,N;$[recADR.PLZORT]
R=50;0;50;1;Times New Roman,10,F;$[RepTitel]
R=85;1;15;1;Times New Roman,10,N;$[Heute]
R=85;2;15;1;Times New Roman,10,N;Seite -$[Seite]-

#end

##KopfDetail
CY=3
L=0;0;100;1; ;\-
L=0,0;1,0;8,0;1,0;Times New Roman,10,F;Konto
L=8,0;1,0;11,0;1,0;Times New Roman,10,F;Datum
R=68,0;1,0;10,0;1,0;Times New Roman,10,F;VST 7%
R=88,0;1,0;12,0;1,0;Times New Roman,10,F;Brutto
L=0;2;100;1; ;\-
R=78,0;1,0;10,0;1,0;Times New Roman,10,F;VST-ges.
R=46,0;1,0;12,0;1,0;Times New Roman,10,F;Netto
R=58,0;1,0;10,0;1,0;Times New Roman,10,F;VST 16%
R=19,0;1,0;15,0;1,0;Times New Roman,10,F;org. Betrag
R=34,0;1,0;12,0;1,0;Times New Roman,10,F;Betrag

#end

##outUebertr
CY=1
R=88,0;0,0;12,0;1,0;Times New Roman,10,F;$[mSumme]
L=8,0;0,0;20,0;1,0;Arial,10,F;Summe Umsatz Übertrag

#end

#Kopf
* Dieser Code wird immer beim Seitenwchsel
* aufgerufen, um den Kopf der nächsten Seite
* auszugeben
* Der Kopf für die erste Seite steht jedoch
* im Codestück OnPreReport

Zeile=0
OUT ##KopfSeite
OUT ##KopfDetail
OUT ##outUebertr
mTop=1

#end

#Fuss
* Dieser Code wird immer beim Seitenwchsel
* aufgerufen, um den Fuss der aktuellen Seite
* auszugeben
* Der Fuss für die letzte Seite steht jedoch
* im Codestück OnPostReport

Zeile=$[ZlMax]
OUT ##FussSeite
OUT ##outPost
OUT ENDPAGE
Seite=$[Seite]+1
Zeile=0
OUT STARTPAGE

#end

#CheckPage
* Fussbereich ausgeben, wenn letzte Zeile erreicht
IF BOOL($[Zeile] >= $[ZlMax])
   SUB #Fuss
* Kopfbereich ausgeben, wenn erste Zeile erreicht
IF BOOL($[Zeile] = 0)
   SUB #Kopf

#end

#NeueSeite
* nächste Seite anfangen
SUB #Fuss
SUB #Kopf

#end

##outLine
CY=1
L=0;0;100;1; ;\-

#end

##outLineFeed
CY=1

#end

#loopTRN
* Unterprogramm von ReportMain/loopMAIN/loopPOST
* Datensatzschleife recTRN
REC recKTO2(KONTENPLAN,0,9)$[recTRN.Typ<1]$[recTRN.Konto<8]
IF CMP(recTRN.Typ,=)P
  RETURN

IF CMP(recKTO2.KzKasse,=)U
  GOTO :DoUst
IF CMP(recKTO2.KzKasse,=)N
  GOTO :DoNetto
RETURN

:DoNetto
mNetto=$[mNetto] + $[recTRN.Soll] - $[recTRN.Haben]
RETURN

:DoUst
IF CMP(recKTO2.Schl,=)009
  GOTO :DoUst9
IF CMP(recKTO2.Schl,=)008
  GOTO :DoUst8

mUstS=$[mUstS] + $[recTRN.Soll] - $[recTRN.Haben]
RETURN

:DoUst9
mUst9=$[mUst9] + $[recTRN.Soll] - $[recTRN.Haben]
RETURN

:DoUst8
mUst8=$[mUst8] + $[recTRN.Soll] - $[recTRN.Haben]
RETURN

#end

##outMAIN
CY=2
R=46,0;0,0;12,0;1,0;Arial,10,N;$[mNetto]
L=0,0;0,0;8,0;1,0;Arial,10,N;$[recMAIN.Konto]
R=19,0;0,0;15,0;1,0;Arial,10,N;$[mBtrOrg] $[mWaeOrg]
R=78,0;0,0;10,0;1,0;Arial,10,N;$[mUstG]
R=68,0;0,0;10,0;1,0;Arial,10,N;$[mUst8]
R=58,0;0,0;10,0;1,0;Arial,10,N;$[mUst9]
R=88,0;0,0;12,0;1,0;Arial,10,N;$[mBrutto]
L=34,0;1,0;34,0;1,0;Arial,10,N;$[recPOST.BelNr] $[recPOST.Text]
L=8,0;0,0;11,0;1,0;Arial,10,N;$[recPOST.Tag].$[recPOST.Monat].$[recPOST.Jahr]
R=34,0;0,0;12,0;1,0;Arial,10,N;$[mBetrag]
L=8,0;1,0;26,0;1,0;Arial,10,N;$[recMAIN.Name]
R=68,0;1,0;10,0;1,0;Arial,10,N;$[recPOST.Kst]
R=78,0;1,0;10,0;1,0;Arial,10,N;$[recPOST.Ktr]

#end

#loopPOST
* Unterprogramm von ReportMain/loopMAIN
* Datensatzschleife recPOST
* prüfen, ob das ein Haben-Posten ist
VAR mBtrOrg(d,8,2)
VAR mBetrag(d,8,2)
VAR mWaeOrg(u,3,0)
VAR mNetto(d,8,2)
VAR mUst9(d,8,2)
VAR mUst8(d,8,2)
VAR mUstS(d,8,2)
VAR mUstG(d,8,2)
VAR mBrutto(d,8,2)

IF BOOL(($[recPOST.Haben]) = (0))
  RETURN

mBtrOrg=$[recPOST.BtrOrg]
mWaeOrg=$[recPOST.BtrWae]
mBetrag=$[recPOST.Haben]

* gesamte Transaktion nach recTRN durchgehen
REC recTRN(BUCHUNGSZEILEN,1,8)$[recPOST.TransNo<8]
LOOP recTRN(#loopTRN)
mBrutto=$[mNetto]+$[mUst9]+$[mUst8]+$[mUstS]
mUstG=$[mUst9]+$[mUst8]+$[mUstS]

SUB #CheckPage
OUT ##outMAIN
mSumme=$[mSumme]+$[mBrutto]

RETURN

#end

#loopMAIN
* Unterprogramm von ReportMain
* Datensatzschleife recMAIN
IF CMP(recMAIN.Konto,<)70000   
  RETURN

REC recDEST(ADRESSSTAMM,8,8)$[recMAIN.Konto<8]
IFNOT EMPTY(recMAIN.Name)
   GOTO :PostLoop
recMAIN.Name=$[recDEST.Name1]
UPDATE recMAIN

:PostLoop
* recPOST Postentabelle für dieses Konto
* -----------------------------------------------------------------------------
REC recPOST(BUCHUNGSZEILEN,0,15)$[recMAIN.Typ<1]$[recMAIN.Konto<8]$[mFilter<6]
LOOP recPOST(#loopPOST)

RETURN

#end

##outPost
CY=2
L= 0;0;15;1;Arial,8,N;$[recADR.BANK1_NAME]  
L=15;0;35;1;Arial,8,N;(BLZ: $[recADR.BANK1_BLZ])  Kto-Nr. $[recADR.BANK1_KONT]
L=0,0;1,0;15,0;1,0;Arial,8,N;$[recADR.BANK2_NAME]
L=15;1;35;1;Arial,8,N;(BLZ: $[recADR.BANK2_BLZ])  Kto-Nr. $[recADR.BANK2_KONT]
L=50;0;15;1;Arial,8,N;Telefon
L=50;1;15;1;Arial,8,N;$[recADR.TELEFON]
L=65;0;15;1;Arial,8,N;Telefax
L=65,0;1,0;15,0;1,0;Arial,8,N;$[recADR.FAXNR]
R=80;0;20;1;Arial,8,N;E-Mail
R=80;1;20;1;Arial,8,N;$[recADR.NAME3]

#end

#subPaperDefs
* Definition des Basislayouts und Papiergrößen

* Zeilen per Inc
mLPI=6

RepTitel=Kreditorenumsatz
Heute=H
RandX=      1,80
RandY=      0,80
SizeX=      18,0
Seite=      1
Zeile=      0
cyZeile=    2.54/$[mLPI]
ZlMax=     61


*-------------------------------------------------------------------------
* Prüfen der Übergabe von Filtervariablen
VAR mTmp(u,10,0)
mTmp=$[Heute<5]
mTmp=$[Heute>4]$[mTmp>2]
mFilter=$[mTmp]

IFNOT ISVAR(mFltJahr)
  RETURN
IFNOT ISVAR(mFltMon)
  RETURN

mTmp=0$[mFltMon]
mTmp=$[mFltJahr>4]$[mTmp>2]
mFilter=$[mTmp]
RETURN

#end

##FussSeite
CY=3
L=0;0;100;1; ;\-
L=0;2;100;1; ;\-
R=88,0;1,0;12,0;1,0;Times New Roman,10,F;$[mSumme]
L=8,0;1,0;20,0;1,0;Arial,10,F;Summe Umsatz Übertrag

#end

##FussBericht
CY=3
L=0;0;100;1; ;\-
L=0;2;100;1; ;\-
R=88,0;1,0;12,0;1,0;Times New Roman,10,F;$[mSumme]
L=8,0;1,0;20,0;1,0;Arial,10,F;Summe Umsatz

#end

