Mit einem
Prüfungs-Hook können Sie prüfen, ob ein Benutzer gültige Informationen in ein Feld
eingegeben hat. Wenn die Informationen nicht gültig sind, wird der Benutzer aufgefordert, gültige Informationen einzugeben.
Beim Definieren eines neuen BASIC- oder PERL-Hooks für ein
Feld oder eine Aktion wird die Aufrufsyntax für den Hook im Fenster des Script-Editors hinzugefügt. Die Aufrufsyntax kann nicht bearbeitet werden.
Da Hooks das Verhalten eines Felds beeinflussen können, sollten Sie Hooks
besonders sorgfältig entwerfen und testen, bevor Sie sie Benutzern zur Verfügung stellen.
Dieses Beispiel für einen Hook für Benutzereingabe macht das Feld "user_number" zu einem
Musseingabefeld, unabhängig von der Einstellung im Raster "Behaviors".
- Erweitern Sie im Arbeitsbereich den Ordner "Record Types" und den
gewünschten Satztyp, und klicken Sie anschließend doppelt auf "Fields".
- Klicken Sie im Raster "Fields" auf die Zelle "Validation"
für das Feld, das Sie ändern möchten, und klicken Sie auf den Abwärtspfeil, um eine Liste der verfügbaren Hooks anzuzeigen. Klicken Sie auf "" oder
"". Wenn der Modus für sofortige
Bearbeitung (Instant Editing Mode) aktiviert ist, öffnet Designer automatisch den Script-Editor. Ist der Modus für sofortige Bearbeitung inaktiviert, müssen Sie doppelt
auf die Zelle "Validation" für das Feld klicken, um den Script-Editor zu
öffnen.
BASIC und Perl verwenden ihre eigenen Script-Editoren. Designer zeigt in der Titelleiste des Fensters "Designer" an, welcher Editortyp verwendet wird.
Vergewissern Sie sich vor dem Bearbeiten des Codes, dass Sie den richtigen Editor verwenden.
- Geben Sie den Code zum Überprüfen der Benutzereingabe nach den folgenden Zeilen ein
(in Perl beginnen die Zeilen mit dem Zeichen "#"):
REM Return a non-empty string explaining why the
REM field's current value is not permitted.
REM Or, if it is valid, return an empty string value.
REM Example:
REM Dim value_info
REM Set value_info = GetFieldValue(fieldname)
REM If Len(value_info.GetValue()) < 10 Then
REM resolution_date_Validation = "Must be at least 10 chars long"
REM End If
Wenn das Feld
den Namen "user_number" und den Typ "INT" aufweist, stellt der Code sicher,
dass Benutzer einen Wert zwischen 1 und 100 eingeben:
REM Return a non-empty string explaining why the field's current
value is not permitted
REM Or, if it is valid, return an empty string value.
value = GetFieldValue(fieldname).Get Value()
if Not IsNumeric(value)
user_number_Validation="Field does not contain a number."
Else If (value < 1) or (value > 100) then
user_number_Validation="User number must be between 1 and 100."
end if
- Wählen Sie "" aus. Das Script wird kompiliert, und mögliche Syntaxfehler werden identifiziert.
- Beheben Sie eventuelle Fehler, und klicken Sie auf "" oder schließen Sie den Script-Editor.