Firmenadresse ausblenden

Es soll eine Auftragsbestätigung angepasst werden, die aus der Maske AUFTRÄGE gedruckt wird. Standardmäßig werden im Dokument-Kopf Kunden- und Firmen-Adressen gedruckt. In dem Beispiel soll die Firmen Adresse nicht mehr ausgegeben werden, weil z.B. das Hintergrund-Bild diese Information enthält.

Einbinden eines neuen Moduls mod_beispiel

Um beispielhaft Änderungen erklären zu können, soll ein Modul mod_beispiel in das System eingebunden werden. Hierzu wird folgendermaßen vorgegangen:

  1. Eintrag des neuen Moduls mod_beispiel in die Datei modules.in (siehe 2.1)
  2. Aufruf: < make modulesdir>
  3. Eine Datei, in der alle Änderungen der Maskendefinitionen am Standard-System gemacht werden, wird im Verzeichnis
 ~/src/mod_beispiel/maskdef

angelegt und hat den Namen mod_beispiel.def.

Der Dateiname sollte mit 'mod' beginnen. Danach kommt der Modul-Name 'beispiel' und die für alle Masken-Dateien übliche Erweiterung '.def'. Die Datei muss folgende Zeilen beinhalten:

 /* Code-Ausschnitt: mod_beispiel.def */
 #include "../../include/maskdef/layout_base.deh"
 OS_MODULE mod_beispiel 0 0 {
    ...
 }
 /* Ausschnitt-ENDE */

Alle Änderungen werden innerhalb der geschweiften Klammern implementiert.Falls noch keine Feldänderungen gemacht wurden, muss zuerst mindestens eine Dummy-Änderung vorgenommen werden. Sonst kann kein Formular übersetzt werden.

Hinweis:
Für größere Projekte empfiehlt es sich, einer besseren Übersichtlichkeit wegen, Änderungen der Maskendefinitionen in Dateien zu schreiben, die den Namen der zu ändernden Maske haben (also Änderungen an der Maske adr werden in einer Datei adr.def definiert, etc.) Alle diese Dateien müssen natürlich in der maskdef_p.ppi eingetragen werden!

Eintrag der Maskendefinitionsdatei in maskdef_p.ppi

Vor dem Compilieren muss die Maskendefinitionsdatei 'atrk.def' in die Datei 'maskdef_p.ppi' im gleichen Verzeichnis eingetragen werden. Solange eine Maskendatei in der Datei 'maskdef_p.ppi' nicht eingetragen ist, wird sie beim Compilieren nicht berücksichtigt. Die Eintragung sieht wie folgt aus:

 /* Code-Ausschnitt: mod_beispiel/maskdef/maskdef_p.ppi */
 MASKDEFS=\
 atrk.def\
 /* Ausschnitt-ENDE */

Erzeugen eines Beispiel-Druckformulars

Das Original-Druckformular, das geändert werden soll, kann ins Verzeichnis formular des Beispiel- Moduls kopiert werden. Die Formular-Datei soll hier druck_mbaratrk_beispiel.ssr genannt werden.

 <benutzer>@<rechner /src/ mod_beispiel/formular>
 cp ../../mod_ess/formular/druck_mbaratrk.ssr druck_mbaratrk_beispiel.ssr

Eintrag des Beispiel-Druckformulars in formular_p.ppi

Diese muss in die Datei 'formular_p.ppi' , die im gleichen Verzeichnis erzeugt werden muss, eingetragen werden. Dabei wird die Datei mit der Erweiterung *.sr statt *.ssr eingegeben. die Eintragung für das Druckformular 'druck_mbaratrk_beispiel.ssr' sieht z.B. wie folgt aus:

 /* Code-Ausschnitt: formular_p.ppi */
 druck_mbaratrk_beispiel.sr\
 /* Ausschnitt-ENDE */

Definieren des Formular-Textes

Im Pull-Down-Menü „Formularauswahl“ soll das neue Formular unter dem Namen 'NEU-Auftrag drucken' hinzugefügt werden. Der String „NEU-Auftrag drucken“ muss deshalb in der Datei mxlang.mod_beispiel definiert werden.

 /* Code-Ausschnitt: mxlang.mod_beispiel */
 100001@D@NEU-Auftrag drucken@@
 /* Ausschnitt-ENDE */

Beim Compilieren wird er dann automatisch in die Datei mxlang gelinkt, in der alle Strings definiert sind.

