Für die benutzerdefinierte Prüffunktion müsstest du einen User Exit programmieren.
Einfacher ist es denk ich über Maskenskripting.
Bei Dokument erstellen im Form Load Event deklarierst du in der "partial class Form???_???_?" folgende Variablen:
public partial class Form???_???_?
{
FormControls myControls;
EngineClass myEngine; //wird hier nicht benötigt ist aber oft sinnvoll
UserControl myForm; //wird hier nicht benötigt ist aber oft sinnvoll
}
Im Form load füllst du dann diese Variablen so dass du auf diese zugreifen kannst:
private void ProfileForm_???_???_?_FormLoad(object sender, Procad.Profile.Engine.Scripting.ProfileFormEventArgs e)
{
myControls=new FormControls((Control)sender);
myForm = (UserControl)sender; //wird hier nicht benötigt ist aber oft sinnvoll
myEngine = e.ProfileEngine; //wird hier nicht benötigt ist aber oft sinnvoll
}
Jetzt kannst du im OK Click Event auf die Felder zugreifen (z.B. leeren):
private void ProfileForm_???_????_?_OKClick(object sender, Procad.Profile.Engine.Scripting.ProfileFormEventArgs e)
{
myControls[ObjectTypes.Document,????, ??].EditField.Value = "";
myControls[ObjectTypes.Document,????, ??].DoRefresh();
//oder alternativ falls es über über myControls nicht gehen sollte:
EditFieldBase Feldvariable = e.AllFields.GetField(ObjectTypes.Document, ????, ??);
}
Dabei stehen die ???? und ?? das Feld. Die entsprechenden Zahlen kannst du dir auf der linken Seite im Skripteditor aus der Liste mit den Controls suchen.
Ob der Inhalt des Feldes dann richtig formartiert ist kannst du dann mit den String Operationen von C# prüfen. Dazu solltest du aber genug Information im Internet finden.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP