SnTT: Eingebettete Picklist

von Thomas Bahn,
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 IBM Notes IBM Notes Traveler Tipp Entwicklung

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

Sie wollen eine individuelle Lösung? Kontaktieren Sie uns

Weitere interessante Artikel

IBM Cognos Analytics 11.0.9 (R9)

IBM Cognos Analytics 11.0.9 (R9)

Erst Mitte November hatten wir über Neuerung in der Version 11.0.8 gebloggt. Knapp ein Monat später veröffentlicht IBM die Version 11.0.9 … Mehr

von
Filip Meyer
,

Sie haben Fragen? Wir sind für Sie da.

Wenn Sie mehr über unsere Angebote erfahren möchten, können Sie uns jederzeit kontaktieren. Sie können uns auf verschiedene Weisen für eine unverbindliche Erstberatung erreichen:

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
Techn. Hotline: +49 4307 900 403
Vertrieb: +49 4307 900 402

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