Первая страница
Наша команда
Контакты
О нас

    Головна сторінка



Ярцев в. П. Створення та обробка баз даних на пеом

Ярцев в. П. Створення та обробка баз даних на пеом




Сторінка17/20
Дата конвертації10.03.2017
Розмір2.36 Mb.
ТипПротокол
1   ...   12   13   14   15   16   17   18   19   20

TField





TStringField





TFloatField




TDateTimeField



TNumericField

. . . . . . . . . . . . . . . . . .
Рис. 12.5. Фрагмент ієрархії класів, що містить клас TField
Об'єкти, породжені від типізованих класів – нащадків TField, є не візуальними компонентами, призначеними для доступу до даних, що зберігаються в окремих полях, і для керування цими даними.

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

У НД є властивість Fields, що є масивом, елементами якого є об'єкти-поля. Звернутися до значення якого-небудь поля можна через властивість Value, наприклад, у такий спосіб:

Table_Stud.Fields[i].Value ,

де i – індекс (порядковий номер) даного поля.

Інший спосіб звертання до даних (більш зручний) – звертання по імені за допомогою властивості FieldByName. Наприклад, до поля КодСтуд можна звернутися в такий спосіб:

Table_Stud.FieldByName(‘КодСтуд’).Value
Властивість Value містить дані в тім форматі, що відповідає типу даних поля. Для перетворення даних до потрібного типу можна використовувати спеціальні властивості, наприклад:

AsString – перетворення до строкового типу;

AsInteger – перетворення до цілого типу;

AsFloat – перетворення до речовинного типу.
Наприклад, для відображення даних поля КодСтуд (цілий тип) за допомогою компонента TLabel можна застосувати такий оператор:

Label1.Caption:=Table_Stud.FieldByName(‘КодСтуд’).AsString;



12.4.2. Редагування полів у НД

Як уже відзначалося, при розміщенні на формі компонента НД в нього за замовчуванням включаються всі поля, що маються в таблиці. Однак, часто буває потрібно змінити склад полів (видалити які-небудь поля, додати нові). Для цього зручно використовувати Редактор Полів.

Викликати Редактор Полів можна подвійним щигликом на значку компонента НД (TTable чи TQuery) чи за допомогою контекстного меню (клацнути на значку компонента правою кнопкою миші і вибрати команду Fields Editor). При першому відкритті Редактора Полів вікно його порожнє (Рис. 12.6). Це означає (за замовчуванням), що в НД включені всі поля.

Рис. 12.6. Вікно Редактора Полів при першому його відкритті
Для додавання потрібних полів необхідно викликати контекстне меню Редактора Полів (подвійним клацанням миші в будь-якому місці вікна Редактора Полів) і виконати команду Add Fields. Відкриється вікно додавання полів, у якому потрібно виділити поля, що додаються, і натиснути кнопку OK. Якщо потрібно виділити одночасно кілька полів, то виділення робити при натиснутій клавіші «Ctrl ». У вікні Редактора Полів відобразяться всі обрані поля.

На Рис. 12.7 показаний вид вікна, у якому відображаються всі поля з НД Table_Grupp.



Рис. 12.7. Редактор Полів НД Table_Grupp
При необхідності можна змінити послідовність розташування полів у НД шляхом їхнього перетаскування мишею у вікні Редактора Полів.

При виділенні якого-небудь поля в Редакторі Полів в Інспекторі Об'єктів відображаються властивості виділеного поля. Їх можна встановлювати за бажанням розроблювача програми. Наприклад, під час лабораторних робіт ми будемо використовувати і встановлювати значення для таких властивостей:



Alignment – вирівнювання розташування даних: уліво, вправо, по центрі;

DisplayLabelзаголовок стовпця в таблиці;

DisplayWidth – ширина стовпчика (число символів);

ReadOnly – тільки для читання.

За допомогою Редактора Полів легко створювати нові поля. Як це робити – розглянемо далі.



12.4.3. Створення поля, що обчислюється

Нехай, наприклад, у НД Table_Stud ми хочемо створити поле, що обчислюється, “Вік”. Створення поля виробляється в наступній послідовності.



  1. Викликати Редактор Полів (подвійним клацанням на компоненті Table_Stud) і додати в ньому потрібні поля.

  2. Виконати команду контекстного меню Редактора Полів New Field. У результаті цього відкриється вікно Майстра створення полів (Рис. 12.8).



Рис. 12.8. Створення поля, що обчислюється


  1. В області Field properties (Властивості поля) увести такі значення властивостей:

NameWozrast

Type – Integer (шляхом вибору зі списку).

