Kennen Sie schon unseren Podcast? Thomas Bahn diskutiert mit Gästen aus Wirtschaft und Wissenschaft über Künstliche Intelligenz und Chatbots. Jetzt reinhören

de · en

Ye118w Day: Bringen Sie ihre Notes-Anwendung in die Seitenleiste (ohne Java)

von Thomas,
assono GmbH, Standort Kiel,

A picture named M2A picture named M3 Heute ist der erste jährliche Yellow Day!
Und natürlich trage ich heute gelb. smile.gif
A picture named M4

Im Geiste dieses Tages möchte ich heute zeigen, wie man eine vorhandene Notes-Anwendung ohne Java in die Seitenleiste des Notes 8.0.1 Standard-Clients bringen kann.

Eine Ansicht dort zu installieren, geht ja schon recht einfach mit Bordmitteln. Ich wollte aber ständig eine bestimmte Eingabemaske in der Seitenleiste zur Verfügung haben, wo ich im Verlauf eines Tages immer wieder schnell ein Dokument erstellen kann. In diesem Fall ist es eine Anwendung, wo ich meine Projektzeiten erfasse. Aber prinzipiell wäre das auch ein guter Platz für das Kontaktformular einer CRM-Anwendung oder für Ereignisprotokolle eines User-Help-Desk oder ...

Im Bild kann man sehen, wie die Eingabemaske fertig aussieht.

Man kann nur Ansichten, Dokumente und Rahmengruppen in die Seitenleiste integrieren (zumindest ohne von Hand eine Notes-URL zu ändern: Creating Form Design Element Sidebar Widgets). Ich habe deshalb eine Rahmengruppe "Projektaufwand" erstellt, die nur aus einem Rahmen besteht, in dem als benanntes Element die Maske "Projektaufwand (schmal)" dargestellt werden soll: A picture named M2

Für die "Installation" der Rahmengruppe in die Seitenleiste kann man am einfachsten die Starteigenschaften der Datenbank ändern und dort die entsprechende Rahmengruppe auswählen: A picture named M3

Dann öffnet man die Datenbank. So wird die Rahmengruppe und damit die Maske dargestellt. Die Widget-Toolbuttons sind jetzt aktiv und ich klicke auf den dritten Button: A picture named M4

Die Maske wird (innerhalb der unsichtbaren Rahmengruppe) in der Seitenleiste geöffnet. Außerdem erscheint unter dem Abschnitt "Eigene Widgets" ein neues Widget.

Um nicht bei jedem Start des Notes-Clients die Seitenleiste für die Eingabemaske neu öffnen zu müssen, kann man eine Eigenschaft der Komponente setzen: A picture named M5A picture named M6

So erscheint die Maske automatisch und steht jederzeit für Eingaben zur Verfügung.

Es gibt noch ein kleines Problem: Wie öffnet man nach dem Speichern eines Dokuments ein neues, leeres Dokument in der Seitenleiste? Ich weiß es nicht. sad.gif

Aber ich habe mir einen kleinen Workaround ausgedacht. Die Eingabemaske enthält ein verstecktes Textfeld "SaveOptions". Es ist "Berechnet zur Anzeige" und hat den festen Wert "0". So werden die Dokumente gar nicht mehr direkt gespeichert.

Statt einer Aktion in der Aktionsleiste habe ich am Ende der Maske den Button "Speichern" erstellt, der ein neues Dokument im Back-end erstellt, die eingegebenen Werte dorthin übernimmt und anschließend die Maske wieder leert und damit vorbereitet für die nächste Eingabe:

Sub Click(Source As Button)

Dim newDoc As NotesDocument

' sind Eingaben in Ordnung?
If Not GetBaseController().IsModelValid() Then Exit Sub

' neues Projektaufwand-Dokument erstellen und Werte aus diesem Dokument kopieren
Set newDoc = currentDB.CreateDocument
Call uidoc.Document.CopyAllItems(newDoc)
Call newDoc.RemoveItem("SaveOptions")
Call newDoc.ComputeWithForm(False, False)
Call newDoc.Save(True, True)

' dieses Dokument wieder leeren
Call ClearForm

Call uidoc.Refresh()
End Sub

Und das war's schon. Ganz ohne Java und Eclipse-Plugin kann man so seine Anwendung in die Seitenleiste des aktuellen Notes-Clients bringen.

Nebenbei bemerkt, sollte man natürlich das Layout der Maske an die Gegebenheiten anpassen: Die Seitenleiste wird meistens relativ schmal geöffnet, also sollte die Maske entsprechend "vertikal" gestaltet sein. Außerdem muss diese Maske auch nicht druckbar sein und kann für den Bearbeiten-Modus optimiert werden.

Wie man im Code des Speichern-Buttons sieht, benutzen wir für die Eingabemaske dieselbe Model-Klasse wir für die Hauptmaske, so dass die Validierung immer identisch ist und nur an einer Stelle gepflegt werden muss.

Fachbeitrag HCL Notes HCL Notes Traveler Entwicklung

Sie haben Fragen zu diesem Artikel? Kontaktieren Sie uns gerne: blog@assono.de

Sie haben Interesse an diesem Thema?

Gerne bieten wir Ihnen eine individuelle Beratung oder einen Workshop an.

Kontaktieren Sie uns

Weitere interessante Artikel

Sie haben Fragen?

Wenn Sie mehr über unsere Angebote erfahren möchten, können Sie uns jederzeit kontaktieren. Gerne erstellen wir eine individuelle Demo für Sie.

assono GmbH

Standort Kiel (Zentrale)
assono GmbH
Lise-Meitner-Straße 1–7
24223 Schwentinental

Standort Hamburg
assono GmbH
Bornkampsweg 58
22761 Hamburg

Telefonnummern:
Zentrale: +49 4307 900 407
Vertrieb: +49 4307 900 411

E-Mail-Adressen:
kontakt@assono.de
bewerbung@assono.de