- •Практична робота №2
- •1. Завдання для виконання роботи
- •1.2. Створення таблиць
- •1.3. Створення індексів і ключових полів
- •1.4. Зв'язок між додатком і базою даних
- •1.5. Умови на розробку додатка
- •2. Опис роботи
- •2.1. Загальні відомості про базу даних та її призначення
- •2.2. Структура таблиць
- •2.3. Форми та їхнє призначення
- •2.4. Опис звітів
- •3. Список літератури
2.3. Форми та їхнє призначення
В моїй БД я використав форми для вводу даних в таблиці:
- „MyStartForm” – це головне вікном моєї програми. Створена вона в режимі конструктора створення форм в середовищі Borland C++ Builder 6. Моя головна форма складається з таких компонентів: Button1-8 (TButton), які використовуються для виклику дії яка буде виконуватися, та компоненту MainMenu1 (TMainMenu) який дозволяє вийти з програми і переглянути розробника. На рис. 7 зображено форму в середовищі Borland С++ Builder 6 з усіма компонентами.
Рис. 7. Форма „MyStartForm” в Borland С++ Builder 6
В меню є кнопки, які викликають на виконання інші форми проекту. У лістингу 1 представлені всі функції цієї форми.
Лістинг 1
Функції форми „MyStartForm”
void __fastcall TMyStartForm::Button1Click(TObject *Sender)
{
DataModule1->Table3->Active=true;
DataModule1->Table2->Active=true;
DataModule1->Table1->Active=true;
MyChild1->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TMyStartForm::N1Click(TObject *Sender)
{
ShowMessage("Базу даних розробив \nстудент групи 1П-09 \nЧмир Володимир");
}
//---------------------------------------------------------------------------
void __fastcall TMyStartForm::Exit1Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TMyStartForm::Button8Click(TObject *Sender)
{
DataModule1->Table3->Active=true;
DataModule1->Table2->Active=true;
DataModule1->Table1->Active=true;
MyChild8->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TMyStartForm::Button7Click(TObject *Sender)
{
DataModule1->Table3->Active=true;
DataModule1->Table2->Active=true;
DataModule1->Table1->Active=true;
MyChild7->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TMyStartForm::Button5Click(TObject *Sender)
{
DataModule1->Table3->Active=true;
DataModule1->Table2->Active=true;
DataModule1->Table1->Active=true;
MyChild5->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TMyStartForm::Button3Click(TObject *Sender)
{
DataModule1->Table3->Active=true;
DataModule1->Table2->Active=true;
DataModule1->Table1->Active=true;
MyChild3->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TMyStartForm::Button4Click(TObject *Sender)
{
DataModule1->Table3->Active=true;
DataModule1->Table2->Active=true;
DataModule1->Table1->Active=true;
MyChild4->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TMyStartForm::Button2Click(TObject *Sender)
{
DataModule1->Table3->Active=true;
DataModule1->Table2->Active=true;
DataModule1->Table1->Active=true;
MyChild2->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TMyStartForm::Button6Click(TObject *Sender)
{
DataModule1->Table3->Active=true;
DataModule1->Table2->Active=true;
DataModule1->Table1->Active=true;
DataModule1->Query1->Active=true;
MyChild6->ShowModal();
}
- „ DataModule1” – в цій формі (модулі) містяться всі не візуальні компоненти зв’язку з базою даних та таблицями. На рис. 8 зображено форму в середовищі Borland C++ Builder 6 з усіма компонентами.
У компонента Database1 (TDataBase) встановив властивість AliasName у ім’я аліасу, який я створив за допомогою BDE Administrator.
В компонентах TTable таблиці підключив за допомогою властивості DataBase встановивши Database1 та вибрав таблиці за допомогою властивості TableName. Активував за допомогою властивості Active.
Рис. 8. Форма „DataModule1” в Borland C++ Builder 6
„MyChild1” – задачею цієї форми є вивод на єкран таблиць які існують. Створена за допомогою можливостей середовища програмування Borland C++ Builder 6. Складається з компонентів DBGrid1, DataSource1, DataSource2, DataSource3, Button1, Button2, Button3, Button4, DBNavigator1. На рис. 9 зображено форму в середовищі Borland C++ Builder 6 з усіма компонентами.
Рис. 9. Форма „MyChild1” в Borland C++ Builder 6.
В таблиці 6 представленні компоненти та їх властивості, які змінювались під час розробки форми.
Таблиця 6
Таблиця компонентів та їх властивостей форми Mychild1
Ім’я компоненту |
Властивість |
Значення |
Button1 |
Caption |
Фамилия |
Button2 |
Caption |
Номер квартиры |
Button3 |
Caption |
Дата прописки |
Button4 |
Caption |
Количество членов семьи |
DataSource1 |
Data Set |
DataModule1->Table1 |
DataSource2 |
Data Set |
DataModule1->Table2 |
DataSource3 |
Data Set |
DataModule1->Table3 |
DBNavigator1 |
Data Source |
DataSource1 |
DBGrid1 |
Data Source |
DataSource1 |
Кнопки тут створені для виводу таблиць на єкран у лістингу 3 показаний код.
Лістинг 3
Код процедури Click для кнопок „ produk.db ” , „SG pidriemstva.DB”, „tip.db” , „перейти до іншої функції”
void __fastcall TMyChild1::Button1Click(TObject *Sender)
{
DBGrid1->DataSource=DataSource1;
DataModule1->Table1->Active=true;
DataModule1->Table2->Active=false;
DataModule1->Table3->Active=false;
DBNavigator1->DataSource=DataSource1;
}
void __fastcall TMyChild1::Button2Click(TObject *Sender)
{
DBGrid1->DataSource=DataSource2;
DataModule1->Table2->Active=true;
DataModule1->Table1->Active=false;
DataModule1->Table3->Active=false;
DBNavigator1->DataSource=DataSource2;
}
//---------------------------------------------------------------------------
void __fastcall TMyChild1::Button3Click(TObject *Sender)
{
DBGrid1->DataSource=DataSource3;
DataModule1->Table3->Active=true;
DataModule1->Table2->Active=false;
DataModule1->Table1->Active=false;
DBNavigator1->DataSource=DataSource3;
}
void __fastcall TMyChild1::Button4Click(TObject *Sender)
{
DataModule1->Table3->Active=true;
DataModule1->Table2->Active=true;
DataModule1->Table1->Active=true;
Close();
}
„MyChild2” – задачею цієї форми є зміна даних в таблиці. Створена за допомогою можливостей середовища програмування Borland C++ Builder 6. Ця форма замінює дані на нові в таблицю „ SG_pidpriemstva ”. Складається з трьох полів для вводу Edit(TEdit) які використовуються для редагування даних у таблицю. На рис. 10 зображено форму в середовищі Borland C++ Builder 6 з усіма компонентами.
Рис. 10. Форма „MyChild2” в Borland C++ Builder 6
В таблиці 7 представленні компоненти та їх властивості, які змінювались під час розробки форми.
Таблиця 7
Таблиця компонентів та їх властивостей форми Mychild2
Ім’я компоненту |
Властивість |
Значення |
Button1 |
Caption |
Змінити |
Edit1 |
Text |
Назва |
Edit2 |
Text |
Власність |
Edit3 |
Text |
Тип продукції |
DataSource1 |
DataSet |
DataModule1->Table2 |
DBGrid1 |
DataSource |
DataSource1 |
DBNavigator1 |
DataSource |
DataSource1 |
Кнопка тут створена для зміни інформації в таблиці „ SG_pidriemstva ” у лістингу 5 показаний код.
Лістинг 5
Код процедури Click для кнопки „Змінити”
void __fastcall TMyChild2::Button1Click(TObject *Sender)
{
String str;
DataModule1->Table2->Edit();
str = Edit1->Text;
str = str.Trim();
DataModule1->Table2->Fields->Fields[1]->AsString = str;
str = Edit2->Text;
str = str.Trim();
DataModule1->Table2->Fields->Fields[3]->AsString = str;
str = Edit3->Text;
str = str.Trim();
DataModule1->Table2->Fields->Fields[5]->AsString = str;
DataModule1->Table2->Post();
}
„MyChild3” – за допомогою цієї форми можна фільтрувати дані із таблиці „SG_pidriemstva ” по полю «Прибуток». Складається з таких компонентів для роботи з базою даних, це поле Edit1(TEdit) для вводу даних. На рис. 12 зображено форму в середовищі Borland С++ Builder 6 з усіма компонентами.
Рис. 12. Форма „MyChild3” в Borland С++ Builder 6
В таблиці 8 представленні компоненти та їх властивості, які змінювались під час розробки форми.
Таблиця 8
Таблиця компонентів та їх властивостей форми Mychild3
Ім’я компоненту |
Властивість |
Значення |
Label1 |
Caption |
Програма для фільтрування прибутку |
DBGrid1 |
DataSource |
DataSource1 |
DataSource1 |
DataSet |
DataModule1->Table2 |
Edit1 |
Text |
|
Button1 |
Caption |
Відфільтрувати |
BitBtn1 |
Kind |
bkClose |
„MyChild4” – за допомогою цієї форми можна добавляти і редагувати дані з таблиці „SG_pidriemstva”. Складається з таких компонентів для роботи з базою даних як: поля для вводу інформації Edit(TDBEdit) та надписів, які використовуються для підписів полів вводу. Також використовується компонент для добавлення і видалення даних – Button1(TButton).. На рис. 13 зображено форму в середовищі Borland С++ Builder 6 з усіма компонентами.
Рис. 13. Форма „MyChild4” в Borland С++ Builder 6
В таблиці 9 представленні компоненти та їх властивості, які змінювались під час розробки форми.
Таблиця 9
Таблиця компонентів та їх властивостей форми Mychild4
Ім’я компоненту |
Властивість |
Значення |
Edit1 |
Text |
|
Button1 |
Caption |
Додати |
Button2 |
Caption |
Видалити |
BitBtn1 |
Kind |
bkClose |
DBGrid1 |
DataSource |
DataSource1 |
DataSource1 |
DataSet |
DataModule1->Table2 |
DBNavigator1 |
DataSource |
DataSource1 |
„MyChild5” – за допомогою цієї форми можна бачити діаграму залежності кількості працівників і прибутку. На формі розташований один компонент DBChart1. На рис. 14 зображено форму в середовищі Borland C++ Builder 6 з усіма компонентами.
Рис. 14. Форма „MyChild5” в Borland C++ Builder 6
„MyChild6” – за допомогою цієї форми можна бачити відсортовані дані по полю «Власність». Складається з таких компонентів для роботи з базою даних як: DBGrid1 для виведення таблиці, а також DataSource1 для зв’язку з компонентом бази даних . На рис. 15 зображено форму в середовищі Borland C++ Builder 6 з усіма компонентами.
Рис. 15. Форма „MyChild6” в Borland C++ Builder 6
В таблиці 11 представленні компоненти та їх властивості, які змінювались під час розробки форми.
Таблиця 11
Таблиця компонентів та їх властивостей форми Mychild6
Ім’я компоненту |
Властивість |
Значення |
DBGrid1 |
DataSource |
DataSource1 |
DataSource1 |
DataSet |
DataModule1->Query1 |
BitBtn1 |
Kind |
bkClose |
„MyChild7” – форма для пошуку даних за Id таблиці „СГ Підприємства”. Складається з таких компонентів для роботи з базою даних як: таблиця для вводу інформації DBGrid(TDBGrid) надписів, які використовуються для підписів полів вводу. Компоненти Edit використовуються для вводу значення для пошуку в таблиці „СГ Підприємства”. Компонента :abel(TLabel) для виводу інформації Також використовується одна кнопка. На рис. 16 зображено форму в середовищі Borland C++ Builder 6 з усіма компонентами.
Рис. 16. Форма „MyChild7” в Borland C++ Builder 6
В таблиці 12 представленні компоненти та їх властивості, які змінювались під час розробки форми.
Таблиця 12
Таблиця компонентів та їх властивостей форми Mychild7
Ім’я компоненту |
Властивість |
Значення |
Label1 |
Caption |
|
Button1 |
Caption |
Пошук |
DBGrid1 |
DataSource |
DataSource1 |
DataSource1 |
DataSet |
DataModule1->Table2 |
BitBtn1 |
Kind |
bkClose |
Кнопка тут створена для пошуку інформації в таблиці „СГ підприемства” у лістингу 6 показаний код.
Лістинг 6
Код процедури Click для кнопки „Пошук”
void __fastcall TMyChild7::Button1Click(TObject *Sender)
{
String str;
DataModule1->Table2->IndexFieldNames = "Id";
str = Edit1->Text;
str = str.Trim();
DataModule1->Table2->FindNearest(ARRAYOFCONST((str)));
Label1->Caption = " "+DataModule1->Table2->Fields->Fields[1]->AsString;
}
„MyChild8” – форма для вибору зображення для кожного запису таблиці „СГ Підприємстваі”. Складається з таких компонентів для роботи з базою даних як: DBImage1 для відображення зображення, DBEdit1 для виводу запису на єкран, Button1 для вибору фото, OpenPictureDialog1 для відкриття діалогу На рис. 17 зображено форму в середовищі Borland C++ Builder 6 з усіма компонентами.
Рис. 17. Форма „MyChild8” в Borland C++ Builder 6
В таблиці 13 представленні компоненти та їх властивості, які змінювались під час розробки форми.
Таблиця 13
Таблиця компонентів та їх властивостей форми Mychild8
Ім’я компоненту |
Властивість |
Значення |
DBEdit1 |
DataSource |
DataSource1 |
Button1 |
Caption |
Вибрати фото |
DBGrid1 |
DataSource |
DataSource1 |
DataSource1 |
DataSet |
DataModule1->Table2 |
DBNavigator1 |
DataSource |
DataSource1 |
BitBtn1 |
Kind |
bkClose |
Кнопка тут створена для відкриття діалогу вибору картинки у лістингу 8 показаний код.
Лістинг 8
Код процедури Click для кнопки „Вибрати фото”
void __fastcall TMyChild8::Button1Click(TObject *Sender)
{
if (OpenPictureDialog1->Execute() == true ) {
DBImage1->Picture->LoadFromFile(OpenPictureDialog1->FileName);
}
}
