Программирование валидации значений полей


В данной статье мы изучим возможности FossLook по валидации значения полей. Ознакомьтесь со статьей "Программирование в 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(
                            "Вы указали дату, которая меньше текущей",   
                            "Сохранить",                                 
                            System.Windows.Forms.MessageBoxButtons.OK,   
                            System.Windows.Forms.MessageBoxIcon.Warning);
                    }
                }

                return result;
            }
        }

Если вы введете дату меньше текущей и нажмете на кнопку "Сохранить", документ будет не сохранен, а вы увидете на экране сообщение такого вида:

Документ FossLook

© 2001-2018 ФОСС-Он-Лайн. Все права защищены.