*Mareon_Auftrag
#main
VAR Seite(s,2,0)
VAR Zeile(s,2,0)
VAR Heute(D,10,0)

IF ISVAR(mNo)
  GOTO :_mNo
VAR mNo(u,20,2)
:_mNo

IF ISVAR(cyZeile)
  GOTO :_cyZeile
VAR cyZeile(N,8,4)
cyZeile= 2,54/6
:_cyZeile

IF ISVAR(ZlMax)
  GOTO :_ZlMax
VAR ZlMax(N,2,0)
ZlMax= 63
:_ZlMax

IF ISVAR(RandX)
  GOTO :_RandX
VAR RandX(N,5,2)
RandX= 1,80
:_RandX

IF ISVAR(RandY)
  GOTO :_RandY
VAR RandY(N,5,2)
RandY= 0,80
:_RandY

IF ISVAR(SizeX)
  GOTO :_SizeX
VAR SizeX(N,5,2)
SizeX= 18,40
:_SizeX

IFNOT ISVAR(mBCFont)
  VAR mBCFont(C,30,0)
IFNOT EMPTY(mBCFont)
  mBCFont=$Free 3 of 9 Extended,960

Seite=1
Zeile=0
Heute=H



* Datensatz BELEGVERZEICHNIS

REC recJOB(MAREONJOBS,5,20)$[mNo<20]
REC recCOMPANY(MAREONCOMPANY,0,20)$[recJOB.UNR<20]
REC recDEST(ADRESSSTAMM,0,15)$[recCOMPANY.DestNr<15]
REC recSTEURNR(OPTIONEN,0,5) 6110
REC recUSTIDNR(OPTIONEN,0,5) 6112
REC recLOGO(OPTIONEN,0,5) 7021
REC recEIG(EIGENE_ANSCHRIFTEN,0,2)$[mADRNR>2]
REC recPERSON(MAREONJOBPERSON,1,20)$[recJOB.NrBsh<20]
REC recSTATUS(MAREONSTATUS,0,6)JOBS$[recJOB.Status<2]
REC recPOS(MAREONJOBPOS,0,20)$[recJOB.NrBsh<20]

VAR adrZeile1(C,81,0)
VAR adrZeile2(C,81,0)
VAR adrZeile3(C,81,0)
VAR adrZeile4(C,81,0)
VAR adrZeile5(C,81,0)
VAR adrStrasse(C,40,0)
VAR adrPlzOrt(C,50,0)
adrZeile1=$[recCOMPANY.Name1]
adrZeile2=$[recCOMPANY.Name2]
adrZeile3=
adrZeile4=
adrZeile5=
adrStrasse=$[recCOMPANY.Street]
adrPlzOrt=$[recCOMPANY.Zip] $[recCOMPANY.City]
SUB #subFmtAdr1

VAR cWKZ(C,6,0)
cWKZ=€

VAR mBetreff1(C,40,0)
VAR mBetreff2(C,40,0)
VAR mBetreff3(C,40,0)

VAR mDatZeit1(C,40,0)
IFNOT EMPTY(recJOB.ZeitVon)
  mDatZeit1=$[recJOB.TerminVon] $[recJOB.ZeitVon]
ELSE
  mDatZeit1=$[recJOB.TerminVon]

VAR mDatZeit2(C,40,0)
IFNOT EMPTY(recJOB.ZeitBis)
  mDatZeit2=$[recJOB.TerminBis] $[recJOB.ZeitBis]
ELSE
  mDatZeit2=$[recJOB.TerminBis]

*--------------------------------------------------
* Erste Seite initialisieren und PFD Angaben senden

* PDF Options Header
REC recPDF(OPTIONEN,0,5)20003
VAR mJobHead(C,250,0)
mJobHead=Mareon Abrechnung $[recJOB.NrBsh]
*mJobHead=@saPS2PDF-c$[recPDF.OptDataC]@ @saPS2PDF-p$[recBVZ.PRJNR]@ @saPS2PDF-a$[recBVZ.KDNR]@
*mJobHead=@saPS2PDF-dKurfassung $[recBVZ.PRJNR]/$[recBVZ.BELEGART]/$[recBVZ.BELEGNR]@ $[mJobHead]

