Damit man mehrere, auch abweichende Seiten eines Auftrages ausdrucken kann, muss man einen Kopienzähler einrichten. Auf die dabei erzeugten Variablen kann man dann im Laufe des Skriptes zugreifen und z.B. Logos in Abhängigkeit von der Kopienzahl unterschiedlich andrucken. Siehe auch Grafiken einbinden.
Zuerst muss man dazu den Kopienzähler definieren:
' Definition der Anzahl der Kopien Dim i_FirmaXXX_AnzahlKopien as numeric = 3 Dim i_FirmaXXX_KopieZaehler as numeric = 1 Dim b_FirmaXXX_AuftragIstRechnung as bool = IS(AUFTR_IST_RG)
Das erste Codebeispiel zeigt den geänderten Text der Datei lay_devi.lsf:
'///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
'----------------------------------------------Erzeugen des gesamten Formulars -----------------
'SetHeaderMargin(nRandLinks, nRandOben, nRandRechts, nKopfzeileHoehe)
' Header so Hoch wie der Body, damit in der Funktion Kopfzeile auf das ganze Blatt gezeichnet werden kann
SetHeaderMargin(nRandLinks, nRandOben , nRandRechts, nSeitenHoehe-nRandUnten - nFusszeileHoehe)
SetFooterMargin(nRandLinks, nFusszeileHoehe + 10, nRandRechts, nFusszeileHoehe)
SetBodyMargin(nRandLinks, nRandOben , nRandRechts, nRandUnten + nFusszeileHoehe + 10)
dim bPageBreak as bool = FALSE
dim nTemp as numeric = 0
'dim strTemp as string = ""
'hier beginnt die Kopie-Schleife +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
while i_FirmaXXX_KopieZaehler <= iAnzahlKopien do 'sagt dass es zwei Ausdrucke gibt
Result_R = FirstRecord(AUFTRAG) 'Erste Rechnung oder sonstiges
if i_FirmaXXX_KopieZaehler > 1 then
nAuftragPage = 0
PageBreak()
end if
' für die erste Seite werden die Funktionen des Seitenwechsels bereits hier aufgerufen
if Result_R then
....
bEndeAuftragsbeschreibung = false
Pagebreak()
end if
End While
i_FirmaXXX_KopieZaehler = i_FirmaXXX_KopieZaehler + 1
End WhileUnd hier der Originalcode der lay_devi.lsf:
'///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
'----------------------------------------------Erzeugen des gesamten Formulars -----------------
fNoPageBreak = true
SetPrintDevice(1)
fNoPageBreak = false
'SetHeaderMargin(nRandLinks, nRandOben, nRandRechts, nKopfzeileHoehe)
' Header so Hoch wie der Body, damit in der Funktion Kopfzeile auf das ganze Blatt gezeichnet werden kann
SetHeaderMargin(nRandLinks, nRandOben , nRandRechts, nSeitenHoehe-nRandUnten - nFusszeileHoehe)
SetFooterMargin(nRandLinks, nFusszeileHoehe + 10, nRandRechts, nFusszeileHoehe)
SetBodyMargin(nRandLinks, nRandOben , nRandRechts, nRandUnten + nFusszeileHoehe + 10)
dim bPageBreak as bool = FALSE
'dim strTemp as string = ""
dim nTemp as numeric = 0
Result_R = FirstRecord(AUFTRAG) 'Erste Rechnung oder sonstiges
' für die erste Seite werden die Funktionen des Seitenwechsels bereits hier aufgerufen
if Result_R then
bEndeAuftragsbeschreibung = false
Pagebreak()
end if
End While
Veröffentlicht bzw. zuletzt aktualisiert am 15. Juni 2019 - Autor: Robert Madloch
Founder: