Мегаобучалка Главная | О нас | Обратная связь


Порядок выполнения работы



2018-07-06 351 Обсуждений (0)
Порядок выполнения работы 0.00 из 5.00 0 оценок




 

Задание: написать программу «Учет сотрудников кафедры».

Данное программное обеспечение демонстрирует основные способы взаимодействия ИСР Delphi с СУБД Access, а также приведены приемы работы с компонентами обеспечивающие данное взаимодействие.

 

ПОДКЛЮЧЕНИЕ БАЗЫ

Создать папку с название exampledb

Создание тестовой базы данных

1 Запустить Microsoft Access

2 Главное меню Файл->Создать. Выбрать новая база данных.

3 Сохранить в папку exampledb с названием testdb

4 Создание таблицы в режиме конструктора

5 Заполнить

ИМЯ ПОЛЯ ТИП ДАННЫХ КЛЮЧ

Id счетчики уникальный

Name TEXT

6 Сохранить таблицу под названием table1

7 Выйти из ACCESS

 

Приложение в DELPHI

1 Запустить Delphi7

2 В главном меню выбрать File->Save All. Сохранить проект в папку exampledb. Названия сохраняемых файлов не менять.

3 Изменить свойство Caption формы Form1 на “Тестовая программа”.

5 В главном меню выбрать File->New->DataModule

6 В главном меню выбрать File->Save All. Названия сохраняемых файлов не менять.

7 Перейти на форму DataModule2.

8 В главном меню выбрать File->Use Unit. В появившемся окне выбрать Unit1 и нажать кнопку OK.

9 Разместить на форме DataModule2 следующие компоненты:

– закладка ADO: компонент ADOConnection

– закладка ADO: компонент ADOQuery

– закладка Data Access: компонент DataSource

10 Изменить свойства компонентов:

Компонент Название свойства Значение/Действие
ADOConnection1 ConnectionString Двойной щелчок по свойству. Use Connection String. Нажать кнопку Build. Выбрать Microsoft Jet 4.0 OLE DB Provider. Нажать кнопку Далее. Выбрать или ввести имя базы - testdb.
ADOConnection1 LoginPrompt False
ADOQuery1 Connection ADOConnection1
ADOQuery1 SQL Select * from table1
DataSource1 Dataset ADOQuery1

 

11 Двойной щелчок по компоненту ADOQuery1. В появившемся окне кликнуть правой кнопкой мыши и в контекстном меню выбрать Add All Fields

12 Перейти на форму Form1.

13 В главном меню выбрать File->Use Unit. В появившемся окне выбрать Unit2 и нажать кнопку OK.

14 Разместить на форме Form1 следующие компоненты:

– закладка DataControls: компонент DBGrid

– закладка Standard: компонент Button

15 Свойству компонента DBGrid1 Datasource присвоить значение DataModule2.DataSource1;

16 Двойной щелчок мышкой по компоненту DBGrid1. В появившемся окне нажать правой кнопкой мыши и в контекстном меню выбрать AddAllFields

17 Выбрать поле Id и свойству Title - > Caption присвоить значение «Код». Свойству Width присвоить значение 60.

18 Выбрать поле Name и свойству Title - > Caption присвоить значение «Имя». Свойству Width присвоить значение 250.

19 Свойству Caption компонента Button1 присвоить значение «Показать».

20 Событие OnClick на Button1

procedure TForm1.Button1Click(Sender: TObject);

begin

with DataModule2 do

begin

ADOQuery1.Close;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('select * from table1 ');

ADOQuery1.Open;

end;

end;

 

 

ДОБАВЛЕНИЕ ЗАПИСИ, СВЯЗЬ

Изменение тестовой базы данных

1 Запустить Microsoft Access

2 Файл -> Открыть Выбрать папку exampledb, а в ней базу данных testdb

3 Выделить table1, найти кнопку Конструктор и нажать ее.

4 Добавить поле idw

ИМЯ ПОЛЯ ТИП ДАННЫХ КЛЮЧ

idw числовой

5 Сохранить изменения и закрыть table1

6 Нажать Создание таблицы в режиме конструктора

7 Выбрать

ИМЯ ПОЛЯ ТИП ДАННЫХ КЛЮЧ

idwork счетчки уникальный

typework TEXT

8 Сохранить таблицу с названием table2 и выйти из конструктора

 

 

ПРИЛОЖЕНИЕ В DELPHI

1 Запустить Delphi7

2 В главном меню выбрать File->Open Project выбрать папку exampledb, а в ней проект с названием Project1

3 Перейти на форму DataModule2

Разместить на форме DataModule2 следующие компоненты:

– закладка ADO: компонент ADOQuery

– закладка Data Access: компонент DataSource

4 Изменить свойства компонентов:

Компонент Название свойства Значение/Действие
ADOQuery2 Connection ADOConnection1
ADOQuery2 SQL Select * from table2
DataSource2 Dataset ADOQuery2

5 Двойной щелчок по компоненту ADOQuery2. В появившемся окне кликнуть правой кнопкой мыши и в контекстном меню выбрать Add All Fields

6 Перейти на форму Form1.

Разместить на форме Form1 следующие компоненты:

– закладка DataControls: компонент DBGrid

– закладка Standard: компонент Button

7 Свойству компонента DBGrid2 Datasource присвоить значение DataModule2.DataSource2;

8 Двойной щелчок мышкой по компоненту DBGrid2. В появившемся окне нажать правой кнопкой мыши и в контекстном меню выбрать AddAllFields

9 Выбрать поле idwork и свойству Title - > Caption присвоить значение «Код». Свойству Width присвоить значение 60.

10 Выбрать поле typework и свойству Title - > Caption присвоить значение «Название специальности». Свойству Width присвоить значение 250.

11 Свойству Caption компонента Button2 присвоить значение «Показать».

12 Событие OnClick на Button2

procedure TForm1.Button2Click(Sender: TObject);

begin

with DataModule2 do

begin

ADOQuery2.Close;

ADOQuery2.SQL.Clear;

ADOQuery2.SQL.Add('select * from table2 ');

ADOQuery2.Open;

end;

end;

13 Перейти на форму Form1.

Разместить на форме Form1 следующие компоненты:

- Закладка Standard: компонент Edit

- Закладка Standard: компонент Label

- Закладка Standard: компонент Button

14 Изменить свойства компонентов:

Компонент Название свойства Значение/Действие
Edit1 Text Удалить весь текст
Label1 Caption Название специальности
Button3 Caption Добавить

15 Разместить на форму компонент ComboBox1

Закладка Standard - > ComboBox.

16 Очистить свойство Text у ComboBox1.

17 Дописать выделенную строку

var

Form1: TForm1;

aTypeWork:array of integer;

18 Событие OnClick на Button3

procedure TForm1.Button3Click(Sender: TObject);

var i:integer;

begin

If Edit1.Text<>'' then

begin

with DataModule2 do

begin

ADOQuery2.Close;

ADOQuery2.Open;

if ADOQuery2.IsEmpty=false then ADOQuery2.Insert;

ADOQuery2.Edit;

ADOQuery2typework.AsString:=Edit1.Text;

ADOQuery2.Post;

ADOQuery2.Open;

end;

end;

Edit1.Clear;

i:=0;

ComboBox1.Clear;

with DataModule2 do

begin

ADOQuery2.Close;

ADOQuery2.Open;

ADOQuery1.Close;

ADOQuery1.Open;

end;

if DataModule2.ADOQuery2.RecordCount<>0 then

begin

SetLength(aTypeWork,DataModule2.ADOQuery2.RecordCount);

for i:=1 to DataModule2.ADOQuery2.RecordCount do

begin

DataModule2.ADOQuery2.RecNo:=i;

ComboBox1.Items.Add(DataModule2.ADOQuery2typework.AsString);

aTypeWork[i-1]:=DataModule2.ADOQuery2idwork.AsInteger;

end;

end;

end;

19 Событие формы OnShow

procedure TForm1.FormShow(Sender: TObject);

var i:integer;

begin

i:=0;

ComboBox1.Clear;

with DataModule2 do

begin

ADOQuery2.Close;

ADOQuery2.Open;

ADOQuery1.Close;

ADOQuery1.Open;

end;

if DataModule2.ADOQuery2.RecordCount<>0 then

begin

SetLength(aTypeWork,DataModule2.ADOQuery2.RecordCount);

for i:=1 to DataModule2.ADOQuery2.RecordCount do

begin

DataModule2.ADOQuery2.RecNo:=i;

ComboBox1.Items.Add(DataModule2.ADOQuery2typework.AsString);

aTypeWork[i-1]:=DataModule2.ADOQuery2idwork.AsInteger;

end;

end;

end;

