Lookup - Verwendung des FlexSelectionButtons

lookup
sql

#1

Für einfache Auswahlen wird üblicherweise gerne eine Combobox verwendet. Sobald jedoch mehr als nur eine handvoll Einträge zur Auswahl stehen, wird dies schnell unübersichtlich.

Es gibt aber noch weitere Gründe die gegen die Verwendung einer Combobox sprechen:

  • die Benutzer sind die schnelle Eingabe des Zahlenwertes gewohnt, da sie ihn auswendig kennen
  • der zu einer Auswahl gehörige Text wird hinter dem Eingabefeld angezeigt, und von dem RPG Programm gefüllt
  • für eine Combobox müssen alle möglichen Werte vorab geladen werden, dies kann bei einer Masken mit vielen Auswahlfeldern zu einer leichten Verzögerung führen

Im iNOW gibt es daher den FlexSelectionButton. Dieser funktioniert im Prinzip wie die klassische “F4 - Auswahl” Taste, nur mit dem Unterschied, dass kein F4 ausgelöst (und damit ein anderer Bildschirm angezeigt wird), sondern dass die Auswahldaten per SQL ermittelt und in einem Fenster zur Auswahl angeboten werden.

Einstellungen

LookupSettings

Zunächst sollte das SLQ Statement hinterlegt werden. Hierbei sollten zwei Werte selektiert werden, der Eingabewert (Key) und der zugehörige Anzeigetext (DisplayText).

Beispiel: SELECT KEY, TEXT FROM AUSWAHL WHERE GRP = 'VA'

Den Feldnamen des Eingabewerts hinterlegen sie jetzt in der Eigenschaft FieldNameKey, den Feldnamen des Anzeigewerts in der Eigenschaft FieldNameDisplayText.

Mit ValueDisplayControl können Sie ein Control auswählen, in das der ausgewählte Wert eingetragen wird. Mit TextDisplayControl wählen Sie ein Control aus, in das der Anzeigetext zu dem ausgewählten Wert eingetragen wird.

Mit FormHeight, FormWidth können Sie die Größe des Fensters bestimmen, mit Caption die Überschrift setzen. Wenn Sie die Eigenschaft FitColumsToFormWidth auf True setzen, dann füllen die Tabellenspalten die komplette Breite aus, was zu einer besseren Darstellung führt.

Die Formatierung der Spalten können Sie über die Eigenschaft Columns vornehmen. Legen Sie in dem Editor zwei Einträge an und setzen Sie FieldName und Caption.

Hier sehen Sie das ganze in Aktion:
Lookup-Button


Dynamische Positionsauswahl als Flexlookup
Lookup - der FlexSelectionButton und große Datenmengen
#2

Hallo Herr Hartmann,

wie kann ich denn die Position des Fensters bestimmen?


#3

Hallo Herr Haas,

das Fenster erscheint immer zentriert zum Hauptfenster der Anwendung.

Hintergrund: Wenn man das Fenster immer über dem Control erzeugen würde,
kann das bei umfangreichen Bildschirmen u.U. zu einer Fehlpositionierung ausserhalb des sichtbaren Bereichs führen.