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 While
Und 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