Лабораторная работа № 2 (продолжение лабораторной работы №1)
2.1 Создание структуры таблиц
Вызов ДО Table Designer:
1 СПОСОБ: File – New – Table – New file (как показано на рис.2.1).
Внимание! Этот способ не рекомендуется использовать в случае применения настроек ограничения целостности на уровне поля, т.к. при нем блокируются поля ввода информации в строках зон Display и Field validation диалогового окна Table Designer.
Щелкните
переключатель на Table
Нажмите
кнопку для создания таблицы
Рис.2.1 ДО New для создания новой таблицы
2 СПОСОБ: на панели инструментов контейнера Database Designer нажать кнопку New table (как показано на рис.2.2).
Нажмите
кнопку для создания таблицы
Рис.2.2 ДО Database Designer для создания таблицы
3 СПОСОБ: в ДО Project Manager перейти с вкладки All на вкладку Data, для активной строки Databases нажать переключатель "+" для раскрытия списка вложенных строк, затем нажать переключатель "+" на возникшей активной строке data1, активизировать возникшую строку Table и для этой строки нажать управляющую кнопку New.
После использования любого из описанных способов появляется ДО Create, в котором необходимо заменить заданное по умолчанию имя таблицы table1 на имя Poshk и нажать кнопку "Сохранить". В результате появляется ДО конструктора таблиц Table Designer, представленное на рис.2.3 (на рис.2.3 показано ДО Table Designer с еще не переименованной таблицей).
В возникшем ДО Table Designer необходимо на указанной по умолчанию вкладке Fields выполнить следующие действия.
В колонке Name рабочей области нужно ввести имена полей таблицы, например, для таблицы Poshk ввести имена nomp, famp, gord и stat. В колонке Type раскрыть список строк для выбора типа данных поля (по умолчанию в поле списка строк появляется тип Character). Например, нужно выбрать следующие типа данных:
Character – для полей nomp, famp, gord (таблицы Poshk), nomd, naim, cvet (таблицы Detl), nomr, npro, gorp (таблицы Proek);
Numeric – для полей stat (Poshk), vesd, cena (таблицы Detl), kolw (таблицы Poski);
Data – для поля Data (таблицы Poski).
В колонке Width вводится число разрядов ширины поля, как показано на рис.2.3, согласно схеме таблицы в лабораторной работе №1 (например, для поля nomp вводится цифра 2, для поля famp - цифра 10 и т.д.). В колонке Decimal вводится количество десятичных знаков до и после запятой плюс точка, которая считается как десятичный знак. Например, если число состоит из двух целых и двух дробных знаков, то в колонке Width надо ввести цифру 5.
Зона
Display
строка
Input
mask
для
указания маски отображения поля
Зона
Display
строка
Caption
для
указания заголовка поля
Зона
Display
строка
Format
для указания формата значения поля
Выберите
вкладку Fields
Рабочая
область, зона Name
для ввода имени поля
Зона
Type
рабочей области для ввода типа поля
Зона
Width
рабочей области для ввода ширины поля
Зона
Decimal
рабочей области для ввода количества
десятичных знаков
Рис.2.3 ДО Table Designer
В зоне Display ДО Table designer в строке Format нужно указать формат вывода значения поля. Например, для полей famp и gord (таблица Poshk) нужно указать “@!” (вывод только алфавитной информации прописными буквами). Аналогично для полей npro, gorp (таблица Proek), naim, cvet (таблица Detl) в этой строке надо указать “@!” для вывода прописных букв. Ниже приведена табл. 2.1 с шаблонами ввода/вывода.
Таблица 2.1 Шаблоны ввода/вывода
|
|
Символ шаблона ввода/ вывода |
Назначение символов шаблона ввода/ вывода |
Шаблоны вывода |
|
@! |
Только буквы с переводом в прописные |
Шаблоны ввода |
|
9 |
Допускает при вводе только цифры для символьных данных и цифры со знаком и точкой - для числовых. Каждый символ означает ввод только цифры для одного разряда |
# |
Цифры, пробелы и знаки (блокирует буквенную клавиатуру) |
Х |
Любые символы |
! |
Преобразует строчные буквы в прописные |
В строке Input mask указывается маска отображения значений полей по формату ввода. Например, для поля nomp (Poshk) в этой строке нужно указать маску П# (символ # - означает ввод только цифр, знаков числа, точки с одновременной блокировкой алфавитной клавиатуры). Аналогично для полей nomd и nomr нужно указать маску соответственно Д# и Р#. Для полей famp, gord, npro, gorp, naim, cvet указать маску из 10 символов “!!!!!!!!!!” (без кавычек и соответственно числу разрядов этих полей) для отображения вводимых символов и записи их на диск прописными буквами. Для полей vesd и stat указать “99” (ввод 2-х разрядов цифровой информации). Для поля Data ввести функцию ctod (“01/09/01”) для отображения вводимых символов в формате даты.
В строке Caption указываются заголовки полей на русском языке согласно их названию в схеме данных (например, Номер поставщика).
В зоне Field validation в строке Rule (см. рис.2.4) указываются две функции:
вложенная функция substr для определения в конкретном поле (в данном случае поле Nomp) номера позиции, т.е. номера разряда, с которого начинается в этом поле подстрока преобразуемого символа поля (в данном случае 2-го одноразрядного символа), и число разрядов в подстроке (в данном случае один разряд);
функция val для преобразования типа данных у 2-го одноразрядного символа поля Nomp из типа Character в тип Numeric с целью контроля ввода числовых значений поля Nomp;
операция сравнения числового значения выделенного символа с установленным допустимым числом (значение 2-го разряда в коде поставщика должно быть меньше или равно 8).
Запись в строке Rule имеет вид:
val(substr(nomp,2,1))<=8
В строке Message вводится сообщение, которое появляется, если правило ввода нарушено. Например, для поля nomp: “Значение номера поставщика не должно быть больше 8!”. Аналогично для полей nomd и nomr.
В строке Default value вводится значение, которое устанавливается по умолчанию. Например, для поля Data: ctod (“10/09/01”).
Зона
Field
validation
строка
Rule
для
указания правила ввода значения поля
Зона
Field
validation
строка
Message
для
указания сообщения при нарушении
правила ввода
Зона
Field
validation
строка
default
value
для
указания значения по умолчанию
Рис.2.4 ДО Table Designer
Оформление строк в зонах Display и Field validation для полей остальных таблиц приведено в табл. 2.2, 2.3.
Таблица 2.2
Описание форматированного ввода/вывода для полей структуры |
||||||
таблиц в диалоговом окне Table Designer |
||||||
|
|
|
|
|
|
|
Зона Display |
Field Validation |
|||||
Поле |
Форматированный вывод |
Контроль ввода |
||||
Формат вывода (Format) |
Маска ввода или шаблон (Input mask) |
Наименование поля (Caption) |
Выражение проверки истинности ввода:строка Rule |
Текст сообщения об ошибке: строка Message |
Значение по умолчанию (Default Value) |
|
Файл POSHK |
||||||
NOMP |
|
П# цифры и знаки |
Номер поставщика |
Val(Substr(nomp,2,1))<=8 |
"Значение номера поставщика не должно быть > 8" |
|
FAMP |
@! |
!!!!!!!!!! (10 раз) |
Ф.И.О поставщика |
|
|
|
GORD |
@! |
!!!!!!!!!! (10 раз) |
Город поставщика |
|
|
|
Продолжение табл. 2.2
Зона Display |
Field Validation |
|
|||||||||||||||||
Поле |
Форматированный вывод |
Контроль ввода |
|
||||||||||||||||
Формат вывода (Format) |
Маска ввода или шаблон (Input mask) |
Наименование поля (Caption) |
Выражение проверки истинности ввода:строка Rule |
Текст сообщения об ошибке: строка Message |
|
||||||||||||||
STAT |
|
99 цифры со знаком для Numeric |
Статус поставщика |
Between((stat),10,30) |
"Вводимое значение должно быть в пределах 10-30" |
10 |
|||||||||||||
Файл DETL |
|||||||||||||||||||
NOMD |
|
Д# |
Номер детали |
Val(Substr(nomd,2,1))<=8 |
"Значение номера детали не должно быть > 8" |
|
|||||||||||||
NAIM |
@! |
!!!!!!!!!! (10 раз) |
Наименование детали |
|
|
|
|||||||||||||
CWET |
@! |
!!!!!!!!!! (10 раз) |
Цвет детали |
|
|
|
|||||||||||||
VESD |
|
99 |
Вес детали |
VESD=>5 |
"Вводимое значение должно превышать 5" |
5 |
|||||||||||||
CENA |
|
99.99 |
Цена детали |
|
|
|
|||||||||||||
Файл PROEK |
|||||||||||||||||||
NOMR |
|
Р# (Р-рус) |
Номер разработчика |
Val(Substr(nomr,2,1))<=8 |
"Значение номера разработчика не должно быть > 8" |
|
|||||||||||||
NPRO |
@! |
!!!!!!!!!! (10 раз) |
Наименование пректа |
|
|
|
|||||||||||||
GORP |
@! |
!!!!!!!!!! (10 раз) |
Город проекта |
|
|
|
|||||||||||||
Файл POSKI |
|
||||||||||||||||||
Поля NOMP, NOMD, NOMR - оформляются аналогично полям в файлах POSHK, DETL, PROEK |
|
|
|||||||||||||||||
KOLW |
|
9999 |
Количество |
KOLW<=9998 |
"Значение кол-ва не должно быть>9998" |
100 |
|
||||||||||||
DATA |
|
ctod('01/01/01') |
Дата поставки |
|
|
ctod ('10/09/01') |
|
Таблица 2.3
Значение поля по умолчанию,
устанавливаемое в строке Default Value зоны Field validation
Файл |
Поле |
Значение поля по умолчанию (Default Value) |
POSHK |
STAT |
10 |
DETL |
VESD |
5 |
POSKI |
KOLW |
100 |
DATA |
ctod ('10/09/01') |