*Telefonliste
#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(faellig)
  VAR faellig(L,1,0)

IFNOT ISVAR(KdNr)
  VAR KdNr(u,15,0)

VAR mGESbetrag(d,8,2)
VAR mGESbezahlt(d,8,2)
VAR mGESoffen(d,8,2)
VAR nLinesExtra(l,4,0)
VAR mFillState(L,1,0)

mFillState=1

* 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(ADRESSSTAMM,2,0)

*==== :Kond_A051 Bedingungscode
IF EMPTY(KdNr)
  REC recMAIN(ZAHLUNGSÜBERWACHUNG,3,1) 
ELSE
  REC recMAIN(ZAHLUNGSÜBERWACHUNG,2,16) $[KdNr<15]

*-----------------------------------------------------------------------------
* 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;12,0;1,0;Arial,10,F;Beleg-Nr.
L=20,0;1,0;9,0;1,0;Arial,10,F;Datum
R=76,0;1,0;12,0;1,0;Arial,10,F;Bezahlt
R=88,0;1,0;12,0;1,0;Arial,10,F;Offen
L=0;2;100;1; ;\-
R=64,0;1,0;12,0;1,0;Arial,10,F;Betrag
C=56,0;1,0;4,0;1,0;Arial,10,F;MS
C=52,0;1,0;4,0;1,0;Arial,10,F;WT
L=29,0;1,0;8,0;1,0;Arial,10,F;B.fällig
L=43,0;1,0;9,0;1,0;Arial,10,F;M.fällig
R=37,0;1,0;4,0;1,0;Arial,10,F;Tage
L=60,0;1,0;4,0;1,0;Arial,10,F;WKZ
L=12,0;1,0;8,0;1,0;Arial,10,F;Kunde

#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

#end

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

#end

##outMAIN
CY=2
L=0,0;0,0;12,0;1,0;Arial,10,N;$[recMAIN.BELART]/$[recMAIN.BELNR>8]
L=20,0;0,0;9,0;1,0;Arial,10,N;$[recMAIN.BELDATUM<6]$[recMAIN.BELDATUM>2]
R=76,0;0,0;12,0;1,0;Arial,10,N;$[recMAIN.BezahltSum]
R=88,0;0,0;12,0;1,0;Arial,10,N;$[mBtrOffen]
R=64,0;0,0;12,0;1,0;Arial,10,N;$[recMAIN.Brutto]
C=56,0;0,0;4,0;1,0;Arial,10,N;$[recMAIN.MahnStufe]
C=52,0;0,0;4,0;1,0;Arial,10,N;$[recMP.WarteTage]
L=29,0;0,0;9,0;1,0;Arial,10,N;$[recDate2.Text<6]$[recDate2.Text>2]
L=43,0;0,0;9,0;1,0;Arial,10,N;$[recMAIN.FDatum<6]$[recMAIN.FDatum>2]
R=38,0;0,0;3,0;1,0;Arial,10,N;$[mTagZahl]
L=60,0;0,0;4,0;1,0;Arial,10,N;$[recMAIN.Waehrung]
L=12,0;0,0;8,0;1,0;Arial,10,N;$[recMAIN.ADRESSNR]
L=12,0;1,0;52,0;1,0;Arial,10,N;$[mNameTel]

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

*==== :Kond_CCA9 Bedingungscode
IF BOOL(($[mFillState]) <> (0))
  GOTO :DoFill

mFillState= 1
RETURN


:DoFill
mFillState= 0
mFillStart= $[RandY] + ($[cyZeile] * $[Zeile])
mFillHeight=$[cyZeile] * 2
OUT RGBFILL $[RandX];$[mFillStart];$[SizeX];$[mFillHeight];15263976
RETURN

#end

#loopMAIN
IF YIELD($[recMAIN.BELNR]/$[recMAIN.BELDATUM])
   GOTO :NoBreak
BREAK recMAIN
RETURN
:NoBreak

VAR tmpDate(C,8,0)
VAR tmpHeute(C,8,0)
VAR mTagZahl(l,4,0)
VAR mBtrOffen(d,8,2)

