*Differenzenbuchung
#main

*--------------------------------------------------
* Variablen:
* Zeile     aktuelle Zeilenummer
* ZlStart1  Zeilenvorschuebe nach Kopf auf Seite 1
* ZlStart2  Zeilenvorschuebe nach Kopf ab  Seite 2
* cyKD      Zeilenvorschuebe nach dem Dateikopf
* 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
*--------------------------------------------------
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,6)

ZlMax=     61
RandX=      1,80
RandY=      0,80
SizeX=      17,5
Seite=      1
Zeile=      0
cyZeile= 2,54/6

Heute=H
IFNOT ISVAR(FltTyp)
  VAR FltTyp(u,1,0)
IFNOT ISVAR(FltKto)
  VAR FltKto(u,8,0)
FltTyp=F
FltKto=

REC recOPT(OPTIONEN,0,5) 7008
REC recFSAD(EIGENE_ANSCHRIFTEN,0,2)01
REC recMAIN(TMPDIFF,0,0)

OUT INITPAGESIZE
OUT STARTJOB Kontenblatt
OUT TRANSPARENT
OUT STARTPAGE
OUT ##KopfSeite
OUT ##KopfDetail

LOOP recMAIN(#loopMAIN)

*==== :Kond_83BD Bedingungscode
IF BOOL(($[Zeile]) = (0))
  GOTO :EndJob

Zeile=$[ZlMax]
OUT ##FussSeite
OUT ENDPAGE

:EndJob
OUT ENDJOB

RETURN


#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

#Fuss
Zeile=$[ZlMax]
OUT ##FussSeite
OUT ENDPAGE
* naechste Seite anfangen
Seite=$[Seite]+1
Zeile=0
OUT STARTPAGE

#end

#Kopf
OUT ##KopfSeite
OUT ##KopfDetail
* OUT ##Uebertrag

#end

##KopfSeite
CY=2
L= 0;0;85;1;Times New Roman,10,F;$[recFSAD.NAME1] $[recFSAD.NAME2], $[recFSAD.STRASSE], $[recFSAD.PLZORT]
R=85,0;0,0;15,0;1,0;Arial,10,N;$[Heute]
L=0,0;1,0;85,0;1,0;Times New Roman,12,F;Differenzenbuchungen
R=85,0;1,0;15,0;1,0;Arial,10,N;-$[Seite]-

#end

##KopfDetail
CY=3
L=0;0;100;1; ;\-
L=0,0;1,0;10,0;1,0;Times New Roman,10,F;Datum
L=10,0;1,0;10,0;1,0;Times New Roman,10,F;Beleg-Nr.
R=68,0;1,0;8,0;1,0;Times New Roman,10,F;Konto
R=76,0;1,0;12,0;1,0;Times New Roman,10,F;Soll
R=88,0;1,0;12,0;1,0;Times New Roman,10,F;Haben
L=0;2;100;1; ;\-

#end

##Linie
* TODO: beschreiben Sie hier die Verwendung
CY=1
L=0;0;100;1; ;\-

#end

##FussSeite
CY=3
L=0;0;100;1; ;\-
L=0;2;100;1; ;\-

#end

##outloopMAIN
CY=1
L=0,0;0,0;10,0;1,0;Arial,10,F;$[recMAIN.TAG].$[recMAIN.MONAT].$[recMAIN.JAHR]
L=10,0;0,0;10,0;1,0;Arial,10,F;$[recMAIN.BELNR]
L=50,0;0,0;18,0;1,0;Arial,10,F;$[recMAIN.BELNREXT]
R=76,0;0,0;12,0;1,0;Arial,10,F;$[mSoll]
R=88,0;0,0;12,0;1,0;Arial,10,F;$[mHaben]
L=20,0;0,0;30,0;1,0;Arial,10,F;$[recKTO.Name]
R=68,0;0,0;8,0;1,0;Arial,10,F;$[recKTO.Konto]

#end

##outloopTRN
CY=1
L=20,0;0,0;48,0;1,0;Arial,10,N;$[recTRN.Text]
R=68,0;0,0;8,0;1,0;Arial,10,N;$[recTRN.Konto]
R=76,0;0,0;12,0;1,0;Arial,10,N;$[recTRN.Soll]
R=88,0;0,0;12,0;1,0;Arial,10,N;$[recTRN.Haben]

#end

#loopTRN
* Unterprgramm von ReportMain/loopMAIN
* Datensatzschleife recTRN
SUB #CheckPage
OUT ##outloopTRN

RETURN

#end

#loopMAIN
* Datensatzschleife recMAIN

VAR mSoll(N,12,2)
VAR mHaben(N,12,2)

*==== :Kond_5F3E Bedingungscode
IF BOOL(($[recMAIN.GU]) <> (0))
  GOTO :Kond_5F3E_if
ELSE
  GOTO :Kond_5F3E_else
*==== :Kond_5F3E IF-Zweig  (Generalumkehr)
:Kond_5F3E_if
* TODO Code eintragen

IF BOOL(($[recMAIN.BETRAG]) < (0))
  mHaben= $[recMAIN.BETRAG]
ELSE
  mSoll=  0.00 - $[recMAIN.BETRAG]

GOTO :Kond_5F3E_end
*==== :Kond_5F3E ELSE-Zweig (keine Generalumkehr)
:Kond_5F3E_else
* TODO Code eintragen

IF BOOL(($[recMAIN.BETRAG]) < (0))
  mSoll=  0.00 - $[recMAIN.BETRAG]
ELSE
  mHaben= $[recMAIN.BETRAG]

GOTO :Kond_5F3E_end
*==== :Kond_5F3E Ende
:Kond_5F3E_end

REC recKTO(KONTENPLAN,0,9)S$[recMAIN.KONTO<8]
SUB #CheckPage
OUT ##outloopMAIN
REC recTRN(BUCHUNGSZEILEN,1,8)$[recMAIN.TRANSNO<8]
LOOP recTRN(#loopTRN)

RETURN

#end

