*Buchen_Zahlungseingan
#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
REC recADR(EIGENE_ANSCHRIFTEN,0,2)01

*-------------------------------------------------------------------------
* Prüfen der Übergabe von Filtervariablen
IFNOT ISVAR(bBuchen)
  VAR bBuchen(L,1,0)

VAR nLinesExtra(l,4,0)
VAR mNotFirst(L,1,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.
REC recMAIN(ZAHLUNGSÜBERWACHUNG,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

*==== :Kond_40B0 Bedingungscode
IF BOOL(($[bBuchen]) <> (0))
  SUB #subSchliessen


#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;Arial,10,F;Projekt
R=8,0;1,0;2,0;1,0;Arial,10,F;BA
R=75,0;1,0;10,0;1,0;Arial,10,F;Soll
R=90,0;1,0;10,0;1,0;Arial,10,F;Haben
L=0;2;100;1; ;\-
R=70,0;1,0;5,0;1,0;Arial,10,F;Ust.
L=44,0;1,0;10,0;1,0;Arial,10,F;Datum
R=58,0;1,0;11,0;1,0;Arial,10,F;Betrag
L=54,0;1,0;4,0;1,0;Arial,10,F;WKZ
R=10,0;1,0;8,0;1,0;Arial,10,F;BelNr.
R=85,0;1,0;5,0;1,0;Arial,10,F;Ust.
L=19,0;1,0;9,0;1,0;Arial,10,F;KdNr.

#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
*mFillState=1
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] - $[nLinesExtra]))
   SUB #Fuss
nLinesExtra=0

* Kopfbereich ausgeben, wenn erste Zeile erreicht
IF BOOL($[Zeile] <> 0)
   RETURN

SUB #Kopf
SUB #subFillLine
OUT ##outMAIN
mNotFirst=TRUE

#end

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

#end

##outMAIN
CY=1
L=0,0;0,0;8,0;1,0;Arial,10,N;$[recMAIN.PRJNR]
R=8,0;0,0;2,0;1,0;Arial,10,N;$[recMAIN.BELART]
R=10,0;0,0;8,0;1,0;Arial,10,N;$[recMAIN.BELNR]
L=19,0;0,0;9,0;1,0;Arial,10,N;$[recMAIN.ADRESSNR]
L=44,0;0,0;10,0;1,0;Arial,10,N;$[recMAIN.BELDATUM<6]$[recMAIN.BELDATUM>2]
R=58,0;0,0;11,0;1,0;Arial,10,N;$[recMAIN.Brutto]
L=54,0;0,0;4,0;1,0;Arial,10,N;$[recMAIN.Waehrung]
L=28,0;0,0;15,0;1,0;Arial,10,N;$[recMAIN.Name1]
L=70,0;0,0;30,0;1,0;Arial,10,N;$[recMAIN.Betreff1]

#end

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

#end

##outLineFeed
CY=1

#end

#subFillLine
* Unterprogramm von ReportMain/loopMAIN

VAR mFillStart(d,8,2)
VAR mFillHeight(d,8,2)

mFillStart= $[RandY] + ($[cyZeile] * $[Zeile])
mFillHeight=$[cyZeile] * 1
OUT RGBFILL $[RandX];$[mFillStart];$[SizeX];$[mFillHeight];15263976
RETURN

#end

##outloopPOSTEN
CY=1
R=90,0;0,0;10,0;1,0;Arial,10,N;$[recPOSTEN.FibuKtoAuf]
R=75,0;0,0;10,0;1,0;Arial,10,N;$[recPOSTEN.FibuKtoVon]
L=19,0;0,0;24,0;1,0;Arial,10,N;$[recPOSTEN.BuchText]
L=44,0;0,0;10,0;1,0;Arial,10,N;$[recPOSTEN.Datum<6]$[recPOSTEN.Datum>2]
L=54,0;0,0;4,0;1,0;Arial,10,N;$[recPOSTEN.Waehrung]
R=58,0;0,0;11,0;1,0;Arial,10,N;$[recPOSTEN.Betrag]
R=70,0;0,0;5,0;1,0;Arial,10,N;$[recKTOS.Schl]
R=85,0;0,0;5,0;1,0;Arial,10,N;$[recKTOH.Schl]
R=10,0;0,0;8,0;1,0;Arial,10,N;$[recPOSTEN.BLZVon]

#end

#loopPOSTEN
* Unterprogramm von ReportMain/loopMAIN
* Datensatzschleife recPOSTEN

**recPOSTEN.Ausgl=0
**UPDATE recPOSTEN

IF BOOL(($[recPOSTEN.Ausgl]) <> (0))
  RETURN
IF EMPTY(recPOSTEN.FibuKtoVon)
  RETURN
IF EMPTY(recPOSTEN.FibuKtoAuf)
  RETURN

SUB #CheckPage
IF BOOL(($[mNotFirst]) <> (0))
  GOTO :NoHead