tmpHeute=$[Heute<5]
tmpHeute=$[Heute>4]$[tmpHeute>2]$[tmpHeute<2]

REC recDate1(VIRTUELLES_DATUM,1,0)
REC recDate2(VIRTUELLES_DATUM,0,0)
REC recDateH(VIRTUELLES_DATUM,1,8)$[tmpHeute<8]
REC recMP(MAHNPLAN,0,4)$[recMAIN.MahnPlan>2]$[recMAIN.MahnStufe>2]

tmpDate=$[recMAIN.BELDATUM<5]
tmpDate=$[recMAIN.BELDATUM>4]$[tmpDate>2]$[tmpDate<2]
SEEK recDate1($[tmpDate<8])
mTagZahl=$[recDate1.Tagzahl]+$[recMAIN.Faelligkei]
SEEK recDate2($[mTagZahl>5])
mTagZahl=$[recDateH.Tagzahl] - $[recDate2.Tagzahl]
mBtrOffen=$[recMAIN.Brutto] - $[recMAIN.BezahltSum]

* nur fällige ??
IF BOOL(($[faellig]) & ($[mTagZahl] < 0))
  RETURN

* ==============================================================
* Name und Telefon berechnen

REC recDEST(ADRESSSTAMM,0,15)$[recMAIN.ADRESSNR<15]
REC recBELEG(BELEGADRESSEN,0,19)$[recMAIN.BELART>2]$[recMAIN.BELNR]$[recMAIN.PRJNR<8]0
VAR mNameTel(C,250,0)

IF EOF(recBELEG)
  GOTO :AdrFromDest

*=========== Adresse von recBELEG gewinnen
mNameTel=$[recBELEG.Vorname]
IF EMPTY(mNameTel)
  mNameTel=$[recBELEG.Name1]
ELSE
  mNameTel=$[mNameTel] $[recBELEG.Name1]
mNameTel=$[mNameTel]    Tel.: $[recBELEG.Telefon1]
GOTO :AdrEnde

*=========== Adresse von recDEST gewinnen
:AdrFromDest
mNameTel=$[recDEST.VorName]
IF EMPTY(mNameTel)
  mNameTel=$[recDEST.Name1]
ELSE
  mNameTel=$[mNameTel] $[recDEST.Name1]
mNameTel=$[mNameTel]    Tel.: $[recDEST.Telefon1]

:AdrEnde


nLinesExtra=1
SUB #CheckPage
SUB #subFillLine
OUT ##outMAIN

IF BOOL(($[recMAIN.Eurokurs]) = (0))
  recMAIN.Eurokurs= 1.00

mGESbetrag=  $[mGESbetrag]  + ($[recMAIN.Brutto]     / $[recMAIN.Eurokurs])
mGESbezahlt= $[mGESbezahlt] + ($[recMAIN.BezahltSum] / $[recMAIN.Eurokurs])
mGESoffen=   $[mGESbetrag]  - $[mGESbezahlt]

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=Rechnungen in der Zahlungsüberwachung
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

##FussSeite
CY=3
L=0;0;100;1; ;\-
L=0,0;1,0;30,0;1,0;Arial,10,F;Überträge
L=60,0;1,0;4,0;1,0;Arial,10,F;EUR
R=88,0;1,0;12,0;1,0;Arial,10,F;$[mGESoffen]
R=76,0;1,0;12,0;1,0;Arial,10,F;$[mGESbezahlt]
R=64,0;1,0;12,0;1,0;Arial,10,F;$[mGESbetrag]
L=0;2;100;1; ;\-

#end

##FussBericht
CY=3
L=0;0;100;1; ;\-
L=0,0;1,0;30,0;1,0;Arial,10,F;Summe alle
L=60,0;1,0;4,0;1,0;Arial,10,F;EUR
R=88,0;1,0;12,0;1,0;Arial,10,F;$[mGESoffen]
R=76,0;1,0;12,0;1,0;Arial,10,F;$[mGESbezahlt]
R=64,0;1,0;12,0;1,0;Arial,10,F;$[mGESbetrag]
L=0;2;100;1; ;\-

#end

