Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_rab_pascal_delphi.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
6 Мб
Скачать
☆

Хід роботи.

Для створення таблиці скористаємося утилітою DataBase DeskTop. Вибрати шлях (C :/ Program Files / Common Files / Borland Shared / DataBase DeskTop/Dbd32.exe

  1. Для створення таблиці виберіть в меню програми File-New-Table.

    1. У даній СУБД будемо використовувати формат Paradox. Виберіть його зі списку у вікні.

На екрані з'явиться вікно створення бази даних. У стовпці Field Name введіть ім'я поля (не повинно містити пробілів).

У стовпці Type виберіть з контекстного меню (правий клік миші) тип поля. Для строкових полів необхідно вказати розмір (стовпець Size).

  1. Створіть таблицю наступної структури:

    І’мя поля

    Тип поля

    Опис

    Nomer

    Longlnteger

    Key

    Rayon

    Alpha[20]

    Район проживания

    Surname

    Alpha[20]

    Прізвище ініціали

    DataBorn

    Date

    Дата народження

    Goden

    Logical

  2. Після створення таблиці натисніть кнопку SaveAs. Виберіть шлях ð Створіть папку Військкомат ð вкажіть ім'я файлу maintable.db У вікні в області Alias вибрати псевдонім бази даних Standard1.

  1. Створення основного вікна програми:

    1. Перейменуйте головне вікно програми - змініть властивість Caption для Form1.

    2. Помістіть на форму компонент PageControl (вкладка Win32). Встановіть компоненту наступне властивість:

  • Align (Вирівнювання) - alClent (на все вікно)

    1. Клацніть правою клавішею мишки по компоненту і створіть дві нові сторінки New Page (TabSheet1, TabSheet2).

    2. Перейменуйте сторінки відповідно - Введення інформації і Пошук інформації. Для цього необхідно в списку Інспектори об'єкта вибрати об'єкт і змінити його властивість Caption.

    3. Помістіть на форму об'єкт MainMenu (вкладка Standard). Клацніть по компоненту два рази і створіть пункт меню Дані, який містить наступні підпункти: Введення інформації, Пошук даних, Копіювання таблиці, Вихід. Для створення роздільника в меню необхідно ввести «-» - дефіс.

    1. Помістіть на форму (лист Введення Інформації) такі компоненти:

  • Table (вкладка BDE);

  • DataSource (вкладка Data Access);

  • DBGrid, DBNavigator (вкладка Data Controls).

    1. Встановіть компонентам наступні властивості: Table:

  • DatabaseName (псевдонім бази даних) - вибираємо зі списку свій Alias.

  • TableName - вибираємо ім'я своєї таблиці.

  • AutoRefresh (оновлення структури таблиці) - встановлюємо значення true.

  • Active - встановлюємо true - підключаємо таблицю.

  • DataSource:

  • DataSet (джерело даних) - вибираємо Table1.

  • DBGrid, DBNavigator:

  • властивості DataSource встановлюємо значення DataSource1.

  • Align (вирівнювання): DBGrid - alClient (на все вікно), DBNavigator - alBottom (внизу вікна).

    1. Подвійним клацанням по компоненту Table1 викличте редактор полів. В контекстному меню (клацання правою клавішею по редактору), виберіть пункт Додати всі поля. Якщо якесь поле бачити на екрані не потрібно, визначте його властивість Visible - False. Для інших полів у властивості DisplayLabel напишіть відображаються заголовки стовпці: Номер особової справи, Район, П.І.Б., Дата народження, Годен.

На даному етапі вид форми повинен бути наступним:

    1. Відкрийте програму і перевірте, як воно працює. Сформуйте базу даних.

    2. Перейдіть на вкладку Пошук інформації. Помістіть на неї наступні компонентиі:

  • DBGrid (Align - Top);

  • Query (вкладка BDE)

  • DataSorce;

  • PageControl (додайте 3 нових листа);

  • RadioGroup (вкладка Standard)

    1. Розташуйте компоненти наступним чином:

    1. Встановіть властивості Multiline компонент PageControl2 значення True. Перейменуйте сторінки: Список по початковій букві прізвища, Список призовників по року, Придатні призовники по району.

    2. Задайте властивості Caption компонента RadioGroup1 значення: Сформувати список.

    3. Клацніть по властивості Items компонента і заповніть Редактор списку рядків, як показано нижче:

    1. Встановимо властивості ItemIndex компонента RadioGroup значення 0, щоб за замовчуванням був обраний перший перемикач.

    2. Отримуємо наступний вигляд:

    1. Клацніть по вкладці Список призовників по року. Помістіть на неї компоненти Label, Edit (вкладка Standard) і BitBtn (вкладка Additional).

    2. Перейменуйте і розмістіть компоненти наступним чином:

Для того, щоб зробити шрифт жирним, використовуйте властивість Font компоненту. Щоб розмістити на кнопці малюнок використовуйте властивість Glyph. Стандартні заготовки Delphi розташовані в папці: С: \ Program Files \ Common Files \ Borland Shared \ Images. Виберіть каталог Buttons файл Chek.Возможни ваші варіанти.

    1. Таким же чином оформимо вкладки Придатні призовники по району та Список по початковій букві прізвища.

На цьому «оформлювальна робота» закінчена. Приступимо до програмування.

  1. Створіть наступний обробник події OnClick для компонента RadioGroup1:

procedure Tform1.RadioGroup1Click(Sender: Tobject);

var Kolp, Kolnp, I:integer;

begin

Case RadioGroup1.ItemIndex of

0 : begin {если выбран первый переключатель}

query1.SQL.Clear; {закрываем запрос}

query1.SQL.Add('Select *from MainTable'); {в лапках йде SQL запрос}

query1.Open;

end;

1 : begin

query1.SQL.Clear;

query1.SQL.Add(‘Select *from MainTable where goden = true’);

query1.Open;

end;

2 : begin

Table1.First;

Kolp:=0;Kolnp:=0;

for I:=1 to Table1.RecordCount do

Begin

if (Table1.FieldByName(‘goden’).AsBoolean = true) then

Kolp:=Kolp + 1

else KolnP:=KolnP + 1;

Table1.Next;

end;

Messagedlg(Кількість годних = '+IntToStr(KolP)+#13+

'Кількість негодних = '+IntToStr(KolnP),mtInformation,[mbOk],0);

end;

3 : begin

query1.SQL.Clear;

query1.SQL.Add(‘Select *from MainTable order by surname ASC’);

query1.Open;

end;

4 : begin

query1.SQL.Clear;

query1.SQL.Add(‘Select *from MainTable order by surname DESC’);

query1.Open;

end;

5 : begin

query1.SQL.Clear;

query1.SQL.Add(‘Select *from MainTable where databorn = (Select min(databorn) from MainTable)’);

query1.Open;

end;

6 : begin

query1.SQL.Clear;

query1.SQL.Add(‘Select *from MainTable where databorn = (Select max(databorn) from MainTable)’);

query1.Open;

end; end; end;

  1. Перейменуйте компонент DataSorce2 в QueryDataSorce (змінюючи властивість Name). Задайте його властивості DataSet значення Query1.

  2. Зв'яжіть компонент DBGrid2 з компонентом Query1 за допомогою компонента QueryDataSorce (виберіть його зі списку у властивості DataSorce компонента DBGrid2).

  3. Для компонента Query1 виберіть у властивості DateBaseName свій Alias.

  4. У властивості SQL компонента напишіть: select * from maintable.db

  5. Задайте властивості Active компонента Query1 значення True.

  6. Подвійним клацанням по компоненту Query1 викличте редактор полів. Перейменуйте поля, як це робили раніше, з компонентом Table1.

  7. Запустіть програму на виконання і подивіться на результат.

  8. Для події OnClick кнопки «Скласти список» вкладки «Список призовників по року» запишіть обробник:

procedure Tform1.BitBtn1Click(Sender: Tobject);

var sData,S:AnsiString;

begin

sData:=Edit1.Text;

if sData=’’ then

begin

ShowMessage(‘Рік не введен!’);

exit

end;

S:=’Select *from MainTable where databorn <= ‘’01.01.’+ IntToStr(StrToInt(Edit1.Text)-18)+’’’’;

query1.SQL.Clear;

query1.SQL.Add(S);

query1.Open;

end;

  1. 14. Для події OnClick кнопки «Показати» вкладки «Список по початковій букві прізвища» запишіть обробник:

procedure Tform1.BitBtn3Click(Sender: Tobject);

var S,s1,s2 : AnsiString;

begin

s2:=’%’;

s1 := ‘’’’ + Edit3.Text + s2 +’’’’;

S:=’Select *from MainTable where surname Like’+s1;

query1.SQL.Clear;

query1.SQL.Add(S);

query1.Open;

end;

  1. Для події OnClick кнопки «Вивести кількість по району» вкладки «Придатні призовники по району» запишіть обробник:

procedure Tform1.BitBtn2Click(Sender: Tobject);

var KolP,I:integer;

begin

Table1.First;

KolP:=0;

for I:=1 to Table1.RecordCount do

Begin

if ((Table1.FieldByName(‘goden’).AsBoolean = true) and (Table1.FieldByName(‘rayon’).AsString = Edit2.Text)) then

KolP:=Kolp + 1;

Table1.Next;

end;

Messagedlg(‘Количество годных по району ‘+ Edit2.Text+’ = ‘+IntToStr(KolP),mtInformation,[mbOk],0);

Edit2.Text:=’’;

end;

  1. Обробіть подію OnClick для пунктів меню:

    1. Для підпункту Введення інформації:

procedure Tform1.N2Click(Sender: Tobject);

begin

Pagecontrol1.ActivePageIndex := 0;

end;

    1. Для підпункту Пошук даних:

procedure Tform1.N3Click(Sender: Tobject);

begin

Pagecontrol1.ActivePageIndex := 1;

end;

    1. Для підпункту Копіювання таблиці:

procedure Tform1.N6Click(Sender: Tobject);

begin

Query1.Close; Query1.SQL.Clear;

Query1.SQL.Add(‘insert into ArhivTable select * from maintable’);

Query1.ExecSQL; Query1.Close;

Query1.SQL.Clear;

Query1.SQL.Add(‘select * from ArhivTable’);

Query1.Open;

ShowMessage('Архивная таблица создана!')

end;

    1. Для підпункту Вихід:

procedure Tform1.N5Click(Sender: Tobject);

begin

close

end;

  1. В обробнику події OnCloseQuery для Form1 напишіть:

procedure Tform1.FormCloseQuery(Sender: Tobject; var CanClose: Boolean);

begin

if (Messagedlg(‘Выйти из программы?’, mtConfirmation, [mbYes,mbNo], 0)=mrYes) then Canclose := true

else CanClose := false;

end;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]