*Bestellung
#main
VAR Zeile(s,2,0)
VAR ZlStart1(s,2,0)
VAR ZlStart2(s,2,0)
VAR ZlMax(s,2,0)
VAR cyKD(s,2,0)
VAR Seite(s,2,0)
VAR SeiteFF(s,2,0)
VAR RandX(d,8,2)
VAR RandY(d,8,2)
VAR SizeX(d,8,2)
VAR Heute(D,10,0)
VAR Datum(C,10,0)
VAR mSumme(d,8,2)
VAR mTEXTZEILE(C,254,0)

ZlMax=     59
ZlStart1=  20 
ZlStart2=   2
cyKD=       5
RandX=      1,80
RandY=      0,80
SizeX=      17,50
Seite=      1
SeiteFF=    2
Zeile=      0

Heute=H

IFNOT ISVAR(mNoPrs)
  VAR mNoPrs(L,1,0)
IFNOT ISVAR(mHeader)
  VAR mHeader(C,50,0)
IF EMPTY(mHeader)
  mHeader=Bestellung
IFNOT ISVAR(mLVPOSNR)
  VAR mLVPOSNR(L,1,0)
IFNOT ISVAR(mAbruf)
  VAR mAbruf(N,8,0)

IFNOT ISVAR(mNRHW)
   VAR mNRHW(u,15,0)
IF EMPTY(mNRHW)
   RETURN


* Datensatz BESTELLKOPF
REC recKOP(BESTELLKOPF,0,15)$[mNRHW<15]
* Datensatz BESTELLPOSITIONEN
REC recPOS(BESTELLPOSITIONEN,0,15)$[mNRHW<15]
* Datensatz EIGENE_ANSCHRIFTEN
REC recEIGA(EIGENE_ANSCHRIFTEN,0,2)01
* Datensatz ADRESSSTAMM
REC recADDR(ADRESSSTAMM,5,4) 3$[recKOP.LKZ<2]
* Datensatz MENGENEINHEITEN
REC recEINH(MENGENEINHEITEN,0,0)
* Datensatz ADRESSSTAMM Lieferanschrift
REC recLIEF(ADRESSSTAMM,0,15)$[recKOP.LADRNR<15]
* Datensatz Abrufnummer
REC recABRUF(BESTELLABRUF,0,23)$[mNRHW<15]$[mAbruf>8]
IF EOF(recABRUF)
  recABRUF.Datum=$[recKOP.TERMIN]
ELSE
  mHeader=$[mHeader] - Teil $[recABRUF.LfdNr]

* PDF Options Header
REC recPDF(OPTIONEN,0,5)20003
VAR mJobHead(C,250,0)
mJobHead=@saPS2PDF-c$[recPDF.OptDataC]@ @saPS2PDF-p$[recKOP.PRJNR]@ @saPS2PDF-a$[recADDR.DESTDEBNR]@
mJobHead=@saPS2PDF-d$[mHeader] $[recKOP.NRHW]@ $[mJobHead]

Datum=$[recKOP.Datum]
IF EMPTY(Datum)
  Datum=$[Heute]
IF CMP(Datum,=)00.00.0000
  Datum=$[Heute]

*--------------------------------------------------
* Erste Seite initialisieren

OUT INITPAGESIZE
OUT STARTJOB $[mJobHead]
OUT TRANSPARENT
OUT STARTPAGE
OUT ##KopfBericht
Zeile=11
OUT ##outADDR
Zeile=$[ZlStart1]
OUT ##KopfDetail
*Zeile=$[Zeile] + $[cyKD]