20 Перейти на форму Form1.

Разместить на форме Form1 следующие компоненты:

- Закладка Standard: компонент Edit

- Закладка Standard: компонент Label

- Закладка Standard: компонент Button

21 Изменить свойства компонентов:

Компонент Название свойства Значение/Действие
Edit2 Text Удалить весь текст
Label2 Caption Имя
Button4 Caption Добавить

22 Событие OnClick на Button4

procedure TForm1.Button4Click(Sender: TObject);

begin

if ComboBox1.ItemIndex=-1 then

begin

ShowMessage('Выбрать специальность');

exit;

end;

if Edit2.Text='' then

begin

ShowMessage('Ввести имя');

exit;

end;

with DataModule2 do

begin

ADOQuery1.Close;

ADOQuery1.Open;

if ADOQuery1.IsEmpty=false then

ADOQuery1.Insert;

ADOQuery1.Edit;

ADOQuery1name.AsString:=Edit2.Text;

ADOQuery1idw.AsInteger:=atypework[ComboBox1.ItemIndex];

ADOQuery1.Post;

Edit2.Clear;

ComboBox1.ItemIndex:=-1;

end;

end;

23 Перейти на DataModule2

24 Двойной щелчок по ADOQuery1. В появившемся окне выбрать Add All Fields

25 На появившемся окне нажать правой кнопкой мыши и выбрать New Field

26 В появившемся окне заполнить

Name – namework

Type – string

Field Type – LookUp

LookUp Definition

Key Fields – idw

DataSet – ADOQuery2

LookUp Keys – idwork

Result Field – typework

Нажать кнопку ОК

27 Перейти на Form1

28 Двойной щелчок по DBGrid1

В появившемся окне выбрать Add All Fields

На предупреждение Delete exesting columns Выбрать Yes

29 В этом окне выбрать поле idw

Нажать кнопку Del на клавиатуре

30 В этом окне выбрать поле namework и свойству Title - > Caption присвоить значение «Название специальности». Свойству Width присвоить значение 250.

 

ПОИСК

1 Запустить Delphi7

2 В главном меню выбрать File->Open Project выбрать папку exampledb, а в ней проект с названием Project1

3 Перейти на форму Form1.

Разместить на форме Form1 следующие компоненты:

- Закладка Standard: компонент GroupBox

- Закладка Standard: компонент Edit

- Закладка Standard: компонент Button

- Закладка Standard: компонент Button

- Закладка Standard: компонент Label

4 Изменить свойства компонентов

 

Компонент Название свойства Значение/Действие
Edit3 Text Удалить весь текст
GroupBox1 Caption Поиск на полное соответствие
Button5 Caption Найти
Button6 Caption Отмена
Label3 Caption Поиск по фамилии

5 Событие OnClick на Button5

procedure TForm1.Button5Click(Sender: TObject);

begin

with DataModule2 do

begin

ADOQuery1.Close;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('select * from table1 ');

ADOQuery1.SQL.Add(' where name=:pname');

ADOQuery1.Parameters.ParamByName('pname').Value:=Edit3.Text;

ADOQuery1.Open;

end;

end;

6 Событие OnClick на Button6

procedure TForm1.Button6Click(Sender: TObject);

begin

with DataModule2 do

begin

ADOQuery1.Close;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('select * from table1 ');

ADOQuery1.Open;

end;

Edit3.Clear;

end;

7 Перейти на форму Form1.

Разместить на форме Form1 следующие компоненты:

- Закладка Standard: компонент GroupBox

- Закладка Standard: компонент Edit

- Закладка Standard: компонент Button

- Закладка Standard: компонент Button

- Закладка Standard: компонент Label

8 Изменить свойства компонентов

Компонент Название свойства Значение/Действие
Edit4 Text Удалить весь текст
GroupBox2 Caption Поиск на неполное соответствие
Button7 Caption Найти
Button8 Caption Отмена
Label4 Caption Поиск по фамилии

9 Событие OnClick на Button7

procedure TForm1.Button7Click(Sender: TObject);

begin

with DataModule2 do

begin

ADOQuery1.Close;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('select * from table1 ');

ADOQuery1.SQL.Add(' where name like :pname');

ADOQuery1.Parameters.ParamByName('pname').Value:=Edit4.Text+'%';

ADOQuery1.Open;

end;

end;

10 Событие OnClick на Button8

procedure TForm1.Button8Click(Sender: TObject);

begin

