04.09.2 SDF-Dateien für Stammdaten
SDF-Dateien, die für spezielle Aufrufe von Stammdatenprogrammen erstellt wurden (siehe Aufrufparameter "/SDFFile" im Kapitel 06.03 Aufrufparameter zum Beispiel für eigene Vorbelegungen) müssen eine eigene Syntax benutzen, die nachfolgend beschrieben ist.
Für die übrigen SDF-Dateien zu Stammdatenprogrammen sollte die allgemein gültige Syntax verwendet werden, da sonst das Mischen von Standard- und individuellen SDF-Dateien nicht vorgenommen wird!
Im Folgenden wird der spezielle Aufbau von SDF-Dateien zur Übersteuerung von SibDef-Angaben in Stammdatendialogen (MEGAS, siehe Kapitel "Angaben in den CGW-Dateien" - 05.03 Nur für Stammdatenverwaltun) beschrieben. Im Kapitel 06.02 Übersteuern in Dialogen mit SDF-Dateien zur Stammdatenverwaltung ist ein Beispiel zum Einfügen eines zusätzlichen Registers mit Daten aus einer individuellen Datei aufgeführt.
Der Name der SDF-Datei muss mit dem Namen der Dialogdatei übereinstimmen und die Erweiterung SDF (wie SibDef) besitzen. Zum Beispiel wird für den Dialog PDV111 eine Datei PDV111.SDF angelegt. Da der Pfad für diese Dateien in der Datei SIBPPS.INI hinterlegt werden kann (Sektion [PATH], SDF = ...), können für jeden Benutzer eigene Einstellungen für ein Stammdatenprogramm hinterlegt und dennoch dieselben Dialoge benutzt werden. Default-Pfad ist das SCREEN-Verzeichnis. Im SCREEN-Verzeichnis wird auch dann gesucht, wenn die gesuchte Datei im SDF-Pfad nicht gefunden wurde.
Bitte auch die Beschreibung für die Anpassung von Registerdialogen im Kapitel 05.04.1 Stammdatenprogramme (PDV111, AUF411, ...) beachten.
Beispiele für häufig benötigte Übersteuerungen: Löschen erlauben, eigene Layouts für Picklisten und Übernahme von Feldinhalten aus definierten Auskünften je Feld usw.
Es können auch [MegField]-Sektionen, die in den Dialogen noch nicht vorhanden sind, über SDF-Dateien eingebaut werden. Andere nicht im Dialog vorhandene Sektionen können nicht ersetzt werden.
Zum Beispiel kann zu einem Feld eine neue Sektion [MegField *Feld-Identifier] mit spezieller Auskunftsübernahme (siehe DBVIEW-Eintrag) hinterlegt werden.
Hinweis
Mit dem Aufrufparameter SDF (siehe Kapitel 06.03 Aufrufparameter (z.B. für eigene Vorbelegungen)) können auch spezielle Vorbelegungen oder Einstellungen je Programmaufruf erstellt werden. Zum Beispiel kann das Programm "Umrechnungen bearbeiten" (291) beim Erfassen einer Bestellung aufgerufen werden und dabei soll eine spezielle SDF-Datei, zum Beispiel SDA291-731.SDF, benutzt werden.
Syntax für die Übersteuerung der INI-Einträge
Die Syntax innerhalb der Datei entspricht der Dateinotation von SIBPPS.INI.
Achtung
Kommentarzeilen sind nicht zulässig. Lediglich Leerzeilen dürfen vorhanden sein.
Alle Einträge werden in der Sektion [MegINI] aufgeführt.
[MegINI]
INI-Key-1=INI-Wert1
INI-Key-2=INI-Wert2 usw.
Dabei bedeutet INI-Key-x der Schlüssel und INI-Wert-x der zugehörige Wert. Wenn ein Eintrag in der MEGINI-Sektion vorhanden ist, übersteuert er eventuell vorhandene Angaben aus den INI-Dateien.
Bei allen Angaben in dieser Sektion können auch Makros verwendet werden. Siehe Beispiel vom Aufruf von "291 Umrechnungen bearbeiten" aus einem anderen Programm mit Vorbelegung der aktuellen Teilenummer im Kapitel 06.03 Aufrufparameter (z.B. für eigene Vorbelegungen).
Syntax für die Übersteuerung der Dialogeinträge
Die Syntax innerhalb der Datei entspricht der Syntax für die SibDef-Angaben in den Dialogen.
Alle MEGAS-Sektionen außer [MEGPICKPATH] können übersteuert werden.
Um eine eindeutige Zuordnung von SDF- und Dialogsektionen zu gewährleisten, müssen in der SDF-Datei die Sektionen [MEGFIELD] und [MEGPICKLAYOUT] durch Anhängen eines Leerzeichens und der GRIT-ID qualifiziert werden. Bei [MegField]-Sektionen, die in den Dialogen noch nicht vorhanden sind, muss vor der GRIT-ID ein * stehen, zum Beispiel [MEGFIELD *PDV111_9_70].
Die Angaben für [MEGGENERAL], [MEGROOT], [MegLookup] und [MEGTEXT] müssen bis auf Groß-/Kleinschreibung identisch mit den Dialogangaben sein, also mit Name (siehe Beispiele).
Zusätzlich zu den im Dialog erlaubten Einträgen der jeweiligen Sektion kann mit dem Eintrag "Patch" festgelegt werden, ob Sektionen komplett ersetzt werden sollen oder nur einzelne Angaben.
Patch = N (oder n, Default: Y)
Alle Einträge aus der betreffenden Sektion werden ignoriert, lediglich die Angaben aus der SDF-Datei für die Sektion werden berücksichtigt. Für den Rest gelten die Default-Werte. Mit "Patch = Y" (Default) bleiben alle Einträge aus dem Dialog erhalten, wenn kein entsprechender Eintrag in der SDF-Datei vorhanden ist.
Hinweis
Bei der Verwendung eines DBView-Eintrags in der Sektion [MEGFIELD] werden alle anderen DBView-Einträge dieser Sektion ignoriert. Es können also nur alle DBView-Einträge einer MEGFIELD-Sektion gemeinsam ersetzt werden. Die Patch-Angabe ist hier ohne Bedeutung.
Beispieldatei PDV111.SDF
[MegGeneral]
Patch=N
Frames=1,2,12,3,4,5,6,7,8,9,10,11
Delete=Yes
Special=111
BufferLanguage=2000
DisableModify=INI(PDV111,DISABLEMODIFY)
WarnOnModify=INI(PDV111,WARNONMODIFY)
WarnOnModifyMsg=INI(PDV111,WARNONMODIFYMSG)
Hier wird (Patch=N) die gesamte Sektion des Dialogs durch diese ersetzt. Im Gegensatz zum Standard wird das Löschen (Delete=Yes) erlaubt.
[MegRoot TSS]
KeepKeyFieldsOnCreate=3
Zusätzlich zum Standard im Dialog wird hier das Schlüsselfeld 3 (Teilenummer) beim Wechsel zum Erfassen und während des Erfassens nicht gelöscht. Implizit wird Patch=Y angenommen.
[MegLookup MWI]
Patch
LowFieldsOnCreate=6,15,16,17,24,39,43
Die Angabe von Patch ohne Wert wirkt wie Patch=Yes, also Überlagerung und Ergänzung der Dialogeinträge. Abweichend vom Standard wird zusätzlich das Feld «Bestandskonto» (Feld 6) im Erfassen immer initialisiert.
[MegText TN1]
Required=Y
Zusätzlich zum Standard im Dialog wird hier zwingend das Vorhandensein einer Textkonserve zum angegebenen Textidentifier gefordert. Implizit wird Patch=Y angenommen.
[MegField PDV111_1_3]
DBView={19,3;24,3}
Im Feld «Teilenummer» (GritID PDV111_1_3) kann die Teilenummer über die Auskunft aus der Datei Teileauswahl und der Datei Lager übernommen werden. Implizit wird Patch=Y angenommen, wobei bei DBView-Angaben grundsätzlich eine Ersetzung aller DBView-Angaben der Sektion vorgenommen wird. D.h., weitere DBView-Angaben im Dialog werden ignoriert.
[MegPickLayout MU_PICKLAYOUT_1]
Layout={
             3,Teilenummer
             7,Klassifizierung
             4,Bezeichnung
             22,Verrechnungspreis
            MWI.17,Inventurpreis
           1,Status
            }
Beim Suchen über Pfad 1 (die GRIT-ID für das Menü zur Layoutauswahl heißt MU_PICKLAYOUT_1) wird in Erweiterung zum Standard der Verrechnungspreis, der Inventurpreis (MWI, Name der Sektion MegLookup...) und der Status angezeigt. Implizit wird Patch=Y angenommen, hier aber ohne Bedeutung, da nur dieser eine Eintrag für das Layout vorhanden sein kann.
In der CGW sind die Layouteinträge immer im ersten Dialog hinterlegt. Mit dem GRIT-Editor zum Beispiel im Rollbereich den Dialog PDV111_1 markieren, Menü Bearbeiten | Menubar, auf das Symbol für das Picklistenlayout für Teilenummer (unter Einstellungen | Layout Pickliste | Teilenummer), rechte Maustaste, Funktionen, CBCreate anwählen (mit der rechten Maustaste, Attribut wird die GRIT-ID angezeigt).