LOOP recPOS(#loopMAIN)

*--------------------------------------------------
* letzte Seite abschliessen
Zeile=$[ZlMax]
IF BOOL($[mNoPrs])
  OUT ##FussBericht2
ELSE
  OUT ##FussBericht

OUT ENDPAGE
OUT ENDJOB



#end

#loopMAIN
* Wird fuer jeden Satz von recMAIN aufgerufen

VAR mMenge(N,12,3)
VAR mNetto(N,12,2)
mMenge=$[recPOS.MENGE]
mNetto=$[recPOS.NETTO]

VAR mPosNr(C,20,0)
VAR mPrsEH(N,5,0)
mPrsEH=1
IF BOOL($[recPOS.PE]=1)
   mPrsEH=10
IF BOOL($[recPOS.PE]=2)
   mPrsEH=100
IF BOOL($[recPOS.PE]=3)
   mPrsEH=1000
IF BOOL($[recPOS.PE]=4)
   mPrsEH=10000

SEEK recEINH($[recPOS.ME>4])
REC recMENGE(BESTELLABRUFMENGEN,1,33)$[recKOP.NRHW<15]$[recPOS.POSNRHW<10]$[recABRUF.LfdNr>8]

IF EOF(recABRUF)
   GOTO :EndAbruf
IF EOF(recMENGE)
   RETURN
mMenge=$[recMENGE.MENGE]
mNetto=($[mMenge] * $[recPOS.BRUTTO]) * (1.00 - ($[recPOS.RAB1]/100.00))
mNetto=($[mNetto]) * (1.00 - ($[recPOS.RAB2]/100.00))
mNetto=$[mNetto] / $[mPrsEH]
:EndAbruf

IF BOOL($[mLVPOSNR])
  mPosNr=$[recPOS.LVNR]
ELSE
  mPosNr=$[recPOS.POSNRHW]

SUB #CheckPage
IF BOOL($[mNoPrs])
  OUT ##outMAIN2
ELSE
  OUT ##outMAIN

mSumme=$[mSumme] + $[mNetto]


*-----------------------------------------
* Positionsextras
*-----------------------------------------

* Textzeile 1 ausgeben
IF EMPTY(recPOS.TEXT1)
   GOTO :NoText1
mTEXTZEILE=$[recPOS.TEXT1]
SUB #CheckPage
OUT ##outTEXT
:NoText1

* Textzeile 2 ausgeben
IF EMPTY(recPOS.TEXT2)
   GOTO :NoText2
mTEXTZEILE=$[recPOS.TEXT2]
SUB #CheckPage
OUT ##outTEXT
:NoText2


***************************************************
* Datensatzschleife BESTELLTEXTERGÄNZUNG
REC recPST(BESTELLTEXTERGÄNZUNG,0,25)$[mNRHW<15]$[recPOS.POSNRHW<10]
IF EOF(recPST)
  GOTO :EOF_recPST
LOOP recPST(#loop_recPST)
:EOF_recPST
***************************************************



#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

#Fuss
Zeile=$[ZlMax]
IF BOOL($[mNoPrs])
  OUT ##FussSeite2
ELSE
  OUT ##FussSeite

OUT ENDPAGE
* naechste Seite anfangen
Seite=  $[Seite]+1
SeiteFF=$[Seite]+1
Zeile=0
OUT STARTPAGE

#end

#Kopf
OUT ##KopfSeite
Zeile=$[ZlStart2]
OUT ##KopfDetail
*Zeile=$[Zeile] + $[cyKD]
IF BOOL($[mSumme]=0)
   RETURN

IF BOOL($[mNoPrs])
  OUT ##Uebertrag2
ELSE
  OUT ##Uebertrag
*Zeile=$[Zeile] + 1

#end

##KopfBericht
* Berichtskopf erscheint auf der ersten Seite
CY=12

R=85;0;15;1;Arial,10,N;$[Datum]
R=60;1;40;2;Times New Roman,14,F;$[mHeader]

L=0;0;30;1;Arial,12,F;$[recEIGA.NAME1]
L=0;1;30;1;Arial,12,N;$[recEIGA.NAME2]
L=0;2;30;1;Arial,12,N;$[recEIGA.STRASSE]
L=0;3;30;1;Arial,12,N;$[recEIGA.PLZORT]

L= 0;5;20;1;Arial,8,N;Tel: $[recEIGA.TELEFON] 
L=20;5;20;1;Arial,8,N;Fax: $[recEIGA.FAXNR]

L= 0; 9;50;1;Arial,8,N;$[recEIGA.NAME1], $[recEIGA.STRASSE], $[recEIGA.PLZORT]


L=58; 7;10;1;Arial,10,N;Projekt Nr. :
L=68; 7;8;1;Arial,10,F;$[recKOP.PRJNR]
L=58; 8;42;1; ;\-

L=58; 9; 2;1;Arial,8,N;**
L=60; 9;10;1;Arial,8,N;Liefertermin
L=70; 9;10;1;Arial,8,N;Bearbeiter
L=80; 9;10;1;Arial,8,N;Kunden-Nr.
L=90; 9; 8;1;Arial,8,N;Beleg Nr.
R=98; 9; 2;1;Arial,8,N;**

L=60;10;10;1;Arial,10,F;$[recABRUF.Datum]
L=70;10;10;1;Arial,10,F;$[recKOP.BEARB]
L=80;10;10;1;Arial,10,F;$[recKOP.KDNRHW]
L=90;10; 8;1;Arial,10,F;$[recKOP.NRHW]

L=58;11;42;1; ;\-

#end

##KopfSeite
* Seitenkopf erscheint ab 2. Seite
CY=1
L=0;0;30;1;Arial,10,F;$[mHeader] Nr. $[mNRHW]
C=46;0;8;1;Arial,10,N;-$[Seite]-
R=85;0;15;1;Arial,10,N;$[Datum]

#end

##KopfDetail
CY=5
L=0;0;50;1;Times New Roman,10,F;$[recKOP.BETREFF]

L=0;2;100;1; ;\-
L= 0;3; 5;1;Times New Roman,10,F;Pos.
R= 5;3;12;1;Times New Roman,10,F;Menge
L=18;3; 5;1;Times New Roman,10,F;Einh.
R=23;3; 5;1;Times New Roman,10,F;PE
L=29;3;35;1;Times New Roman,10,F;Artikel
R=64;3;12;1;Times New Roman,10,F;Brutto 
R=76;3; 6;1;Times New Roman,10,F;Rab.1
R=82;3; 6;1;Times New Roman,10,F;Rab.2
R=88;3;12;1;Times New Roman,10,F;GP $[recKOP.WAEHR]
L=0;4;100;1; ;\-

#end

##Uebertrag
* Das ist die Ausgabedefinition fuer den Uebertrag von vorher
CY=1
L=29;0;35;1;Arial,10,F;Übertrag ($[recKOP.WAEHR])
R=88;0;12;1;Arial,10,N;$[mSumme!]

#end

##outMAIN
CY=1
R=0,0;0,0;5,0;1,0;Arial,10,N;$[mPosNr]
R= 5;0;12;1;Arial,10,N;$[mMENGE]
L=18;0; 5;1;Arial,10,N;$[recEINH.NAME]
R=23;0; 5;1;Arial,10,N;$[mPrsEH]
L=29;0;35;1;Arial,10,F;$[recPOS.ARTNR]
R=64;0;12;1;Arial,10,N;$[recPOS.BRUTTO!0]
R=76;0; 6;1;Arial,10,N;$[recPOS.RAB1!0]
R=82;0; 6;1;Arial,10,N;$[recPOS.RAB2!0]
R=88;0;12;1;Arial,10,N;$[mNetto!0]

#end

##outADDR
CY=10
L=0;0;40;1;Arial,10,F;$[recADDR.ANREDE]
L=0;1;40;1;Arial,10,F;$[recADDR.NAME1]
L=0;2;40;1;Arial,10,F;$[recADDR.NAME2]
L=0;3;40;1;Arial,10,F;$[recADDR.STRASSE]
L=0;5;40;1;Arial,12,F;$[recADDR.PLZ<5]  $[recADDR.ORT]
L=58,0;1,0;42,0;1,0;Arial,10,N;$[recKOP.INFO1]
L=58,0;2,0;42,0;1,0;Arial,10,N;$[recKOP.INFO2]
L=58,0;3,0;42,0;1,0;Arial,10,N;$[recKOP.INFO3]
L=58,0;4,0;42,0;1,0;Arial,10,N;$[recKOP.INFO4]
L=58,0;5,0;42,0;1,0;Arial,10,N;abweichende Lieferanschrift:
L=58,0;6,0;42,0;1,0;Arial,10,N;$[recLIEF.Name1]
L=58,0;7,0;42,0;1,0;Arial,10,N;$[recLIEF.Name2]
L=58,0;8,0;42,0;1,0;Arial,10,N;$[recLIEF.Strasse]
L=58,0;9,0;42,0;1,0;Arial,10,N;$[recLIEF.Plz<5] $[recLIEF.Ort]

#end

##outTEXT
* Textzeilen ausgeben
* 
CY=1
L=29;0;61;1;Arial,10,N;$[mTEXTZEILE]

#end

##out_recPST
* Detailausgabe fuer recPST (BESTELLTEXTERGÄNZUNG)
CY=1
L=29;0;61;1;Arial,10,N;$[mTEXTZEILE]

#end

##outMAIN2
* Code ohne Preis
* 
CY=1
L= 0;0; 5;1;Arial,10,N;$[mPosNr]
R= 5;0;12;1;Arial,10,N;$[mMENGE]
L=18;0; 5;1;Arial,10,N;$[recEINH.NAME]
R=23;0; 5;1;Arial,10,N;$[mPrsEH]
L=29;0;35;1;Arial,10,F;$[recPOS.ARTNR]
R=64;0;12;1;Arial,10,N;\_
R=76;0; 6;1;Arial,10,N;\_
R=82;0; 6;1;Arial,10,N;\_
R=88;0;12;1;Arial,10,N;\_

#end

##Uebertrag2
* Uebertrag ohne Preise
CY=1
L=29;0;35;1;Arial,10,F;Übertrag ($[recKOP.WAEHR])

#end

##FussSeite2
* ohne Preise
* 
CY=3
L=0;0;100;1; ;\-

L=0;1;30;1;Times New Roman,10,F;Übertrag ($[recKOP.WAEHR]) auf Seite -$[SeiteFF]-

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

#end

##FussBericht2
* ohne Preise
CY=3
L=0;0;100;1; ;\-

L=0;1;30;1;Times New Roman,10,F;Summe ($[recKOP.WAEHR]) ohne Mwst.

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

#end

##FussSeite
* Das ist die Ausgabedefinition fuer den allgemeinen Seitenfuss 

CY=3
L=0;0;100;1; ;\-

L=0;1;30;1;Times New Roman,10,F;Übertrag ($[recKOP.WAEHR]) auf Seite -$[SeiteFF]-
R=80;1;20;1;Times New Roman,10,F;$[mSumme!]

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

#end

##FussBericht
* Das ist die Ausgabedefinition fuer den letzten Seitenfuss 

CY=3
L=0;0;100;1; ;\-

L=0;1;30;1;Times New Roman,10,F;Summe ($[recKOP.WAEHR]) ohne Mwst.
R=85;1;15;1;Times New Roman,10,F;$[mSumme!]

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

#end

#loop_recPST
* Datensatzschleife BESTELLTEXTERGÄNZUNG
* Datensatzname = recPST
mTEXTZEILE=$[recPST.TEXT]
SUB #CheckPage
OUT ##out_recPST
*Zeile=$[Zeile]+1

#end

