Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л_8_9_БД.doc
Скачиваний:
1
Добавлен:
08.12.2018
Размер:
350.21 Кб
Скачать

7.2. Свойства полей

У компонента Table есть свойства IndexName и IndexFieldName.

Свойство IndexName содержит выпадающий список индексов, созданных для таблицы. Если выбрать индекс FIO, записи будут представленными упорядоченными по алфавиту. Индекс depfio упорядочивает по подразделениям, а внутри подразделения по алфавиту. В свойстве IndexFieldName просто перечислены предусмотренные в индексах комбинации полей, если вы забыли. что обозначают имена индексов.

Для редактирования отдельных полей имеется Редактор Полей, вызывается двойным щелчком на компоненте Table.

Каждое поле – это объект, свойства которого отображаются в Инспекторе объектов. Класс поля зависит от типа поле: TStringField, TSmallIntField, TBooleanField и т.п. Эти классы являются производными от класса TField – базового класса полей.

Некоторые основные свойства полей:

Alignment – выравнивание отображаемого текста внутри колонки: влево, вправо, по центру

DisplayLabel – заголовок столбца данного поля

DisplayWidth – ширина колонки – число символов

EditMask, EditFormat – форматы отображения данных

DisplayValue – для логических полей: какие значения должны отображаться, если поле имеет значение true или false.

ReadOnly – при значании true запрещает вводить данные в поле

Visible – при значении false делает поле невидимым

Вид приложения после установки всех необходимых свойств:

7.3. Ограничения вводимых значений

Несколько возможноcтей ограничений вводимых значений предоставляют свойства полей:

Ø Для числовых полей имеются свойства MinValue и Maxvalue. При нарушении этих пределов будет генерироваться исключение EDatabaseError, которое лучше перехватывать в приложении, чтобы выдавать пользователю сообщение на русском языке. например, если требуется принимать на работу сотрудников от 20 до 30 лет, можно установить для поля Year_b ограничения MinValue=1970 и Maxvalue=1980.

Ø Можно использовать свойства CustomConstraint, которое позволяет написать ограничение на значение поля в виде строки SQL, например: (Year_b>1970) and (Year_b<1980). Свойство ConstraintErrorMessage содержит строку текста, который будет показан пользователю в случае, если он вводит данные, не удовлетворяющие поставленным ограничениям, например: «Возраст претендента на должность не подходит». Это свойство подходит не только к числовым полям.

Ø Можно использовать обработку события поля onValidate. Это событие возникает перед записью введенного значения поля в буфер записи. Тут можно предусмотреть любые проверки, при появлении недопустимых значений выдать пользователю сообщение.

Если все нормально, то после события onValidate возникает еще событие onСhange, в обработчике которого тоже еще не поздно сгенерировать исключение.

Есть возможность осуществлять проверку на уровне записи, анализируя различные ее поля. Для этого используется свойство Constraints компонента Table. При выборе этого свойства в Инспекторе объектов открывается окно, в котором, щелкая на кнопке Add можно занести набор ограничений, каждое из которых является самостоятельным объектом со свойствами CustomConstraint (строка SQL, определяющая допустимые ограничения) и ErorMessage (строка текста, которая будет представлена пользователю в случае нарушения ограничений). Например: «Принимаем только мужчин > 1955 г.р. и женщин > 1965 г.р.».