
- •5.05010301 – Розробка програмного забезпечення)
- •Порядок виконання роботи Створення псевдоніму dbe
- •Створення таблиць бд
- •Визначення цілісності посилання між таблицями бд
- •Завдання
- •Порядок виконання роботи Використання майстра форм Database Form Wizard
- •Використання Database Explorer при розробці форм
- •Розробка форми з використанням компонентів tTable, tDataSource, tdbGrid
- •Розробка форми з використанням компонентів tTable, tDataSource, tdbEdit, tLabel і редактора полів
- •Завдання:
- •Порядок роботи і рекомендації до її виконання
- •Розробка форми Master-Detail за допомогою Database Form Wizard
- •Розробка форми Master-Detail вручну
- •Завдання:
- •Порядок виконання роботи Створення полів, що обчисляються
- •Створення полів вибору даних (lookup - полів).
- •Завдання.
- •Порядок виконання роботи Стани наборів даних
- •Використання контейнера tDataModule
- •Компонент tdbLookupComboBox
- •Порядок виконання роботи
- •Оброблювачі подій для батьківської форми:
- •Оброблювачі подій для дочірньої форми:
- •Завдання:
- •Завдання
- •Порядок виконання роботи
- •Установка значень для пошуку
- •Завдання:
- •Порядок виконання роботи
- •Завдання:
- •Порядок виконання роботи
- •Завдання:
- •Порядок виконання роботи
- •Завдання:
- •Завдання:
- •Порядок виконання роботи
- •Компоненти для побудови звітів
- •Побудова простих звітів
- •Групування даних в звіті
- •Індивідуальні завдання
Завдання.
Для заданого предметного середовища розробити застосування, який включає модуль даних, форму перегляду даних і форму редагування даних.
Проаналізувати стан НД при роботі з ним.
Обов'язкові засоби: TDataModule, TDataBase, TDBGrid, TDBEdit, TDBLookupComboBox, TButton, TLabel.
Зміст звіту.
Опис створеного модуля даних.
Опис форм додатку з зазначенням встановлених значень властивостей компонентів.
Лістинги розроблених процедур та їх аналіз.
Висновки по роботі.
Порядок виконання роботи Стани наборів даних
Набором даних у Delphi називають групу записів з однієї або декількох ТБД, доступних для використання через компоненти TTable або TQuery. З можливих станів НД розглянемо такі:
dsInactive – НД закритий;
dsBrowse – стан за замовчуванням для відкритого НД. Показує, що записи переглядаються, але в даний момент не змінюються;
dsEdit – НД знаходиться у стані редагування поточного запису (після явно або неявно викликаного методу Edit);
dsInsert – НД знаходиться у стані додавання нового запису (після явно або неявно викликаного методу Insert або Append).
Одержати поточний стан НД можна, використовуючи метод State. Він повертає такі константи: dslnactive, dsBrowse, dsEdit, dslnsert, dsSetKey, dsCalcFields, dsFilter.
Наприклад:
IF Table1. State = dslnactive THEN Table1. Active := True;
Подія OnStateChange (компонент DataSource) настає щоразу при зміні стану НД. Для відображення на екрані (у компоненті Label1) повідомлення про поточний стан НД використовуємо процедуру:
procedure TForm1.DataSource1StateChange(Sender: TObject);
var S : String;
begin
CASE Table1. State OF
Dslnactive :S := 'He активна';
DsBrowse :S := 'Перегляд';
dsEdit :S := 'Редагування';
dslnsert :S := 'Вставка';
END; {case}
Label1.Caption := S;
end;
Використання контейнера tDataModule
Компонент типу TDataModule являє собою контейнер, у якому поміщуються компоненти TTable, TQuery, DataSource і т.д. Створити екземпляр TDataModule можна, обравши в середовищі Delphi пункт меню File / NewDataModule. На відміну від TForm, у TDataModule можна розмістити тільки невізуальні компоненти для роботи з базами даних. Зв'язок компонентів TDataSource, TTable і TQuery, розміщених у DataModule, виконується так само, як і у випадку, коли б вони були розташовані в одній формі.
DataModule потрібно зберегти під яким-небудь іменем і додати ім'я модуля unit, у якому описаний TDataModule, у текст модулів unit всіх інших форм застосування, що будуть використовувати НД і TDataSource, розміщені в цьому TDataModule. Це виконується в головному меню середовища Delphi, в елементі меню File / Use Unit.
Надалі візуальні компоненти, що працюють із даним НД, повинні у своїй властивості DataSource містити ім'я відповідного компонента TDataSource із TDataModule. У цьому випадку ім'я буде складним, наприклад, DataModule1.DataSource1.
Компонент tdbLookupComboBox
Компонент TDBLookupComboBox застосовується для вибору значень у поле одного набору даних (НД-1) зі списку значень, джерелом яких виступають значення поля з іншого набору даних (НД-2). Набори даних НД-1 і НД-2 зв'язуються по полю зв'язку. Це поле повинно мати ідентичний тип і в НД-1, і в НД-2. Між НД-1 і НД-2 встановлюється зв'язок, як правило, багато (НД-1)-до-одного (НД-2).
Ключові властивості компонента TDBLookupComboBox:
DataSource - вказує на компонент TDataSource для НД-1.
DataField - встановлює поле НД-1, у який буде поміщатися значення з НД-2.
ListSource - вказує на компонент TDataSource НД-2.
ListField - встановлює поле, значення якого буде показуватися в списку вибору. Можна зазначити декілька полів. Тоді всі вони будуть відображатися в списку вибору. Імена полів розділяються крапкою з комою.
RowCount - вказує, скільки рядків відображається у списку, що випадає. При зміні розмірів списку, наприклад, шляхом занесення нового значення у властивість Height, RowCount зміняться автоматично.
KeyField - установлює поле зв'язку між наборами даних НД-1 і НД-2.
KeyValue - містить поточне значення поля зв'язку. Якщо під час виконання програми його значення зміниться, то буде зроблена спроба відшукати в НД-2 запис зі значенням, зазначеним в цій властивості.