*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)
VAR mNeueSeite(N,1,0)
VAR mTagMon(C,5,0)
VAR mVonZeit(C,8,0)
VAR mBisZeit(C,8,0)
VAR mSollStdSumme(N,12,2)
VAR mBetragSumme(N,12,2)
VAR mEkLohnSumme(N,12,2)
VAR mKopfLohn(N,1,0)
VAR mSollStdZwSumme(N,12,2)
VAR mBetragZwSumme(N,12,2)
VAR mEkLohnZwSumme(N,12,2)

* Datensatz EIGENE_ANSCHRIFTEN
REC recADR(EIGENE_ANSCHRIFTEN,0,2)01

*-------------------------------------------------------------------------
* Prüfen der Übergabe von Filtervariablen

IFNOT ISVAR(VonNum)
  VAR VonNum(u,15,0)
IFNOT ISVAR(BisNum)
  VAR BisNum(u,15,0)
IFNOT ISVAR(VonDatum)
  VAR VonDatum(u,10,0)
IFNOT ISVAR(BisDatum)
  VAR BisDatum(u,10,0)

mTagMon=$[VonDatum<5]
mVonZeit=$[VonDatum>4]$[mTagMon>2]$[mTagMon<2]
mTagMon=$[BisDatum<5]
mBisZeit=$[BisDatum>4]$[mTagMon>2]$[mTagMon<2]

* 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 recKND(ADRESSSTAMM,6,2) 4

*-----------------------------------------------------------------------------
* Vorbereiten der Ausgabe 
* Initialisierung der Drucksteuerdaten
OUT INITPAGESIZE
OUT STARTJOB $[RepTitel]
OUT TRANSPARENT
OUT STARTPAGE
Zeile=0
mNeueSeite=0
mKopfLohn=0


*-----------------------------------------------------------------------------

* Aufruf des Unterprogramms loopMAIN fuer jeden Datensatz
* der an recMAIN gebundenen Tabelle