with DataModule2 do

begin

ADOQuery1.Close;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('select * from table1 ');

ADOQuery1.Open;

end;

Edit4.Clear;

end;

11 Перейти на форму Form1.

Разместить на форме Form1 следующие компоненты:

- Закладка Standard: компонент GroupBox

- Закладка Standard: компонент Edit

- Закладка Standard: компонент Button

- Закладка Standard: компонент Button

- Закладка Standard: компонент Label

12 Изменить свойства компонентов

Компонент Название свойства Значение/Действие
Edit5 Text Удалить весь текст
GroupBox3 Caption Полнотекстный поиск
Button9 Caption Найти
Button10 Caption Отмена
Label5 Caption Поиск по фамилии

 

13 Событие OnClick на Button9

procedure TForm1.Button9Click(Sender: TObject);

begin

with DataModule2 do

begin

ADOQuery1.Close;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('select * from table1 ');

ADOQuery1.SQL.Add(' where name like:pname');

ADOQuery1.Parameters.ParamByName('pname').Value:='%'+Edit5.Text+'%';

ADOQuery1.Open;

end;

end;

14 Событие OnClick на Button10

procedure TForm1.Button8Click(Sender: TObject);

begin

with DataModule2 do

begin

ADOQuery1.Close;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('select * from table1 ');

ADOQuery1.Open;

end;

Edit5.Clear;

end;

15 Перейти на форму Form1.

Разместить на форме Form1 следующие компоненты:

- Закладка Standard: компонент GroupBox

- Закладка Standard: компонент Edit

- Закладка Standard: компонент Button

- Закладка Standard: компонент Button

- Закладка Standard: компонент Label

16 Изменить свойства компонентов

Компонент Название свойства Значение/Действие
Edit6 Text Удалить весь текст
GroupBox4 Caption Переход на строку
Button11 Caption Перейти
Button12 Caption Отмена
Label6 Caption Переход по фамилии

17 Событие OnClick на Button11

procedure TForm1.Button11Click(Sender: TObject);

begin

with DataModule2 do

begin

ADOQuery1.Locate('name',Edit6.Text,[loCaseInsensitive]);

end;

end;

18 Событие OnClick на Button12

procedure TForm1.Button12Click(Sender: TObject);

begin

if DataModule2.ADOQuery1.RecordCount<>0 then

DataModule2.ADOQuery1.RecNo:=1;

end;

19 Перейти на форму Form1.

Разместить на форме Form1 следующие компоненты:

- Закладка Standard: компонент PopupMenu

20 Изменить свойства компонентов

Компонент Название свойства Значение/Действие
DBGrid2 PopupMenu PopupMenu1

21 Изменить свойства компонентов

Компонент Название свойства Значение/Действие
PopupMenu1 Items Удалить

22 Выбрать добавленный пункт меню

Событие OnClick компонента PopupMenu1 для элемента меню Удалить

procedure TForm1.N1Click(Sender: TObject);

var i,code:Integer;

begin

with DataModule2 do

begin

if ADOQuery2.IsEmpty=true then

begin

ShowMessage('В таблице нет записей!');

Exit;

end;

code:=DBGrid2.DataSource.DataSet.FieldValues['idwork'];

ADOQuery2.Delete;

end;

i:=0;

ComboBox1.Clear;

with DataModule2 do

begin

ADOQuery2.Close;

ADOQuery2.Open;

ADOQuery1.Close;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('delete from table1 where idw=:idwork');

ADOQuery1.Parameters.ParamByName('idwork').Value:=code;

ADOQuery1.ExecSQL;

ADOQuery1.Close;

ADOQuery1.Close;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('select * from table1');

ADOQuery1.Open;

end;

if DataModule2.ADOQuery2.RecordCount<>0 then

begin

SetLength(aTypeWork,DataModule2.ADOQuery2.RecordCount);

for i:=1 to DataModule2.ADOQuery2.RecordCount do

begin

DataModule2.ADOQuery2.RecNo:=i;

ComboBox1.Items.Add(DataModule2.ADOQuery2typework.AsString);

aTypeWork[i-1]:=DataModule2.ADOQuery2idwork.AsInteger;

end;

end;

end;

23 Перейти на форму Form1.

Разместить на форме Form1 следующие компоненты:

- Закладка Standard: компонент PopupMenu

24 Изменить свойства компонентов

Компонент Название свойства Значение/Действие
DBGrid1 PopupMenu PopupMenu2