OUT INITPAGESIZE
OUT STARTJOB $[mJobHead]
SUB #Kopf
LOOP recPERSON(#loopPERSONEN)
SUB #subJobText
SUB #subVORTEXT
LOOP recPOS(#loopPOS)
SUB #subZeilen

*--------------------------------------------------
* letzte Seite abschliessen
:MainFuss
SUB #Fuss
OUT ENDJOB


#end

#CheckPage
IF BOOL($[Zeile] >= $[ZlMax])
   SUB #Fuss
* Kopfbereich ausgeben, wenn erste Zeile erreicht
IF BOOL($[Zeile] = 0)
   SUB #Kopf



#end

#Fuss
*========================= Fusszeile drucken ?
IF ISVAR(mDrkFuss)
  GOTO :_mDrkFuss
VAR mDrkFuss(N,2,0)
mDrkFuss=$[ZlMax]
:_mDrkFuss

Zeile=$[mDrkFuss]
IF BOOL($[mDrkFuss] > 0)
  OUT ##FussBericht
OUT ENDPAGE

Seite=$[Seite]+1
Zeile=0

#end

##outBarcode
CY=0
C=0,0;-2,0;100,0;2,0;$[mBCFont];*$[recJOB.Barcode]*
C=0,0;2,0;100,0;1,0;Courier New,10,N;$[recJOB.Barcode]

#end

##outMerkmale2
* Ausgabe für ReportMain/Kopf/subKopf1
CY=6
L=56;0;24;1;Courier New, 8,N;Auftragsnummer (Portal)
R=80;0;20;1;Courier New, 8,N;$[recJOB.MareonNo]

L=56;1;24;1;Courier New, 8,N;Herkunft (Portaltyp)
R=80;1;20;1;Courier New, 8,N;$[recCOMPANY.Portaltyp]

L=56;2;24;1;Courier New, 8,N;Aufstragsstatus
R=80;2;20;1;Courier New, 8,N;$[recSTATUS.Descrip]

L=56;3;24;1;Courier New, 8,N;Ausführungsbeginn
R=80;3;20;1;Courier New, 8,N;$[mDatZeit1]

L=56;4;24;1;Courier New, 8,N;Ausführung bis
R=80;4;20;1;Courier New, 8,N;$[mDatZeit2]

L=56;5;14;1;Courier New, 8,N;Ausführungsort
R=70;5;30;1;Courier New, 8,N;$[recJOB.Location]

L=0;2;24;1;Courier New, 8,N;Einheitspreisabkommen
R=24;2;20;1;Courier New, 8,N;$[recJOB.EP]

L=0,0;3,0;24,0;1,0;Courier New, 8,N;Wirtschaftseinheit
R=24,0;3,0;20,0;1,0;Courier New, 8,N;$[recJOB.WI]

L=0,0;4,0;24,0;1,0;Courier New, 8,N;Haus
R=24,0;4,0;20,0;1,0;Courier New, 8,N;$[recJOB.HS]

L=0,0;5,0;24,0;1,0;Courier New, 8,N;Mieteinheit
R=24,0;5,0;20,0;1,0;Courier New, 8,N;$[recJOB.ME]

#end

#subKopf1
*========================= Kopf Seite 1
Zeile=0
IF BOOL($[bLogo1])
  SUB #subLOGO
Zeile=0
IF BOOL($[bBarcode1])
  OUT ##outBarcode
Zeile=0

*========================= Seitennummer drucken ?
IF ISVAR(mDrkPgNo1)
  GOTO :_mDrkPgNo1
VAR mDrkPgNo1(N,2,0)
mDrkPgNo1=-1
:_mDrkPgNo1
IF BOOL($[mDrkPgNo1] < 0)
  GOTO :_xDrkPgNo1
Zeile=$[mDrkPgNo1]
OUT ##outPgNo
:_xDrkPgNo1

*========================= Kopf drucken ?
IF ISVAR(mDrkHdr1)
  GOTO :_mDrkHdr1
VAR mDrkHdr1(N,2,0)
mDrkHdr1=0
:_mDrkHdr1
IF BOOL($[mDrkHdr1] < 0)
  GOTO :_xDrkHdr1
Zeile=$[mDrkHdr1]
OUT ##KopfBericht
:_xDrkHdr1

*========================= Absender drucken ?
IF ISVAR(mDrkAbs1)
  GOTO :_mDrkAbs1
VAR mDrkAbs1(N,2,0)
mDrkAbs1=10
:_mDrkAbs1
IF BOOL($[mDrkAbs1] < 0)
  GOTO :_xDrkAbs1
Zeile=$[mDrkAbs1]
OUT ##outAbsender
:_xDrkAbs1

*========================= Merkmale drucken ?
IF ISVAR(mDrkMrk1)
  GOTO :_mDrkMrk1
VAR mDrkMrk1(N,2,0)
mDrkMrk1=11
:_mDrkMrk1
IF BOOL($[mDrkMrk1] < 0)
  GOTO :_xDrkMrk1
Zeile=$[mDrkMrk1]
OUT ##outMerkmale1
OUT ##outMerkmale2
:_xDrkMrk1

*========================= Anschrift1 drucken ?
IF ISVAR(mDrkAdr1)
  GOTO :_mDrkAdr1
VAR mDrkAdr1(N,2,0)
mDrkAdr1=11
:_mDrkAdr1
IF BOOL($[mDrkAdr1] < 0)
  GOTO :_xDrkAdr1
Zeile=$[mDrkAdr1]
OUT ##outAdresse1
:_xDrkAdr1

*========================= Detailbeginn Seite 1
IF ISVAR(mZlStart1)
  GOTO :_mZlStart1
VAR mZlStart1(N,2,0)
mZlStart1=20
:_mZlStart1
Zeile=$[mZlStart1]



#end

#subKopf2
*========================= Kopf Seite 2
Zeile=0
IF BOOL($[bLogo2])
  SUB #subLOGO
Zeile=0
IF BOOL($[bBarcode2])
  OUT ##outBarcode
Zeile=0

*========================= Seitennummer drucken ?
IF ISVAR(mDrkPgNo2)
  GOTO :_mDrkPgNo2
VAR mDrkPgNo2(N,2,0)
mDrkPgNo2=0
:_mDrkPgNo2
IF BOOL($[mDrkPgNo2] < 0)
  GOTO :_xDrkPgNo2
Zeile=$[mDrkPgNo2]
OUT ##outPgNo
:_xDrkPgNo2

*========================= Kopf drucken ?
IF ISVAR(mDrkHdr2)
  GOTO :_mDrkHdr2
VAR mDrkHdr2(N,2,0)
mDrkHdr2=0
:_mDrkHdr2
IF BOOL($[mDrkHdr2] < 0)
  GOTO :_xDrkHdr2
Zeile=$[mDrkHdr2]
OUT ##KopfSeite
:_xDrkHdr2

*========================= Absender drucken ?
IF ISVAR(mDrkAbs2)
  GOTO :_mDrkAbs2
VAR mDrkAbs2(N,2,0)
mDrkAbs2=10
:_mDrkAbs2
IF BOOL($[mDrkAbs2] < 0)
  GOTO :_xDrkAbs2
Zeile=$[mDrkAbs2]
OUT ##outAbsender
:_xDrkAbs2

*========================= Merkmale drucken ?
IF ISVAR(mDrkMrk2)
  GOTO :_mDrkMrk2
VAR mDrkMrk2(N,2,0)
mDrkMrk2=11
:_mDrkMrk2
IF BOOL($[mDrkMrk2] < 0)
  GOTO :_xDrkMrk2
Zeile=$[mDrkMrk2]
OUT ##outMerkmale1
:_xDrkMrk2

*========================= Anschrift1 drucken ?
IF ISVAR(mDrkAdr2)
  GOTO :_mDrkAdr2
VAR mDrkAdr2(N,2,0)
mDrkAdr2=11
:_mDrkAdr2
IF BOOL($[mDrkAdr2] < 0)
  GOTO :_xDrkAdr2
Zeile=$[mDrkAdr2]
OUT ##outAdresse1
:_xDrkAdr2

*========================= Detailbeginn Seite 2
IF ISVAR(mZlStart2)
  GOTO :_mZlStart2
VAR mZlStart2(N,2,0)
mZlStart2=20
:_mZlStart2
Zeile=$[mZlStart2]

OUT ##KopfDetail


#end

#Kopf
* naechste Seite anfangen
Zeile=0
OUT STARTPAGE
OUT NOSORT
OUT CALCBORDER
OUT XOFFSET  0,00
OUT YOFFSET  0,00
OUT TRANSPARENT

IF BOOL($[Seite] = 1)
  OUT DEVICE $[mDevice1]
ELSE
  OUT DEVICE $[mDevice2]
OUT CALCBORDER

IF BOOL($[Seite] = 1)
  SUB #subKopf1
ELSE
  SUB #subKopf2

#end

##KopfBericht
CY=8
L=3,0;1,0;40,0;1,0;Arial,10,N;$[recEIG.Name1]
L=3,0;2,0;40,0;1,0;Arial,10,N;$[recEIG.Name2]
L=3,0;3,0;40,0;1,0;Arial,10,N;$[recEIG.Strasse]
L=3,0;4,0;40,0;1,0;Arial,10,N;Postfach $[recEIG.Postfach]
L=3,0;5,0;40,0;1,0;Arial,10,F;$[recEIG.PlzOrt]

#end

##KopfSeite
CY=8
L=3,0;1,0;40,0;1,0;Arial,10,N;$[recEIG.Name1]
L=3,0;2,0;40,0;1,0;Arial,10,N;$[recEIG.Name2]
L=3,0;3,0;40,0;1,0;Arial,10,N;$[recEIG.Strasse]
L=3,0;4,0;40,0;1,0;Arial,10,N;Postfach $[recEIG.Postfach]
L=3,0;5,0;40,0;1,0;Arial,10,F;$[recEIG.PlzOrt]


#end

##KopfDetail
CY=3
L=0,0;0,4;100,0;1,0; ;\-
L=0,0;1,0;6,0;1,0;Arial,10,F;Pos.
R=6;1;11;1,0;Arial,10,F;Menge
L=18;1;4;1,0;Arial,10,F;ME
L=23,0;1,0;77,0;1,0;Arial,10,F;Leistungsbeschreibung
L= 0;1,6;100;1; ;\-

#end

##outLINE
* TODO: beschreiben Sie hier die Verwendung
CY=1
L= 0;0;100;1; ;\-

#end

##FussBericht
CY=3
L= 0;0;100;1; ;\-
L=0,0;1,6;10,0;1,0;Arial, 8,N;Datum:
L=25,0;1,6;10,0;1,0;Arial, 8,N;Monteur:
L=55,0;1,6;20,0;1,0;Arial, 8,N;Kunde, Hausmeister oder Mieter:
L=0;2,0;100;1; ;\-

#end

#subFill
* Unterprgramm von ReportMain
VAR mFillStart(d,8,2)
VAR mFillCY(d,8,2)
mFillStart= $[RandY] + ($[cyZeile] * $[Zeile])
mFillCY=$[cyZeile]

OUT RGBFILL $[RandX];$[mFillStart];$[SizeX];$[mFillCY];14211288
RETURN

#end

##outAdresse1
CY=7
L=3,0;0,0;40,0;1,0;Arial,10,N;$[adrZeile2]
L=3,0;1,0;40,0;1,0;Arial,10,N;$[adrZeile3]
L=3,0;2,0;40,0;1,0;Arial,10,N;$[adrZeile4]
L=3,0;3,0;40,0;1,0;Arial,10,N;$[adrZeile5]
L=3,0;4,0;40,0;1,0;Arial,10,N;$[adrStrasse]
L=3,0;6,0;40,0;1,0;Arial,10,F;$[adrPlzOrt]

#end

#subFmtAdr1
* Unterprgramm von ReportMain

:Test5
IFNOT EMPTY(adrZeile5)
  GOTO :Test4
adrZeile5=$[adrZeile4]
adrZeile4=$[adrZeile3]
adrZeile3=$[adrZeile2]
adrZeile2=$[adrZeile1]
adrZeile1=
IFNOT EMPTY(adrZeile5)
  GOTO :Test4
adrZeile5=$[adrZeile4]
adrZeile4=$[adrZeile3]
adrZeile3=$[adrZeile2]
adrZeile2=$[adrZeile1]
adrZeile1=
IFNOT EMPTY(adrZeile5)
  GOTO :Test4
adrZeile5=$[adrZeile4]
adrZeile4=$[adrZeile3]
adrZeile3=$[adrZeile2]
adrZeile2=$[adrZeile1]
adrZeile1=
IFNOT EMPTY(adrZeile5)
  GOTO :Test4
adrZeile5=$[adrZeile4]
adrZeile4=$[adrZeile3]
adrZeile3=$[adrZeile2]
adrZeile2=$[adrZeile1]
adrZeile1=

:Test4
IFNOT EMPTY(adrZeile4)
  GOTO :Test3
adrZeile4=$[adrZeile3]
adrZeile3=$[adrZeile2]
adrZeile2=$[adrZeile1]
adrZeile1=
IFNOT EMPTY(adrZeile4)
  GOTO :Test3
adrZeile4=$[adrZeile3]
adrZeile3=$[adrZeile2]
adrZeile2=$[adrZeile1]
adrZeile1=
IFNOT EMPTY(adrZeile4)
  GOTO :Test3
adrZeile4=$[adrZeile3]
adrZeile3=$[adrZeile2]
adrZeile2=$[adrZeile1]
adrZeile1=

:Test3
IFNOT EMPTY(adrZeile3)
  GOTO :Test2
adrZeile3=$[adrZeile2]
adrZeile2=$[adrZeile1]
adrZeile1=
IFNOT EMPTY(adrZeile3)
  GOTO :Test2
adrZeile3=$[adrZeile2]
adrZeile2=$[adrZeile1]
adrZeile1=

:Test2
IFNOT EMPTY(adrZeile2)
  GOTO :Test1
adrZeile2=$[adrZeile1]
adrZeile1=

:Test1
RETURN

#end

##outAbsender
* Ausgabe für ReportMain
CY=1
L=0,0;0,0;40,0;1,0;Arial, 8,KU;$[recEIG.Name1] * $[recEIG.Strasse] * $[recEIG.PlzOrt]

#end

##outMerkmale1
CY=7
L=56,0;1,5;44,0;1,0; ;\-
L=56,0;3,5;44,0;1,0; ;\-
L=56,0;0,7;44,0;1,0;Arial,14,F;$[mDocName]
L=56,0;2,0;11,0;1,0;Arial, 8,N;Datum
L=67,0;2,0;11,0;1,0;Arial, 8,N;Beleg-Nr.
R=89,0;2,0;11,0;1,0;Arial, 8,N;Kunden-Nr.
L=56,0;3,0;11,0;1,0;Arial,10,N;$[recJOB.Datum]
L=67,0;3,0;22,0;1,0;Arial,10,N;$[mNo]
R=90,0;3,0;10,0;1,0;Arial,10,N;$[recDEST.DESTDEBNR]
L=56,0;5,0;24,0;1,0;Courier New, 8,N;Unternehmensnummer (Portal)
R=80,0;5,0;20,0;1,0;Courier New, 8,N;$[recJOB.UNR]
L=56,0;6,0;24,0;1,0;Courier New, 8,N;Auftragsreferenznummer
R=80,0;6,0;20,0;1,0;Courier New, 8,N;$[recJOB.DisplayNo]

#end

##outPgNo
* Ausgabe für ReportMain
CY=1
R=85,0;0,0;15,0;1,0;Arial, 8,N;Seite $[Seite]

#end

#subLOGO
VAR mLogoX2(N,5,0)
VAR mLogoY2(N,5,0)

mLogoX2=$[mLogoX] + $[mLogoCX]
mLogoY2=$[mLogoY] + $[mLogoCY]

OUT BITMAP $[mLogoX];$[mLogoY];$[mLogoX2];$[mLogoY2];$[recLOGO.OptDataC]
RETURN


#end

#loopOWNER
* Anschrift durch Eigentümeradresse ersetzen
adrZeile1=$[recOWNER.Name1]
adrZeile2=$[recOWNER.Name2]
adrZeile3=
adrZeile4=
adrZeile5=
adrStrasse=$[recOWNER.Street]
adrPlzOrt=$[recOWNER.Zip] $[recOWNER.City]
BREAK recOWNER

#end

##outVortext
CY=1
L=0,0;0,0;100,0;1,0;Courier New,10,N;$[mTSammel]

#end

#loopVortext
* Unterprogramm von ReportMain/subVORTEXT
* Datensatzschleife recVortext

IF BOOL($[recVortext.SoftBreak]))
  GOTO :Ausgeben
IF BOOL($[recVortext.LineFeeds]))
  GOTO :Ausgeben