LOOP recKND(#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;1;10;1;Arial,10,F;Datum
L=10,0;1,0;13,0;1,0;Arial,10,F;BelegNr
L=23,0;1,0;26,0;1,0;Arial,10,F;Vorhaben
R=49,0;1,0;11,0;1,0;Arial,10,F;Stunden
R=60,0;1,0;10,0;1,0;Arial,10,F;Betrag
R=70,0;1,0;10,0;1,0;Arial,10,F;erf.EKL
R=80,0;1,0;10,0;1,0;Arial,10,F;Faktor
R=90,0;1,0;10,0;1,0;Arial,10,F;EK-Lohn
L=0;2;100;1; ;\-

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

IF BOOL($[mNeueSeite]=0)
   RETURN

Zeile=$[ZlMax]
OUT ##FussSeite
OUT ##outPost
OUT ENDPAGE
Seite=$[Seite]+1
Zeile=0
OUT STARTPAGE

#end

##outMAIN
CY=1
L=0,0;0,0;10;1,0;Arial,10,N;$[mDatum]
L=10,0;0,0;13,0;1,0;Arial,10,N;$[mBelegNr]
L=23,0;0,0;26,0;1,0;Arial,10,N;$[mVorhaben]
R=49,0;0,0;11,0;1,0;Arial,10,N;$[mStunden]
R=60,0;0,0;10,0;1,0;Arial,10,N;$[mBetrag]
R=70,0;0,0;10,0;1,0;Arial,10,N;$[mErfEkl]
R=80,0;0,0;10,0;1,0;Arial,10,N;$[mFaktor]
R=90,0;0,0;10,0;1,0;Arial,10,N;$[mEkLohn]

#end

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

#end

##outLineFeed
CY=1

#end

##outKopfLOHN
CY=3
L=0,0;1,0;50,0;1,0;Arial,10,F;$[recLOHNART.lohnart] $[recLOHNART.lohnarttxt]
L=0,0;2,0;100,0;1,0; ;\-

#end

#loopZEIT

VAR mBeleg(C,15,0)
VAR mBelegNr(C,15,0)
VAR mDatum(C,10,0)
VAR mStunden(N,12,2)
VAR mBetrag(N,12,2)
VAR mBelegNr(C,15,0)
VAR mErfEkl(N,12,2)
VAR mFaktor(N,12,2)
VAR mEkLohn(N,12,2)
VAR mZeit(u,15,0)
VAR mVorhaben(C,15,0)

mNeueSeite=1
mZeit=$[recZEIT.jahr]$[recZEIT.monat]$[recZEIT.tag]

IF EMPTY(VonDatum)
GOTO :NoVonDatum
IF CMP(mVonZeit,>)$[mZeit<8]
RETURN
:NoVonDatum

IF EMPTY(BisDatum)
GOTO :NoBisDatum
IF CMP(mBisZeit,<)$[mZeit<8]
RETURN
:NoBisDatum

IFNOT CMP(recLOHNART.lohnart,=)$[recZEIT.lohnart<3]
RETURN

REC recBELEG(BELEGVERZEICHNIS,2,10)$[recZEIT.art<2]$[recZEIT.belegnr<8]
REC recLOHN(LOHNARTEN,0,3)$[recZEIT.lohnart<3]

IF BOOL($[mKopfLohn] = 0)
   SUB #CheckPage
IF BOOL($[mKopfLohn] = 0)
   OUT ##outKopfLOHN
mKopfLohn=1

mDatum=..
IF EMPTY(recZEIT.tag)
   GOTO :KeinDatum
IF EMPTY(recZEIT.monat)
   GOTO :KeinDatum
IF EMPTY(recZEIT.jahr)
   GOTO :KeinDatum
mDatum=$[recZEIT.tag].$[recZEIT.monat].$[recZEIT.jahr]
:KeinDatum

mBelegNr=..
IFNOT EMPTY(recZEIT.belegnr)
      mBelegNr=$[recZEIT.art] / $[recZEIT.belegnr]
mVorhaben=..
IFNOT EMPTY(recBELEG.VORHABEN)
      mVorhaben=$[recBELEG.VORHABEN]
mStunden=$[recZEIT.stunden]
mFaktor=1
IFNOT EOF(recLOHN)
      mFaktor=$[recLOHN.ekfaktor]
mBetrag=$[recZEIT.betrag]
mErfEkl=$[recZEIT.eklohn]
mEkLohn=$[mStunden] * $[mErfEkl] * $[mFaktor] + $[mBetrag]
IF BOOL($[recZEIT.eurokurs] > 0)
   mBetrag=$[mBetrag] / $[recZEIT.eurokurs]
IF BOOL($[recZEIT.eurokurs] > 0)
  mErfEkl=$[mErfEkl] / $[recZEIT.eurokurs]
IF BOOL($[recZEIT.eurokurs] > 0)
  mEkLohn=$[mEkLohn] / $[recZEIT.eurokurs]


mBetragSumme=$[mBetragSumme]+$[mBetrag]
mEkLohnSumme=$[mEkLohnSumme]+$[mEkLohn]
IF BOOL(1 = $[recLOHN.bsoll])
   mSollStdSumme=$[mSollStdSumme]+$[mStunden]

mBetragZwSumme=$[mBetragZwSumme]+$[mBetrag]
mEkLohnZwSumme=$[mEkLohnZwSumme]+$[mEkLohn]
IF BOOL(1 = $[recLOHN.bsoll])
   mSollStdZwSumme=$[mSollStdZwSumme]+$[mStunden]


SUB #CheckPage
OUT ##outMAIN
RETURN

#end

##outFussLOHN
CY=2
L=0,0;0,0;100,0;1,0; ;\-
L=0,0;1,0;40,0;1,0;Arial,10,K;Sollstdunden / Festbeträge / EkLohn
R=80,0;1,0;20,0;1,0;Arial,10,F;$[mEkLohnZwSumme]
R=60,0;1,0;10,0;1,0;Arial,10,F;$[mBetragZwSumme]
R=47,0;1,0;13,0;1,0;Arial,10,F;$[mSollStdZwSumme]

#end

#loopLOHNART

REC recZEIT(ZEITERFASSUNG,3,4)$[recKND.Annr<4]

mKopfLohn=0

mSollStdZwSumme=0
mBetragZwSumme=0
mEkLohnZwSumme=0

LOOP recZEIT(#loopZEIT)

IF BOOL($[mKopfLohn] = 1)
   SUB #CheckPage
IF BOOL($[mKopfLohn] = 1)
   OUT ##outFussLOHN

RETURN

#end

#loopMAIN

IF EMPTY(BisNum)
GOTO :NoBisNum
IF CMP(recKND.Annr,>)$[BisNum<4]
RETURN
:NoBisNum

IF EMPTY(VonNum)
GOTO :NoVonNum
IF CMP(recKND.Annr,<)$[VonNum<4]
RETURN
:NoVonNum

SUB #NeueSeite
OUT ##KopfSeite
OUT ##outKopfInfo
OUT ##KopfDetail


REC recLOHNART(LOHNARTEN,0,0)

mBetragSumme=0
mEkLohnSumme=0
mSollStdSumme=0

LOOP recLOHNART(#loopLOHNART)

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

RETURN

#end

##outKopfInfo
CY=7
L=0,0;0,0;100,0;1,0; ;\-
L=0,0;2,0;50,0;1,0;Arial,10,F;$[recKND.Annr]
L=0,0;3,0;50,0;1,0;Arial,10,N;$[recKND.VorName] $[recKND.Name1]
L=0,0;4,0;50,0;1,0;Arial,10,N;$[recKND.Strasse]
L=0,0;5,0;50,0;1,0;Arial,10,N;$[recKND.Plz] $[recKND.Ort]
R=80,0;2,0;20,0;1,0;Arial,10,F;vom : $[VonDatum]
R=80,0;3,0;20,0;1,0;Arial,10,F;bis : $[BisDatum]

#end

##FussSeite
CY=3
L=0;0;100;1; ;\-
L=0,0;1,0;40,0;1,0;Arial,10,K;Sollstd. / Festbeträge / Summe EkLohn
R=80,0;1,0;20,0;1,0;Arial,10,F;$[mEkLohnSumme]
R=60,0;1,0;10,0;1,0;Arial,10,F;$[mBetragSumme]
R=48,0;1,0;12,0;1,0;Arial,10,F;$[mSollStdSumme]
L=0;2;100;1; ;\-

#end

##FussBericht
CY=3
L=0;0;100;1; ;\-
L=0,0;1,0;40,0;1,0;Arial,10,K;Sollstd. / Festbeträge / Summe EkLohn
R=80,0;1,0;20,0;1,0;Arial,10,F;$[mEkLohnSumme]
R=60,0;1,0;10,0;1,0;Arial,10,F;$[mBetragSumme]
R=48,0;1,0;12,0;1,0;Arial,10,F;$[mSollStdSumme]
L=0;2;100;1; ;\-

#end

