*DTAUS
#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 mBankHdr(C,200,0)

*-------------------------------------------------------------------------
IFNOT ISVAR(mName)
  VAR mName(C,30,0)
IFNOT ISVAR(mBLZ)
  VAR mBLZ(u,8,0)
IFNOT ISVAR(mKTO)
  VAR mKTO(u,10,0)
IFNOT ISVAR(mPosNr)
  VAR mPosNr(l,4,0)
IFNOT ISVAR(mLast)
  VAR mLast(L,1,0)

*-------------------------------------------------------------------------
* Datensatz eigene Anschrift
* Datensatz eigene Bankleitzahl
REC recADR(EIGENE_ANSCHRIFTEN,0,2)01
REC recBLZ1(BANKLEITZAHLEN,0,8)$[mBLZ<8]

IF BOOL(mLast)
  mBankHdr=Lastschriften zu Gunsten Konto $[mKTO] bei $[recBLZ1.Bankname] (BLZ $[mBLZ])
ELSE
  mBankHdr=Überweisungen zu Lasten Konto $[mKTO] bei $[recBLZ1.Bankname] (BLZ $[mBLZ])

* Code für den
* Berichtsablauf ein.

VAR mxSumme(N,12,2)

SUB #subPaperDefs
OUT INITPAGESIZE
OUT STARTJOB DTAUS $[recBLZ1.Bankname] $[Heute]
OUT TRANSPARENT

SUB #subListe
SUB #subZettel


OUT ENDJOB


#end

##KopfBericht
CY=4
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,0;1,0;15,0;1,0;Times New Roman,10,N;$[mDatum]
R=85,0;2,0;15,0;1,0;Times New Roman,10,N;Seite -$[Seite]-

#end

##KopfSeite
CY=4
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,0;1,0;15,0;1,0;Times New Roman,10,N;$[mDatum]
R=85;2;15;1;Times New Roman,10,N;Seite -$[Seite]-

#end

##KopfDetail
CY=5
L=0,0;2,0;100,0;1,0; ;\-
L=0,0;4,0;100,0;1,0; ;\-
R=76,0;3,0;12,0;1,0;Arial,10,F;KTO/BLZ
R=88,0;3,0;12,0;1,0;Arial,10,F;Euro
L=0,0;3,0;5,0;1,0;Arial,10,F;Pos.
L=0,0;1,0;100,0;1,0;Arial,10,F;$[mBankHdr]
L=6,0;3,0;35,0;1,0;Arial,10,F;Empfänger
L=41,0;3,0;35,0;1,0;Arial,10,F;Verwendungszweck

#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

#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] - 1))
   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

##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=AVIS
Heute=H
RandX=      1,80
RandY=      0,80
SizeX=      17,5
Seite=      1
Zeile=      0
cyZeile=    2.54/$[mLPI]
ZlMax=     (26.5/$[cyZeile]) - 4

RETURN

#end

##outListe
CY=3
R=0,0;0,0;4,0;1,0;Arial,10,N;$[mPosNr].
L=6,0;0,0;35,0;1,0;Arial,10,N;$[recListe.Name]
L=6,0;1,0;35,0;1,0;Arial,10,N;$[recBLZ2.Bankname]
L=41,0;0,0;35,0;1,0;Arial,10,N;$[recListe.Zweck1]
L=41,0;1,0;35,0;1,0;Arial,10,N;$[recListe.Zweck2]
R=88,0;0,0;12,0;1,0;Arial,10,N;$[recListe.Betrag]
R=76,0;0,0;12,0;1,0;Arial,10,N;$[recListe.KTO]
R=76,0;1,0;12,0;1,0;Arial,10,N;$[recListe.BLZ]
L=0,0;2,0;100,0;1,0; ;\-

#end

#loopListe
* Unterprogramm von ReportMain/subListe
* Datensatzschleife recListe

