Mein erstes Ribbon

Letzte Änderung am 27. Januar 2023 by Christoph Jüngling

Nachdem nun bestimmt 10 Jahre vergangen sind, dass Microsoft die Ribbons erfunden hat, wird es Zeit, dass ich mich auch endlich mal damit beschäftige. Die Kinderkrankheiten dürften raus sein, im Office sind die Dinger ohnehin überall drin, warum also nicht?

Schuld ist eigentlich Lorenz Hölscher. Na ja, wenn man das wirklich “Schuld” nennen kann, vielleicht eher wertfrei “Ursache”. Aber ihr wisst sicher, wie ich das meine :-) Lorenz jedenfalls hat auf der AEK23 einen Vortrag über Ribbons gehalten. Das war nicht der erste Vortrag von ihm, und auch nicht der erste über Ribbons auf einer AEK (siehe AEK 17: Keine Scheu vor Ribbons (Michael Zimmermann), und AEK 22: Reibereien mit Ribbons (Hubert Münst)), aber gewissermaßen der bislang aktuellste. Und diesmal hat er mich “mitgenommen”. Trotzdem hat es noch ein halbes Jahr gedauert, bis es dann wirklich losging.

Ribbon Number One

Auf die ersten Ribbons treffen wir zwangsläufig, wenn wir irgend ein Office-Programm von Microsoft öffnen, aber es gibt inzwischen auch andere Hersteller, die das gleiche Konzept verwenden. Um zu wissen, wie so ein Ribbon aussieht (bzw. aussehen kann), brauchen wir uns also nur unser Lieblings-Office-Programm anzuschauen. Hier am Beispiel von MS Access sieht man schon so einiges, was die Ribbons können:

Access-Ribbon (Ausschnitt)

Das Access-Ribbon (Ausschnitt)

Da gibt es …

  • Tabs (Start, Erstellen, Externe Daten, …)
  • Gruppen (Ansichten, Zwischenablage, …), die durch senkrechte Striche optisch abgetrennt sind
  • Icons (sie haben oft ein Symbol und einen kurzen Text)
  • die Icons sind aktiv oder inaktiv, groß oder klein
  • Icons mit Herunterklappfunktion (siehe “Einfügen”)
  • und Mini-Icons in der rechten unteren Ecke einer Gruppe (wie bei “Zwischenablage”)

Das ist bei weitem noch nicht alles, aber ich will hier auch nicht zu sehr in die Tiefe gehen. Da wurden bereits ganze Bücher drüber geschrieben (Beispielsweise Ribbon-Programmierung von André Minhorst)! Ich wollte mit dieser unvollständigen Aufzählung lediglich anreißen, was machbar ist und worüber man sich folglich Gedanken machen sollte. Denn so ein Ribbon ist nicht mal eben schnell in 5 Minuten zusammengeklickt.

Ribbon-Planung

Die vielleicht wichtigste Frage sollte sein: Was will ich eigentlich mit meinem Ribbon erreichen, was soll da drin sein? Denn Access hat ja längst ein Ribbon, das auch schon sehr umfangreich ist. Was könnte ich dem noch hinzufügen, und – genauso wichtig – was sollte ich weglassen?

Da wären zunächst die Formulare und Berichte meiner eigenen Applikation, oder ganz allgemein meine “Funktionen” (die jedoch nicht als VBA-Funktionen zu verstehen sind) . In der Vergangenheit habe ich dazu immer ein nicht datengebundenes Formular hinzugefügt, das eine Reihe von Schaltflächen enthielt, mit denen die Formulare geöffnet werden können.

Untermakro hinzufügen

Makro zum Abfangen von Tastendrücken

Damit dieses zentrale Element immer erreichbar ist, lasse ich es per Tastaturmakro über die Funktionstaste “F11” öffnen, egal ob es nun zuvor geschlossen, nur verkleinert oder im Hintergrund war. Der Aufwand dafür ist minimal: Ich brauche ein Makro mit dem Namen “Autokeys”, bei dem ich ein “Untermakro” hinzufüge. Der Name des Untermakros bekommt “{F11}” (also mit den geschweiften Klammern), als Aktion wird einfach die Aktion “ÖffnenFormular” hinzugefügt, unter Angabe des Formularnamens natürlich. Speichern, schließen, fertig. Ohne Ribbon.

Dadurch ist auch gleich das Datenbankfenster nicht mehr erreichbar, und wer die Taste dafür kannte, braucht sich nichts Neues zu merken. Wenn es während der Entwicklung einer neuen Applikation schnell gehen muss, würde ich mit diesem Konzept auch weiterhin arbeiten (“rapid application development”). Da ein solches Formular ohnehin nur Aufrufbefehle enthalten wird, lässt es sich im späteren Verlauf des Projektes leicht durch ein Ribbon ersetzen, ohne dass viel anfängliche Arbeit dadurch verloren geht.

Schnell zugänglich bzw. immer sichtbar ist so ein Ribbon auch, also wäre es naheliegend, diese Formular-Buttons in einem Bereich des Ribbons zu platzieren. Der Vorteil: Mit einem Ribbon, das alle notwendigen Steuerelemente enthält, brauche ich weder das “Main”-Formular, noch das Autokeys-Makro. Und dem Öffnen des Datenbankfensters resp. Navigationsbereichs lässt sich mit dem deaktivieren der Einstellung Access-Spezialtasten verwenden (in Datei / Optionen / Aktuelle Datenbank) schnell ein Riegel vorschieben. Und die Taste F11 lässt sich eventuell für eine andere Funktion einsetzen.

Aber auch einige Standardfunktionen von Access können dem User helfen, seine Arbeit zu machen. Ich sehe oben zum Beispiel die “Zwischenablage” sowie “Sortieren und Filtern”. Beides wird man bei Datenbankapplikationen sicher häufig benötigen. Auch die Funktionen in den Gruppen “Datensätze” oder “Suchen” sind hilfreich. Die weiteren Bereiche des Access-Ribbons werden wir dem Anwender vermutlich nicht zur Verfügung stellen wollen. Es ist also noch genug Platz für unsere eigenen Funktionen.

Ich baue mir mein eigenes Ribbon

Dass es möglich ist, die zuvor beschriebenen Standard-Funktionen von Access in mein eigenes Ribbon einzufügen, hat Lorenz in seinem Vortrag erwähnt. Ich habe mir spontan den Ribbon Creator von Gunter Avenius heruntergeladen und lizensiert. Die Shareware-Version erlaubt nur eine begrenzte Anzahl an Tabs, Groups und Controls, aber für einen ersten Eindruck reicht auch das schonmal aus. Wer mehr braucht, muss wenigstens 35 € investieren (weitere Updates 29 €), aber mal ehrlich, das kostet doch wirklich nicht die Welt! (Warum man sowas kaufen sollte, anstatt es “mal eben schnell” selbst zusammenzuklicken, habe ich in Code – the final frontier? angesprochen.)

Natürlich ist das hier beschriebene auch mit anderen Tools möglich, und letztlich sogar auch völlig ohne Hilfsmittel – theoretisch. Mit Hilfsmittel geht es aber einfacher.

Standardfunktionalität

Wie schon erwähnt enthält das Standard-Ribbon von Access ja schon einiges von dem, was ich auch für eine eigene Applikation brauchen würde. Ich betrachte hier mal ganze Gruppen, weil wir in der Regel ja auch mehrere Icons daraus brauchen:

  • Zwischenablage (“GroupClipboard”)
  • Sortieren und Filtern (“GroupSortAndFilter”)
  • Datensätze (“GroupRecords”)
  • Suchen (“GroupFindAccess”)
  • Fenster (“GroupWindowAccess”)

Die erste und letzte Gruppe aus dem Tab “Start” beziehe ich hier nicht ein, denn mit verschiedenen Ansichten und Textformatierung wird der Anwender wohl eher nichts zu tun haben. Auch die anderen Tabs enthalten nur Dinge, die der Entwickler zwar braucht, der Anwender jedoch nicht. Ob die Hilfe-Funktionen notwendig sind, mag man sicher noch diskutieren.

Mit dem Ribbon Creator lassen sich diese Standard-Gruppen relativ einfach in ein eigenes Ribbonkonzept integrieren. Über dessen Reiter “Groups” füge ich jede Gruppe durch “Group hinzufügen” und die Auswahl aus “Select idMso” hinzu.

Der Vorteil dieser von Access bereitgestellten Icons ist, dass ihre Aktivierbarkeit bereits automatisch von dem jeweils eingeblendeten Formular oder Bericht abhängt. Diese Automatik bleibt auch im Falle der Übernahme in eigene Ribbons erhalten, wodurch wir uns eine Menge Arbeit sparen. Vor allem wird das “look and feel” dieser Icons dem entsprechen, was der Anwender aus anderen Applikationen oder sogar einem offenen Access kennt.

Eigene Formulare und Berichte

Damit ich auch meine eigenen Formulare und Berichte über das Ribbon aufrufen kann, muss ich jeweils einen Button dort einfügen und mit ein wenig Code für die entsprechende Aktion sorgen. Auch das ist nicht weiter schwierig, denn der Ribbon Creator hat bereits das Grundgerüst vorbereitet.

Eine Frage, die ich mir immer noch stelle, ist die: Wohin mit meinen eigenen Ribbon-Bestandteilen?

  • Einfach hinten an die Standard-Gruppen anfügen?
  • Oder vorne?
  • Oder ein eigenständiges Tab mit allem, was meine Applikation braucht?

Ich behaupte mal, es kommt auf die Menge an Icons an, die wir brauchen. Wenn es überschaubar ist, ist in dem Start-Ribbon sicher noch genügend Platz, und es bleibt auch übersichtlich. Ist es jedoch eine große Applikation mit vielen Funktionen, dann würde ich ein eigenständiges Tab dafür spendieren.

Fazit

Das soll’s für’s erste mal gewesen sein. Mit Ribbons lassen sich natürlich noch viele weitere Spielereien umsetzen, aber diese können natürlich auch stückweise hinzugefügt werden.

Ich bin jedenfalls nach relativ kurzer Einarbeitungszeit zu der Erkenntnis gekommen, dass es eigentlich gar nicht so schwer ist. Aber wie immer wird der Teufel auch hier im Detail stecken. Na, darum kümmern wir uns ein anderes Mal.

Und was die Behauptung von oben betrifft: Doch, im Grunde ist so ein (einfaches) Ribbon in 5 Minuten zusammen geklickt – wenn man sich vorher ein paar Gedanken gemacht hat.

Ähnliche Artikel:

Schreibe einen Kommentar

Deine Email-Adresse wird nicht veröffentlicht.

drei × fünf =