Dialoge (Messagebox, Listbox mit und ohne Eingabe, SelectGrid) - miebach/miclas-vic GitHub Wiki

Dialoge

Messageboxen

Anzeige Typ String

MessageBox("Popup Nachricht");

messagebox( msg:beliebig [, style:Integer] ) : Integer

Zeigt den Wert von msg in einem Dialog.

Mit style kann das Aussehen in die Funktionsweise des Dialogfensters definiert werden.

1 = Anzeige der Button "OK" und "Abbruch"

Rückgabewert: 1 = OK, 2 = Abbruch

2 = Anzeige der Button "Abbrechen", "Wiederholen", "Ignorieren"

Rückgabewert: 3 = Abbrechen, 4 = Wiederholen, 5 = Ignorieren

Eingabeboxen

Eingabe Typ Double

?( msg:String [, def:Double] ) : Double 

?d( msg:String [, def:Double] ) : Double

Erzeugt einen Dialog mit dem Hinweistext msg, der den Anwender auffordert ein Wert vom Typ Double einzugeben. Als Vorgabewert kann def mit übergeben werden.

Eingabe Typ Integer

?i( msg:String [, def:Integer] ) : Integer

Erzeugt einen Dialog mit dem Hinweistext msg, der den Anwender auffordert ein Wert vom Typ Integer einzugeben.

Eingabe Typ Bool

?b( msg:String [, def:Bool] ) : Bool

Erzeugt einen Dialog mit dem Hinweistext msg, der den Anwender auffordert ein Wert vom Typ Bool einzugeben.

Achtung: Es wurde berichtet, dass ggfs. bei der Eingabe von Nein der ganze Trigger abbrechen kann. Zudem kann es zu unvorhergesehenen Ergebnissen kommen, wenn der Benutzer das Kreuz in dem Dialog klickt, anstatt eine Auswahl Ja oder Nein zu treffen. Daher kann es sinnvoll sein, stattdessen den Eingabe Typ listboxindex mit 2 Alternativen zu verwenden. Siehe das Beispiel bei listboxindex weiter unten.

Eingabe Typ String

?s( msg:String [, def:String] ) : String

Erzeugt einen Dialog mit dem Hinweistext msg, der den Anwender auffordert ein Wert vom Typ String einzugeben.

Listboxen

listbox

listbox(msg:String, Item(1):beliebig, ..., Item(n) ) : beliebig 

listbox(msg, eintrag0, eintrag1, ...)

Erzeugt eine Liste über Item(1)...Item(n)

Zeigt ein Dialogfenster mit der Auswahlliste. Der Benutzer kann ein Element der Liste auswählen, das dann als Funktionswert ausgegeben wird.

Außerdem gibt es eine Abbrechen Schaltfläche in der Liste.

Immer den Parameter sort = false übergeben, sonst wird die Liste im Popup aufsteigend sortiert!

Die Einträge können auch alternativ als Array übergeben werden:

eintraege := Array(eintrag0, eintrag1,...);
ergebnis := listbox(msg, eintraege);

listboxindex

listboxindex( msg:String, {Item(1):beliebig, ..., Item(n)}, [sort:Bool,] ) : Integer

Wie listbox, gibt aber den 0-basierten Index des Eintrags zurück (0, 1, 2, ). Der Index entspricht der Reihenfolge im Funktionsaufruf, nicht der ggfs. umsortierten Reihenfolge im Popup.

wahl := listboxindex("Rechnung wurde bereits gedruckt", {"Druck abbrechen", "Trotzdem drucken"}, 0 );
/* MessageBox(wahl); */

if (wahl <> 1) then
  MessageBox("Druck wird abgebrochen.");
  return false; /* Trigger abbrechen */
endif;

/* MessageBox("Es wird gedruckt ..."); */

Die Bedingung wahl <> 1 im obigen Beispiel wurde so gewählt, daß auch wenn der Benutzer das Kreuz klickt, der Druck fortgesetzt wird.

multilistbox

multilistbox( msg:String, {Item(1):beliebig, ..., Item(n)},[sort:Bool,] ) : Set

Wie listbox. Es können aber mehrere Elemente ausgewählt werden. Der Rückgabe-Wert ist ein ´set´, siehe https://github.com/miebach/miclas-vic/wiki/Datentypen

multilistboxindex

Wie ´multilistbox´, jedoch wird ein Set vom jeweiligen Index übergeben.

multilistboxindex( msg:String, {Item(1):beliebig, ..., Item(n)}, [sort:Bool,] ) : Set

SelectGrid

SelectGrid kann in allen Triggerarten und Varianten verwendet werden.

SelectGrid(Dialogüberschrift, Listenname, Filter, Sortierung, Feldname, Vorbelegung [,Fenstername, Joinbefehl]);

Beispiel:

v_Auswahl := "ROLL";
v_Auswahl := SelectGrid( "Auswahl Warengruppe", "WarengruppeListe", "WgrLagerfaehig = 1", "KZWarengruppe", "KZWarengruppe", v_Auswahl);

Mit diesem Beispiel kann man eine Liste aller lagerfähigen Warengruppen anzeigen die als Vorauswahl auf den Datensatz der Warengruppe "ROLL" steht. Als Rückgabewert wird dann die ausgewählte Warengruppe zurückgegeben.