Автор: Пользователь скрыл имя, 21 Декабря 2012 в 01:28, курсовая работа
В ходе курсовой работы была поставлена задача, создать программный продукт с базой данных для языковой школы. Такая система должна:
− обеспечивать получение общих или детализированных данных об учащихся в языковой школе;
− позволять легко определять изменения важнейших показателей;
Введение…………………………………………………………………………….3
1 Теоретические основы…….... …………………………………………………...4
1.1 Понятие базы данных …………………………………………………………4
1.2 Структура таблицы данных ……………………………………………………4
1.3 MS Access средство для разработки СУБД .. …………………………………5
1.4 Язык программирования Borland Delphi 7…………………………………….7
1.5 Основные компоненты Delphi………………………………………………….9
2 Практическая часть……...………………………………………………………. 11
2.1 Назначение и характеристики программы……………………………………11
2.2 Требование к надежности……………………………………………………...11
2.3 Требования к параметрам и составу технических средств…………………..11
2.4 Интерфейс программы………………………………………………………….12
2.5 Руководство пользователю……………………………………………………..12
Заключение…………………………………………………………………………..14
Список используемой литературы …………………………………………………15
Приложение А………………………………………………………………………..16
Приложение Б………………………………………………………………………. 17
procedure DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Prepod_ItemClick(Sender: TObject);
procedure Ucheniki_ItemClick(Sender: TObject);
procedure DBNavigator1BeforeAction(
Button: TNavigateBtn);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure Exit_ItemClick(Sender: TObject);
procedure Add_ItemClick(Sender: TObject);
procedure Edit_ItemClick(Sender: TObject);
procedure Save_ItemClick(Sender: TObject);
procedure CancelEdit_ItemClick(Sender: TObject);
procedure Del_ItemClick(Sender: TObject);
procedure DBNavigator2BeforeAction(
Button: TNavigateBtn);
procedure AddPop_ItemClick(Sender: TObject);
procedure EditPop_ItemClick(Sender: TObject);
procedure DelPop_ItemClick(Sender: TObject);
procedure DBEdit20Change(Sender: TObject);
procedure DelFotoPop_ItemClick(Sender: TObject);
procedure LoadFotoPop_ItemClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure DBEdit21Change(Sender: TObject);
procedure About_ItemClick(Sender: TObject);
procedure SortBySur_ItemClick(Sender: TObject);
procedure SortByName_ItemClick(Sender: TObject);
procedure SortByPat_ItemClick(Sender: TObject);
procedure SortOrgsByNaz_ItemClick(
procedure SortByKlass_ItemClick(Sender: TObject);
procedure DBGrid1TitleClick(Column: TColumn);
procedure English_ItemClick(Sender: TObject);
procedure Italy_ItemClick(Sender: TObject);
procedure French_ItemClick(Sender: TObject);
procedure Filter_MenuClick(Sender: TObject);
procedure FilterPrepodaBtnClick(Sender: TObject);
procedure FilterPrepodaCancelClick(
procedure CloseUchenikiBtnClick(Sender: TObject);
procedure FilterUchenikiBtnClick(Sender: TObject);
procedure FilterUchenikiCancelClick(
procedure FilterByFamiliya_PChange(
procedure FilterByImya_PChange(Sender: TObject);
procedure FilterByOtchestvo_PChange(
procedure FilterByPredmetChange(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure Find_MenuClick(Sender: TObject);
procedure AddSpBtnClick(Sender: TObject);
procedure DelSpBtnClick(Sender: TObject);
procedure FindSpBtnClick(Sender: TObject);
procedure FilterSpBtnClick(Sender: TObject);
private
{ Private declarations }
procedure ShowHint(Sender: TObject) ;
public
{ Public declarations }
end;
var
Form1: TForm1;
TableKind: string;
implementation
uses DataUnit, AboutUnit, HelloUnit, FindAllUnit, FindOrgsUnit;
{$R *.dfm}
procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
//проверяем, нажата ли клавиша "вниз"
if (Key = VK_DOWN) then
begin
//приостанавливаем автоматическое обновление источника данных при
DataM.UchenikiTable.
//переходе на следующую запись
DataM.UchenikiTable.Next;
//проверяем, если конец таблицы, то
if DataM.UchenikiTable.EOF then
//блокируем действие клавиши
Key := 0
else
//в противном
случае переходим на
DataM.UchenikiTable.Prior;
//разрешаем обновление источника данных
DataM.UchenikiTable.
end;
end;
procedure TForm1.Prepod_ItemClick(
begin
DBGrid1.DataSource := DataM.PrepodaSource; //присваиваем нужный источник
GroupBox2.Visible := true;
//отображаем панель фильтра
Panel1.Visible := false;
Panel2.Visible := true;
//если открыт справочник AllBooks, то
if DBGrid1.DataSource = DataM.PrepodaSource then
begin
//показать панель для AllBooks
Panel1.Visible := false;
//скрыть панель для OrgsBooks
Panel2.Visible := true;
end;
DBGrid1.DataSource := DataM.PrepodaSource;
LoadFotoPop_Item.Visible := true;
DelFotoPop_Item.Visible := true;
SortBySur_Item.Visible := true;
SortByName_Item.Visible := true;
SortByPat_Item.Visible := true;
SortOrgsByNaz_Item.Visible := true;
SortByKlass_Item.Visible := false;
end;
procedure TForm1.Ucheniki_ItemClick(
begin
DBGrid1.DataSource := DataM.UchenikiSource; //присваиваем нужный источник
GroupBox2.Visible := true;
//отображаем панель фильтра
Panel1.Visible := true;
Panel2.Visible := false;
//если открыт справочник AllBooks, то
if DBGrid1.DataSource = DataM.UchenikiSource then
begin
//показать панель для AllBooks
Panel1.Visible := true;
//скрыть панель для OrgsBooks
Panel2.Visible := false;
end;
DBGrid1.DataSource := DataM.UchenikiSource;
LoadFotoPop_Item.Visible := false;
DelFotoPop_Item.Visible := false;
SortBySur_Item.Visible := true;
SortByName_Item.Visible := true;
SortByPat_Item.Visible := true;
SortOrgsByNaz_Item.Visible := true;
SortByKlass_Item.Visible := true;
end;
procedure TForm1.
Button: TNavigateBtn);
begin
if Button = nbDelete then
begin
Del_ItemClick(Sender); //вызываем процедуру удаления
Abort;
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute then //запускаем диалог
begin
DataM.PrepodaTable.Edit; //открываем таблицу для редактирования
//загружаем фотографию
DataM.PrepodaTableFoto.
DataM.PrepodaTable.Post; //сохраняем изменения
BitBtn2.Enabled := true; //деактивизируем кнопку
end;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
if MessageBox(0,PChar('Вы действительно
хотите удалить фотографию записи "'+DataM.PrepodaTableFamiliya_
MB_YESNOCANCEL + MB_ICONQUESTION) = id_YES then
begin
DataM.PrepodaTable.Edit;
DataM.PrepodaTableFoto.Clear; //очищаем поле Foto
DataM.PrepodaTable.Post;
BitBtn2.Enabled := false;
BitBtn1.SetFocus; //устанавливаем фокус на кнопку загрузки
end;
end;
procedure TForm1.Exit_ItemClick(Sender: TObject);
begin
Close;
end;
procedure TForm1.Add_ItemClick(Sender: TObject);
begin
//провреряем, какая таблица отображается в данный момент
if DBGrid1.DataSource = DataM.UchenikiSource then
begin
DataM.UchenikiTable.Insert; //добавляем новую строку
DBEdit1.ReadOnly := false;
DBEdit1.SetFocus; //устанавливаем фокус ввода
end;
if DBGrid1.DataSource = DataM.PrepodaSource then
begin
DataM.PrepodaTable.Insert;
DBEdit10.ReadOnly := false; //снимаем режим только для чтения
DBEdit10.SetFocus;
end;
end;
procedure TForm1.Edit_ItemClick(Sender: TObject);
begin
if DBGrid1.DataSource = DataM.UchenikiSource then
begin
DBEdit1.ReadOnly := false;
DBEdit1.SetFocus;
end;
if DBGrid1.DataSource = DataM.PrepodaSource then
begin
DBEdit10.ReadOnly := false;
DBEdit10.SetFocus;
end;
end;
procedure TForm1.Save_ItemClick(Sender: TObject);
begin
if DBGrid1.DataSource = DataM.UchenikiSource then
if DataM.UchenikiTable.Modified then //проверяем наличие изменений
if Application.MessageBox(PChar('
DataM.UchenikiTable.Post; //если изменения есть, сохраняем
if DBGrid1.DataSource = DataM.PrepodaSource then
if DataM.PrepodaTable.Modified then
if Application.MessageBox(PChar('
DataM.PrepodaTable.Post;
end;
procedure TForm1.CancelEdit_ItemClick(
begin
if DBGrid1.DataSource = DataM.UchenikiSource then
if DataM.UchenikiTable.Modified then
DataM.UchenikiTable.Cancel; //отменяем изменения, если они есть
if DBGrid1.DataSource = DataM.PrepodaSource then
if DataM.PrepodaTable.Modified then
DataM.PrepodaTable.Cancel;
end;
procedure TForm1.Del_ItemClick(Sender: TObject);
begin
if DBGrid1.DataSource = DataM.UchenikiSource then
begin
//создаем сообщение
if Application.MessageBox(PChar('
'Внимание!', MB_YESNOCANCEL + MB_ICONQUESTION) = id_YES then
begin
DataM.UchenikiTable.Delete; //удаляем запись
end;
end;
if DBGrid1.DataSource = DataM.PrepodaSource then
begin
//создаем сообщение
if Application.MessageBox(PChar('
'Внимание!', MB_YESNOCANCEL + MB_ICONQUESTION) = id_YES then
begin
DataM.PrepodaTable.Delete; //удаляем запись
end;
end;
end;
procedure TForm1.
Button: TNavigateBtn);
begin
if Button = nbDelete then
begin
Del_ItemClick(Sender); //вызываем процедуру удаления
Abort;
end;
end;
procedure TForm1.AddPop_ItemClick(
begin
Add_ItemClick(Sender);
end;
procedure TForm1.EditPop_ItemClick(
begin
Edit_ItemClick(Sender);
end;
procedure TForm1.DelPop_ItemClick(
begin
Del_ItemClick(Sender);
end;
procedure TForm1.DBEdit20Change(Sender: TObject);
begin
//выводим номер текущей записи и общее число записей таблицы AllBooks
//как строковый тип данных
StatusBar1.Panels[3].Text := IntToStr(DataM.PrepodaTable.
//выводим значения полей "Фамилия", "Имя" и "Отчество"
StatusBar1.Panels[4].Text := DataM.PrepodaTableFamiliya_P.
//проверяем наличие
if DataM.PrepodaTableFoto.
begin
//если поле пустое, то делаем кнопку и строку меню недоступными
BitBtn2.Enabled := false;
DelFotoPop_Item.Enabled := false;
end
else
begin
//если фотография есть, то активизируем элементы
BitBtn2.Enabled := true;
DelFotoPop_Item.Enabled := true;
end;
end;
procedure TForm1.DelFotoPop_ItemClick(
begin
BitBtn2Click(Sender);
end;
procedure TForm1.LoadFotoPop_ItemClick(
begin
BitBtn1Click(Sender);
end;
procedure TForm1.ShowHint(Sender: TObject);
begin
StatusBar1.Panels[1].Text := Application.Hint;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
Application.OnHint := ShowHint;
end;
procedure TForm1.DBEdit21Change(Sender: TObject);
begin
//выводим номер текущей записи и общее число записей таблицы Orgs
StatusBar1.Panels[3].Text := IntToStr(DataM.UchenikiTable.
//выводим значения поля "Название организации"
StatusBar1.Panels[4].Text := DataM.UchenikiTableFamiliya.
end;
procedure TForm1.About_ItemClick(Sender: TObject);
begin
AboutForm := TAboutForm.Create(Owner);
AboutForm.ShowModal;
end;
procedure TForm1.SortBySur_ItemClick(
begin
if DBGrid1.DataSource = DataM.UchenikiSource then
DataM.UchenikiTable.Sort := 'Familiya ASC';
if DBGrid1.DataSource = DataM.PrepodaSource then
DataM.PrepodaTable.Sort := 'Familiya_P ASC';
end;
procedure TForm1.SortByName_ItemClick(
begin
if DBGrid1.DataSource = DataM.UchenikiSource then
DataM.UchenikiTable.Sort := 'Imya ASC';
if DBGrid1.DataSource = DataM.PrepodaSource then
DataM.PrepodaTable.Sort := 'Imya_P ASC';
end;
procedure TForm1.SortByPat_ItemClick(
begin
if DBGrid1.DataSource = DataM.UchenikiSource then
DataM.UchenikiTable.Sort := 'Otchestvo ASC';
if DBGrid1.DataSource = DataM.PrepodaSource then
DataM.PrepodaTable.Sort := 'Otchestvo_P ASC';
end;
procedure TForm1.SortOrgsByNaz_
begin
if DBGrid1.DataSource = DataM.UchenikiSource then
DataM.UchenikiTable.Sort := 'Predmet ASC';
if DBGrid1.DataSource = DataM.PrepodaSource then
DataM.PrepodaTable.Sort := 'Predmet ASC';
end;
procedure TForm1.SortByKlass_ItemClick(
begin
if DBGrid1.DataSource = DataM.UchenikiSource then
DataM.UchenikiTable.Sort := 'Klass ASC';
end;
procedure TForm1.DBGrid1TitleClick(
begin
//если открыт справочник AllBooks, то
if DBGrid1.DataSource = DataM.UchenikiSource then
//сортируем записи таблицы AllBooksTable по названию выбранного поля
DataM.UchenikiTable.Sort:= Column.FieldName;
//если открыт справочник Orgs, то
if DBGrid1.DataSource = DataM.PrepodaSource then
//сортируем записи таблицы OrgsTable по названию выбранного поля
DataM.PrepodaTable.Sort:= Column.FieldName;
end;
procedure TForm1.English_ItemClick(
begin
DBGrid1.DataSource := DataM.UchenikiSource;
Panel2.Visible := false;
Panel1.Visible := true;
DataM.UchenikiTable.Filtered := true;
DataM.UchenikiTable.Filter := 'Predmet='+QuotedStr('
TableKind := 'Английский';
end;
procedure TForm1.Italy_ItemClick(Sender: TObject);
begin
DBGrid1.DataSource := DataM.UchenikiSource;
Panel2.Visible := false;
Panel1.Visible := true;
DataM.UchenikiTable.Filtered := true;
DataM.UchenikiTable.Filter := 'Predmet='+QuotedStr('
TableKind := 'Италянский';
end;
procedure TForm1.French_ItemClick(
begin
DBGrid1.DataSource := DataM.UchenikiSource;
Panel2.Visible := false;
Panel1.Visible := true;
DataM.UchenikiTable.Filtered := true;
DataM.UchenikiTable.Filter := 'Predmet='+QuotedStr('
TableKind := 'Французский';
end;
procedure TForm1.Filter_MenuClick(
begin
//отображаем панель фильтра
FilterPanel.Visible := true;
//если открыт справочник AllBooks, то
if DBGrid1.DataSource = DataM.UchenikiSource then
begin
//показать панель для AllBooks
FilterUchenikiBox.Visible := true;
//скрыть панель для OrgsBooks
FilterPrepodaBox.Visible := false;
//установить фокус ввода в поле FilterBySur
FilterByFamiliya.SetFocus;
end;
//если же открыт справочник OrgsBooks, то
if DBGrid1.DataSource = DataM.PrepodaSource then
begin
//наоборот, скрыть FilterAllBox
FilterPrepodaBox.Visible := true;
//показать FilterOrgsBox
FilterUchenikiBox.Visible := false;
//установить курсор в поле FilterByNaz
FilterByFamiliya_P.SetFocus;
end;
end;
procedure TForm1.FilterPrepodaBtnClick(
var Familiya_P, Imya_P, Otchestvo_P, Predmet : string;
begin
//включаем свойство Filter таблицы AllBooks
DataM.PrepodaTable.Filtered := true;
//присваиваем переменным значения, введенные в поля Edit
Familiya_P := FilterByFamiliya_P.Text;
Imya_P := FilterByImya_P.Text;
Otchestvo_P := FilterByOtchestvo_P.Text;
Predmet := FilterByPredmet.Text;
//если все поля Edit не пусты, то
if (Length(FilterByFamiliya_P.
and(Length(FilterByOtchestvo_
//фильтруем по всем полям в DBGrid
DataM.PrepodaTable.Filter := 'Familiya_P='+QuotedStr(
'and Imya_P='+QuotedStr(Imya_P)+'
'and Predmet='+QuotedStr(Predmet);
//если пусто поле FilterByTel, то
if (Length(FilterByFamiliya_P.
and(Length(FilterByOtchestvo_
//фильтруем по всем полям в DBGrid
DataM.PrepodaTable.Filter := 'Familiya_P='+QuotedStr(
'and Imya_P='+QuotedStr(Imya_P)+'
if (Length(FilterByFamiliya_P.
and(Length(FilterByOtchestvo_
//фильтруем по всем полям в DBGrid
DataM.PrepodaTable.Filter := 'Familiya_P='+QuotedStr(
if (Length(FilterByFamiliya_P.
and(Length(FilterByOtchestvo_
//фильтруем по всем полям в DBGrid
DataM.PrepodaTable.Filter := 'Familiya_P='+QuotedStr(
if (Length(FilterByFamiliya_P.
and(Length(FilterByOtchestvo_
//фильтруем по всем полям в DBGrid
DataM.PrepodaTable.Filter := 'Imya_P='+QuotedStr(Imya_P);
if (Length(FilterByFamiliya_P.