Das Einbinden zusätzlicher Grafiken/Logos in die Formulare ist keine einfache Aufgabe. Ich möchte es hier am Beispiel eines Kunden von mir zeigen. Natürlich sind die Kundennamen anonymisiert. Zuerst werden die Logos und ihre Dimensionen angelegt. Dabei sollte man sich an die Vorgaben von Lexware halten, damit keinen Wert vergisst:
- Pfad zur Datei
- Position des Logos vom linken Papierrand (!)
- Position des Logos vom oberen Papierrand (!)
- Breite des Logos
- Höhe des Logos
Bei der Eingabe des Pfadnamens ist auf die Anführungszeichen und die doppelten Backslash “\\” zu achten. Auch ist es sinnvoll, die eigenen Dateien in einem eigenen Ordner vorzuhalten.
Bei der Auflösung der Dateien sollte man diese in der Standardauflösung des Druckers vorliegen haben, damit dieser die Bilder nicht nochmal skalieren muss, was zu einer Verschlechterung der Qualität führt.
Im nachfolgenden Beispiel werden 6 (Sechs) Logos eingebunden, die in Abhängigkeit von der getroffenen Auftragsart dann später angedruckt werden.
' FirmaXXX Logos == ANFANG 'Logo für 1. Seite ************************************************************************** Dim sFirmaXXXLogo1 as string = "L:\\Formulare\\Grafiken\\briefkopf_FirmaXXX.bmp" Dim nFirmaXXXLogo1Links as numeric = 1.00 cm Dim nFirmaXXXLogo1Oben as numeric = 1.00 cm Dim nFirmaXXXLogo1Breite as numeric = 18.70 cm Dim nFirmaXXXLogo1Hoehe as numeric = 2.51 cm 'Logo für Seite 2 ff... ********************************************************************** Dim sFirmaXXXLogo2 as string = "L:\\Formulare\\Grafiken\\briefkopf_seite2_FirmaXXX.bmp" Dim nFirmaXXXLogo2Links as numeric = 1.00 cm Dim nFirmaXXXLogo2Oben as numeric = 1.00 cm Dim nFirmaXXXLogo2Breite as numeric = 18.70 cm Dim nFirmaXXXLogo2Hoehe as numeric = 0.70 cm 'Buchhaltungsmarker *********************************************************************** Dim sFirmaXXX_KSGB as string = "L:\\Formulare\\Grafiken\\ks_gb.bmp" Dim nFirmaXXX_KSGBLinks as numeric = 16.00 cm Dim nFirmaXXX_KSGBOben as numeric = 4.00 cm Dim nFirmaXXX_KSGBBreite as numeric = 4.00 cm Dim nFirmaXXX_KSGBHoehe as numeric = 3.00 cm 'Kundenkopie ***************************************************************************** Dim sFirmaXXX_KKP as string = "L:\\Formulare\\Grafiken\\Kundenakte.bmp" Dim nFirmaXXX_KKPLinks as numeric = 16.00 cm Dim nFirmaXXX_KKPOben as numeric = 3.40 cm Dim nFirmaXXX_KKPBreite as numeric = 4.00 cm Dim nFirmaXXX_KKPHoehe as numeric = 3.00 cm 'Rohgewinn ***************************************************************************** Dim sFirmaXXX_EKVK as string = "L:\\Formulare\\Grafiken\\EK_VK.bmp" Dim nFirmaXXX_EKVKLinks as numeric = 16.00 cm Dim nFirmaXXX_EKVKOben as numeric = 3.40 cm Dim nFirmaXXX_EKVKBreite as numeric = 4.00 cm Dim nFirmaXXX_EKVKHoehe as numeric = 3.00 cm 'Logo für die Bankverbindung *************************************************************** Dim sFirmaXXXLogo3 as string = "L:\\Formulare\\Grafiken\\bankverb_FirmaXXX_farbe.bmp" Dim nFirmaXXXLogo3Links as numeric = 1.00 cm Dim nFirmaXXXLogo3Oben as numeric = 28.00 cm Dim nFirmaXXXLogo3Breite as Numeric = 18.78 cm Dim nFirmaXXXLogo3Hoehe as numeric = 0.51 cm '= FirmaXXX Logos == ENDE
Nachdem die Logos definiert wurden sollen sie jetzt natürlich auch noch angedruckt werden. Dazu muss man sie an den gewünschten Stellen in den Quelltext des Formulars einbinden und eventuell die Abfragen für die einzelnen Anzeigevarianten erzeugen oder abändern.
Als 1. Beispiel möchte ich hier das Banklogo anführen. Dazu wurde die Standarddatei lay_pro.lsf abgeändert
' Firmenlogo anzeigen, wenn ausgewählt SetFormatNumericOptions(FN_CUSTOM, "","") If bMitLogoAufSeite1 then DrawImage(nFirmenLogoLinks-nRandLinks, nFirmenLogoOben-nRandOben, nFirmenLogoBreite, nFirmenLogoHoehe, sFirmenLogoQuelle) 'Bankverbindung DrawImage(nFirmaXXXLogo3Links-nRandLinks, nFirmaXXXLogo3Oben-nRandOben, nFirmaXXXLogo3Breite, nFirmaXXXLogo3Hoehe, sFirmaXXXLogo3) End If If bMitLogo2AufSeite1 then DrawImage(nFirmenLogo2Links-nRandLinks, nFirmenLogo2Oben-nRandOben, nFirmenLogo2Breite, nFirmenLogo2Hoehe, sFirmenLogo2Quelle) 'Bankverbindung DrawImage(nFirmaXXXLogo3Links-nRandLinks, nFirmaXXXLogo3Oben-nRandOben, nFirmaXXXLogo3Breite, nFirmaXXXLogo3Hoehe, sFirmaXXXLogo3) End If
Das ist insofern einfach, da es auf jeder Seite gedruckt wird. Es erfolgt also keine Auswahl ob 1. Seite oder Folgeseite.
Beim 2. Beispiel wurde die Datei lay_devi.lsf als Grundlage verwendet.
Beim Andruck des Buchhaltungsmarker ist das Ganze schon etwas anderes, da dieser nur auf der 2. von 3 Seiten gedruckt werden soll. Dazu waren dann nicht nur in der eigentlichen Druckroutine für den Auftrag Änderung erforderlich, sondern es mussten auch noch Änderungen in verschiedenen anderen Bereichen vorgenommen werden. Allerdings war anschließend mit diesem einen Formular der Ausdruck der folgenden Unterlagen möglich:
- Kopie für den Kundenordner mit dem Eindruck “Kundenkopie”
- Kopie mit dem Eindruck eines Buchhaltungsmarkers als Logo für die Vorkontierung
-
- Kopie mit den EK-VK-Preisen zur Ermittlung des Rohgewinns (beim Angebot)
- Kopie für die Kundenakten (bei der Rechnung)
'Firmenlogo anzeigen, wenn ausgewählt SetFormatNumericOptions(FN_CUSTOM, "","") If bMitLogoAufSeite1 then DrawImage(nFirmenLogoLinks-nRandLinks, nFirmenLogoOben-nRandOben, nFirmenLogoBreite, nFirmenLogoHoehe, sFirmenLogoQuelle) 'FirmaXXX KG 'FirmaXXX Logo 1 DrawImage(nFirmaXXXLogo1Links-nRandLinks, nFirmaXXXLogo1Oben-nRandOben, nFirmaXXXLogo1Breite, nFirmaXXXLogo1Hoehe, sFirmaXXXLogo1) if (i_FirmaXXX_KopieZaehler = 2) then ' Kundenkopie DrawImage(nFirmaXXX_KKPLinks-nRandLinks, nFirmaXXX_KKPOben-nRandOben, nFirmaXXX_KKPBreite, nFirmaXXX_KKPHoehe, sFirmaXXX_KKP) end if if (i_FirmaXXX_KopieZaehler = 3) then if ( IS(AUFTR_IST_AG) = true) then 'Rohgewinnermittlung DrawImage(nFirmaXXX_EKVKLinks-nRandLinks, nFirmaXXX_EKVKOben-nRandOben, nFirmaXXX_EKVKBreite, nFirmaXXX_EKVKHoehe, sFirmaXXX_EKVK) else 'Buchungskopie DrawImage(nFirmaXXX_KSGBLinks-nRandLinks, nFirmaXXX_KSGBOben-nRandOben, nFirmaXXX_KSGBBreite, nFirmaXXX_KSGBHoehe, sFirmaXXX_KSGB) end if end if ' Bankverbindung DrawImage(nFirmaXXXLogo3Links-nRandLinks, nFirmaXXXLogo3Oben-nRandOben, nFirmaXXXLogo3Breite, nFirmaXXXLogo3Hoehe, sFirmaXXXLogo3) ' FirmaXXX KG End If If bMitLogo2AufSeite1 then DrawImage(nFirmenLogo2Links-nRandLinks, nFirmenLogo2Oben-nRandOben, nFirmenLogo2Breite, nFirmenLogo2Hoehe, sFirmenLogo2Quelle) ' FirmaXXX ' FirmaXXX Logo 2 DrawImage(nFirmaXXXLogo2Links-nRandLinks, nFirmaXXXLogo2Oben-nRandOben, nFirmaXXXLogo2Breite, nFirmaXXXLogo2Hoehe, sFirmaXXXLogo2) ' Bankverbindung DrawImage(nFirmaXXXLogo3Links-nRandLinks, nFirmaXXXLogo3Oben-nRandOben, nFirmaXXXLogo3Breite, nFirmaXXXLogo3Hoehe, sFirmaXXXLogo3) ' FirmaXXX KG End If
Eine einzelne Auswahl der zusätzlichen Logos über die Formularverwaltung ist nicht möglich, da man dort ja keine zusätzlichen Logos generieren kann.