Властивість Size (Розмір) уводиться тільки для строкового типу поля. Властивість Component (Ім'я об'єкта-поля) встановлюється автоматично.



  1. В області Field Type (Тип поля) задати тип поля: для поля, що обчислюється, вибрати Calculated (Показане на Рис. 12.8). Після цього натисніть кнопку ОК. Вікно Майстра закриється.

  2. Створити оброблювач події OnCalcFields (для НД Table_Stud). Для цього виділити компонент Table_Stud на формі й в Інспекторі Об'єктів вибрати сторінку Events і виділити на ній властивість-подію OnCalcFields . В області значення цієї властивості зробити подвійне клацання мишею. У результаті відкриється вікно редактора коду модуля, у якому буде зроблена заготівка тексту для оброблювача події. Між дужками Begin і end потрібно ввести такий текст:

Table_Stud.Wozrast.AsInteger:=2003-Table_Stud.FieldByName(‘ГодРожд’).AsInteger;

Цей оператор буде виконуватися щоразу, коли в НД буде відбуватися перехід до нового запису. При цьому властивість


AutoCalcFields НД повинна бути встановлена в True. (це значення встановлюється за замовчуванням).

12.4.4. Створення поля підстановки

Так само будемо розглядати приклад, коли в НД Table_Stud потрібно створити поле підстановки NameGr (Найменування групи), значення якого буде “підставлятися” із НД Table_Grupp.

