Zum Hauptinhalt springen

Werte in Formularen prüfen

Sie können per Code prüfen ob Werte zulässig sind.

Das folgende Beispiel zeigt wie Sie verhindern können das der Anwender im Feld HEIGHT eine Wert kleiner als 9 eingibt und im Feld DISTANCE einen Wert grösser 20.

Wenn Sie den Script Editor verwenden dann:
Im Script Editor in der linken Liste das Formular auswählen in dem die Prüfung ausgeführt werden soll. Dann rechts auf das Register "Formular" klicken und "IsActive" aktivieren. Und dann diesen Code verwenden.

Wenn Sie Plugin Programmieren:
Fügen Sie den Code unten in ein GenericFormPlugIn ein.

Bitte beachten

Im Code vom Register "Formular" wird C# Code erst ab Version 24.1.35 unterstützt, dort müssen bei Version vor 24.1.35 immer VB.NET verwenden. In Plugins wird die Funktion in allen Versionen und in C# und VB.NET unterstützt.

C# Beispiel

public override void Register()
{
//Dieser Code wird beim öffnen des Formular ausgeführt und kann z.B. zur Initalisiering von werten verwendet werden.
}

public override void RecordModifying(object sender, CancelEventArgs e)
{
//Dieser Code wird beim Einfügen eines neuen Datensatzes im Formular aufgerufen
this.ValidateValues(e);
}

public override void RecordAdding(object sender, CancelEventArgs e)
{
//Dieser Code wird beim änderen eines neuen Datensatzes im Formular aufgerufen
this.ValidateValues(e);
}

private void ValidateValues(CancelEventArgs e)
{
System.Text.StringBuilder errorText = new System.Text.StringBuilder();

if (this.GetInt32Ex("HEIGHT") > 9)
{
errorText.AppendLine("Value of Column HEIGHT has to be smaller than 10");
}
if (this.GetInt32Ex("DISTANCE") < 21)
{
errorText.AppendLine("Value of Column DISTANCE has to be bigger than 20");
}

if (errorText.Length > 0)
{
e.Cancel = true; 'Dieser Befehl sagt dem Formular das das Speichern abgebrochen werden soll.
'Setzen Sie diesen Wert nicht auf "true" da Sie sonst ggf andere Prüfungen wieder zurücksetzen
XMsgBox.ShowException(errorText.ToString());
}

}

VB.NET Beispiel


Public Overrides Sub Register()

'Dieser Code wird beim öffnen des Formular ausgeführt und kann z.B. zur Initalisiering von werten verwendet werden.

End Sub

Public Overrides Sub RecordAdding(sender As Object, e As Mum.Geo.Client.Events.CancelEventArgs)

'Dieser Code wird beim Einfügen eines neuen Datensatzes im Formular aufgerufen
Me.ValidateValues(e)

End Sub

Public Overrides Sub RecordModifying(sender As Object, e As Mum.Geo.Client.Events.CancelEventArgs)

'Dieser Code wird beim änderen eines neuen Datensatzes im Formular aufgerufen
Me.ValidateValues(e)

End Sub

Private Sub ValidateValues(e As Mum.Geo.Client.Events.CancelEventArgs)

Dim errorText As New System.Text.StringBuilder()

If Me.GetInt32Ex("HEIGHT") > 9 Then

errorText.AppendLine("Value of Column HEIGHT has to be smaller than 10")

End If

If Me.GetInt32Ex("DISTANCE") < 21 Then

errorText.AppendLine("Value of Column DISTANCE has to be bigger than 20")

End If

If errorText.Length > 0 Then

e.Cancel = true 'Dieser Befehl sagt dem Formular das das Speichern abgebrochen werden soll.
'Setzen Sie diesen Wert nicht auf "true" da Sie sonst ggf andere Prüfungen wieder zurücksetzen
XMsgBox.ShowException(errorText.ToString())

End If

End Sub