25 Изменить свойства компонентов

Компонент Название свойства Значение/Действие
PopupMenu2 Items Удалить

26 Выбрать добавленный пункт меню

Событие OnClick компонента PopupMenu2 для элемента меню Удалить

procedure TForm1.N2Click(Sender: TObject);

begin

with DataModule2 do

begin

if ADOQuery1.IsEmpty=true then

begin

ShowMessage('В таблице нет записей!');

Exit;

end;

ADOQuery1.Delete;

end;

end;

27 Перейти на форму Form1.

Разместить на форме Form1 следующие компоненты:

- Закладка Standard: компонент GroupBox

- Закладка Standard: компонент Button

- Закладка Standard: компонент Button

- Закладка Standard: компонент Label

- Закладка DataControls: компонент Edit

28 Изменить свойства компонентов

Компонент Название свойства Значение/Действие
Edit7 Text Удалить весь текст
GroupBox5 Caption Поиск на полное соответствие
Button13 Caption Найти
Button14 Caption Отмена
Label7 Caption Поиск по названию специальности

29 Событие OnClick на Button13

procedure TForm1.Button13Click(Sender: TObject);

var codeSpec:integer;

begin

if Edit7.Text='' then

begin

ShowMessage('Введите название специальности');

exit;

end;

with DataModule2 do

begin

if ADOQuery2.Locate('typework',Edit7.Text,[]) then

begin

codeSpec:=ADOQuery2idwork.AsInteger;

ADOQuery1.Close;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Text:='select * from table1 where idw=:idwork';

ADOQuery1.Parameters.ParamByName('idwork').Value:=codeSpec;

ADOQuery1.Open;

end

else

begin

ShowMessage('Такой специальности не существует');

exit;

end;

end;

end;

30 Событие OnClick на Button14

procedure TForm1.Button14Click(Sender: TObject);

begin

with DataModule2 do

begin

ADOQuery1.Close;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('select * from table1 ');

ADOQuery1.Open;

end;

Edit7.Clear;

end;

31 Перейти на форму Form1.

Разместить на форме Form1 следующие компоненты:

- Закладка Standard: компонент GroupBox

- Закладка Standard: компонент Button

- Закладка Standard: компонент Label

- Закладка DataControls: компонент DBEdit

32 Изменить свойства компонентов

Компонент Название свойства Значение/Действие
DBEdit1 DataSource DataModule2.DataSource1
DBEdit1 DataField name
GroupBox6 Caption Редактировать
Button15 Caption Применить
Label8 Caption Имя

 

33 Событие OnClick на Button15

procedure TForm1.Button15Click(Sender: TObject);

begin

if DataModule2.ADOQuery1.State=dsEdit then

DataModule2.ADOQuery1.Post;

end;

34 Перейти на форму Form1.

Разместить на форме Form1 следующие компоненты:

- Закладка Standard: компонент GroupBox

- Закладка Standard: компонент Button

- Закладка Standard: компонент Label

- Закладка DataControls: компонент DBEdit

35 Изменить свойства компонентов

Компонент Название свойства Значение/Действие
DBEdit1 DataSource DataModule2.DataSource2
DBEdit1 DataField typework
GroupBox7 Caption Редактировать
Button16 Caption Применить
Label9 Caption Название специальности

36 Событие OnClick на Button16

procedure TForm1.Button16Click(Sender: TObject);

var i:integer;

begin

if DataModule2.ADOQuery2.State=dsEdit then

begin

DataModule2.ADOQuery2.Post;

i:=0;

ComboBox1.Clear;

if DataModule2.ADOQuery2.RecordCount<>0 then

begin

SetLength(aTypeWork,DataModule2.ADOQuery2.RecordCount);

for i:=1 to DataModule2.ADOQuery2.RecordCount do

begin

DataModule2.ADOQuery2.RecNo:=i;

ComboBox1.Items.Add(DataModule2.ADOQuery2typework.AsString);

aTypeWork[i-1]:=DataModule2.ADOQuery2idwork.AsInteger;

end;

end;

end;

end;

 

Экранная форма задания будет иметь следующий вид (см. рисунок 14.2).

 

 

Рисунок 14.2 - Экранная форма задания

 



2018-07-06 351 Обсуждений (0)
Порядок выполнения работы 0.00 из 5.00 0 оценок









Обсуждение в статье: Порядок выполнения работы

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней...
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (351)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)