Delphi 3 и создание приложений баз данных

Реализация бизнес-правил в компоненте TField


Анализ правильности введенного в поле значения

Проверку правильности введенного в поле значения можно осуществить в обработчиках событий On Validate, OnSetText, OnChange.

Пример.

Значение поля Company не должно содержать символ '@':

procedure TForm1.Table1CompanyValidate(Sender: TField);

begin

IF POS('@',Table1Company.AsString) > 0 THEN raise Exception.Create('Неверное значение');

end;

Пример.

Значение поля PUR_PRICE не должно превышать 100:

procedure TForm1.Table1PUR_PRICESetText(Sender: TField;

const Text: String);

var Tmp : Real;

begin

Tmp := StrToFloat(Text) ;



IF Tmp > 100 THEN ShowMessage('Ошибочное значение')

ELSE Table1PUR_PRICE.Value := Tmp;

end;

или

procedure TForm1.Table1PUR_PRICEChange(Sender: TField);

begin

IF Table1PUR_PRICE.Value > 100 THEN raise Exception.Create('Ошибочное значение');

end;

Форматирование содержимого поля при показе и редактировании

Значения могут храниться в виде, отличном от того, в котором они показываются пользователю. Преобразование значения поля к виду, пригодному для показа пользователю, осуществляется свойствами EditMask (маска значения при редактировании записи) и DisplayFormat (маска значения при показе в визуальных компонентах), и обработчиком события OnGetText, который применяется, если возможностей DisplayFormat для преобразования значения недостаточно.

Пример.

Значение поля Company при редактировании должно показываться в кавычках, при просмотре - с заменой всех букв на заглавные:

procedure TForm1.Table1CompanyGetText(Sender: TField; var Text: OpenString;

DisplayText: Boolean);

begin

IF DisplayText THEN Text := AnsiUpperCase(Table1Company.AsString)

ELSE Text := ' " ' + Table1Company.AsString + ' " ';

end;

Свойства CustomConstraint и ConstraintErrorMessage

Свойство поля

property CustomConstraint: string;

позволяет наложить ограничения на значения поля (при помощи SQL-подобного синтаксиса). Если в поле занесено значение, не отвечающее указанному ограничению, возбуждается исключение с сообщением, определяемым свойством

property ConstraintErrorMessage: string;



Содержание раздела