Zufügen des neuen Formulars in Formularauswahl der Maske

Jetzt muss noch ein Eintrag in den Formscripten in der Maskendefinition im Verzeichnis maskdef vorgenommen werden, damit unser neues Formular auch ausgeführt werden kann.

Beispiel: vi mod_beispiel/maskdef/atrk.def

 /* Code-Ausschnitt: mod_beispiel/atrk.def */
 OS_CREATEFORMSCRIPT atrk 100001 OS_AFTER 51100 ;
 OS_UPDATEFORMSCRIPT atrk OS_FORMPULLDOWN 100001 OS_PRINT druck_mbaratrk_beispiel OS_AFTER druck_mbaratrk;
 /* Ausschnitt-ENDE */

Mit diesem Eintrag wird unser neues Formular als neue Aktion in der Formularauswahl der Maske AUFTRÄGE zugefügt.

Ersetzen eines bestehenden Formulars

Um ein bestehendes Formular durch unser neues zu ersetzen muss in der selben Datei folgender Eintrag gemacht werden:

 /* Code-Ausschnitt: mod_beispiel/atrk.def */
 OS_UPDATEFORMSCRIPT atrk OS_FORMPULLDOWN 51100 OS_PRINT druck_mbaratrk_beispiel OS_REPLACE druck_mbaratrk;
 /* Ausschnitt-ENDE */

Hierbei erfolgt keine sichtbare Änderung in der Maskenoberfläche, beim Ausführen der Aktion wird jedoch das neue Formular zum Einsatz kommen.

Änderungen im Druckformular vornehmen

Um Änderungen vorzunehmen muss die Datei druck_mbaratrk_beispiel.ssr geöffnet werden. Für das Drucken der Adressen im Dokument ist die Funktion druckadress() verantwortlich. Die Funktion befindet sich in der Include-Datei 'druckkopf.ssh'.
(Für vi-Benutzer: setzen Sie den Cursor mitten in die Zeile und drücken Sie die Tasten 'g' und 'f'. So gelangen sie am schnellsten in die include-Datei. Mit ':n#' gehen sie wieder zurück).

Die Ausgabe der Mandanten-Adresse ist von der Definition von DOC_MAN_ADR abhängig. Die Definition findet in der Include-Datei 'layout.ssh' statt und sieht wie folgt aus:

  /* Code-Ausschnitt: layout.ssh */
  #define DOC_MAN_ADR
  /* Ausschnitt-ENDE */

Damit die Änderungen sich nur auf die gewünschten Dokumente auswirken, muss eine neue Include-Datei erstellt werden.
Hierfür muss die Original-Include-Datei 'layout.ssh' ins Verzeichnis '~/src/mod_beispiel/formular' kopiert und in 'layout_beispiel.ssh' umbenannt werden:

 <benutzer>@<rechner /src/ mod_beispiel/formular>
 cp ../../mod_ess/formular/layout.ssh layout_beispiel.ssh

(alle abgeänderten Original-Dateien sollten nach folgendem Muster benannt werden <dateiname>_<modulname>.<dateierweiterung>).

Um die Ausgabe der Mandanten-Adresse zu verhindern, muss die Definition von DOC_MAN_ADR rückgängig gemacht werden. Das Auskommentieren der Zeile kann wie folgt aussehen:

 /* Code-Ausschnitt: layout_beispiel.ssh */
 //#define DOC_MAN_ADR
 /* Ausschnitt-ENDE */

Im Druckformular druck_mbaratrk_beispiel.ssr muss die Eingabe:

 #include "../../include/formular/layout.ssh"

durch:

 #include "../../include/formular/layout_beispiel.ssh"

ersetzt werden.

Compilieren

Um den Compiler zu starten muss man sich als <benutzer> im Verzeichnis ~/src befinden und den Aufruf

 mx001@<rechner>:~/src> make

eingeben.

Nach dem erfolgreichen Compilieren werden aus der Maske AUFTRÄGE die Dokumente ohne Firmenadresse ausgedruckt.

programmierung/druck/adresse.txt · Zuletzt geändert: 01.03.2020 08:25 (Externe Bearbeitung)
 

mercaware ist eine ERP-Software der All for Accounting GmbH

ERP für Ihr einzigartiges Unternehmen

Auberlenstr. 13
70736 Fellbach
Tel.: +49 711 90 65 79 71
E-Mail: