04.09.1 SDF-Dateien für alle Programme
Mit einer SDF-Datei (*.SDF) können SibDef-Angaben in infra-Dialogen (siehe Kapitel 05 Angaben in CGW-Dateien) übersteuert bzw. ergänzt werden. Das erlaubt einfache Dialoganpassungen ohne Einsatz des Dialogeditors und vereinfachte Pflege bei Software-Updates. SDF-Dateien, die für spezielle Aufrufe von Stammdatenprogrammen erstellt wurden (siehe Aufrufparameter "/SDFFile" im Kapitel 06.03 Aufrufparameter z.B. für eigene Vorbelegungen) unterscheiden sich vom hier beschriebenen Aufbau und sind deshalb gesondert im Kapitel 04.09.2 SDF-Dateien für Stammdaten beschrieben. Für die übrigen SDF-Dateien zu Stammdatenprogrammen sollte die hier beschriebene allgemein gültige Syntax verwendet werden, da sonst das Mischen von Standard- und individuellen SDF-Dateien nicht vorgenommen wird.
Bitte auch die Besonderheiten für Registerdialoge im Zusammenhang mit SDF-Dateien beachten, die je Registertyp im Kapitel 05.04 Anpassungen an Registerdialogen (CGW, SDF, IMA) beschrieben sind.
Der Name der SDF-Datei muss mit dem Namen der Dialogdatei (CGW) übereinstimmen und die Erweiterung SDF (wie SibDef) besitzen. Zum Beispiel wird für die Dialogdatei PDV121.CGW eine Datei PDV121.SDF angelegt. Um eine einfache Trennung zwischen Standard- und individuellen SDF-Dateien zu erreichen, werden SDF-Dateien sowohl im Screen-Verzeichnis der infra-Anwendung, als auch im SDF-Verzeichnis (SIBPPS.INI-Einstellung "SDF" in der Sektion [PATH]) gesucht und gemischt. Im Screen-Verzeichnis werden zusammen mit den Dialogdateien die Standard-SDF-Dateien ausgeliefert, an denen keine individuellen Änderungen vorgenommmen werden dürfen. Alle im indivudellen SDF-Verzeichnis vorgenommenen Änderungen bleiben bei einem Update erhalten. Bei Änderungen, die sich gegenseitig ausschließen bzw. übersteuern, gewinnt die individuelle SDF-Datei im SDF-Verzeichnis.
SDF-Dateien können sowohl im ASCII-Zeichensatz als auch im ISO-Zeichensatz erstellt werden. Über den Eintrag "SDFFormat=ISO" in der Sektion [General] der jeweiligen SDF-Datei wird dem System mitgeteilt, dass die SDF-Datei im ISO-Zeichensatz erstellt wurde.
Fehlt dieser Eintrag, muss die Datei im ASCII-Zeichensatz vorliegen.
Beispiele für häufig benötigte Übersteuerungen:
Felder sperren, Großschreibung erzeugen, eigene Layouts für Rolldialogzeilen usw.
Es können auch Sektionen, die in den SibDef-Angaben eines Felds oder Dialogs noch nicht vorhanden sind, über SDF-Dateien eingebaut werden. So können zum Beispiel Aktionen für Ereignisse (CallBacks) in der Sektion [GuiCBControl] definiert werden, obwohl diese Sektion in den wenigen infra-Standard-Dialogen vorhanden ist.
Eine SDF-Datei ist genauso aufgebaut wie die SibDef-Einträge im CGW. Sektionsnamen in eckigen Klammern gruppieren Schlüsselwörter mit zugewiesenen Parametern (siehe Kapitel 05 Angaben in CGW-Dateien). Sowohl bei den einzelnen Feldern (Controls) als auch bei einem Dialog selbst sind in der Regel SibDef-Angaben vorhanden. Da dies in einer SDF-Datei unterschieden werden muss, wird den Sektionsnamen in der SDF-Datei die GRIT-ID des jeweiligen Dialogs und gegebenenfalls die GRIT-ID des Felds (Controls) getrennt durch ein "#" vorangestellt.
Syntax für die Übersteuerung von Feld-Einträgen
Um SibDef-Angaben für ein bestimmtes Feld in einem Dialog zu übersteuern, muss in der SDF-Datei die zu übersteuernde SibDef-Sektion wie folgt angegeben werden:
            [DialogID#FeldID#SibDef-Sektionsname]
Dabei entsprechen Dialog-ID und Feld-ID der GRIT-ID des Dialogs bzw. Felds, die in der infra-Systemübersicht (F5) bzw. im Dialogeditor angezeigt wird. Innerhalb der Sektion selbst werden die zu übersteuernden (bzw. zu ergänzenden Schlüsselwörter samt Parameter wie im CGW eingetragen.
Hinweis
Bei Stammdatenprogrammen muss grundsätzlich die DialogID des Hauptdialogs (in der Regel 1. Dialog wie zum Beispiel "PDV111:1") angegeben werden, auch wenn Angaben für Felder eines anderen "Dialogs" (Registerseite) verändert werden sollen.
Syntax für die Übersteuerung von Dialogeinträgen
Um SibDef-Angaben, die bei einem bestimmten Dialog hinterlegt sind, zu übersteuern, muss in der SDF-Datei die zu übersteuernde SibDef-Sektion wie folgt angegeben werden:
            [DialogID##Sibdef-Sektionsname]
Die Angabe einer Feld-ID entfällt hier.
Hinweis
Bei Stammdatenprogrammen muss bei Ersetzung von Einträgen aus der Datei SIBPPS.INI, zum Beispiel für Programm PDV11A, die Syntax [PDV11A_APPLFRAME##MEGINI] benutzt werden (siehe MEGINI-Beschreibung im Kapitel 04.09.2 SDF-Dateien für Stammdaten).
Komplettes Ersetzen von Sektionen
Mit dem Eintrag "Patch=Y oder N" kann festgelegt werden, ob Sektionen komplett ersetzt werden sollen ("Patch=N") oder nur die Angaben zu der Sektion aus der SDF-Datei ("Patch=Y, Default"). Bei Einstellung "N" werden alle Einträge aus der betreffenden Sektion ignoriert, lediglich die Angaben aus der SDF-Datei für die Sektion werden berücksichtigt.
Hinweis
Bei Stammdatenprogrammen werden bei Verwendung des Schlüsselworts "DBView" alle anderen DBView-Einträge der Sektion ignoriert. Es können also nur alle DBView-Einträge einer MEGFIELD-Sektion gemeinsam ersetzt werden. Die Patch-Angabe ist hier ohne Bedeutung.
Beispiel 1
In der SDF-Datei PDV121.SDF soll die Spalte "Sortierfeld" im Rolldialog der Stücklistenzeilen durch das Anwenderfeld 2 der Stücklistendatei (Datei 7) ersetzt werden. Der Aufbau der anzuzeigenden Stücklistenzeilen ist in den SibDef-Angaben des Rollbereichs (Container mit der GRIT-ID PDV121_R1_LB) in der Sektion [MimScrLayout PDV121_5] beschrieben. Die zu ersetzende Spalte beginnt an der Position 100. Somit ergeben sich folgende Zeilen für die SDF-Datei:
[PDV121_R1#PDV121_R1_LB#MimScrLayout PDV121_5]
100=7,DDp(7,17),DDf(7,17),Anwenderfeld 2
Beispiel 2
Bei K-Zeilen in "435 Aufträge bearbeiten" soll eine neue Spalte "Wert" vor der Spalte "Termin" an Position 90 ausgegeben werden. Spalten aus der CGW-Datei werden von der SDF nur übersteuert, wenn es sich um die gleiche Position handelt. Um Spalten aus der CGW zu entfernen wird die Position ohne weitere Einträge in die SDF-Datei übernommen. Notwendige Einträge in der SDF-Datei AUF435.SDF:
[AUF435_R435_1#AUF435_R435_1_LB#MimScrLayout AUF435_30]
88=
90=47,DDp(47,50),DDf(47,50),Wert
105=23,DDp(23,32),DDf(23,32),Termin
Beispiel 3
Im Auftragskopf soll in "435 Aufträge bearbeiten" die Rabatteingabe auf maximal 10% beschränkt werden. Notwendige Einträge in der SDF-Datei AUF435.SDF:
[AUF435_10#AUF435_10_F37#GuiEdit]
Range="<=10.00"
Beispiel 4
Im Programm "574 Rückmelden über Auftragsnummer (alle Rückmeldungsarten)" soll bei Anwahl immer der Druck eingeschaltet sein. Analog kann das für alle anderen Druckprogramme ebenfalls erfolgen. Notwendige Einträge in der SDF-Datei FST574.SDF:
[FST574_1##MimActionClose]
druckein=SETGV(GV_print, 1)
Hinweis
Die Angaben könnten auch für eine beliebige andere Sektion hinterlegt werden. Das Schlüsselwort "druckein" muss nicht zwingend so heißen. Es kann auch jeder andere Begriff verwendet werden.