- •Вступне заняття. Ознайомлення і дослідження структури управління об’єктом. Вивчення техніки безпеки
- •2. Заняття і екскурсії під час практики
- •Вивчення тематики робіт
- •Вивчення апаратних засобів і програмного забезпечення
- •Вивчення прикладного програмного забезпечення
- •Вивчення інформаційного і програмного забезпечення конкретної задачі
- •7. Розробка програм для удосконалення або модифікації конкретної задачі
- •7.1. Основні функції програмного продукту
- •Структура програмного продукту
- •Розробка алгоритму
- •Розробка програми
- •Інструкція користувачу
- •Результати тестування
- •Висновок
- •Список використаної літератури
- •Лістинг програми
Структура програмного продукту
Структура даного програмного продукту, є наступною:
Головне вікно програми (fmMain) – на ньому розміщено головне меню з такими пунктами: Перегляд, Редагування, Поставки, Вікно та Про програму.
Вікно редагування (fmDBForm) – забезпечує редагування записів в базі даних auto.
Вікно перегляду (fmDBTable) – вікно, в якому відображаються всі дані занесені до таблиць бази даних
Перегляд зв’язаних таблиць (fmDBMasterDetail) – дає можливість користувачу заносити дані до таблиць що зв’язані зв’язком один-до-багатьох.
Про програму (fmAbout) – містить відомості про автора.
Розробка алгоритму
В процесі створення програмного продукту було створено головне вікно програми (fmMain) – на ньому розміщено головне меню, компонент ActionList1 та MainMenu1 з такими пунктами: Перегляд, Редагування, Поставки, Вікно та Про програму.
Форма fmAny – родоначальник усієї ієрархії форм проекту. Розмістимо на формі компоненти Panel1-3 та BitBtn1-2 і встановимо для їх властивостей значення. Panel1: Align -> alTop; Panel2: Align -> alClient; Panel 3: Align -> alBottom, BitBtn: Kind -> bkOk, Anchors -> akRight, BitBtn: Kind -> bkCansel, Anchors -> akRight. В код форми нічого не записуватимемо.
Форму fmAny зберігаємо в репозиторії: Project-> Add to Repository.
fmDBForm – форма, від якої будуть успадковуватись всі форми, які реалізують опрацювання таблиць бази даних в режимі “форма”. Створимо дану форму виконуючи наступне: File -> New -> Other -> Forms -> fmAny, встановимо перемикач Inherited та натиснемо OK. Перейменуємо нову форму в fmDBForm. На формі додамо компонент DataSource1, Navigator1, Label1-2, Button2.
procedure TfmQForm.BitBtn1Click(Sender: TObject);
begin
if Query1.State in [dsEdit, dsInsert] then
Query1.Post;
inherited;
end;
procedure TfmQForm.BitBtn2Click(Sender: TObject);
begin
if Query1.State in [dsEdit, dsInsert] then
Query1.Cancel;
inherited;
end;
procedure TfmQForm.FormCreate(Sender: TObject);
begin
inherited;
Query1.Open;
end;
procedure TfmQForm.FormActivate(Sender: TObject);
begin
inherited;
DataSource1DataChange(Self, Query1.Fields[0]);
end;
procedure TfmQForm.DataSource1DataChange(Sender: TObject; Field: TField);
begin
inherited;
case Query1.State of
dsEdit : Label1.Caption := 'Редагування';
dsInsert: Label1.Caption := 'Вставка';
dsBrowse: Label1.Caption := 'Перегляд';
end;
case Query1.State of
dsEdit, dsBrowse:
Label2.Caption := 'Запис '+IntToStr(Query1.RecNo)
+' ³ç '+IntToStr(Query1.RecordCount);
dsInsert:
Label2.Caption := 'Новий запис';
end;
Після завершення розробки форми fmDBForm її необхідно зберегти в репозиторії.
Форма fmDBTable – похідна від форми fmDBForm, від неї будуть успадковуватись всі форми, які реалізують опрацювання таблиць бази даних в режимі “таблиця”. Для створення нової форми потрібно виконати команди: File -> New -> Other -> Forms -> fmDBForm. Встановимо перемикач Inherited та натиснемо OK. Перейменуємо нову форму в fmDBTable.
Фрагмент коду для виводу звіту на друк з допомогою програми Excel
procedure TfmDBForm.Button2Click(Sender: TObject);
var
X: Variant;
i, j: integer;
begin
inherited;
// Створення Ole об’єкту Excel.Application ---
X := CreateOLEObject('Excel.Application');
try
// Робимо Ole об’єкт видимим, створюємо нову робочу книгу ---
X.Visible := true;
X.Workbooks.Add;
// ---
// Створення заголовку таблиці ---
for i := 0 to (DataSource1.DataSet).FieldCount - 1 do begin
X.WorkBooks[1].ActiveSheet.Cells[1, 1 + i].Value :=
(DataSource1.DataSet).Fields[i].DisplayLabel;
X.WorkBooks[1].ActiveSheet.Cells[1, 1 + i].Font.Bold := true;
X.WorkBooks[1].ActiveSheet.Cells[1, 1 + i].Interior.ColorIndex := 10;
end;
// ---
// Передача даних з таблиці ---
(DataSource1.DataSet).First;
for i := 0 to (DataSource1.DataSet).RecordCount - 1 do begin
for j := 0 to (DataSource1.DataSet).FieldCount - 1 do begin
X.WorkBooks[1].ActiveSheet.Cells[2 + i,1 + j].Value :=
(DataSource1.DataSet).Fields[j].AsString;
end;
(DataSource1.DataSet).Next;
end;
// Автовирівнювання стовпців ---
for j := 0 to (DataSource1.DataSet).FieldCount - 1 do
X.WorkBooks[1].ActiveSheet.Columns[1+j].EntireColumn.AutoFit;
// ---
// Присвоєння назви листа ---
X.WorkBooks[1].ActiveSheet.Name := (DataSource1.DataSet as TQuery).DatabaseName;
// Збереження робочої книги ---
// X.WorkBooks[1].SaveAs(SaveDialog1.FileName);
finally
{X.Quit;}
Screen.Cursor := crDefault;
end;
end;
fmDBMasterDetail – похідна від форми fmDBForm, вона призначена бути предком форм, які реалізують опрацювання деяких двох зв’язаних таблиць бази даних в режимі „головна-підлегла таблиці”. Для створення нової форми, породженої формою fmDBForm, потрібно виконати команди: File -> New -> Other -> Forms -> fmDBForm. Встановимо перемикач Inherited та натиснемо OK. Перейменуємо нову форму в fmDBMasterDetail.