Neue Maske erstellen

Eine neue Maske soll erstellt werden, in der zusätzliche Informationen zu einem Artikel angezeigt werden. Die Maske soll 'ARTIZU' heißen und der Maskentitel soll ARTIKEL -ZUSATZINFO sein.

Beim Erstellen einer komplett neuen Maske empfiehlt es sich hierfür eine eigene Maskendefinitions-Datei anzulegen, die dem Namen der Maske entsprechen sollte. Für unser Beispiel wird also eine Datei 'artizu.def ' im Verzeichnis

 <benutzer>@<rechner>:~/src/<modulname>/maskdef

angelegt.

Sichern der Datei mxmask.msk

Bei Modulen, die über die Maskendefinitionen eine Datenbankänderung definieren, wird die Datei mxmask.msk neu erstellt, und somit die aktuelle mxmask.msk überschrieben. Die Definitionen der Datenbankstruktur werden über die mxmask.msk in die Datenbank eingearbeitet.

Die Checksumme der Datenbank muss mit der in der Datei mxmask.msk hinterlegten Checksumme übereinstimmen, sonst starten die Prozesse nicht. Deshalb muss unbedingt vor Programmiertätigkeiten, die in die Datenbankstruktur eingreifen, die mxmask.msk gesichert werden!

Eintrag in maskdef_p.ppi

Da die Maske in ein existierendes Menüsystem eingebunden wird, muss im gleichen Verzeichnis noch eine Masken-Datei 'mod_beispiel.def' erstellt sein, in der Änderungen des Standardsystems vorgenommen werden können. Die beiden Masken-Dateien müssen in die Datei 'maskdef_p.ppi' im gleichen Verzeichnis eingetragen werden :

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

Durch diese Eintragung werden neue Masken beim Compilieren zusätzlich zu Standard-Modulen übersetzt.

Definieren der neuen Maske

In der Datei 'artizu.def' wird die neue Maske vollständig definiert. Die Maskendefinitions-Datei enthält alle gewünschten Felder, Feldbeschriftungen, Hilfebeschreibungen zu jedem Feld. Die einzelnen Inhalte sind in der Masken-Datei kommentiert.

Eine gute Möglichkeit ist auch eine ähnliche Maske zu kopieren und ihr den gewünschten Dateinamen zu geben. Dann müssen nur noch die gewünschten Änderungen in der Masken-Datei vorgenommen werden:

 ~/src/<modulname>/maskdef> cp ../../mod_ess/maskdef/art1info.def artizu.def

Nach dem Editieren der Datei sollte zuerst der Modulname geändert werden. Anschließend müssen alle Bezeichnungen 'ART1INFO ' in 'ARTIZU' umbenannt werden.

Dies geht im vi am schnellsten und sichersten mit folgendem Befehl:

 :%s/ART1INFO/ARTIZU/g

(Andere Editoren arbeiten hier z.B. mit 'suchen und ersetzen') Außerdem müssen natürlich die Strings geändert werden. Sie können, wie in Kapitel 4.2.6 beschrieben, in der Datei mxlang.<modulname> definiert werden.

Vor der Definition OS_SORTLIST…(für Tabellensortierung zuständig) kann für Auswertungen noch ein zusätzlicher Datenbank-Indexeintrag erzeugt werden:

 /* Code-Ausschnitt: artizu.def */
 OS_INDEXLIST {
    BEZ1_ARTIZU_ARTIZU, 0; //Feldname, Sortierung aufsteigend
 }
 /* Ausschnitt-ENDE */

Auf diese Weise wurde eine neue Maske erstellt. Im nächsten Schritt muss nun noch ein Button generiert werden, über den die Maske erreicht werden kann.

Erstellen eines Menu-Buttons

In der Datei 'mod_beispiel.def' werden alle Änderungen zum Standardsystem eingetragen. Hier muss auch der neue Button definiert werden.

Beispiel 11:
Ein Button ARTIKELZUSÄTZE soll im Hauptmenü ('HOMEPAGE') zugefügt werden, über den die neue Maske ARTIKELZUSÄTZE erreicht werden kann.

 /* Code-Ausschnitt: mod_beispiel.def */
 #include '../../include/maskdef/layout_base.deh'
 OS_BUTTON BUTTONARTIZU [MenuButtonLen] OS_READ | OS_WRITE {
       OS_POSITION (MenuSpalte 1, 3);
       OS_TITLE 100005 OS_TITLEPOS OS_PLEFT;
       OS_TITLELEN MenuButtonTitleLen;
       OS_NEXTMASK ADRZU;
 }
 OS_UPDATEMASK HOMEPAGE {                  //der Button soll in der Maske
     OS_MFIELDLIST {                         Hauptmenue( HOMEPAGE)
       BUTTONADRZU;                          abgebildet werden.
     }
 }
 /* Ausschnitt-ENDE */

Einbinden der neuen Maske ins System

Nach dem erfolgreichen Compilieren müssen die Datenbankprozesse gestoppt werden. Anschließend wird, wie in Kapitel 1.5 beschrieben, die Datenbankstruktur mit dem Befehl 'reltool' aktualisiert, und die Datenbankprozesse werden wieder gestartet.

Der neue Button ist nun auf dem Hauptmenü angelegt und über ihn gelangt man in die neue Maske ARTIKELZUSÄTZE.

Beim Compilieren einer neuen Maske, die noch keine Formulare beinhaltet, erzeugt der Compiler eine Fehlermeldung

 ' nothing to merge '

nach dem ersten Durchlauf. Ein erneuter Aufruf des 'make' erlaubt eine Übersetzung trotzdem.

programmierung/masken/neuanlegen.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: