In diesem Artikel möchte ich Euch heute zeigen, wie Ihr Lexware Formulare durch eine Änderung im Quelltext anpassen könnt. Es gibt einige Stellen an denen Ihr Formulare verändern könnt, wir schauen uns heute die Variante mit Quelltextänderung an.

Formulare

Um eine Formularanpassung vorzunehmen, ist es von Vorteil, wenn Ihr schon mal programmiert habt. Ziel dieses Beitrages ist es aber nicht zu zeigen wie man programmiert, sondern was Ihr beachten müsst, wenn Ihr ein eigenes Formular erstellen wollt. Also wie Ihr eine neue Formulardatei anlegt und wie Ihr diese in Lexware einbindet.

Vorweg sei noch gesagt, es ist egal in welchem Programmodul Ihr Euch befindet, der Weg ist immer sehr ähnlich. In diesem Beispiel wird die warenwirtschaft pro/premium verwendet!

1. Druckassistent aufrufen

Wählt einen Auftrag und klickt auf „Drucken“

Auftrag Druck

Nun erscheint der Druck-Assistent.

2. Formularvariante wählen

Im Druck-Assistent wählt Ihr die Formularvariante aus, die Ihr ändern wollt.

3. Formularverwaltung aufrufen

Nach dem auswählen der Formularvariante klickt Ihr auf den Button “Formularverwaltung”.

Formularverwaltung

4. Formularlayoutassistent / Formulardatei öffnen

Im nun folgenden Fenster klickt Ihr auf “Bearbeiten”. Achtung den Button „Bearbeiten“ gibt es zweimal und man mag es kaum glauben, egal welchen Button Ihr wählt, es passiert dasselbe.

Formular bearbeiten

An dieser Stelle können sich zwei verschiedene Dialoge öffnen, dies hängt vom Formular ab, welches als Grundlage für die Ausgabe dient.

Variante 1) Der „Formularlayout-Assistent“ öffnet sich.

Formularlayoutassistent

Im „Formularlayoutassistent“ könnt Ihr schon viele Einstellungen vornehmen, aber wir wollen ja an den Quellcode des Formulars. Aus diesem Grund sucht Ihr unten im Assistenten den „Formularrahmen“. Rechts neben dem „Formularrahmen“ gibt es den Button „Im Editor bearbeiten“. Diesen klickt Ihr an!

Variante 2) Es öffnet sich ein kleiner Dialog mit dem Namen „Bearbeiten der Formulardatei“

Formulardatei bearbeiten

In diesem Dialog klickt Ihr auf „Formulardatei bearbeiten“

5. Aufruf Quelltext

Egal welche Variante der Fall ist, es kommt jetzt die Meldung:

Hinweis Bearbeitung Quelltext Formular

Ab jetzt heißt es „Augen auf“, wenn es schlecht läuft und Ihr einen Fehler macht, dann funktioniert das Formular danach nicht mehr! Aber keine Angst, man kann fast alles wiederherstellen!

Manchmal kann es aber auch zur folgenden Meldung kommen:

Hinweis keine Bearbeitung Quelltext

Dann gibt es wiederum 2 Möglichkeiten.
Möglichkeit 1: Lexware hat den Quellcode nicht mit geliefert, das wäre hier im Beispiel der Fall. Hier heißt es Pech gehabt, an den Quellcode kommt Ihr nicht ran, da Lexware Euch den nicht geben wird. Es gibt aber ein paar Drittanbieter die so ein Formular nachprogrammieren können.

Möglichkeit 2: Das Formular wurde von einem Drittanbieter erstellt und dieser hat den Quellcode nicht mit geliefert. Dann müsst Ihr Euch an diesen Drittanbieter wenden und dieser muss die Änderung durchführen oder Euch den Quellcode zur Verfügung stellen. Ob Ihr vom Drittanbieter den Quellcode bekommt oder nicht, hängt von diesem selbst ab.

6. Erzeugung .usf Datei

Steht der Quelltext zur Verfügung hat sich nun bei Euch ein neues Fenster geöffnet. Ihr befindet Euch nun in der DruckNT IDE, dem Compiler, und Ihr seht den Quelltext des Formulars, welches Ihr gewählt habt, vor Euch.

WICHTIG bevor Ihr etwas ändert, speichert Ihr das Formular unter einem neuen Namen ab, z.B. „ErsterVersuch“ (natürlich solltet Ihr einen sinnigen Namen wählen, der für sich spricht). Das Formular erhält nun die Endung USF (User Script File), im Gegensatz zur Endung LSF (Lexware Script File) der Lexware Formulare.

Warum das? Der Grund ist ganz simpel: solltet Ihr vergessen einen neuen Namen zu geben, ist es nicht das gleiche Formular. Lexware überschreibt z.B. bei Updates alle Formulare die von Lexware programmiert sind (Endung LSF) ohne zu fragen. Hättet ihr Euer Formular mit einem Lexware Standard Namen gespeichert und wäre die Endung nicht verändert worden, so könnte es passieren, das bei einem Update Eure Änderungen verloren gehen. Es geschieht also zu Eurer Sicherheit.

Nach dem speichern seht Ihr oben im Karteireiter den Namen des Formulars.

Formularcode

Schließt nun das Formular über „Datei“ -> „Schließen“

7. Formular in Compiler laden

Als nächstes müsst Ihr das eben erstelltes Formular in den Compiler laden, dies geschieht über den Menüpunkt „Projekt“ und dann „Formular…“

Projekt - Formular

Wenn Ihr auf „Formular…“ klickt, dann öffnet sich ein Dateiauswahldialog in dem Ihr Euer eben gespeichertes Formular auswählen könnt.

