База данных по ИКС

Автор: Пользователь скрыл имя, 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

Работа содержит 1 файл

курсовая по БД.docx

— 836.55 Кб (Скачать)

    procedure DBGrid1KeyDown(Sender: TObject; var Key: Word;

      Shift: TShiftState);

    procedure Prepod_ItemClick(Sender: TObject);

    procedure Ucheniki_ItemClick(Sender: TObject);

    procedure DBNavigator1BeforeAction(Sender: TObject;

      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(Sender: TObject;

      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(Sender: TObject);

    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(Sender: TObject);

    procedure CloseUchenikiBtnClick(Sender: TObject);

    procedure FilterUchenikiBtnClick(Sender: TObject);

    procedure FilterUchenikiCancelClick(Sender: TObject);

    procedure FilterByFamiliya_PChange(Sender: TObject);

    procedure FilterByImya_PChange(Sender: TObject);

    procedure FilterByOtchestvo_PChange(Sender: TObject);

    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.DisableControls;

    //переходе на  следующую запись

    DataM.UchenikiTable.Next;

    //проверяем, если  конец таблицы, то

    if DataM.UchenikiTable.EOF then

      //блокируем  действие клавиши

      Key := 0

    else

    //в противном  случае переходим на предыдущую  запись

      DataM.UchenikiTable.Prior;

    //разрешаем обновление  источника данных

    DataM.UchenikiTable.EnableControls;

  end;

 

end;

 

procedure TForm1.Prepod_ItemClick(Sender: TObject);

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(Sender: TObject);

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.DBNavigator1BeforeAction(Sender: TObject;

  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.LoadFromFile(OpenPictureDialog1.FileName);

DataM.PrepodaTable.Post; //сохраняем изменения

BitBtn2.Enabled := true; //деактивизируем кнопку

end;

 

end;

 

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

if MessageBox(0,PChar('Вы действительно хотите удалить фотографию записи "'+DataM.PrepodaTableFamiliya_P.AsString + ' ' + DataM.PrepodaTableImya_P.AsString + ' ' + DataM.PrepodaTableOtchestvo_P.AsString +'"?'), 'Внимание!',

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('Вы желаете сохранить изменения  в справочнике?'), 'Внимание!', MB_YESNOCANCEL +MB_ICONQUESTION) = id_YES then

DataM.UchenikiTable.Post; //если изменения  есть, сохраняем

 

if DBGrid1.DataSource = DataM.PrepodaSource then

if DataM.PrepodaTable.Modified then

if Application.MessageBox(PChar('Вы желаете сохранить изменения в справочнике?'), 'Внимание!', MB_YESNOCANCEL +  MB_ICONQUESTION) = id_YES then

DataM.PrepodaTable.Post;

 

end;

 

procedure TForm1.CancelEdit_ItemClick(Sender: TObject);

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('Вы действительно хотите удалить запись "'+ DataM.UchenikiTableFamiliya.AsString + ' '+ DataM.UchenikiTableImya.AsString + ' ' +DataM.UchenikiTableOtchestvo.AsString + '"?'),

'Внимание!', MB_YESNOCANCEL + MB_ICONQUESTION) = id_YES then

begin

DataM.UchenikiTable.Delete; //удаляем запись

end;

end;

 

if DBGrid1.DataSource = DataM.PrepodaSource then

begin

//создаем сообщение

if Application.MessageBox(PChar('Вы действительно хотите удалить запись "'+ DataM.PrepodaTableFamiliya_P.AsString + ' '+ DataM.PrepodaTableImya_P.AsString + ' ' +DataM.PrepodaTableOtchestvo_P.AsString + '"?'),

'Внимание!', MB_YESNOCANCEL + MB_ICONQUESTION) = id_YES then

begin

DataM.PrepodaTable.Delete; //удаляем запись

end;

end;

end;

 

procedure TForm1.DBNavigator2BeforeAction(Sender: TObject;

  Button: TNavigateBtn);

begin

if Button = nbDelete then

begin

Del_ItemClick(Sender); //вызываем процедуру  удаления

Abort;

end;

 

end;

 

procedure TForm1.AddPop_ItemClick(Sender: TObject);

begin

Add_ItemClick(Sender);

end;

 

procedure TForm1.EditPop_ItemClick(Sender: TObject);

begin

Edit_ItemClick(Sender);

end;

 

procedure TForm1.DelPop_ItemClick(Sender: TObject);

begin

Del_ItemClick(Sender);

end;

 

procedure TForm1.DBEdit20Change(Sender: TObject);

begin

//выводим номер текущей  записи и общее число записей  таблицы AllBooks

//как строковый тип  данных

StatusBar1.Panels[3].Text := IntToStr(DataM.PrepodaTable.RecNo) +  ' из ' + IntToStr(DataM.PrepodaTable.RecordCount);

 

//выводим значения полей  "Фамилия", "Имя" и "Отчество"

StatusBar1.Panels[4].Text := DataM.PrepodaTableFamiliya_P.AsString +  ' ' + DataM.PrepodaTableImya_P.AsString + ' ' + DataM.PrepodaTableOtchestvo_P.AsString;

 

 

 

//проверяем наличие фотографии  в поле Foto

if DataM.PrepodaTableFoto.BlobSize = 0 then

begin

//если поле пустое, то  делаем кнопку и строку меню  недоступными

BitBtn2.Enabled := false;

DelFotoPop_Item.Enabled := false;

end

else

begin

//если фотография есть, то активизируем элементы

BitBtn2.Enabled := true;

DelFotoPop_Item.Enabled := true;

end;

 

end;

 

procedure TForm1.DelFotoPop_ItemClick(Sender: TObject);

begin

BitBtn2Click(Sender);

end;

 

procedure TForm1.LoadFotoPop_ItemClick(Sender: TObject);

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.RecNo) +  ' из ' + IntToStr(DataM.UchenikiTable.RecordCount);

 

//выводим значения поля "Название организации"

StatusBar1.Panels[4].Text := DataM.UchenikiTableFamiliya.AsString +  ' ' + DataM.UchenikiTableImya.AsString + ' ' + DataM.UchenikiTableOtchestvo.AsString;

 

end;

 

procedure TForm1.About_ItemClick(Sender: TObject);

begin

AboutForm := TAboutForm.Create(Owner);

  AboutForm.ShowModal;

 

end;

 

procedure TForm1.SortBySur_ItemClick(Sender: TObject);

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(Sender: TObject);

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(Sender: TObject);

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_ItemClick(Sender: TObject);

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(Sender: TObject);

begin

if DBGrid1.DataSource = DataM.UchenikiSource then

    DataM.UchenikiTable.Sort := 'Klass ASC';

 

 

 

end;

 

procedure TForm1.DBGrid1TitleClick(Column: TColumn);

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(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.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(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.Filter_MenuClick(Sender: TObject);

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(Sender: TObject);

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.Text)<>0)and(Length(FilterByImya_P.Text)<>0)

    and(Length(FilterByOtchestvo_P.Text)<>0)and(Length(FilterByPredmet.Text)<>0)then

    //фильтруем по всем полям в DBGrid

    DataM.PrepodaTable.Filter := 'Familiya_P='+QuotedStr(Familiya_P)+

    'and Imya_P='+QuotedStr(Imya_P)+'and Otchestvo_P='+QuotedStr(Otchestvo_P)+

    'and Predmet='+QuotedStr(Predmet);

  //если пусто поле FilterByTel, то

  if (Length(FilterByFamiliya_P.Text)<>0)and(Length(FilterByImya_P.Text)<>0)

    and(Length(FilterByOtchestvo_P.Text)<>0)and(Length(FilterByPredmet.Text)=0)then

    //фильтруем по всем полям в DBGrid

    DataM.PrepodaTable.Filter := 'Familiya_P='+QuotedStr(Familiya_P)+

    'and Imya_P='+QuotedStr(Imya_P)+'and Otchestvo_P='+QuotedStr(Otchestvo_P);

 

if (Length(FilterByFamiliya_P.Text)<>0)and(Length(FilterByImya_P.Text)=0)

    and(Length(FilterByOtchestvo_P.Text)=0)and(Length(FilterByPredmet.Text)=0)then

    //фильтруем по всем полям в DBGrid

    DataM.PrepodaTable.Filter := 'Familiya_P='+QuotedStr(Familiya_P);

 

    if (Length(FilterByFamiliya_P.Text)<>0)and(Length(FilterByImya_P.Text)=0)

    and(Length(FilterByOtchestvo_P.Text)=0)and(Length(FilterByPredmet.Text)=0)then

    //фильтруем по всем полям в DBGrid

    DataM.PrepodaTable.Filter := 'Familiya_P='+QuotedStr(Familiya_P);

 

    if (Length(FilterByFamiliya_P.Text)=0)and(Length(FilterByImya_P.Text)<>0)

    and(Length(FilterByOtchestvo_P.Text)=0)and(Length(FilterByPredmet.Text)=0)then

    //фильтруем по всем полям в DBGrid

    DataM.PrepodaTable.Filter := 'Imya_P='+QuotedStr(Imya_P);

 

    if (Length(FilterByFamiliya_P.Text)=0)and(Length(FilterByImya_P.Text)=0)

Информация о работе База данных по ИКС