IF BOOL($[recVortext.Abschluss]))
  GOTO :Ausgeben

mTSammel=$[recVortext.Daten]
RETURN


:Ausgeben
IF EMPTY(mTSammel)
  mTSammel=$[recVortext.Daten]
ELSE
  mTSammel=$[mTSammel<55]$[recVortext.Daten]

SUB #CheckPage
OUT ##outVortext
mTSammel=

IF BOOL($[recVortext.Abschluss])
  BREAK recVortext
RETURN

#end

#subVORTEXT
* Ausgabe der Vortexte
VAR mTSammel(C,120,0)
REC recVortext(LANGTEXTZEILEN,0,16)15JTJOBI$[recJOB.InstrId>8]
LOOP recVortext(#loopVortext)

IF EMPTY(mTSammel)
  GOTO :Ende
SUB #CheckPage
OUT ##outVortext

:Ende
IF BOOL($[Zeile] >= ($[ZlMax] - 5))
   SUB #Fuss
ELSE
   OUT ##KopfDetail
RETURN

#end

##outJobText
CY=1
L=0,0;0,0;100,0;1,0;Courier New,10,N;$[mTSammel]

#end

#loopJobText
* Unterprgramm von ReportMain/subJobText
* Datensatzschleife recJobText

IF BOOL($[recJobText.SoftBreak]))
  GOTO :Ausgeben