Wie stellt man fest, welches Formular im Compiler geladen ist? Dazu schauen wir uns die obere linke Ecke des Compilers an, dort steht momentan der Name des Formularrahmens, welches Ihr unter Punkt 4. bei „Im Editor bearbeiten“ ausgewählt habt.

Formularname

Nach dem laden steht der neue Name (in unserem Beispiel „ErsterVersuch“) in der linken Ecke des Compilers.

Formularname

8. Formularbezeichnung ändern

 In einer der ersten Zeilen des Formular findet Ihr folgende Zeile:

Description form_description as „Kopie Standard Auftrag“

Wenn Ihr den Text in den Anführungszeichen ändert, hat dies zur Folge, dass Ihr später das Formular unter diesem Namen in Lexware angezeigt bekommt. Manchmal findet Lexware die Formulare nicht selbständig, dann muss man in der Formularverwaltung auf die Lupe (Suchen) klicken, dann wird der Formularordner nach neuen Formularen durchsucht und diese in Lexware eingebunden.

Formularsuche

9. Änderung im Quelltext / kompilieren

Jetzt könnt Ihr Eure Änderungen am Quelltext durchführen. Sollten Ihr mal einen Befehl nicht wissen, dann drückt einfach die Taste „F1“, damit öffnet sich die Hilfe von Lexware und Ihr bekommt einen Überblick über alle Befehle die Lexware kennt. Wenn Ihr ein Neuling in der Programmierung seid, dann empfiehlt es sich, immer wieder mal die Taste „F7“ zu betätigen. Nach dem betätigen der Taste „F7“ passieren zwei Dinge nacheinander. Zuerst wird das Formular gespeichert, dann wird das Formular kompiliert, also in Maschinensprache übersetzt.

Ist Euer Code ohne Fehler, dann erscheint folgende Ausgabe:

Kompilierung

Ist Euer Quellcode jedoch mit Fehler(n) behaftet, dann erscheint folgende Ausgabe:

Fehler Kompilierung

Hinter dem Namen des Formulars (hier „ErsterVersuch.usf“) steht in Klammern eine Zahl (hier 105), dies ist die Zeile in der Lexware einen Fehler entdeckt hat. Der Fehler muss nicht immer genau in der angegebenen Zeile sein, wenn Ihr eine Schleife oder ähnliches programmiert habt, kann der Fehler auch vorher auftreten.

10. Formulardateien speichern

Nachdem Ihr Eure Änderungen gemacht habt und die Kompilierung erfolgreich war, habt Ihr zwei Formulardateien:

  • „ErsterVersuch.usf“ (der Quelltext)
  • „ErsterVersuch.umb” (die programmlesbare Formulardatei)

Diese Dateien könnt Ihr noch separat speichern, oder einfach bei der nächsten Datensicherung das Formularvezeichnis mitsichern. Diese Dateien befinden sich in einer Standard-Installation im Verzeichnis:

  • a) unter C:\Dokumente und Einstellungen\All Users\Anwendungsdaten\Lexware\[Lexware Programmname]\Formulare\[ggf. Modulname] (Windows 2000 + Windows XP)

bzw.

  • b) unter C:\ProgramData\Lexware\[Lexware Programmname]\Formulare\[ggf. Modulname] (Windows Vista + Windows 7 + Windows 8)

bzw.

  • c) unter \\Servername\Freigabename von Lexware\Formulare (pro/premium Version bei Netzwerkinstallation)

Hinweis: Die Verzeichnisse von a) und b) gehören zu den “versteckten” Verzeichnissen. Solltet Ihr den Ordner nicht finden, aktiviert die Option “Alle Dateien und Ordner anzeigen” im Windows Explorer unter Extras/Ordneroptionen.

Ich empfehle die Dateien nicht unter dem Namen „layout.lsf/layout.vmb“, bzw „lay_pro.lsf/lay_pro.vmb“ zu speichern, da diese Dateien beim nächsten Update/Aktualisierung überschrieben würden.

11. Formularrahmen für Formular ändern

Nun müsst Ihr evtl. noch Lexware mitteilen, dass es eine neu „Basisdatei“ gibt, mit der die Ausgabe erfolgen soll. Nehmen wir mal an Ihr habt eine Auftragsvariante in Lexware angelegt und habt nun die „Lay_pro.lsf/vmb“, wie oben beschrieben, in „ErsterVersuch.usf/umb“ geändert. Nun müsst Ihr den Formularrahmen bei Eurer Formularvariante ändern.

Hierzu geht Ihr noch mal die Schritte 1 – 4 durch. Solltet Ihr bei 4 an die „Variante 1“ gelangen, dann müsst Ihr bei „Formularrahmen“ auf den Pfeil klicken und Euer programmiertes Formular auswählen. Solltet Ihr an die „Variante 2“ gelangen, dann tragt Ihr in das Feld „Formulardatei“ Euren neuen Namen (hier „ErsterVersuch.umb“) ein. In beiden Fällen speichert Ihr unter gleichem Name ab.

Nun ist es geschafft. Im ersten Moment liest sich die Änderung sehr aufwendig, jedoch habe ich hier versucht wirklich jeden Punkt niederzuschreiben, damit so wenig wie möglich Fragen offen bleiben. Testet es einfach und Ihr werdet feststellen, dass es beim zweiten, dritten Mal schon wesentlich flüssiger von der Hand geht.

Formularanpassung beauftragen?

Solltet Ihr spezielle Wünsche für die Anpassung haben oder die die Formularanpassung nicht selbst durchführen wollen, gibt es auch Spezialisten welche Euch (kostenpflichtig) bei der Formularanpassung behilflich sind. Fragt bei einem der regionalen Lexware Partner an oder nutzt die Kontaktmöglichkeit hier im Blog und wählt Angebotsanfrage Formularanpassung aus.