app-model.json
Das Anwendungsmodell einer Datenbank: Titel, Symbol, Startformular, Menüband, Sprache der Komponenten, die
Benutzeroberfläche jeder Betriebsart, die Betriebsarten, in denen jedes Verbindungsprofil laufen darf, und was ein
Administrator im Betrieb anpassen darf. WklApplication speichert es in der Tabelle USysWklApp der Datenbank; das
Build-Werkzeug liest es aus der Datei, die appModel in access-app.json nennt.
Signatur
{
"version": 1,
"title": "Kunden",
"icon": "kunden.ico",
"iconForFormsAndReports": true,
"startForm": "frmAppShell",
"ribbon": "AppRibbon",
"language": "de",
"modes": {
"administration": { "navigationPane": false },
"production": { "statusBar": false }
},
"profiles": [
{ "profile": "PROD", "modes": ["production"] },
{ "profile": "TEST", "modes": ["administration", "production"] }
],
"adjustments": {
"relink": true,
"condition": { "function": "IsAdmin" },
"options": [
{ "key": "Mail.Server", "label": "Mailserver", "default": "smtp.example.com" },
{ "key": "Branch", "label": "Filiale", "kind": "choice", "default": "Wien", "choices": ["Wien", "Graz"] }
]
}
}
Zusammenfassung
Ein JSON-Objekt in UTF-8. Jeder Schlüssel außer version ist optional; ein weggelassener Schlüssel behält seinen
Standardwert. Ein unbekannter Schlüssel, ein falscher Typ oder ein unbekannter Wert wird mit wkeInvalidValue unter
Angabe der Stelle abgelehnt, nie ignoriert.
Schlüssel
| Schlüssel | Typ | Standardwert | Bedeutung |
|---|---|---|---|
version | Zahl | – | Formatversion; 1. Erforderlich. Ein neueres Format, als die Komponenten lesen, wird abgelehnt. |
title | Text | leer | Titel des Access-Fensters (AppTitle); leer behält den eigenen Titel von Access. |
icon | Text | leer | Dateiname einer .ico- oder .bmp-Datei, die mit dem Modell gespeichert wird (WklApplication.SaveIcon oder das Build-Werkzeug aus dem Ordner der Modelldatei); wird zu AppIcon. |
iconForFormsAndReports | true/false | false | Zeigt das Symbol auch in den Titelleisten von Formularen und Berichten (UseAppIconForFrmRpt). |
startForm | Text | leer | Formular, das beim Start geöffnet wird (StartUpForm); leer für keines. |
ribbon | Text | leer | Menüband der Anwendung (CustomRibbonID), ein Name in USysRibbons; leer für das Menüband von Access. |
language | Text | leer | Sprache der Anwendung: ein Sprachcode in Kleinbuchstaben (de, fr …); die WKL-Komponenten übernehmen ihn, wenn er en, de, sl, hr oder it ist. Leer für automatisch (Office, dann Windows, dann Englisch). |
modes | Objekt | Standardwerte unten | Benutzeroberfläche je Betriebsart, Schlüssel development, administration, production. |
profiles | Array | keine | Regeln: die Betriebsarten, in denen ein Verbindungsprofil laufen darf. |
adjustments | Objekt | keines | Was im Betrieb ohne Entwicklungszugriff angepasst werden darf. |
modes
Jede Betriebsart ist ein Objekt mit den folgenden Schaltern, alle true/false. Geschrieben werden nur Werte, die vom Standardwert dieser Betriebsart abweichen; eine weggelassene Betriebsart behält alle ihre Standardwerte.
| Schalter | Starteigenschaft | development | administration | production |
|---|---|---|---|---|
navigationPane | StartUpShowDBWindow | true | true | false |
statusBar | StartUpShowStatusBar | true | true | true |
fullMenus | AllowFullMenus | true | false | false |
shortcutMenus | AllowShortcutMenus | true | true | false |
builtInToolbars | AllowBuiltInToolbars | true | false | false |
specialKeys | AllowSpecialKeys | true | false | false |
bypassKey | AllowBypassKey | true | false | false |
Die Betriebsart wird nie konfiguriert; WklApplication ermittelt sie: Eine ACCDB ist development, eine ACCDE im
vollständigen Access administration, eine ACCDE in der Access Runtime production.
profiles
Ein Array von Objekten mit profile (ein Verbindungsprofil des Linked Tables Managers, zum Beispiel PROD) und modes (ein
Array von Namen von Betriebsarten). Ein Profil, das in einer Betriebsart verwendet wird, die seine Regel nicht nennt,
meldet EnsureApplication; abgelehnt wird es nie.
adjustments
| Schlüssel | Typ | Bedeutung |
|---|---|---|
relink | true/false | Erlaubt, in ShowSettings die Verbindungen auf einen anderen Server oder eine andere Datenbank umzustellen. |
condition | Objekt | Wer ShowSettings öffnen darf: profiles (Array von Profilnamen), fileKinds (Array aus accdb, accde, runtime), function (Name einer VBA-Funktion, die True zurückgibt); alle angegebenen Teile müssen zutreffen. Weggelassen: alle. |
options | Array | Optionen der Anwendung in der Reihenfolge des Dialogs: key (Buchstaben, Ziffern, Unterstrich, Punkt; eindeutig), label (Text im Dialog; leer zeigt den Schlüssel), kind (text als Standardwert, number, yesNo, choice), default (in der Schreibweise der Art: Zahl in invarianter Schreibweise, true/false), choices (Array, für choice). Die Anwendung liest einen Wert mit WklApplication.OptionValue. |
Hinweise
Ohne Modell wird nichts gesetzt. Eine Datenbank ohne gespeichertes Modell behält ihre Starteigenschaften, wie sie
sind: EnsureApplication gibt einen leeren Text zurück und ändert nichts, in jeder Betriebsart. Die abgesicherten
Standardwerte von production gelten erst, wenn ein Modell gespeichert ist; das kleinste Modell ist
{ "version": 1 }, das genau die Standardwerte der obigen Tabelle anwendet.
Wann die Werte wirken. WklApplication.Apply, Save und EnsureApplication schreiben die Starteigenschaften der
aktuellen Betriebsart. Titel und Symbol wirken sofort; jede andere Starteigenschaft wirkt beim nächsten Öffnen der
Datenbank. Rufen Sie EnsureApplication beim Start der Anwendung auf (zum Beispiel im Startformular), damit sich eine
ACCDE, die für eine Betriebsart gebaut und in einer anderen geöffnet wird, ab dem nächsten Öffnen selbst korrigiert.
Das Build-Werkzeug schreibt die Starteigenschaften jedes deploy-Ziels in die ausgelieferte Kopie, ohne sie zu
öffnen.
Gleiche Bytes. WklApplication.Canonical gibt das Modell mit den Schlüsseln in der Reihenfolge dieser Seite und
ohne Standardwerte zurück; dasselbe Modell ergibt so immer denselben Text, und die Datei lässt sich unter
Versionsverwaltung stellen. Der Designer und Save speichern diese Form.
Codebeispiel
Dim app As New WklApplication
Debug.Print app.Check("{ ""version"": 1, ""title"": ""Kunden"" }") ' empty: no problems
app.Save "{ ""version"": 1, ""title"": ""Kunden"", ""startForm"": ""frmAppShell"" }"
Verwandte Themen
- API-Referenz (Englisch): WklApplication – das Objekt, das das Modell prüft, speichert und anwendet.