Von Hand geschriebenes Menüband übernehmen
Öffnen Sie ein Menüband, dessen RibbonXML von Hand in der Tabelle USysRibbons geschrieben wurde, im Menüband-Designer, um es von nun an dort zu bearbeiten.
Voraussetzungen: WKL Forms Object Library 1.58 oder höher.
Lösungsüberblick
Enthält die Datenbank Zeilen in USysRibbons, die nicht zum Menübandmodell gehören, zeigt die Seite Menübänder des
Menüband-Designers die Karte Vorhandene Menübänder mit ihren Namen. Einlesen liest das RibbonXML jeder Zeile
in das Modell ein: Registerkarten, Gruppen, Schaltflächen, Umschaltflächen, Menüs, geteilte Schaltflächen, Trenner,
eingebaute Befehle (idMso) und eigene Registerkarten der Datei-Ansicht mit ihren Aufgaben. Jedes eigene Element wird
zu einem Befehl, der nach seiner id benannt ist. Ein Element mit idMso wird zu einem Befehl mit der Aktion
Eingebauter Befehl (idMso), den sich alle Stellen teilen, die ihn nennen.
Vor OK oder Übernehmen im Designer wird nichts geschrieben: Das Speichern ersetzt die übernommenen Zeilen in
USysRibbons durch das erzeugte XML und schreibt das Callback-Modul. Abbrechen lässt die Datenbank, wie sie war.
Nennt die Datenbankeigenschaft CustomRibbonID ein übernommenes Menüband und hat das Modell noch kein
Anwendungsmenüband, wird dieses Menüband zum Anwendungsmenüband.
Umsetzung
- Öffnen Sie den Menüband-Designer (Add-In-Eintrag WKL Ribbon Designer oder
WklRibbon.ShowDesigneraus VBA). - Wählen Sie auf der Seite Menübänder in der Karte Vorhandene Menübänder den Befehl Einlesen.
- Lesen Sie die Liste unter der Schaltfläche: Jede Zeile nennt einen Teil, der weggelassen oder vereinfacht wurde.
- Beheben Sie, was die Liste nennt (siehe Hinweise), prüfen Sie die Seite Prüfen, und wählen Sie dann OK.
- Schließen Sie die Datenbank und öffnen Sie sie erneut; Access wendet Menübänder beim Öffnen der Datenbank an.
Ein onAction-Callback muss zu einer Funktion ohne Argumente werden. Vorher:
<button id="btnKunden" label="Kunden" onAction="OnKunden"/>
Public Sub OnKunden(control As IRibbonControl)
DoCmd.OpenForm "frmKunden"
End Sub
Geben Sie dem Befehl btnKunden nach dem Übernehmen auf der Seite Befehle die Aktion Formular öffnen mit
frmKunden oder die Aktion VBA-Funktion aufrufen mit:
Public Function OpenKunden() As Boolean
DoCmd.OpenForm "frmKunden"
OpenKunden = True
End Function
Ein als Ausdruck geschriebenes onAction (onAction="=OpenKunden()") wird ohne Hinweis als Aktion
VBA-Funktion aufrufen OpenKunden übernommen.
Hinweise
| Im XML | Nach dem Übernehmen |
|---|---|
onAction mit einem Prozedurnamen | Der Befehl hat keine Aktion; ein Hinweis nennt die Prozedur. |
getLabel, getVisible, getEnabled, getImage und andere get…-Callbacks | Mit Hinweis weggelassen; der statische Wert (zum Beispiel label) bleibt. Verwenden Sie für dynamische Werte die Bedingung des Befehls und das Laufzeitobjekt. |
onLoad, loadImage | Mit Hinweis weggelassen; das erzeugte Modul hat eigene. |
comboBox, editBox, dropDown, gallery, checkBox, dynamicMenu, labelControl, dialogBoxLauncher | Mit Hinweis weggelassen. |
box, buttonGroup | Aufgelöst: Ihre Elemente bleiben in der Gruppe. |
splitButton innerhalb eines Menüs | Wird zu einem Menü mit dem Befehl seiner Schaltfläche. |
Eingebaute Registerkarte oder Gruppe (idMso an tab oder group) | Mit Hinweis weggelassen. |
qat, contextualTabs, commands, contextMenus | Mit Hinweis weggelassen. |
visible="false" an einem eigenen Element | Mit Hinweis weggelassen. |
Eingebauter Eintrag der Datei-Ansicht mit visible="false" | Beibehalten: als ausgeblendet in der Datei-Ansicht aufgeführt. |
image mit einem Bild, dessen Name kein gültiger Name ist | Mit Hinweis weggelassen. |
id, die kein gültiger Name oder bereits vergeben ist | Gültig und eindeutig gemacht (tab.Start wird zu tab_Start, ein zweites btnKunden wird zu btnKunden_2). |
Ihre eigenen Callback-Prozeduren bleiben in Ihren Modulen; das erzeugte Menüband ruft sie nicht mehr auf. Entfernen Sie sie, sobald die Befehle ihre Aktionen haben.
Verwandte Themen
- WklRibbon: Menübandmodell, Designer und Laufzeit.
- Menüband per Code steuern: Beschriftungen, Sichtbarkeit und Zustände zur Laufzeit statt
get…-Callbacks. - Befehle nur in der Entwicklung anzeigen: Bedingungen statt
getVisible.