Konstanten werden im Formular mittels MASKITO FormDesigner für grundlegende Werte wie das aktuelle Datum oder der Anmeldename des angemeldeten Nutzers verwendet. Wie der Name schon sagt, können Sie Konstanten nur auslesen, nicht verändern. MASKITO Forms bietet die Option per Platzhalter auf solche Eingabewerte zuzugreifen, sie auszulesen. Bitte achten Sie bei der Verwendung der Konstanten auf die Groß-/Kleinschreibung.
Syntax: [?Konstante]
In ähnlicher Weise können Sie per Platzhalter auf die aktuellen Eingabewerte von Controls, Variablen bzw. DB-Abfragen zugreifen.
Syntax:[@Control]
[$Variable]
[%Datenbankabfrage]
[Funktion()]
[@@GlobaleVariable]
So können Sie z. B. als Abschluss einer Datenerhebung die Eingaben des Nutzers noch einmal zusammenfassend anzeigen. Nutzen Sie dazu diese Platzhalter als Ersetzungsvorschrift in einer Funktion.
Bei einigen Controls gibt es die Besonderheit, dass Sie per Platzhalter auf verschiedene Werte zugreifen können. Zum Beispiel bei dem Control CheckBox rufen Sie den aktuellen Wert, die aktuelle Gewichtung bzw. die aktuelle Textbelegung ab. Dazu wird dem Platzhalter ein entsprechendes Suffix angehängt.
Beispiel:
Für das Control mit dem Namen chk_Familienstand
liefern die Platzhalter[@chk_Familienstand]
den Wert True
, falls das Häkchen in der Checkbox gesetzt wurde,[@chk_Familienstand.Value]
die Gewichtung 1, falls der Value entsprechend gesetzt wurde, bzw. [@chk_Familienstand.Text]
die Textbelegung Verheiratet
(ab MASKITO Forms 7.2, zuvor True
bzw. False
).
Beispiele für andere Controls sind TimePicker mit den Platzhalteranhängen .Max
bzw. .Min
für die Eigenschaften MaxDate
bzw. MinDate
oder die ComboBox mit dem Platzhaltersuffix .Key
, um die ID der gewählten Option zu ermitteln.
Im Formular sind Platzhalter hinterlegt, mit deren Hilfe mittels MASKITO FormDesigner aktuelle Werte abgerufen werden können, z. B. die Seitenzahl der aktuell im Formular aufgerufenen Seite. Die folgende Liste gibt eine Übersicht und Beschreibung der vorhandenen Platzhalter für formularbezogene Werte.
Formulardaten | |
---|---|
Ersetzungsvorschrift | Zweck |
[?form_sfx_file] |
Pfad und Dateiname der aktuellen sfx-Datei Hinweis: In Web-Formularen ist dies die Angabe der Datensatznummer (globale ID), die Teil der URL eines Datensatzes ist. Mit Hilfe dieses Platzhalters kann im Formular nach dem Speichern eines Datensatzes die ID abgerufen werden, welche in der Datenbanktabelle des betreffenden Formulars in der Spalte FormDataId automatisch dokumentiert wird. Die FormDataId-Spalte kommt im FormServer ebenfalls in der Datenbanktabelle der Attachments vor. Diese ID wird als Ordnername für die lokale Ablage von Attachments auf dem FormServer verwendet. Die ID, die je Datensatz in der View (Datentabelle) ausgegeben wird, ist davon verschieden und hat den Platzhalter [?form_nr] . |
[?form_sfx_filename] |
Dateiname der aktuellen sfx-Datei |
[?form_sfd_file] |
Pfad und Dateiname der aktuellen sfd-Datei (Windows-Formular) |
[?form_sfd_filename] |
Dateiname der aktuellen sfd-Datei (Windows-Formular) |
[?form_sfx_data] |
sfx-Ausgabe |
[?focusedcontrolname] |
Name des Controls mit aktuellem Fokus |
[@AnzahlSeiten] |
Gesamtanzahl der Formularseiten Hinweis: Nutzen Sie diese Funktion in einem Label. |
[@aktuelleSeite] |
Aktuelle Seitenzahl einer Formularseite Hinweis: Nutzen Sie diese Funktion in einem Label. |
[@aktuelleDruckSeite] |
Aktuelle Seitenzahl bei Druckausgabe |
[?SLID] |
Silverlight-ID (nur bei Web-Formularen einsetzbar) |
[?SLIDpm] |
Verschlüsselte Formular-ID (nur für Web-Formulare bei ProtectMode), z. B. für den Versand von Direktlinks zu Formularen per E-Mail-Nachricht aus dem aktuellen Formular heraus |
[?form_id] |
FormularID eines Web-Formulars auslesen |
[?sfxidpm] |
Verschlüsselte Datensatznummer (nur für Web-Formulare bei ProtectMode), z. B. für den Versand von Direktlinks zu konkreten Datensätzen per E-Mail-Nachricht aus dem aktuellen Formular heraus |
[?form_nr] |
Nummer des aktuellen Datensatzes eines Web-Formulars auslesen, die in der Spalte "ID" in der Datentabelle ausgegeben wird und der Spalte $datanumber in der Datenbanktabelle des Formulars auf dem FormServer entspricht.Hinweis: Diese Funktionalität steht ab Version 5.4 ausschließlich für Webformulare bereit. Diese Nummer wird je Datensatz nach dem Speicherprozess generiert. Windowsformulare werden nicht nummeriert. |
[?form_name] |
FormularName auslesen |
[?lockcounter] |
Gibt an, wie viele andere Personen denselben Datensatz des aktuellen Web-Formulars (zum Zeitpunkt des Öffnens) bereits geöffnet haben. So kann gleichzeitige Bearbeitung von Inhalten verhindert werden. Verfügbar ab MASKITO Forms 7. |
[?SessionId] |
Aktuell verwendete, eindeutige, vom MASKITO FormServer generierte Sitzungsnummer für den Datenaustausch zwischen Server und Client auslesen und im Web-Formular ausgeben. |
[$Variablenname] |
Zugriff auf den Inhalt einer internen Variable |
MASKITO FormManager | Gilt ausschließlich für Web-Formulare |
---|---|
Ersetzungsvorschrift | Zweck |
[?fm_state] |
den aktuellen Formularstatus (zur Laufzeit) auslesen |
[?fm_result] |
das aktuelle Ergebnis auslesen |
[?fm_points] |
die aktuelle Punktzahl auslesen |
Umfragen | |
---|---|
Ersetzungsvorschrift | Zweck |
(ab MASKITO Forms 7.1) |
Anzahl der im Formular vorhandenen Fragen, für die Checkboxen in einer Checkbox-Gruppe mit aktiviertem Feature Für Umfrage verwenden als Antwortmöglichkeiten (Multiple Choice) definiert wurdenHinweis: Dieser Platzhalter hatte ab Maskito SIX die Syntax [@Umfrage_Anzahl] |
(ab MASKITO Forms 7.1) |
Anzahl der korrekten Antworten eines Benutzers, der an der Umfrage teilnimmt (Berechnung zur Laufzeit) Hinweis: Dieser Platzhalter hatte ab Maskito SIX die Syntax [@Umfrage_Richtig] |
(ab MASKITO Forms 7.1) |
Anzahl der falschen Antworten eines Benutzers, der an der Umfrage teilnimmt (Berechnung zur Laufzeit) Hinweis: Dieser Platzhalter hatte ab Maskito SIX die Syntax [@Umfrage_Falsch] |
Nutzen Sie den Automatismus, Dateien aus Attachments in Formularen lokal auf dem FormServer abzuspeichern, können Sie den Pfad zu dem Speicherort variabel im Formular mit Hilfe von Platzhaltern generieren. In dem definierten Speicherort werden dann automatisch Ordner angelegt, welche jeweils mit der ID des Formulars und dem Controlnamen benannt sind. In diesem Ordner werden je Datensatz weitere Ordner angelegt, welche jeweils mit der FormDataId
benannt sind und die angehängten Dateien enthalten. Angenommen der Pfad lautet C:\MeineAttachments\
und das Control heißt attachments_1
, dann geben Sie den gesamten Pfad mittels Platzhaltern so aus: C:\MeineAttachments\[?formid]-attachments_1\[?form_sfx_file].
Platzhalter sind in MASKITO Forms auch für Benutzerinformationen vorgesehen, z. B. um den Namen desjenigen Benutzers zu ermitteln, der aktuell das betreffende Formular aufgerufen hat. Als Informationsquellen dienen dabei Werte aus dem Active Directory bzw. aus der Systemumgebung.
Ersetzungsvorschrift | Zweck |
---|---|
[?ad:xxxxxxxx] |
Userattribut aus Active-Directory auslesen |
[?ad:nutzername:xxxxxxxx] |
bestimmtes Userattribut aus Active-Directory auslesen |
Mit Hilfe dieser Platzhalter nutzen Sie die Informationen aus Active Directory optimal für die effiziente Datenerhebung. Ein Beispiel für die Aufwertung der Interaktions-Oberfläche eines Formulars ist die bildliche Darstellung des aktuell aufrufenden Formular-Nutzers bzw. des Bearbeiters eines konkreten Datensatzes mit Hilfe der Platzhalter [?ad:thumbnailPhoto]
bzw. [?ad:nutzername:thumbnailPhoto]
aus dem Active Directory.
Zusätzlich empfiehlt sich die Verwendung von PeoplePicker. Denn hier profitieren Sie von dem Zusammenspiel beider Komponenten, indem Sie z. B. folgendes kombinieren: Per PeoplePicker-Control wird eine Person gewählt, woraufhin bestimmte Datenfelder automatisch mit den Informationen zu dieser Person aus dem Active Directory belegt werden. Dazu definieren Sie für Ihr PeoplePicker-Control das AD-Attribut sAMAccountName
als Key (das gilt nicht für AAD) und belegen per Funktionseditor z. B. eine TextBox automatisch mit dem Wert [?ad:[@peoplepicker_1.Key]:mail]
.
Auch für den Schreibschutz innerhalb des Formulars können Informationen aus dem Active Directory verwendet werden, etwa über die Zugehörigkeit des aufrufenden Benutzers zu einer konkreten AD-Gruppe über den Wertevergleich im WENN-Bereich des Funktionseditors, z. B. “[?ad:memberOf] Enthält CN=Reiseorganisation”
.
Bitte beachten Sie bei der Nutzung von Platzhaltern die Unterschiede zwischen Active Directory und Azure Active Directory (AAD).
Ersetzungsvorschrift | Zweck |
---|---|
[?ApplicationName] |
den Namen des MASKITO FormServers auslesen und im Web-Formular ausgeben, der in der Konfiguration der Serveranwendung definiert wurde. |
[?env_username] |
Loginname des Windows Nutzers |
[?env_machinename] |
Name des Computers |
[?env_domainname] |
Domainname des Rechners |
[?env_systemdirectory] |
Systemverzeichnis |
[?env_OSVersion] |
Version des Betriebssystems (OS) |
[?env_OSPlatform] |
OS Plattform |
[?env_tempfolder] |
Ordner für temporäre Dateien |
[?env:Variablenname] |
bestimmte Umgebungsvariable auslesen |
[?sv:Variablename] |
eine gewünschte Variable des Server im Web-Formular auslesen (z.B. LOGON_USER, REMOTE_ADDR) |
Das Auslesen von Servervariablen ([?sv:Variablename]
) funktioniert nur in einem Web-Formular. Eine Liste mit verfügbaren Servervariablen finden sie hier: IIS Server Variables
Hinweis: Wird eine Variable des IIS Servers nicht gefunden, so wird folgende Antwort generiert: SL-Fehler (Variable 'XYZ' nicht gefunden)
Diese Information kann auch auf dem MASKITO FormServer im Logprotokoll eingesehen werden.
Platzhalter erleichtern die Datenerhebung, weil sie den Aufwand und die Tippfehler bei manueller Eingabe verringern, z. B. bei der Angabe des aktuellen Datums. In MASKITO Forms stehen daher Platzhalter aus dem System bereit, z. B. das aktuelle Datum. Per MASKITO FormDesigner werden die Platzhalter im Formular eingesetzt.
Ersetzungsvorschrift | Zweck |
---|---|
[?Time] |
aktuelle Zeit (16:32:32) |
[?Time_1] |
aktuelle Zeit (16:32) |
[?Time_2] |
aktuelle Zeit (Sekunde) |
[?Time_3] |
aktuelle Zeit (Minute) |
[?Time_4] |
aktuelle Zeit (Stunde) |
[?Date] |
aktuelles Datum (Donnerstag, 17. August 2023) |
[?Date_1] |
aktuelles Datum (02.11.2023) |
[?Date_2] |
aktuelles Datum (02. November) |
[?Date_3] |
aktuelles Datum (Tag) |
[?Date_4] |
aktuelles Datum (Monat) |
[?Date_5] |
aktuelles Datum (Jahr) |
[?DateTime] |
aktuelles Datum (Donnerstag, 17. August 2023 16:32:32) |
[?Timestamp] |
abgelaufene Millisekunden seit dem 1.1.1970 (1418818159) |
Platzhalter können auch bezogen auf Eingaben in TimePicker-Controls verwendet werden.
Ersetzungsvorschrift | Zweck |
---|---|
[?form_lasterror] |
der letzte Fehler im Formular, sinnvoll z. B. in einer Fehlerbehandlungsfunktion |
[?GUID] |
neuer globaler eindeutiger Identifizierer |
[?TickCount] |
Betriebszeit des PC in ms |
Ersetzungsvorschrift | Zweck |
---|---|
[?tb:TextmodulID] |
Platzhalter durch Textbaustein aus tbx Datei über ID (Windows-Formular) |
Mit Hilfe von Platzhaltern kann MASKITO Forms auch Funktionen ausführen, etwa die Berechnung der Anzahl von Tagen zwischen zwei Terminen oder dem Auslesen bestimmter Werte aus einer definierten Zeichenkette.
Ersetzungsvorschrift | Zweck |
---|---|
[add_date("01.01.2023","10","d")] |
Datum um 10 Tage erhöhen |
[sub_date("01.01.2023","10","M")] |
Datum um 10 Monate verringern |
[datediff_toyear("Datum1","Datum2")] |
Differenz zwischen Datum1 und Datum2 in Jahren |
[datediff_tomonth("Datum1","Datum2")] |
Differenz zwischen Datum1 und Datum2 in Monaten |
[datediff_todays("Datum1","Datum2")] |
Differenz zwischen Datum1 und Datum2 in Tagen |
Hinweis: Folgende Optionen können in den Datumsfunktionen add_date
und sub_date
als Parameter verwendet werden:
Parameter | Zweck |
---|---|
"d" |
Tag |
"M" |
Monat |
"y" |
Jahr |
"s" |
Sekunde |
"m" |
Minute |
"h" |
Stunde |
Tipp: Kombinieren Sie diese Funktionen mit Platzhaltern wie etwa [?Date]
, z. B. [sub_date("[?Date]","1","d")]
für die Berechnung des gestrigen Tages ausgehend vom aktuellen Datum.
[!Berechnung:0]
ist die Mustersyntax für die Durchführung einer Berechnung. Weitere Anleitungen, wie Berechnungen im Formular definiert werden, stellen wir Ihnen in unserem Artikel “Formularbasierte Berechnungen: Dynamische Datenauswertung in Echtzeit” bereit.
Ersetzungsvorschrift | Zweck |
---|---|
[to_lower("HALLO")] |
wandelt String in Kleinbuchstaben um |
[to_upper("hallo")] |
wandelt String in Großbuchstaben um |
[trimend("Zeichenkette"," ")] |
Entfernt Leerzeichen am Ende der Zeichenkette |
[trimstart("Zeichenkette"," ")] |
Entfernt Leerzeichen am Anfang der Zeichenkette |
[str_length("meinString")] |
Gibt die Länge der Zeichenkette zurück |
[str_replace("von","nach","meinString")] |
Ersetzung von Zeichen oder Zeichenketten in einer Zeichenkette |
[isempty("meinString","Standardwert")] |
Prüfung eines Controls auf seinen Inhalt bzw. seinen Wert und Ausgabe des Standardwerts, falls das Control leer ist. Hinweis: isempty bezieht sich bei CheckBoxen, RadioButtons, Rating, TimePicker und UpDownBox auf die Eigenschaft Value, bei ComboBoxen und ChoiceControl auf die selektierten Optionen der Auswahl, bei Label und TextBoxen auf den enthaltenen Text, bei RichTextBoxen auf die Eigenschaft Text, bei LinkLabel, MediaPlayer und WebBrowser auf die Eigenschaft URL bzw. Source, bei PeoplePicker auf die Eigenschaft AD Key bzw. Default Key. |
[regex_replace("[0-9]+;\#","mit","inMeinString")] |
Ersetzung von Zeichen in einer Zeichenkette mit Hilfe regulärer Ausdrücke Gruppierungen können genutzt werden, z. B. fünf Zeichen extrahieren: [ regex_replace("([\s\S]{5})(.*)","$1","12345 - wegzuschneiden")] |
[regex("Zeichenkette","[0-9]{5}$")] |
Prüfung einer Zeichenkette auf Übereinstimmung mit regulären Ausdrücken |
[encrypt("Zeichenkette","Passwort")] |
Verschlüsselung einer Zeichenfolge |
[decrypt("Codewort","Passwort")] |
Entschlüsselung einer Zeichenfolge |
[substr("Zeichenkette",Position, Anzahl der Zeichen)] |
Auswahl definierter Zeichen aus einer syntaktisch vordefinierten Zeichenkette Beispiele: Den Vornamen einer Person z. B. aus dem Active Directory auslesen und nach dem 1. Buchstaben abkürzen mit [substr("[?ad:givenname]",0,1)] . Das Datum aus einem Konstrukt im Control “Timer” auslesen, welches immer aufgebaut ist aus “Timer: TT.MM.JJJJ hh:mm:ss” mit [substr("[@Timer]",7,10)] |
Ersetzungsvorschrift | Zweck |
---|---|
[getdirectoryname("Dateipfad")] |
Verzeichnispfad der Datei |
[getfilename("Dateipfad")] |
Name der Datei |
[getfilenameextension("Dateipfad")] |
Name der Dateiendung |
[getfilenamewithoutextension("Dateipfad")] |
Name der Datei ohne Dateiendung |
Ein Platzhalter, viele Möglichkeiten: Mit SQL-Anweisungen nach der gewohnten Syntax wie Select-From-Where usw. können einfache bis komplexe Datenbankabfragen realisiert werden, z. B. um eine ComboBox dynamisch mit Auswahloptionen zu befüllen. Als Alternative bietet MASKITO Forms im FormDesigner auch den Datenbankassistenten an, der eine Datenbankabfrage Schritt für Schritt geführt aufbaut.
Ersetzungsvorschrift | Zweck |
---|---|
[%Datenzugriff:1:SQL Anweisung %] |
SQL-Anweisung ausführen |