*ADC_Uebernahme
#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)

* Datensatz EIGENE_ANSCHRIFTEN
* dieser Datensatz wird immer gebraucht
REC recADR(EIGENE_ANSCHRIFTEN,0,2)01

*-------------------------------------------------------------------------
IFNOT ISVAR(FltKred)
   VAR FltKred(u,8,0)

* Code für den
* Berichtsablauf ein.

SUB #subPaperDefs

* TODO 
* fügen Sie hier eine Datensatzvariable
* mit dem Namen recMAIN ein.
* Diese Variable beinhaltet die Leittabelle.
* Beispiel:  REC recMAIN(ADRESSSTAMM,0,0)
REC recMAIN(TMPOP03,0,0)

*-----------------------------------------------------------------------------
* 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;0,0;100,0;1,0; ;\-
L=0,0;1,0;10,0;1,0;Arial,10,F;Konto
L=0;2;100;1; ;\-
R=68,0;1,0;10,0;1,0;Arial,10,F;Skonto
R=78,0;1,0;10,0;1,0;Arial,10,F;Zahlung
R=88,0;1,0;12,0;1,0;Arial,10,F;Buchung
R=58,0;1,0;10,0;1,0;Arial,10,F;Ausgeb.

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

##outMAIN
CY=1
L=0,0;0,0;10,0;1,0;Arial,10,F;$[recMAIN.KTOKRED]
R=78,0;0,0;10,0;1,0;Arial,10,F;$[recMAIN.BETRAG] S
R=68,0;0,0;10,0;1,0;Arial,10,F;$[recMAIN.SKONTO] S
R=58,0;0,0;10,0;1,0;Arial,10,F;$[recMAIN.AUSBUCHEN] S
L=10,0;0,0;30,0;1,0;Arial,10,N;$[recMAIN.NAME]
L=40,0;0,0;18,0;1,0;Arial,10,N;$[recKtoZ.Name]
R=88,0;0,0;12,0;1,0;Arial,10,F;$[mSumme] S

#end

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

#end

##outLineFeed
CY=1

#end

##outloopDETAIL
CY=1
R=0,0;0,0;9,0;1,0;Arial,10,N;$[recKTO.Konto]
L=40,0;0,0;30,0;1,0;Arial,10,N;$[recKTO.Name]
L=10,0;0,0;30,0;1,0;Arial,10,N;$[recDETAIL.BELNREXT] $[recDETAIL.BUTEXT]
R=88,0;0,0;12,0;1,0;Arial,10,N;$[mSH]

#end

#loopDETAIL
* Unterprgramm von ReportMain/loopMAIN
* Datensatzschleife recDETAIL
REC recKTO(KONTENPLAN,0,9)$[recDETAIL.TYP<1]$[recDETAIL.KONTO<8]
VAR mSH(C,20,0)

*==== :Kond_4DFA Bedingungscode
IF BOOL(($[recDETAIL.SOLL]) <> (0))
  mSH=$[recDETAIL.SOLL] S
IF BOOL(($[recDETAIL.HABEN]) <> (0))
  mSH=$[recDETAIL.HABEN] H

SUB #CheckPage
OUT ##outloopDETAIL

RETURN

#end

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

Zeile=$[Zeile]+1

#end

#loopMAIN
* Unterprogramm von ReportMain
* Datensatzschleife recMAIN

IF EMPTY(FltKred)
  GOTO :Output
IFNOT CMP(recMAIN.KTOKRED,=)$[FltKred]
  RETURN

:Output
REC recKtoZ(KONTENPLAN,0,9)S$[recMAIN.KTOZAHL<8]
REC recDETAIL(TMPOP05,1,5)$[recMAIN.IDENT>5]
VAR mSumme(N,12,2)
mSumme=$[recMAIN.BETRAG] + $[recMAIN.SKONTO] + $[recMAIN.AUSBUCHEN]

SUB #subChPgM
OUT ##outMAIN
LOOP recDETAIL(#loopDETAIL)

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=8

RepTitel=Geplanter OP-Ausgleich
Heute=H
RandX=      1,80
RandY=      0,80
SizeX=      17,5
Seite=      1
Zeile=      0
cyZeile=    2.54/$[mLPI]
ZlMax=     (26.5/$[cyZeile]) - 2

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
*  Ausgabe fuer den letzten Seitenfuss 
CY=3
L=0;0;100;1; ;\-

*L=0;0;100;1;Times New Roman,12,F;$[recADR.BANK1_KONT]

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

#end