IF BOOL(($[recListe.Gueltig]) = (0))
  RETURN


mPosNr=$[mPosNr] + 1
REC recBLZ2(BANKLEITZAHLEN,0,8)$[recListe.BLZ<8]
SUB #CheckPage
OUT ##outListe
mxSumme=$[mxSumme] + $[recListe.Betrag]

RETURN

#end

#subListe
* Ausdrucken der Positionsliste

OUT STARTPAGE
RepTitel=Datenträgeraustausch
Zeile=0
Seite=1
mPosNr=0
OUT ##KopfBericht
OUT ##KopfDetail

REC recListe(VDTAUS,-1,0)
LOOP recListe(#loopListe)


* letzte Seite abschliessen
Zeile=$[ZlMax]
OUT ##FussBericht
OUT ##outPost
OUT ENDPAGE
RETURN

#end

##outKopfZettel
CY=5
L=0,0;2,0;100,0;1,0; ;\-
L=0,0;3,0;100,0;1,0;Arial,10,F;$[mPosNr] $[mBankHdr]
L=0,0;4,0;100,0;1,0; ;\-

#end

##outSummC
CY=2
L=0,0;1,0;50,0;1,0;Courier New,12,N;Anzahl Datensätze C
L=50,0;1,0;50,0;1,0;Courier New,12,F;$[msC]

#end

##outSummEUR
* Ausgabe für ReportMain/subZettel
CY=2
L=0,0;1,0;50,0;1,0;Courier New,12,N;Gesamtsumme in EUR
L=50,0;1,0;50,0;1,0;Courier New,12,F;$[msEUR]

#end

##outSummBLZ
* Ausgabe für ReportMain/subZettel
CY=2
L=0,0;1,0;50,0;1,0;Courier New,12,N;Kontrollsumme / BLZ
L=50,0;1,0;50,0;1,0;Courier New,12,F;$[msBLZ]

#end

##outSummKTO
* Ausgabe für ReportMain/subZettel
CY=2
L=0,0;1,0;50,0;1,0;Courier New,12,N;Kontrollsumme / Kto.Nr.
L=50,0;1,0;50,0;1,0;Courier New,12,F;$[msKTO]

#end

##outOrtDatum
CY=6
L=0,0;1,0;100,0;1,0; ;\-
L=0,0;4,0;50,0;1,0;Courier New,12,N;Ort / Datum
L=50,0;4,0;35,0;1,0;Courier New,12,F;$[recADR.PlzOrt]
R=85,0;4,0;15,0;1,0;Courier New,12,F;/ $[mDatum]
L=50,0;5,0;50,0;0,4; ;\-

#end

##outSignum
CY=3
L=0,0;2,0;50,0;1,0;Courier New,12,N;Unterschrift
L=50,0;3,0;50,0;0,4; ;\-

#end

#subZettel
* Ausdrucken des Begleitzettels

OUT STARTPAGE
RepTitel=Begleitzettel zum Datenträgeraustausch
Zeile=0
Seite=1
OUT ##KopfBericht
OUT ##outKopfZettel
OUT ##outSummC
OUT ##outSummEUR
OUT ##outSummBLZ
OUT ##outSummKTO
OUT ##outOrtDatum
OUT ##outSignum

* letzte Seite abschliessen
Zeile=$[ZlMax]
OUT ##FussBericht
OUT ##outPost
OUT ENDPAGE
RETURN

#end

##FussSeite
*  Ausgabe fuer den allgemeinen Seitenfuss 
* ausser der letzten Seite
CY=3
L=0;0;100;1; ;\-

*R=80;0;20;1;Times New Roman,12,F;Übertrag

L=0;2;100;1; ;\-

#end

##FussBericht
CY=3
L=0;0;100;1; ;\-
L=0;2;100;1; ;\-
R=60,0;1,0;40,0;1,0;Arial,10,F;$[mPosNr] Posten = EUR $[mxSumme]

#end

