Dialoge (Messagebox, Listbox mit und ohne Eingabe, SelectGrid) - miebach/miclas-vic GitHub Wiki
Dialoge
Messageboxen
String
Anzeige Typ 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
Double
Eingabe Typ ?( 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.
Integer
Eingabe Typ ?i( msg:String [, def:Integer] ) : Integer
Erzeugt einen Dialog mit dem Hinweistext msg, der den Anwender auffordert ein Wert vom Typ Integer einzugeben.
Bool
Eingabe Typ ?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.
String
Eingabe Typ ?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.