SUB #subFillLine
OUT ##outMAIN
mNotFirst=1

:NoHead

* =========================================================
* Kladdensatz intialisieren
VAR szTmp(C,20,0)
REC recKLADDE(BUCHUNGSKLADDE,100,0)
IF EOF(recKLADDE)
  recKLADDE.TransNo=00000000

recKLADDE.LfdNr=00000000
szTmp=$[recPOSTEN.Datum>7]
recKLADDE.Jahr=$[recPOSTEN.Datum>4]
recKLADDE.Monat=$[szTmp<2]
recKLADDE.Tag=$[recPOSTEN.Datum<2]
recKLADDE.KtoSoll=
recKLADDE.KtoHaben=
recKLADDE.UstSchl=
recKLADDE.Betrag=$[recPOSTEN.Betrag]
recKLADDE.Waehrung=$[recPOSTEN.Waehrung]
recKLADDE.BuText=$[recPOSTEN.BuchText]
recKLADDE.BelegNr=$[recPOSTEN.BLZVon]
recKLADDE.Verb_Bsh=0
recKLADDE.Verb_Ext=1
recKLADDE.Kst=
recKLADDE.Ktr=$[recMAIN.PRJNR]
recKLADDE.Faellig=0
recKLADDE.SkoFrist=0
recKLADDE.SkoSatz=0
recKLADDE.Name1=
recKLADDE.Name2=
recKLADDE.Strasse=
recKLADDE.Plz=
recKLADDE.Ort=
recKLADDE.PrjNr=$[recMAIN.PRJNR]
recKLADDE.KontoArtS=0
recKLADDE.KontoArtH=0

* =========================================================

IF BOOL(($[recPOSTEN.FibuKtoVon]) > (9999))
  REC recKTOS(KONTENPLAN,0,9)P$[recPOSTEN.FibuKtoVon<8]
ELSE
  REC recKTOS(KONTENPLAN,0,9)S$[recPOSTEN.FibuKtoVon<8]

IF BOOL(($[recPOSTEN.FibuKtoAuf]) > (9999))
  REC recKTOH(KONTENPLAN,0,9)P$[recPOSTEN.FibuKtoAuf<8]
ELSE
  REC recKTOH(KONTENPLAN,0,9)S$[recPOSTEN.FibuKtoAuf<8]

SUB #CheckPage
OUT ##outloopPOSTEN

IFNOT BOOL($[bBuchen])
  RETURN

INCHEX recKLADDE.TransNo

INCHEX recKLADDE.LfdNr
recKLADDE.KtoSoll=$[recPOSTEN.FibuKtoVon]
recKLADDE.KtoHaben=
recKLADDE.UstSchl=$[recKTOS.Schl]
APPEND recKLADDE

INCHEX recKLADDE.LfdNr
recKLADDE.KtoSoll=
recKLADDE.KtoHaben=$[recPOSTEN.FibuKtoAuf]
recKLADDE.UstSchl=$[recKTOH.Schl]
APPEND recKLADDE

recPOSTEN.Ausgl=1
UPDATE recPOSTEN

RETURN

#end

#loopMAIN
IF YIELD($[recMAIN.BELNR]/$[recMAIN.BELDATUM])
   GOTO :NoBreak
IF BOOL(($[bBuchen]) <> (0))
   GOTO :NoBreak
BREAK recMAIN
RETURN
:NoBreak

mNotFirst=0
REC recPOSTEN(ZAHLUNGSPOSTEN,0,10)$[recMAIN.BELART<2]$[recMAIN.BELNR<8]
LOOP recPOSTEN(#loopPOSTEN)

*SUB #CheckPage
*SUB #subFillLine
*OUT ##outMAIN

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

IF BOOL($[bBuchen])
  RepTitel=Buchungsstapel Zahlungseingang
ELSE
  RepTitel=Buchungsvorschlag Zahlungseingang

Heute=H
RandX=      1,30
RandY=      0,80
SizeX=      18,0
Seite=      1
Zeile=      0
cyZeile=    2,54 / $[mLPI]
ZlMax=     25,5  / $[cyZeile]

RETURN

#end

#loopABSCHL
* Unterprgramm von OnPostReport/subSchliessen
* Datensatzschleife recABSCHL

*==== :Kond_4150 Bedingungscode
IF BOOL(($[recABSCHL.Brutto] - $[recABSCHL.BezahltSum]) <> (0,00))
  RETURN

*==== :Kond_4196 Bedingungscode
IF CMP(recABSCHL.Status,=)G
  RETURN

recABSCHL.Status=G
UPDATE recABSCHL

RETURN

#end

#subSchliessen
* Unterprogramm von OnPostReport
IFNOT YESNO(Ausgeglichene Posten abschliessen ?)
  RETURN

REC recABSCHL(ZAHLUNGSÜBERWACHUNG,0,0)
LOOP recABSCHL(#loopABSCHL)

RETURN

#end

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

#end

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

#end

