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

SnTT: Eingebettete Picklist

von Thomas,
assono GmbH, Standort Kiel,

Manchmal möchte man einem Benutzer aus einer langen Liste von Möglichkeiten auswählen lassen. Typischerweise sind die Optionen dann in verschiedenen Notes-Dokumenten gespeichert und können vielleicht nach unterschiedlichen Gesichtspunkten sortiert werden, zum Beispiel eine Liste von Produkten, die zum einen innerhalb einer Produkthierarchie stehen, zum anderen nach Kategorie, Name oder Produktnummer sortierbar sind.

Typische Lösungen für diese Aufgabe sind:

  1. Man implementiert eine Aktion, die @Picklist aufruft und das Ergebnis der Auswahl in ein Feld speichert.
  2. Man realisiert die Auswahl in einer eignenen Dialogbox und erstellt dafür eine (Teil-)Maske.
  3. Man erstellt mehrere Auswahlfelder für die verschiedenen Hierarchiestufen, wobei die "unteren" von den "oberen" abhängen und sich die Optionen jeweils abhängig von den schon getroffenen Auswahlen abhängen.
  4. Oder man erstellt einfach eine laaaaaange Dialogliste/Liste.

    Ich möchte einen weiteren Weg aufzeigen, der über eine eingebettete Ansicht und einen eingebetteten Editor funktioniert. Ich sehe dabei folgende Vorteile:

Erst einmal das praktische Beispiel, so wie es im Notes-Client angezeigt wird:
A picture named M2

Der Benutzer kann das Ergebnis der Akquise auswählen, dann das Produkt und schließlich über "Ergebnis hinzufügen" daraus ein neues Unterdokument zur Akquise erzeugen.
Um das Produkt auszuwählen, kann er sich die eingebettete Ansicht nach verschiedenen Kriterien sortieren und über die Schnellsuche einfach das betroffene Produkt finden.

Im Design gibt es zwei für diese Funktionalität wesentliche Elemente: Die eingebettete Produkt-Ansicht und der eingebettete Editor (hervorgehoben durch rote Umrandung):
A picture named M3

Die eingebettete Ansicht enthält neben den sichtbaren noch eine unsichtbare Spalte mit der Produkt-ID:
A picture named M4

Und das Ziel für Einfach- und Doppelklick ist der eingebettete Editor: A picture named M5

Dort ist natürlich wichtig, dass der Name gesetzt ist. Außerdem ist der Editor versteckt! A picture named M6

Soweit eigentlich eine ganz normale Kombination aus eingebetteter Ansicht und Editor - naja, bis auf dass der Editor versteckt ist. Jetzt fehlt nur noch der "Trick", die Verbindung zurück in die aufrufende Maske (den "Container"). Diese ist implementiert im PostOpen-Ereignis der Produkt-Maske:


Sub Postopen(Source As Notesuidocument)
Dim containerDoc As NotesDocument
Dim thisDoc As NotesDocument

Set containerDoc = uiws.CurrentDocument.Document
Set thisDoc = source.Document

' is doc displayed in an embedded editor?
If containerDoc.UniversalID <> thisDoc.UniversalID Then
containerDoc.ProduktIDEingabe = thisDoc.ProduktID
containerDoc.ProduktNameEingabe = thisDoc.ProduktName
containerDoc.ProduktHierarchischerNameEingabe = _
thisDoc.ProduktHierarchischerName
End If
End Sub

This LotusScript was converted to
HTML using the ls2html routine,
provided
by Julian Robichaux at nsftools.com.



In der If-Anweisung wird geprüft, ob
die Maske in einem eingebetteten Editor angezeigt wird. Ist dies der Fall,
so enthält containerDoc das offene Dokument und thisDoc das ausgewählte
Produkt-Dokument. Es werden also einige Angaben aus dem Produkt-Dokument
in die Akquise kopiert!


Das war's schon!


Auf die Idee zu diesem Verfahren bin
ich durch den folgenden Blog-Eintrag auf Chris Blatnicks Blog gekommen:
Lotusphere
Demo: Enhancing A Template UI
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