Програмування валідації значень полів
У даній статті ми вивчимо можливості FossLook з валідації значення полів.
Ознайомтеся зі статтею "Програмування в FossLook" для отримання базових знань, необхідних
для розуміння викладеного матеріалу.
У даній статті ми продовжимо роботу над нашою бібліотекою "Моя бібліотека". У нашому розпорядженні є документ такого виду:
Припустимо, що вам потрібно валідувати значення поля Термін виконання , щоб зазначена дата не могла бути
менше поточної.
У реалізації даного завдання нам допоможе подія CanSave , яке надається базовим класом картки. Відкрийте файл Form.cs з скрипта картки документа, і додайте заготовку коду:
// "Тег поля Термін виконання"
DS.TPropertyTag _FromDateTag = Foss.FossDoc.ApplicationServer.Converters.PropertyTag.FromString("0x80790040");
public override bool CanSave
{
get
{
bool result = base.CanSave;
IDocumentCardField documentCardField = Fields[_FromDateTag];
if (documentCardField != null && documentCardField.Value != null)
{
DateTime selectedDate = (DateTime)documentCardField.Value;
if (selectedDate < DateTime.Now)
{
result &= false;
System.Windows.Forms.MessageBox.Show(
"Ви вказали дату, яка менше поточної",
"P,Зберегти",
System.Windows.Forms.MessageBoxButtons.OK,
System.Windows.Forms.MessageBoxIcon.Warning);
}
}
return result;
}
}
Якщо ви введете дату менше поточної і натиснете на кнопку "Зберегти", документ буде не збережений, а ви побачите на екрані повідомлення такого виду: