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

Heute=H

RepTitel=Leistungspakete / Jumbos
RandX=      1,80
RandY=      0,80
SizeX=      18,0
Seite=      1
Zeile=      0
* 8 Lines Per Inc
cyZeile=    2.54/8
ZlMax=     83

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

* Firmenstammdaten auf Mittellohn positionieren
REC recMLOHN(OPTIONEN,0,5) 7006

*-------------------------------------------------------------------------
* TODO 
* Fügen Sie hier den Code für die Initialisierung
* des Berichts ein.
IFNOT ISVAR(VonNr)
   VAR VonNr(u,20,0)
IFNOT ISVAR(BisNr)
   VAR BisNr(u,20,0)



* Code für den
* Berichtsablauf ein.

* TODO 
* fügen Sie hier eine Datensatzvariable
* mit dem Namen recMAIN ein.
* Diese Variable beinhaltet die Leittabelle.
* Schema:  REC recMAIN(VIRTUELLES_DATUM,1,0)
***************************************************
* Datensatzschleife PAKETE
REC recMAIN(PAKETE,0,3)000
IF EOF(recMAIN)
  GOTO :EOF_recMAIN
*==== :Kond_FA72 Bedingungscode
IFNOT EMPTY(VonNr)
  SEEK recMAIN($[VonNr])
:EOF_recMAIN
***************************************************

*-----------------------------------------------------------------------------
* 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;1;20;1;Times New Roman,10,F;Stamm-Nr.
R=20,0;1,0;10,0;1,0;Times New Roman,10,F;Menge
L=31;1; 4;1;Times New Roman,10,F;ME
L=35;1;25;1;Times New Roman,10,F;Kurztext
R=60;1;10;1;Times New Roman,10,F;Minuten
R=70;1;10;1;Times New Roman,10,F;Lohn
R=80;1;10;1;Times New Roman,10,F;Material
R=90;1;10;1;Times New Roman,10,F;VK1
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 ##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-4 erreicht
IF BOOL($[Zeile] >= ($[ZlMax]-4))
   SUB #Fuss
* Kopfbereich ausgeben, wenn erste Zeile erreicht
IF BOOL($[Zeile] = 0)
   SUB #Kopf

#end

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

#end

##outMAIN
CY=1
L=0,0;0,0;20,0;1,0;Arial,10,F;$[recMAIN.PKTNR]
R=20,0;0,0;10,0;1,0;Arial,10,N;1
L=31,0;0,0;4,0;1,0;Arial,10,N;$[recPKTME.NAME]
L=35,0;0,0;65,0;1,0;Arial,10,N;$[recMAIN.TXT1] $[recMAIN.TXT2] $[recMAIN.TXT3]

#end

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

#end

##outLineFeed
CY=1

#end

##outPKTSUMME
* Ausgabe für ReportMain/loopMAIN
CY=2
R=60;0;10;1;Times New Roman,10,F;$[pktZEIT]
R=70;0;10;1;Times New Roman,10,F;$[pktVK1L]
R=80;0;10;1;Times New Roman,10,F;$[pktVK1M]
R=90;0;10;1;Times New Roman,10,F;$[pktVK1G]

#end

#subPageTeil
* Unterprgramm von ReportMain/loopMAIN/loopPKTteil
* Fussbereich ausgeben, wenn letzte Zeile-2 erreicht
IF BOOL($[Zeile] >= ($[ZlMax]-2))
   SUB #Fuss
* Kopfbereich ausgeben, wenn erste Zeile erreicht
IF BOOL($[Zeile] = 0)
   SUB #Kopf
RETURN

#end

##outloopPKTteil
CY=1
L= 0;0;20;1;Arial,10,N;$[recPKTteil.ARTLKZ<2]/$[recPKTteil.ARTNR]
R=20;0;10;1;Arial,10,N;$[recPKTteil.AUFWAND]
L=31;0; 4;1;Arial,10,N;$[recARTME.NAME]
L=35;0;65;1;Arial,10,N;$[recPKTartikel.BEZ1] $[recPKTartikel.BEZ2] $[recPKTartikel.MERKMAL]

#end

#looprecNE
* Unterprgramm von ReportMain/loopMAIN/loopPKTteil
* Datensatzschleife NICHTEISENDATEN

REC recNEfist(NICHTEISENDATEN,0,2)$[recNE.NEKZ<2]
IF EOF(recNEfist)
  RETURN

VAR nNeTmp(d,8,4)
nNeTmp=$[recNEfist.TAGESPREIS] / $[recNEfist.KGJEPREIS]
nNeTmp=$[nNeTmp] - ($[recNE.BASISPREIS] / $[recNE.KGJEBASIS])
nNeTmp=$[nNeTmp] * $[recNE.GEWICHT] / $[recNE.GEBINDE]
nNePrs=$[nNePrs] + $[nNeTmp]