Для створення поля підстановки потрібно виконати наступне:


  1. Викликати для НД Table_Stud Редактор Полів (як і раніше).

  2. Викликати Майстер створення полів (командою контекстного меню New Fields. Відкриється вікно Майстра (Рис. 12.9).

  3. В області Field properties (Властивості поля) увести такі значення властивостей:

NameNameGrupp

Type – String (шляхом вибору зі списку).

Size – 10

ComponentTable_StudNameGrupp
(встановлюється автоматично).

  1. В області Field Type (Тип поля) задати тип поля: для поля підстановки вибрати опцію Lookup (Показане на Рис. 12.9).

  2. В області Lookup definition (Визначення підстановки) установити такі дані (вибором потрібного значення зі списку):

Key Fields – установити ім'я поля – ключа зв'язку НД
Table_Stud (установити КодГр);

DataSet – установити ім'я НД, з якого буде виконуватися підстановка даних (установити Table_Grupp);

Lookup Keys – установити ключове поле НД Table_Grupp (установити КодГр);

Result Field – установити ім'я поля, дані якого повинні підставлятися в створюване поле підстановки (установити НаимГр).

Рис. 12.9. Створення поля підстановки.
Після цього натисніть кнопку ОК. Поле підстановки створене. У вікні Редактора Полів з'явиться створене поле NameGrupp.

Для створеного поля можна задати підпис (заголовок стовпця). У прикладі, що розглядався, доцільно створити підпис “Група”. Для цього в Редакторі Полів виділите поле NameGrupp, і потім в Інспекторі Об'єктів введіть у властивості DisplayLabel (Підпис) значення Група.




12.5. Компоненти відображення даних




12.5.1. Компонент TDBGrid

На третьому етапі створення додатка баз даних необхідно розробити користувальницький інтерфейс на основі компонентів відображення даних. Ці компоненти призначені спеціально для рішення задач перегляду і редагування даних. Зовні більшість цих компонентів нічим не відрізняються від стандартних елементів керування. Більш того, багато хто з компонентів відображення даних є спадкоємцями стандартних компонентів — елементів керування.

Компоненти відображення даних повинні бути зв'язані з компонентом TDataSource і через нього з компонентом набору даних. Для цього використовується їхня властивість DataSource. Воно присутнє у всіх компонентах відображення даних.

Більшість компонентів призначені для представлення даних з одного єдиного поля. У таких компонентах мається ще одна властивість DataField, що визначає поле зв'язаного набору даних, відображуване в компоненті.

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

Компонент TDBGrid являє собою двовимірну таблицю (сітку), у якій рядки відповідають записам НД, а стовпці відповідають окремим полям кожного з записів.

Компонент TDBGrid має дуже потужні засоби для роботи з даними. Наприклад, із сітки (компонента) можна здійснювати навігацію по НД, редагувати, видаляти, вводити нові записи. Вид компонента в режимі виконання прикладної програми показаний на Рис. 12.10.


Рис. 12.10. Вид компонента TDBGrid при працюючої програмі
У лівій частині сітки розташована область індикації, у якій розташовується покажчик (курсор) поточного запису . Якщо запис знаходиться в стані редагування, то покажчик приймає вид . Новий (що додається) запис позначається покажчиком .

Число записів (рядків), розміщених у компоненті TDBGrid, змінити не можна. У ньому завжди містяться всі записи зі зв'язаного НД. Кількість стовпців, відображуваних у компоненті, їхній вид і черговість можна змінювати.

Однією із властивостей компонента є властивість Columns – список об'єктів-стовпців, включених у НД. За замовчуванням у властивість Columns включаються всі стовпці зі зв'язаного НД. За бажанням розроблювача властивість Columns, а також властивості окремих об'єктів-стовпців (ширина, заголовок, шрифт і т.д.) можна змінювати. Це можна робити за допомогою Редактора Стовпців.

Викликати Редактор Стовпців можна одним з наступних способів:



  • подвійним клацанням на компоненті TDBGrid;

  • командою Columns Editor контекстного меню компонента;

  • натисканням кнопки в рядку властивості Columns в Інспекторі Об'єктів.

При першому відкритті Редактора Стовпців відкривається порожнє вікно Редактора, вид якого показаний на Рис. 12.11.

Рис. 12.11. Порожнє вікно Редактора Стовпців

Якщо натиснути на панелі інструментів кнопку Add All Fields (Додати всі поля), у Редактор Стовпців будуть додані стовпці, що відповідають усім полям зі зв'язаного НД. На Рис. 12.12 показане вікно Редактора Стовпців, коли в Редактор додані всі стовпці з НД Table_Stud.

За допомогою кнопок на Панелі Інструментів Редактора Стовпців (чи за допомогою команд контекстного меню) можна видаляти, додавати стовпці, редагувати їхні властивості в Інспекторі Об'єктів.



Рис. 12.12. У Редактор Стовпців додані всі стовпці з НД Table_Stud

Якщо виділити мишею який-небудь стовпець, то у вікні Інспектора Об'єктів відобразяться властивості цього стовпця, які там же можна редагувати. Під час лабораторних занять ви будете редагувати такі властивості:

Font – шрифт;

Color – колір;

Title – властивості заголовка стовпця;

Width – ширина у пікселях, і ін.


12.5.2. Компонент TDBNavigator

Компонент TDBNavigator у Палітрі компонентів розташований на сторінці Data Controls. Його вид після розміщення на формі показаний на Рис. 15.9.



Рис. 12.13. Компонент TDBNavigator
Компонент являє собою набір кнопок, кожна з який виконує визначені дії над НД. Призначення кнопок наступне:
- перший запис (nbFirst);

- попередній запис (nbPrior);

- наступний запис (nbNext);

- останній запис (nbLast);

- додати запис (nbInsert);

- видалити запис (nbDelete);

- редагувати запис (nbEdit);

- зберегти зміни (nbPost);

- скасувати зміни (nbCancel);

- обновити дані (nbRefresh).
При розробці прикладної програми в компонент можна включати будь-яку кількість кнопок у будь-якому їхньому сполученні.

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

Для зв'язування компонента TDBNavigator із НД, яким він повинний керувати, служить властивість DataSource. У цій властивості потрібно установити (вибором зі списку) ім'я джерела даних, зв'язаного з потрібним НД.

Коли в прикладної програмі ви використовуєте сітку TDBGrid, то, кажучи взагалі, необхідності в TDBNavigator немає, тому що всі передбачені в ньому дії реалізовані відповідними методами в компоненті TDBGrid.



12.5.3. Компоненти TDBText і TDBEdit

Компонент TDBText являє собою статичний текст, що відображає поточне значення деякого одного поля зі зв'язаного НД. Дані в компоненті відображаються в режимі “тільки для читання”, тобто редагувати дані не можна.

Компонент TDBEdit дозволяє не тільки переглядати, але і редагувати дані поля. У TDBEdit можна використовувати буфер обміну.

Кліпборд (англ. clipboard) або сховок - проміжне сховище даних, що призначається для переносу або копіювання між програмами або частинами однієї програми.

Для зв'язування обох компонентів із НД використовуються властивості:



DataSource – компонент - джерело даних, зв'язаний з потрібним НД;

DataField – ім'я поля, з яким повинний бути зв'язаний компонент.
Контрольні запитання:


  1. Поняття набору даних. Компоненти, що є наборами даних, найбільш важливі їх властивості.

  2. Стан набору даних.

  3. Навігація по набору даних.

  4. Фільтрація записів в НД.

  5. Відмінні особливості і властивості компонента TQuery.

  6. Створення між набраними даними зв’язку типу “головний-підлеглий”. В чому суть цього зв’язку?

7.Поняття об’єктів-полів. Клас TField і його властивості.

8.Як редагувати поля в НД?

9.Створення полів, що обчислюються.

10.Створення полів підстановки.

11.Компонент TDBNavigator: призначення, основні властивості.

12.Компоненти TDBText і TDBEdit: призначення та найбільш важливі властивості.



1   ...   12   13   14   15   16   17   18   19   20



  • TNumericField
  • 12.4.2. Редагування полів у НД
  • 12.4.3. Створення поля, що обчислюється
  • 12.4.4. Створення поля підстановки
  • 12.5. Компоненти відображення даних
  • Рис. 12.12. У Редактор Стовпців додані всі стовпці з НД Table_Stud
  • 12.5.2. Компонент TDBNavigator
  • 12.5.3. Компоненти TDBText і TDBEdit