REFERATUA.ORG.UA — База українських рефератів



Головна Інформатика, комп'ютери, програмування → Створення клієнтської програми для користування базою данних MS ACCESS в Delphi 4.0

Шевчук Андрій. ПМП-42, Львів – 2000

Створення клієнтської програми для користування базою данних MS ACCESS в Delphi 4.0

ССтворення клієнтської програми для користування базою данних MS ACCESS в Delphi 4.0
творимо програму, яка буде прикладом роботи з базами даних в Delphi 4.0. Для цього використаємо базу даних Ms Access db1.mdb, в якій знаходяться наступні таблиці: "Товар" (таблиця, що містить дані про товар, його опис і ціну), "Партія товару" і "Рахунок", які зв'язані наступним чином:

ДСтворення клієнтської програми для користування базою данних MS ACCESS в Delphi 4.0
ля початку зареструємо псевдонім для бази даних в ODBC. Для цього перейдемо в папку "Панель управления" Пуск Настройки Панель управления (Start  Settings  Control Panel) і двічі натиснемо на ярличку "Источники данных ODBC 32 разряда" ("ODBC 32-bit"), в вкладці "Пользовательский DSN" (User DSN), натиснемо на кнопку "Добавить" (Add), виберемо зі списку "Microsoft Access Driver (*.mdb)" і натиснемо "Готово" (Finish). У вікні, що відкриється введемо "Имя источника базы данных" (Description) текст "_db6" і натиснувши на кнопку "Выбрать" (Select) вкажемо шлях до нашої бази даних: "С:DBdb1.mdb". Тиснемо "ОК" і переходимо безпосередньо в Delphi 4.0. Для створення програми виберемо в меню File  New Application. Створимо DataModule необхідний для розміщення на ньому компонент для роботи з базами даних, для цього виберемо в меню File  New, в вікні що з'явилось вибираємо піктограмку "DataModule". Збережемо проект як db.dpr, DataModule1 data.pas, unit1 dp1.pas. Додамо з палітри компонентів з вкладки "Data Access" компоненти необхідні для роботи з нашою базою даних Database, три компоненти DataSource, три компоненти Table i Query помістивши їх на DataModule1:

Для компоненти Database1 в вікні "Object Inspector" надамо наступні значення для властивостей: AliasName = "_db6" (вказуємо псевдонім нашої бази даних), DatabaseName = "_db1" (ім'я бази даних яке будуть використовувати решта компоненти DataAccess), LoginPromt = "False" (не запрошувати ім'я користувача і пароль при відкритті бази даних). Для компонент Table1, Table2, Table3 встановимо DatabasName = "_db1",TableName відповідно "Товар", "Рахунок", "Партія товару", і після цього для кожної компоненти Active присвоїмо значення True. Для компонент Datasource1, DataSource2, Datasource3 присвоїмо властивості DataSet відповідно значень "Table1", "Table2", "Table3".

