3.5. Контроль правильности ввода данных

Информация, накапливаемая в базе данных, должна обладать абсолютной достоверностью. Несоблюдение этого правила может порой привести к печальным последствиям. Например, отдел комплектации не сделает вовремя заказ на поставку необходимых материалов, владелец квартиры получит квитанцию для оплаты налога на автотранспорт, которого у него никогда не было, а пенсионеру будет отказано в выдаче страхового полиса и т.д. Даже самые опытные пользователи, заполняющие таблицы, могут допустить ошибку и занести неверные данные, что, скорее всего, и произошло в перечисленных выше случаях.

 Разработчик программного комплекса просто обязан помочь пользователю избежать большинства ошибок при вводе информации. Ниже приведены две возможности, которые любезно предоставили в наше распоряжение авторы Microsoft Visual FoxPro 9.0.

 


Добавление условия на значение поля позволяет проверить корректность данных только в одном поле, независимо от значений других полей. Рассмотрим пример, в котором на номер района наложено ограничение. Этот номер не может находиться вне диапазона от 1 до 9, даже если пользователь этого очень захочет (рис. 3.12).

Чтобы добавить условие на значение поля таблицы District (районы):

1.     Откройте таблицу District в режиме конструктора. Для этого в окне базы данных Real Estate (рис. 2.1) щелкните по таблице District правой кнопкой мыши. Появится меню. В нем пять пунктов. Выберите из них четвертый с названием Modify.

2.     Появится окно (рис. 3.13) конструктора таблиц (вкладка Fields).

3.     Запустите построитель выражений для ячейки Rule, выбрав пиктограмму . Наберите на клавиатуре: District>0 .And. District<10 и щелкните по кнопке OK.

4.     Запустите построитель выражений для ячейки Message, выбрав пиктограмму . Наберите на клавиатуре: “Номер района должен быть от 1 до 9” и щелкните по кнопке OK. Закройте окно конструктора таблицы и подтвердите сохранение сделанных изменений.

При попытке ввода номера района, который не находится в пределах диапазона 1–9, получим сообщение об ошибке и отказ программного комплекса от записи в таблицу сделанных изменений (рис. 3.15).

 

 

 

 

 

 

 

 

 

 

 

Рис. 3.13. Сообщение при ошибочных действиях оператора

 

Добавление условия на значение записи. Позволяет сравнить значения нескольких полей сразу. Рассмотрим пример, в котором производится проверка соответствия общей площади квартиры сумме составляющих: жилой, вспомогательной  и приведенной площади балкона.

Для того чтобы добавить условие на значение записи:

1.     Откройте таблицу Flat в режиме конструктора. Для этого в окне базы данных Real Estate (рис. 2.1) щелкните по таблице Flat правой кнопкой мыши. Появится меню. В нем пять пунктов. Выберите из них четвертый с названием Modify.

2.   Появится окно конструктора таблиц (первая вкладка Fields).

3.   Перейдите на третью вкладку Table (рис. 3.14).

4.     Запустите построитель выражений для ячейки Rule, выбрав пиктограмму . Наберите на клавиатуре: squareflat = dwell+ branch+ balcony и щелкните по кнопке OK.

5.   Запустите построитель выражений для ячейки Message, выбрав пиктограмму . Наберите на клавиатуре: "Общая площадь квартиры не равна сумме составляющих" и щелкните по кнопке OK. Закройте окно конструктора таблицы и подтвердите сохранение сделанных изменений.

 


Рис. 3.14. Диалоговое окно «Свойства таблицы»

 

В случае появления этой ошибки при работе программного комплекса появится сообщение (рис. 3.15).

 


Рис. 3.15. Сообщение об ошибке