Die Konfigurationen müssen im FRMCFGPATH (config.xxx) im Unterverzeichnis ActionButton liegen, die Dateiendung .sogexpr besitzen und mit der Kodierung UTF8 gespeichert werden.
Bitte nutzen Sie in den Scripten als erstes immer das Kommando #CULTURE_INVARIANT#. Fehlt dieses wird aus Altkompatibilität mit der Kultur "DE-de" gearbeitet. Dies ist insbesondere bei Mehrsprachiger Nutzung von ActiveSkin relevant.
Mit der Invarianten Kultur müssen Konstanten wie Dezimalwerte im Englischen Format angegeben werden.
Innerhalb der jeweiligen Konfiguration können dann zeilenweise Anweisungen definiert werden:
Folgendes Beispiel wählt den Kunden 55206 im Kundencenter automatisch an und gibt dann dessen Matchcode aus:
SetCursor('m_konto')
SetField('m_konto';55206)
Event('#ExecKey:143')
ShowInfoMessage('Kunde {0} angewählt!' ; GetField('m_match'))
Folgendes Beispiel tauscht die Werte von den Maskenfeldern m_preis1 und m_preis2:
-- m_preis1 in Variable temp merken
SetVar('temp',GetField('m_preis1'))
-- m_preis1 durch m_preis2 ersetzen
SetField('m_preis1';GetField('m_preis2'))
-- m_preis2 aus gemerkter Variable temp laden
SetField('m_preis2';GetVar('temp'))
Folgendes Beispiel öffnet eine neue Aufgabe unter Verwendung des Preset 47 (Siehe auch Aufgabenbuttons).
Event('#redirect:AufgabenEdit:PresetsId=[i]47')
Folgendes Beispiel setzt im p102 die Versandart auf 1 und die Lieferbedingung auf 50.
Der nächste Sachbearbeiter wird auf den Bediener eingestellt und dann eine Aufgabe auf Basis der Vorlage 1 angelegt.
Abschließend wird eine Warnungsmeldung "Hallo Welt!" ausgegeben und
SetField('next_sach';(GetField('bediener')))
Event('#redirect:AufgabenEdit:PresetsId=[i]1')
ShowWarningMessage('Hallo Welt!')
Besondere Funktionen von ActionButtons
Der ActionButton kann neben den üblichen Ausdrücken (siehe Ausdruckssyntax) auch einige spezielle Funktionen ausführen:
-- Zeilenkommentar
Zeilen die mit "--" beginnen werden nicht ausgewertet und deshalb als Kommentar interpretiert.
Funktion zum Setzen eines Maskenfeldes auf den übergebenen Wert. Hier sind alle Feldnamen zulässig, die Sie auch als Textdatenfeld einer Textbox verwenden können.
Funktion zum Auslesen eines Maskenfeldes. Hier sind alle Feldnamen zulässig, die Sie auch als Textdatenfeld einer Textbox verwenden können.
Pausiert die Verarbeitung bis die Maske ausstehende Verarbeitungen abgearbeitet hat.
Führt ein Event aus. Hier können Sie jedes Event verwenden, welches Sie auch als Tastencode eines Buttons einstellen können. z. B:
Event('#event:base.Weiter')
Setzt den Fokus auf ein Maskenfeld.
Bricht die Verarbeitung des Scripts vorzeitig ab.
ShowInfoMessage(Meldung; PARA1;..;PARAN)
Zeigt eine formatierte Meldung an, mit der Möglichkeit Parameter zu übergeben, die in der Meldung ersetzt werden. z. B.
ShowInfoMessage('Kunde {0} wurde ausgewählt!'; GetField('#Konto.m_match'))
ShowWarningMessage(Meldung; PARA1;..;PARAN)
Zeigt eine formatierte Warnung an, mit der Möglichkeit Parameter zu übergeben, die in der Meldung ersetzt werden. z. B.
ShowWarningMessage('Achtung {0} hat sein Kreditlimit überschritten!'; GetField('#Konto.m_match'))
Stellt den Übergebenen Text in die Zwischenablage ein
Ruft den aktuellen Text aus der Zwischenablage ab.
Sendet den übergebenen Text als simulierte Tastatureingaben.
Folgende Zeichen haben dabei eine Sonderbedeutung:
+: Shift
^: Strg
%: Alt
{...}: Maskierung von Sonderzeichen und senden von Hardkeys
( ... ) Gruppen bilden
Außerdem stehen folgende Hardkeys zur Verfügung:
{ENTER}, {ESC}, {TAB}, {DEL}, {BS}, {LEFT}, {RIGHT}, {UP}, {DOWN}, {PGUP}, {PGDN}, {HOME}, {END}, {BREAK}, {CAPSLOCK}, {NUMLOCK}, {SCROLLLOCK}, {HELP}, {INSERT}, {PRTSC}, {F1} .. {F12}
Beispiel: Löschen des aktuellen Eingabefeldes: Strg-A / DEL Taste: ^a{DEL}
Siehe auch: Onlinedokumentation "VBScript - SendKeys Method"
Übergabe von Parametern an ActionButton Scripte
Werden bei der Festlegung eines ActionButtons nach dem Namen der Konfiguration mit Doppelpunkten getrennt noch weitere Parameter angegeben, erfolgt die Übergabe dieser Parameter an den ActionButton über die Variablen "para1", "para2", usw.
Beispiel:
Scriptklasse: dyn.ActionButtonNoFocus:SendKeys:^a{DEL}
Die Zeichenfolgen "^a{DEL}" wird dem Script des ActionButtons in der Variablen "para1" zur Verfügung gestellt.
Das Standardscript "SendKeys" hat folgenden Inhalt:
SendKeys(GetVar('para1'))
Hier wird also einfach der Inhalt der Variablen "para1" per Funktion "SendKeys" gesendet.