ЗСтворення клієнтської програми для користування базою данних MS ACCESS в Delphi 4.0 вкладки Win32 на форму From1 помістимо компоненту PageControl, в вікні "Object Inspector" якої вкажемо Align = "AllClient". Викликавши правою кнопкою миші контекстне меню виберемо пункт "New Page" і для нової закладки TabSheet1 властивість Caption присвоїмо значення "Товари", яке буде назвою нашої закладки. На закладку помістимо компоненту DBGrid1 з закладки DataControls палітри компонентів. Надамо їй наступних властивостей: Align = "allClient", DataSource = "DataModule1.DataSource1". Тепер в вікні закладки "Товари" ми можемо переглядати дані з таблиці товар. Для можливості оперування з цими даними додамо на форму елемент управління DBNavigator. Для цього створимо для нашої форми Form1 панель інструментів. Помістимо на форму CoolBar1 з закладки Win32, на CoolBar1 ControlBar1 з закладки Additional, властивості AutoSize яких встановимо "True". Після цього на ControlBar1 помістимо DBNavigator1. Створимо ще одну закладку PageControl1, для перегляду і редагування всіх трьох таблиць. Присвоїмо властивості Caption = "Виписка рахунку", для TabSheet2, і помістимо на закладку три компоненти GroupBox з палітри "Standart", присвоївши властивості Caption для яких, відповідно, "Рахунок", "Партія товару" і "Товар". Помістимо на GroupBox1 ("Рахунок") чотири компоненти DBEdit, з закладки "Data Controls". Властивостям цих елементів DataSource присвоїмо значення DataModule1.DataSource3, а DataField, відповідно, імена полів з таблиці "Рахунок": "Код рахунку", "Дата виписки", "Дата проплати", "Сума оплати". Над елементами DBEdit помістимо компоненти Label з палітри "Satndart", присвоївши властивості Caption кожного з них імена відповідних полів. Аналогічно поступимо з GroupBox2 ("Товар"), помістивши на нього відповідну кількість DBEdit i Label, створивши перегляд таблиці "Рахунок". На GroupBox3 ("Партія товару") помістимо DBGrid, присвоїмо його властивостям такі значення: Align = AllClient, DataSource = DataModule1.DataSource2. Для того щоб перехід по всіх полях різних таблиць відбувався синхронно, а в DBGrid2 ми могли бачити список партій товару які виписані на вибраний рахунок вкажемо зв'язки між таблицями. Але щоб в першій закладці таблиця товар відображалась правильно зробимо це для таблиць "Рахунок" і "Партія товару" в "Object Inspector", а для таблиць "Партія товару" і "Товар" – програмно. Виберемо Table2 на DataModule1 і для властивості MasterSource виберемо значення DataSource3, для властивості MasterFields – "Код рахунку". Для компоненти PageControl1 в колонці "Object Inspector" "Events" виберемо подію "OnChange", двічі натиснемо ліву клавішу миші і введемо наступне:

procedure TForm1.PageControl1Change(Sender: TObject);

begin

// якщо здійснено перехід на закладку "Товар"

if PageControl1.ActivePage=TabSheet1 then

begin

DBNavigator1.DataSource:=DataModule1.DataSource1; // панель DBNavigator керує таблицею "Товар"

DataModule1.Table1.MasterSource:=nil; // забираємо зв'язок з таблицею "Партія товару"

DataModule1.Table1.MasterFields:='';

end;

// якщо здіймнено перехід на закладку "Партія товару"

if PageControl1.ActivePage=TabSheet2 then

begin

DBNavigator1.DataSource:=DataModule1.DataSource3; // панель DBNavigator керує таблицею "Рахунок"

DataModule1.Table1.MasterSource:=DataModule1.DataSource2; // встановлюємо зв'язок між "Товар" і

DataModule1.Table1.MasterFields:='Код товару'; // "Партія товару" по полю "Код товару"

end;

eСтворення клієнтської програми для користування базою данних MS ACCESS в Delphi 4.0
nd;

Біля полів "Дата виписки" та "Дата проплати" помістимо кнопки для переходу на нову форму – вибору дати. Створимо її у вигляді dll. Виберемо в меню меню File New, і вікні "New Items" виберемо піктограму "Dll". Після появи самого тексту dll збережемо проект як "slave.dpr", і виберемо в меню File New Form. Властивостям нової форми надамо такі значення: Name = CalendarForm, Caption = "Виберіть дату", BorderStyle = bsToolWindow, Position = poDesktopCenter. Помістимо на форму компоненту MonthCalendar з закладки Win32, і SpeedButton з закладки Additional. Додамо в опис змінних для модуля :

var

selDate: TDate;

для SpeedButton1 створимо таку процедуру обробки події OnClick:

pСтворення клієнтської програми для користування базою данних MS ACCESS в Delphi 4.0
rocedure TCalendarForm.SpeedButton1Click(Sender: TObject);

begin

selDate:=MonthCalendar1.Date; // запам'ятовуємо вибрану дату

CalendarForm.Close; // закриваємо форму

end;

В модуль slave.dpr введемо наступний


 
Загрузка...