Liefersystem 3.0 / MDE & Packstat Individualisierung
====================================================
Einer der Schwerpunkte beim letzten Liefersystem DevCamp war Individualisierung von MDE und Packstat.
Hier eine kleine Anleitung, was wie funktionieren sollte. Diese basiert auf der Beta 6.00 r50412
Ich werde diesen Thread auch ergänzen, sobald neue Funktionalitäten zur Individualisierung hinzukommen.
—
1. Allgemeines
—
Die Grafiken für MDEStyle-Fenster werden aus dem Verzeichnis „MDEStyle“ gezogen, nicht aus „bitmaps_xp“.
Die Ermittlung der Grafik erfolgt über das Farbschema, einen Zustand (normal, deaktiv, highlighted) und über die aktuelle Skalierung des Fensters.
Die Verzeichnisstruktur ist wie folgt:
MDEStyle\MDE – Alle Grafiken für das Modul MDE
MDEStyle\PACKSTAT – Alle Grafiken für das Modul Packstation
MDEStyle\SHARED – Grafiken, die sich die o.g. Module teilen
Innerhalb der Modul-Verzeichnisse finden sich folgende Verzeichnisse:
MDEStyle\MDE\Allgemein – Allgemeine Grafiken
MDEStyle\MDE\Gruen – Grafiken für das Farbschema Grün (einziges Farbschema bisher)
MDEStyle\MDE\MessageBox – Grafiken für die MessageBoxen
MDEStyle\MDE\Tastatur – Grafiken für die Touchtastatur
Außerdem befinden sich diese Verzeichnisse nochmal unterhalb der diversen
Verzeichnisse für höhere Auflösungen. Grundsätzlich werden zuerst diese durchsucht, ob sich eine Grafik für die aktuell passende Auflösung findet.
Ansonsten wird immer auf das Grundverzeichnis des Moduls zurückgegriffen und die Grafik von dort geladen.
—
2. Rahmen
—
Grundsätzlich ist an MDE und Packstation alles mit Rahmen realisiert.
Hier gibt es folgende Spezialrahmen:
—
2.1 Gezeichnete Rahmen
—
* Rahmenart 68: Rahmen in MDE-Grau, zeichnet ein ausgefülltes Rechteck
* Rahmenart 69: Rahmen in aktueller MDE-Farbe, zeichnet ein ausgefülltes Rechteck
* Rahmenart 70: Rahmen in aktueller MDE-Farbe, zeichnet ein nicht ausgefülltes Rechteck
* Rahmenart 410: Rahmen in weiß, zeichnet ein ausgefülltes Rechteck
* Rahmenart 411: Rahmen in MDE-Tastengrau, zeichnet ein ausgefülltes Rechteck
* Rahmenart 412: Rahmen in MDE-Tastengrau, zeichnet ein nicht ausgefülltes Rechteck
* Rahmenart 406:
Spezialrahmen, dessen Funktion es ist eine Grafik anzuzeigen und ggf. bei Click ein Tool auszuführen.
Die ToolNr, die ausgeführt wird, steht in der Spalte Ident.
Ist keine/keine gültige Grafik angegeben, wird ein schwarzer Rahmen mit weißer Füllung gezeichnet.
Die Grafik wird aus dem Rahmentext ermittelt, dort steht nur der Dateiname ohne Endung.
Die Grafiken werden aus dem o.g. Verzeichnis MDEStyle ermittelt.
Der Rahmentext für den Rahmen 406 kann zusätzlich folgende Prefixe enthalten:
„TTS_pos_len::“ öffnet der Button die MDEStyle-Touchtastatur, kann hierüber eine POS & LEN im Maskensatz angegeben werden.
„NOSTRETCH::“ Bild wird nicht auf die komplette Breite*Höhe des Rahmens gestreckt, sondern so angepasst, dass das Seitenverhältnis erhalten bleibt.
„ZOOMABLE::“ öffnet beim Klick ein weiteres MDEStyle-Fenster, dass das Bild in Originalgröße oder zumindest so groß wie möglich anzeigt.
* Rahmenart 407 & Rahmenart 408:
Spezialrahmen, die zusammen eine MDEStyle-Tabelle definieren. Diese Tabelle kann (noch?) nicht individuell befüllt werden.
Der Rahmen 407 bezeichnet die Position und Größe der Tabelle und bekommt immer die runde ID, bspw. 30000.
Über den Rahmen 408 werden die Spalten definiert und mit fortlaufender ID gekennzeichnet (bspw. 30001, 30002, 30003, …)
Die Spalten X1 und Y1 beschreiben dabei Position und Länge innerhalb des Satzes einer Zeile.
Die Spalte X2 beschreibt die Breite der Spalte in Pixel.
Die Spalte Y2 gibt an, wie der Inhalt der Spalte ausgerichtet wird.
Y2 = 0 -> linksbündig
Y2 = 1 -> mittig
Y2 = 3 -> rechtsbündig
—
2.2 Text-Rahmen
—
Text-Rahmen sind immer wie gewöhnliche Textrahmen definiert, d.h.
X1 = X-Koordinate
Y1 = Y-Koordinate
X2 = Zustande (normal, fett, etc.)
Y2 = Schriftgröße
Zusätzlich gibt es folgende Prefixe für den Rahmentext:
„CENTER::“ – zentriert den Text an der X-Koordinate.
„RIGHT::“ – richtet den Text rechtsbündig an der X-Koordinate aus
„EINGABE::“ – Setzt automatisch den Text der Unsichtbaren Eingabe als Rahmentext.
Existiert ein Rahmen mit dem Text ::EINGABERAHMEN:: wird der Text der Unsichtbaren Eingabe auf die Breite dieses Rahmens beschnitten.
Der Text wird außerdem immer mit transparentem Hintergrund gezeichnet.
* Rahmenart 402: Text in aktueller MDE-Farbe
* Rahmenart 403: Text in MDE-Grau
* Rahmenart 404: Text in Schwarz
* Rahmenart 405: Text in Weiß
Zusätzlich lassen sich im Rahmentext über folgende Satzkennzeichen + Positon + Länge Werte eines aktuellen Stammsatzes anzeigen:
* BEL_POS_LEN – Wert aus Belegsatz, setzt voraus, dass ein Belegsatz im Zugriff ist
* POS_POS_LEN – Wert aus Positionssatz, setzt voraus, dass ein Positionssatz im Zugriff ist
* ART_POS_LEN – Wert aus Artikelsatz, setzt voraus, dass ein Artikelsatz im Zugriff ist
* ADR_POS_LEN – Wert aus Adresssatz, setzt voraus, dass ein Adresssatz im Zugriff ist
* LAG_POS_LEN – Wert aus Lagersatz, setzt voraus, dass ein Lagersatz im Zugriff ist
—
2.3 Langtext-Rahmen
—
Über die Rahmenart 417 lassen sich beliebige Langtexte anzeigen.
Der Rahmen ist dabei definiert wie ein gewöhnlicher Rahmen.
Besonderheit ist, dass im Text des Rahmens der Index des Langtextes angegeben wird.
Dabei zu beachten ist, dass ein Satz eines Bereiches im Zugriff sein muss,
bspw. ein Artikel um auf Artikellangtexte zugreifen zu können.
Mögliche Langtexte sind:
Artikel:
@AT;ART_1_25 – Artikelnotiztext
@LT;##,ART_1_25 – Artikelzusatztexte aus IDB SE0119, ## ist die Nummer des Langtextes
Adressen:
@NT,ADR_2_8 – Notiztext 1
@NT72,ADR_2_8 – Notiztext 72
@NT73,ADR_2_8 – Notiztext 73
@NT74,ADR_2_8 – Notiztext 74
@NT75,ADR_2_8 – Notiztext 75
@NT76,ADR_2_8 – Notiztext 76
@WT,ADR_2_8 – Warntext
Belege:
@BELTXT,BEL_0_11 – Belegnotiz
@BELVTXT,BEL_0_11 – Belegvortext
@BELNTXT,BEL_0_11 – Belegnachtext
@BELTXT_0,BEL_0_11 – Belegzusatztext
Positionen:
@POSTXT,POS_645_10 – Positionsnotiztext 1
@POSTXT2,POS_645_10 – Positionsnotiztext 2
@POSTXT3,POS_645_10 – Positionsnotiztext 3
@POSTXT4,POS_645_10 – Positionsnotiztext 4
—
3. Toolnummern
—
Folgende spezielle Toolnummern gibt es in den MDEStyle-Fenstern.
Diese können bspw. manuell über den Button-Rahmen 406 ausgelöst werden:
Allgemein:
* 90000 – Fenster schließen ohne Abfrage
* 90001 – Selbe Funktion wie Pfeil hoch (bspw. für eine Tabelle oder ein Menü)
* 90002 – Selbe Funktion wie Pfeil runter
* 90003 – Selbe Funktion wie Return/Enter
* 90004 – Selbe Funktion wie Bild hoch
* 90005 – Selbe Funktion wie Bild runter
* 90006 – Selbe Funktion wie Mausrad hoch
* 90007 – Selbe Funktion wie Mausrad runter
* 90901 – BEL-Fenster öffnen, setzt voraus, dass ein Belegsatz im Zugriff ist
* 90902 – POS-Fenster öffnen, setzt voraus, dass ein Positionssatz im Zugriff ist
* 90903 – ART-Fenster öffnen, setzt voraus, dass ein Artikelsatz im Zugriff ist
* 90904 – ADR-Fenster öffnen, setzt voraus, dass ein Adresssatz im Zugriff ist
* 90905 – LAG-Fenster öffnen, setzt voraus, dass ein Lagersatz im Zugriff ist
Nur Modul Packstation:
* 90100 – TouchTastatur öffnen, x-zentriert unter Button
* 90101 – TouchTastatur öffnen, x-zentriert und y-zentriert
* 90102 – Touchtastatur automatisch öffnen, x-zentriert und y-zentriert
* 90103 – Touchtastatur mit Unsichtbarer Eingabe öffnen, x-zentriert und y-zentriert
* 90112 – Numpad automatisch öffnen, x-zentriert und y-zentriert
* 90113 – Numpad automatisch öffnen, anschließend Unsichtbare Eingabe Wert setzen, automatisch ENTER bei Len 4 (Für PIN-Eingabe)
Nur Modul MDE:
* 90150 – Touchtastatur MDE öffnen, Buchstaben
* 90151 – Touchtastatur MDE öffnen, Ziffern
* 90152 – Touchtastatur MDE automatisch öffnen, x-zentriert und 4 Pixel vom unteren Rand
* 90153 – Touchtastatur MDE mit Unsichtbarer Eingabe öffnen, x-zentriert und 4 Pixel vom unteren Rand
* 90162 – Numpad MDE automatisch öffnen, anschließend Unsichtbare Eingabe Wert setzen
* 90163 – Numpad MDE automatisch öffnen, anschließend Unsichtbare Eingabe Wert setzen, automatisch ENTER bei Len 4 (Für PIN-Eingabe)
Interne Toolnummern:
* 90010 – wird aufgerufen, sobald eine Eingabe gemacht wird
* 90300 – wird aufgerufen, wenn die Tastatur mit Bestätigung geschlossen wird
* 90301 – wird aufgerufen, wenn die Tastatur ohne Bestätigung geschlossen wird