IF BOOL($[recJobText.LineFeeds]))
  GOTO :Ausgeben
IF BOOL($[recJobText.Abschluss]))
  GOTO :Ausgeben

mTSammel=$[recJobText.Daten]
RETURN


:Ausgeben
IF EMPTY(mTSammel)
  mTSammel=$[recJobText.Daten]
ELSE
  mTSammel=$[mTSammel<55]$[recJobText.Daten]

SUB #CheckPage
OUT ##outJobText
mTSammel=

IF BOOL($[recJobText.Abschluss])
  BREAK recJobText
RETURN

#end

#subJobText
* Unterprgramm von ReportMain
VAR mTSammel(C,120,0)
REC recJobText(LANGTEXTZEILEN,0,16)15JTJOBT$[recJOB.TextId>8]
LOOP recJobText(#loopJobText)

IF EMPTY(mTSammel)
  GOTO :Ende
SUB #CheckPage
OUT ##outJobText

:Ende

RETURN

#end

##outPERSONEN
CY=2
L=0,0;0,0;15,0;1,0;Arial, 8,N;$[recPStat.Descrip]
L=15,0;0,0;57,0;1,0;Courier New,10,N;$[mPName]
L=15,0;1,0;57,0;1,0;Courier New,10,N;$[mStrCity]
R=80,0;0,0;20,0;1,0;Courier New,10,N;$[mPhone1]
R=80,0;1,0;20,0;1,0;Courier New,10,N;$[mPhone2]

#end

#loopPERSONEN
* Unterprgramm von ReportMain
* Datensatzschleife recPERSON
IF BOOL($[Zeile] >= ($[ZlMax] - 1))
   SUB #Fuss
* Kopfbereich ausgeben, wenn erste Zeile erreicht
IF BOOL($[Zeile] = 0)
   SUB #Kopf

VAR mPName(C,200,0)
mPName=$[recPERSON.Name1]
IF EMPTY(mPName)
  mPName=$[recPERSON.Name2]
ELSE
  mPName=$[mPName] $[recPERSON.Name2]
IF EMPTY(mPName)
  mPName=$[recPERSON.Location]
ELSE
  mPName=$[mPName] $[recPERSON.Location]

IFNOT EMPTY(mPName)
  GOTO :Kond_9CF4_end
VAR mLoca(u,2,0)
mLoca=$[recPERSON.Role]
IF CMP(mLoca,=)LO
  mPName=$[recJOB.Location]
:Kond_9CF4_end

VAR mStrCity(C,200,0)
mStrCity=$[recPERSON.Street] $[recPERSON.Zip] $[recPERSON.City]
IF EMPTY(mStrCity)
  mStrCity=$[recPERSON.EMail]
IF EMPTY(mStrCity)
  mStrCity=$[recPERSON.HomePage]

VAR mPhone1(C,30,0)
mPhone1=$[recPERSON.Phone]
IF EMPTY(mPhone1)
  mPhone1=$[recPERSON.PhoneNight]

VAR mPhone2(C,30,0)
mPhone2=$[recPERSON.PhoneMobil]
IF EMPTY(mPhone2)
  mPhone2=$[recPERSON.Phone2]

REC recPStat(MAREONSTATUS,0,6)PERS$[recPERSON.Role<2]
SUB #subFill
OUT ##outPERSONEN
RETURN

#end

##outPOS
CY=1
L=0,0;0,0;6,0;1,0;Courier New,10,N;$[recPOS.LfdNr]
R=6,0;0,0;11,0;1,0;Courier New,10,N;$[recPOS.Quantity!0]
L=18,0;0,0;4,0;1,0;Courier New,10,N;$[recPOS.Unit]
L=23,0;0,0;77,0;1,0;Courier New,10,N;$[recPOS.Object] / $[recPOS.Inventory]

#end

#loopDAMAGE
* Unterprgramm von ReportMain/loopPOS
* Datensatzschleife recDAMAGE
mTmpText=$[recDAMAGE.Daten]
SUB #CheckPage
OUT ##outTmpText
RETURN

#end

#loopPOSTXT
* Unterprgramm von ReportMain/loopPOS
* Datensatzschleife recPOSTXT
mTmpText=$[recPOSTXT.Daten]
SUB #CheckPage
OUT ##outTmpText
RETURN

#end

##outTmpText
* Ausgabe für ReportMain/loopPOS
CY=1
L=23,0;0,0;77,0;1,0;Courier New,10,N;$[mTmpText]

#end

##outTODOPOS
* Ausgabe für ReportMain/loopPOS/loopTODOPOS
CY=1
L=0,0;0,0;6,0;1,0;Courier New,10,N;$[recTODOPOS.LfdNr].$[recTODOPOS.LfdNrTodo]
R=6,0;0,0;11,0;1,0;Courier New,10,N;$[recTODOPOS.Quantity!0]
*L=18,0;0,0;4,0;1,0;Courier New,10,N;
L=23,0;0,0;57,0;1,0;Courier New,10,N;$[recTODOTXT.Daten]
R=80,0;0,0;20,0;1,0;Courier New,10,N;$[recTODOPOS.TodoKey]

#end

#loopTODOTXT
* Unterprgramm von ReportMain/loopPOS/loopTODOPOS
* Datensatzschleife recTODOTXT
mTmpText=$[recTODOTXT.Daten]
SUB #CheckPage
OUT ##outTmpText
RETURN

#end

#loopTODOPOS
* Unterprgramm von ReportMain/loopPOS
* Datensatzschleife recTODOPOS
REC recTODOTXT(LANGTEXTZEILEN,0,17)15JPDESCR$[recTODOPOS.Descriptio>8]
SUB #CheckPage
OUT ##outTODOPOS
SKIP recTODOTXT
LOOP recTODOTXT(#loopTODOTXT)
RETURN


#end

#loopPOS
* Unterprgramm von ReportMain
* Datensatzschleife recPOS
REC recDAMAGE(LANGTEXTZEILEN,0,18)15JPDAMAGE$[recPOS.DamageText>8]
REC recPOSTXT(LANGTEXTZEILEN,0,16)15JPTODO$[recPOS.TodoText>8]
REC recTODOPOS(MAREONJOBPOSTODO,0,24)$[recPOS.NrBsh<20]$[recPOS.LfdNr>4]
VAR mTmpText(C,200,0)

SUB #CheckPage
OUT ##outPOS
LOOP recDAMAGE(#loopDAMAGE)
LOOP recPOSTXT(#loopPOSTXT)
LOOP recTODOPOS(#loopTODOPOS)
RETURN

#end

#subZeilen
* Unterprgramm von ReportMain

:LN_20
IF BOOL($[Zeile] >= ($[ZlMax] - 19))
  GOTO :LN_18
Zeile=$[ZlMax] - 20
OUT ##outLINE

:LN_18
IF BOOL($[Zeile] >= ($[ZlMax] - 17))
  GOTO :LN_16
Zeile=$[ZlMax] - 18
OUT ##outLINE

:LN_16
IF BOOL($[Zeile] >= ($[ZlMax] - 15))
  GOTO :LN_14
Zeile=$[ZlMax] - 16
OUT ##outLINE

:LN_14
IF BOOL($[Zeile] >= ($[ZlMax] - 13))
  GOTO :LN_12
Zeile=$[ZlMax] - 14
OUT ##outLINE

:LN_12
IF BOOL($[Zeile] >= ($[ZlMax] - 11))
  GOTO :LN_10
Zeile=$[ZlMax] - 12
OUT ##outLINE

:LN_10
IF BOOL($[Zeile] >= ($[ZlMax] - 9))
  GOTO :LN_08
Zeile=$[ZlMax] - 10
OUT ##outLINE

:LN_08
IF BOOL($[Zeile] >= ($[ZlMax] - 7))
  GOTO :LN_06
Zeile=$[ZlMax] - 8
OUT ##outLINE

:LN_06
IF BOOL($[Zeile] >= ($[ZlMax] - 5))
  GOTO :LN_04
Zeile=$[ZlMax] - 6
OUT ##outLINE

:LN_04
IF BOOL($[Zeile] >= ($[ZlMax] - 3))
  GOTO :LN_02
Zeile=$[ZlMax] - 4
OUT ##outLINE

:LN_02
IF BOOL($[Zeile] >= ($[ZlMax] - 1))
  GOTO :LN_00
Zeile=$[ZlMax] - 2
OUT ##outLINE

:LN_00
RETURN

#end