#end

#loopPKTteil
* Unterprgramm von ReportMain/loopMAIN
* Datensatzschleife recPKTteil
VAR nTmp(d,8,2)
VAR nPrsFak(d,8,2)
VAR nNePrs(d,8,4)

* LOCKUP STAMMPOSITIONEN
REC recPKTartikel(STAMMPOSITIONEN,0,20)$[recPKTteil.ARTLKZ]$[recPKTteil.ARTNR<18]
IF EOF(recPKTartikel)
  GOTO :EOF_recPKTartikel
:EOF_recPKTartikel

* LOCKUP MENGENEINHEITEN
REC recARTME(MENGENEINHEITEN,0,4)$[recPKTartikel.EINHEIT>4]
:EOF_recARTME

* LOCKUP KALKULATIONSGRUPPEN
REC recKGL(KALKULATIONSGRUPPEN,0,2)$[recPKTartikel.KGLOHN>2]
:EOF_recKGL

* LOCKUP KALKULATIONSGRUPPEN
REC recKGM(KALKULATIONSGRUPPEN,0,2)$[recPKTartikel.KGMAT>2]
:EOF_recKGM

* LOCKUP PREISEINHEITEN
REC recARTPE(PREISEINHEITEN,0,2)$[recPKTartikel.PE>2]
IF EOF(recARTPE)
  nPrsFak=$[recPKTartikel.GEBINDE]
ELSE
  nPrsFak=$[recPKTartikel.GEBINDE] * $[recARTPE.FAKTOR]
IF BOOL($[nPrsFak]=0)
  nPrsFak=1

* Nichteisen berechnen
REC recNE(NEZUSCHLAEGE,0,20)$[recPKTartikel.LKZ<2]$[recPKTartikel.ARTNR<18]
IF EOF(recNE)
  GOTO :EOF_recNE
LOOP recNE(#looprecNE)
:EOF_recNE

* Werte berechnen
* Zeit berechnen
nTmp=$[recPKTteil.AUFWAND] * $[recPKTartikel.ZEIT]
pktZEIT= $[pktZEIT] + $[nTmp]
nTmp=$[nTmp] * $[recMLOHN.OPTDATAD]
nTmp=$[nTmp] * (100 + $[recKGL.VHLOHN]) / 100
pktVK1L= $[pktVK1L] + $[nTmp]

* Material berechnen
nTmp=$[recPKTartikel.EKMAT]
nTmp=$[recPKTteil.AUFWAND] * (($[nTmp] / $[nPrsFak]) + $[recPKTartikel.ZUBEHOERDM] + $[nNePrs])
nTmp=$[nTmp] * (100 + $[recKGM.VHMAT]) / 100
pktVK1M= $[pktVK1M] + $[nTmp]

SUB #subPageTeil
OUT ##outloopPKTteil

RETURN

#end

#loopMAIN
* Unterprogramm von ReportMain
* Datensatzschleife recMAIN

* Check Ende Bereich
IF EMPTY(BisNr)
   GOTO :NoBisNr
IF CMP(BisNr,>)$[recMAIN.PKTNR]
   GOTO :NoBisNr
IF CMP(BisNr,=)$[recMAIN.PKTNR]
   GOTO :NoBisNr
BREAK recMAIN
RETURN
:NoBisNr

* Kalkulierte Preise bereitstellen
VAR pktVK1M(d,8,2)
VAR pktVK1L(d,8,2)
VAR pktVK1G(d,8,2)
VAR pktZEIT(d,8,2)

* Lockup Mengeneinheit Paket
REC recPKTME(MENGENEINHEITEN,0,4)$[recMAIN.EINHEIT>4]

SUB #CheckPage
OUT ##outMAIN

* Schleife über Paketteile
REC recPKTteil(PAKETE,2,17)$[recMAIN.PKTNR<17]
SKIP recPKTteil
LOOP recPKTteil(#loopPKTteil)

pktVK1G=$[pktVK1M]+$[pktVK1L]
* Paketsummen ausgeben
OUT ##outPKTSUMME
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

##FussSeite
*  Ausgabe fuer den allgemeinen Seitenfuss 
* ausser der letzten Seite
CY=3
L=0;0;100;1; ;\-

*R=80;0;20;1;Times New Roman,12,F;Übertrag

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

#end

##FussBericht
*  Ausgabe fuer den letzten Seitenfuss 
CY=3
L=0;0;100;1; ;\-

*L=0;0;100;1;Times New Roman,12,F;$[recADR.BANK1_KONT]

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

#end

