Завдання таблиці для вибору значень в paradox 7 - програмні продукти

Часто виникає ситуація, коли в поле повинні заноситися значення з будь-якого їх набору, який може формуватися різними способами. Одним з часто використовуваних є варіант, коли ці значення містяться в поле іншої таблиці, і сукупність значень всіх записів цього поля утворює набір допустимих значень.

Для полів деяких типів, наприклад, строкового, числового чи дати, можна визначити для вибору значень поле іншої таблиці (таблиці вибору). У таблиці вибору задається поле, вміст якого використовується для формування набору допустимих значень. Якщо для поля задана таблиця вибору, то в нього можна ввести тільки таке значення, яке міститься в таблиці вибору (в зазначеному полі будь-якого запису). Завдання таблиці вибору гарантує, що в полі не буде занесено неприпустиме значення.

Дія набору допустимих значень поширюється також на редагування записів таблиці програмним способом, при спробі привласнити полю неприпустиме значення генерується виняткова ситуація.

При заповненні строкових полів враховується регістр букв, тому, наприклад, "водій" і "ВОДІЙ" є різними значеннями.

У будь-якому випадку допустимим є пусте значення (Null), якщо, звичайно, не обмежений, що складається в тому, що поле не може бути порожнім.

Для виконання операцій, пов'язаних з зазначенням полів вибору, потрібно вибрати пункт Table Lookup (Таблиця вибору) комбінованого списку Table properties (Властивості таблиці) вікна визначення структури таблиці (див. Рис. 1.2). При цьому під списком стає доступною кнопка Define (Визначити), натиснувши яку відкриває вікно Table Lookup (Таблиця вибору) (рис. 1.8).

У списку Fields (Поля) виводяться імена всіх полів таблиці, при цьому ті з них, які не допускають створення таблиці вибору, мають півтонове виділення (сірий колір), наприклад, поле Автоінкрементний типу.

Ім'я поля, для якого задається таблиця вибору, відображається в поле виведення Field name (Ім'я поля), для його вказівки слід виділити в списку Fields (Поля) потрібне поле і натиснути кнопку із зображенням стрілки вправо. Якщо вказати інше поле і натиснути кнопку, то його ім'я скопіюється в поле виведення Field name і замінить раніше обране ім'я.

Мал. 1.8. Вікно завдання таблиці вибору

Після вказівки таблиці вибору натискання кнопки із зображенням стрілки вліво переводить ім'я першого її поля, значення якого будуть використані для формування набору допустимих значень, в прямокутну область Lookup field (Поле вибору). Типи полів обох таблиць повинні збігатися, в іншому випадку в інформаційній панелі видається повідомлення про помилку.

За допомогою групи перемикачів Lookup type (Тип вибору) можна задати спосіб взаємодії обох таблиць. Якщо включений перемикач Just current field (Тільки поточний поле), то таблиця вибору визначається тільки для поля, відображеного в області Field name. Перемикач All corresponding fields (Всі відповідні поля) призначає таблицю вибору не тільки вказаною полю, але і всім наступним полях. Імена і типи цих полів повинні збігатися з відповідними полями таблиці вибору.

Залежний перемикач Lookup access (Доступ до таблиці вибору) визначає, яким чином користувачем використовуються значення з таблиці вибору.

Якщо включений перемикач Fill no help (Заповнення без допомоги), то при редагуванні поля, для якого визначена таблиця вибору, користувач повинен знати допустимі значення цього поля. При цьому термін "вибір" неточно відображає взаємозв'язок полів таблиць, т. К. Користувачу не пропонується список можливих значень, з яких він може вибрати одне. Користувач сам вводить значення в поле, при цьому на рівні таблиці виконується перевірка, чи є це значення допустимим. Якщо значення відсутнє в зазначеному полі таблиці вибору, то воно не приймається.

В цьому випадку полегшити введення значення може відображення поруч з редагованої таблицею таблиці вибору, наприклад, як показано на рис. 1.9.

Мал. 1.9. Занесення значення в поле, для якого задана таблиця вибору

У наведеному прикладі (див. Рис. 1.9) у вікні програми Database Desktop таблиця Personnel_2 містить дані про співробітників організації, в ній визначені поля коду (p_code), прізвища (pjsiame), посади (p_Post) і окладу (p_Salary). У строкове поле посади можна вводити тільки припустиме назва посади. Перелік всіх посад міститься в поле Post таблиці Post2. Для запобігання введенню в таблицю Personnel неправильних значень її полю p_Post сопоставлена ​​таблиця вибору Post2 і її поле Post. У таблиці Personnel для перших трьох співробітників відображені займані ними посади, наявні в таблиці Post2. Спроба поставити для четвертого співробітника посаду "Бухгалтер" блокується, т. К. Ця посада не є дозволеною для введення. При необхідності зазначену посаду спочатку потрібно помістити в таблицю Post2, після чого вона стане доступною також для таблиці Personnel2.

Установка перемикача Lookup access (Доступ до таблиці вибору) в положення Help and fill (Допомога та заповнення) (див. Рис. 1.8) дозволяє не тільки ввести значення в поле, як описано вище, але і дійсно вибрати значення зі списку. Список, сформований на підставі вмісту поля (полів) таблиці вибору. з'являється при натисканні комбінації клавіш <Сtrl>+<Пробел> в редагованому поле. Після вибору потрібного значення і натискання кнопки ОК воно заноситься в поле.

З таблиці вибору значення можуть бути видалені. Якщо ці значення містяться в полях таблиці, задействующей таблицю вибору, то при перемиканні в режим її редагування виникає помилка. При використанні програми типу Database Desktop таблицю не можна вивести з режиму редагування, поки все її поля не приведені у відповідність з новими значеннями таблиці вибору. При доступі до таблиці в разі звернення до значень, віддаленим з таблиці вибору, під час виконання додатка генерується виняткова ситуація.

Після зв'язування поля з таблицею вибору у вікні завдання структури таблиці (див. Рис.1.2) з'являється список, в якому відображається ім'я цієї таблиці, а також кнопки Modify і Erase.

Натискання кнопки Modify (Змінити) знову відкриває вікно завдання таблиці вибору, в якому можна ввести нові дані для таблиці. Кнопка Erase (Видалити) служить для скасування таблиці вибору і пов'язаних з нею обмежень на значення поля.

Відзначимо, що об'єкти поля типу TField наборів даних таblе і Query, a також сітка DBGrid дозволяють визначити для поля список вибору, який також дає можливість користувачу вибирати значення при редагуванні полів. Визначення і використання списків вибору розглянуто в розділах 5 і 6. Списки вибору цих об'єктів і компонентів задаються на програмному рівні і їх дія поширюється тільки на свій додаток.

Схожі статті