Разработка программы для автоматизации работы книжного каталога

Автор работы: Пользователь скрыл имя, 02 Декабря 2012 в 19:04, курсовая работа

Краткое описание

Целю данной курсовой работы является разработка эффективного программного обеспечения для автоматизации работы книжного каталога.
Для достижения этой цели нужно выполнить две задачи: спроектировать базу данных и разработать дружественный интерфейс.

Содержание

ВВЕДЕНИЕ 4
1 Постановка задачи 6
2 Проектирование структуры базы данных 7
3 Обоснование выбора среды программирования 9
4 Описание методов решения задач, алгоритмов, структуры программы 11
5 Руководство программиста 13
6 Руководство пользователя 14
ЗАКЛЮЧЕНИЕ 32
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 33
ПРИЛОЖЕНИЕ 34

Вложенные файлы: 1 файл

Курсовая.docx

— 2.00 Мб (Скачать файл)

  if Form2.LabeledEdit7.Text <> '' then str:= str + ' AND price <='+ Form2.LabeledEdit7.Text;

 

  str:=str+';';

 

  Unit5.DataModule5.ADOQuery1.SQL.Clear;

  Unit5.DataModule5.ADOQuery1.SQL.Add(str);

  Unit5.DataModule5.ADOQuery1.Active:=True;

  Form2.Label3.Caption:='Количество записей : ' + InTtoStr(DBgridEh1.DataSource.DataSet.RecordCount);

end;

 

//Сортировка gred

procedure TForm2.DBGridEh1TitleClick(Column: TColumnEh);

var

  i:integer;

begin

  if Unit5.DataModule5.ADOQuery1.Active=False then exit;

  if Unit5.DataModule5.ADOQuery1.RecordCount=0 then exit;

  if Column.Title.SortMarker=smNoneEh then

    begin

      Unit5.DataModule5.ADOQuery1.Sort:=Column.FieldName+'';

      Column.Title.SortMarker:=smUpEh;

    end

  else

    if Column.Title.SortMarker=smUpEh then

      begin

        Unit5.DataModule5.ADOQuery1.Sort:=Column.FieldName+' DESC' ;

        Column.Title.SortMarker:=smDownEh;

      end

    else

      if Column.Title.SortMarker=smDownEh then

        begin

          Unit5.DataModule5.ADOQuery1.Sort:='';

          Column.Title.SortMarker:=smNoneEh;

        end;

  for i:=0 to DBGridEh1.Columns.Count-1 do

  if DBGridEh1.Columns[i]<>Column then

  DBGridEh1.Columns[i].Title.SortMarker:=smNoneEh;

end;

 

//Очитить добавить

procedure TForm2.BitBtn5Click(Sender: TObject);

begin

  Form2.LabeledEdit8.Clear;

  Form2.LabeledEdit9.Clear;

  Form2.LabeledEdit10.Clear;

  Form2.LabeledEdit11.Clear;

  Form2.SpinEdit1.Text:='0';

  Form2.ComboBox4.ItemIndex:=-1;

end;

 

//Добавить форма

procedure TForm2.BitBtn4Click(Sender: TObject);

var

  st: String;

begin

  if (LabeledEdit8.Text = '') then

    begin

      LabeledEdit8.SetFocus;

      Application.MessageBox('Вы заполнили не все поля!','Предупреждение!');

      Exit;

    end;

  if (LabeledEdit9.Text = '') then

    begin

      LabeledEdit9.SetFocus;

      Application.MessageBox('Вы заполнили не все поля!','Предупреждение!');

      Exit;

    end;

  if (LabeledEdit10.Text = '') then

    begin

      LabeledEdit10.SetFocus;

      Application.MessageBox('Вы заполнили не все поля!','Предупреждение!');

      Exit;

    end;

  if (LabeledEdit11.Text = '') then

    begin

      LabeledEdit11.SetFocus;

      Application.MessageBox('Вы заполнили не все поля!','Предупреждение!');

      Exit;

    end;

  if (ComboBox4.ItemIndex = -1) then

    begin

      ComboBox4.SetFocus;

      Application.MessageBox('Выберите наличие!','Предупреждение!');

      Exit;

    end;

 

  case Form2.ComboBox4.ItemIndex of

    0: st := 'Имеется';

    1: st := 'Нет  в наличии';

  end;

  Unit5.DataModule5.ADOQuery1.Insert;

  DBGridEh1.DataSource.DataSet.FieldByName('author').AsString := Form2.LabeledEdit8.Text;

  DBGridEh1.DataSource.DataSet.FieldByName('title').AsString := Form2.LabeledEdit9.Text;

  DBGridEh1.DataSource.DataSet.FieldByName('kateg').AsString := Form2.LabeledEdit10.Text;

  DBGridEh1.DataSource.DataSet.FieldByName('price').AsInteger := StrToInt(Form2.LabeledEdit11.Text);

  DBGridEh1.DataSource.DataSet.FieldByName('nal').AsString := st;

  DBGridEh1.DataSource.DataSet.FieldByName('kol').AsInteger := StrToInt(Form2.SpinEdit1.Text);

  Unit5.DataModule5.ADOQuery1.Post;

 

  Form2.LabeledEdit8.Clear;

  Form2.LabeledEdit9.Clear;

  Form2.LabeledEdit10.Clear;

  Form2.LabeledEdit11.Clear;

  Form2.ComboBox4.ItemIndex:=-1;

  Form2.SpinEdit1.Clear;

  try

    Unit5.DataModule5.ADOQuery1.SQL.Clear;

    Unit5.DataModule5.ADOQuery1.SQL.Add('SELECT * FROM books');

    Unit5.DataModule5.ADOQuery1.Active:=True;

    Form2.Label3.Caption:='Количество записей : ' + InTtoStr(DBgridEh1.DataSource.DataSet.RecordCount);

    Form3.Label3.Caption:='Количество записей : ' + InTtoStr(DBgridEh1.DataSource.DataSet.RecordCount);

    Form4.Label3.Caption:='Количество записей : ' + InTtoStr(DBgridEh1.DataSource.DataSet.RecordCount);

  except

  on e:Exception do

  end;

end;

 

//Удаление форма

procedure TForm2.BitBtn6Click(Sender: TObject);

var

  R: Word; // переменная, в которой хранится результат

begin

  R:=MessageDlg('Вы действитеьно  хотите удалить эту запись?',mtConfirmation,[mbYes,mbNo],0);

  if R=mrYes then // если нажата кнопка Yes

    begin

      Unit5.DataModule5.ADOQuery1.Delete;

    end;

  if R=mrNo then // если нажата кнопка No

    begin

 

    end;

  Form2.Label3.Caption:='Количество записей : ' + InTtoStr(DBgridEh1.DataSource.DataSet.RecordCount);

end;

 

//Редактирование форма

procedure TForm2.BitBtn7Click(Sender: TObject);

var

  st: String;

begin

  case Form2.DBComboBox2.ItemIndex of

    0: st := 'Имеется';

    1: st := 'Нет  в наличии';

  end;

 

  Unit5.DataModule5.ADOQuery1.Edit;

  DBGridEh1.DataSource.DataSet.FieldByName('author').AsString := Form2.DBEdit6.Text;

  DBGridEh1.DataSource.DataSet.FieldByName('title').AsString := Form2.DBEdit10.Text;

  DBGridEh1.DataSource.DataSet.FieldByName('kateg').AsString := Form2.DBEdit7.Text;

  DBGridEh1.DataSource.DataSet.FieldByName('price').AsInteger := StrToInt(Form2.DBEdit8.Text);

  DBGridEh1.DataSource.DataSet.FieldByName('nal').AsString := st;

  DBGridEh1.DataSource.DataSet.FieldByName('kol').AsInteger := StrToInt(Form2.DBEdit9.Text);

  Unit5.DataModule5.ADOQuery1.Post;

  Form2.Label3.Caption:='Количество записей : ' + InTtoStr(DBgridEh1.DataSource.DataSet.RecordCount);

end;

 

 

procedure TForm2.FormCreate(Sender: TObject);

begin

  Form2.LabeledEdit1.MaxLength:=20;

  Form2.LabeledEdit2.MaxLength:=30;

  Form2.LabeledEdit3.MaxLength:=30;

  Form2.LabeledEdit4.MaxLength:=6;

  Form2.LabeledEdit5.MaxLength:=6;

  Form2.LabeledEdit6.MaxLength:=6;

  Form2.LabeledEdit7.MaxLength:=6;

  Form2.LabeledEdit8.MaxLength:=20;

  Form2.LabeledEdit9.MaxLength:=30;

  Form2.LabeledEdit10.MaxLength:=30;

  Form2.LabeledEdit11.MaxLength:=6;

end;

 

//Поис меню

procedure TForm2.N8Click(Sender: TObject);

var

  str: String;

begin

  if Form6.ShowModal = mrOk then

    begin

        str:= 'SELECT * FROM books WHERE 1=1 ' ;

 

        if Form6.ComboBox1.Itemindex = 1 then str:= str + ' AND nal Like ''%Имеется%''';

        if Form6.ComboBox1.Itemindex = 2 then str:= str + ' AND nal Like ''%Нет в наличии%''';

 

        if Form6.Edit1.Text <> '' then str:= str + ' AND author LIKE "%'+ Form6.Edit1.Text+'%" ';

        if Form6.Edit2.Text <> '' then str:= str + ' AND title LIKE "%'+ Form6.Edit2.Text+'%" ';

        if Form6.Edit3.Text <> '' then str:= str + ' AND kateg LIKE "%'+ Form6.Edit3.Text+'%" ';

        if Form6.Edit4.Text <> '' then str:= str + ' AND price >='+ Form6.Edit4.Text;

        if Form6.Edit5.Text <> '' then str:= str + ' AND price <='+ Form6.Edit5.Text;

        if Form6.Edit6.Text <> '' then str:= str + ' AND price >='+ Form6.Edit6.Text;

        if Form6.Edit7.Text <> '' then str:= str + ' AND price <='+ Form6.Edit7.Text;

 

        str:=str+';';

 

        Unit5.DataModule5.ADOQuery1.SQL.Clear;

        Unit5.DataModule5.ADOQuery1.SQL.Add(str);

        Unit5.DataModule5.ADOQuery1.Active:=True;

        Form2.Label3.Caption:='Количество записей : ' + InTtoStr(DBgridEh1.DataSource.DataSet.RecordCount);

    end;

end;

 

//Добавить меню

procedure TForm2.N13Click(Sender: TObject);

var

  st: string;

begin

    if Form8.ShowModal = mrOk then

    begin

      case Form8.ComboBox1.ItemIndex of

        0: st := 'Имеется';

        1: st := 'Нет в наличии';

      end;

      Unit5.DataModule5.ADOQuery1.Insert;

      DBGridEh1.DataSource.DataSet.FieldByName('author').AsString := Form8.Edit1.Text;

      DBGridEh1.DataSource.DataSet.FieldByName('title').AsString := Form8.Edit2.Text;

      DBGridEh1.DataSource.DataSet.FieldByName('kateg').AsString := Form8.Edit3.Text;

      DBGridEh1.DataSource.DataSet.FieldByName('price').AsInteger := StrToInt(Form8.Edit4.Text);

      DBGridEh1.DataSource.DataSet.FieldByName('nal').AsString := st;

      DBGridEh1.DataSource.DataSet.FieldByName('kol').AsInteger := StrToInt(Form8.SpinEdit1.Text);

      Unit5.DataModule5.ADOQuery1.Post;

      Form8.Edit1.Clear;

      Form8.Edit2.Clear;

      Form8.Edit3.Clear;

      Form8.Edit4.Clear;

      Form8.SpinEdit1.Text:='0';

      Form8.ComboBox1.ItemIndex:=-1;

      Form2.Label3.Caption:='Количество записей : ' + InTtoStr(DBgridEh1.DataSource.DataSet.RecordCount);

     

    end;

end;

 

procedure TForm2.N14Click(Sender: TObject);

var

  R: Word; // переменная, в которой хранится результат

begin

  if Form9.ShowModal = mrOk then

    begin

      R:=MessageDlg('Вы действитеьно хотите удалить эту запись?',mtConfirmation,[mbYes,mbNo],0);

      if R=mrYes then // если нажата кнопка Yes

        begin

          Unit5.DataModule5.ADOQuery1.Delete;

        end;

      if R=mrNo then // если нажата кнопка No

        begin

 

        end;

      Form2.Label3.Caption:='Количество записей : ' + InTtoStr(DBgridEh1.DataSource.DataSet.RecordCount);

    end;

end;

 

//Редактирование меню

procedure TForm2.N15Click(Sender: TObject);

var

  st: String;

begin

  if Form10.ShowModal = mrOk then

    begin

      case Form10.DBComboBox1.ItemIndex of

        0: st := 'Имеется';

        1: st := 'Нет в наличии';

      end;

      Unit5.DataModule5.ADOQuery1.Edit;

      DBGridEh1.DataSource.DataSet.FieldByName('author').AsString := Form10.DBEdit1.Text;

      DBGridEh1.DataSource.DataSet.FieldByName('title').AsString := Form10.DBEdit2.Text;

      DBGridEh1.DataSource.DataSet.FieldByName('kateg').AsString := Form10.DBEdit3.Text;

      DBGridEh1.DataSource.DataSet.FieldByName('price').AsInteger := StrToInt(Form10.DBEdit4.Text);

      DBGridEh1.DataSource.DataSet.FieldByName('nal').AsString := st;

      DBGridEh1.DataSource.DataSet.FieldByName('kol').AsInteger := StrToInt(Form10.DBEdit5.Text);

      Unit5.DataModule5.ADOQuery1.Post;

      Form2.Label3.Caption:='Количество записей : ' + InTtoStr(DBgridEh1.DataSource.DataSet.RecordCount);

    end;

end;

 

//О программе

procedure TForm2.N18Click(Sender: TObject);

begin

  Form12.Show;

end;

 

//Справка

procedure TForm2.N17Click(Sender: TObject);

begin

  Form13.Show;

end;

 

//Сортировка автор ASC

procedure TForm2.RadioButton1Click(Sender: TObject);

begin

  Unit5.DataModule5.ADOQuery1.Sort:='[author] ASC';

end;

 

//Сортировка автор DESC

procedure TForm2.RadioButton2Click(Sender: TObject);

begin

  Unit5.DataModule5.ADOQuery1.Sort:='[author] DESC';

end;

 

//Сортировка название ASC

procedure TForm2.RadioButton3Click(Sender: TObject);

begin

  Unit5.DataModule5.ADOQuery1.Sort:='[title] ASC';

end;

 

//Сортировка название DESC

procedure TForm2.RadioButton4Click(Sender: TObject);

begin

  Unit5.DataModule5.ADOQuery1.Sort:='[title] DESC';

end;

 

//Сортировка категория ASC

procedure TForm2.RadioButton5Click(Sender: TObject);

begin

  Unit5.DataModule5.ADOQuery1.Sort:='[kateg] ASC';

end;

 

//Сортировка категория DESC

procedure TForm2.RadioButton6Click(Sender: TObject);

begin

  Unit5.DataModule5.ADOQuery1.Sort:='[kateg] DESC';

end;

 

//Сортировка цена ASC

procedure TForm2.RadioButton7Click(Sender: TObject);

begin

  Unit5.DataModule5.ADOQuery1.Sort:='[price] ASC';

end;

 

//Сортировка цена DESC

procedure TForm2.RadioButton8Click(Sender: TObject);

begin

  Unit5.DataModule5.ADOQuery1.Sort:='[price] DESC';

end;

 

//Сортировка наличие ASC

procedure TForm2.RadioButton9Click(Sender: TObject);

begin

  Unit5.DataModule5.ADOQuery1.Sort:='[nal] ASC';

end;

 

//Сортировка наличие DESC

procedure TForm2.RadioButton10Click(Sender: TObject);

begin

  Unit5.DataModule5.ADOQuery1.Sort:='[nal] DESC';

end;

 

//Сортировка количество ASC

procedure TForm2.RadioButton11Click(Sender: TObject);

begin

  Unit5.DataModule5.ADOQuery1.Sort:='[kol] ASC';

end;

 

//Сортировка количество DESC

procedure TForm2.RadioButton12Click(Sender: TObject);

begin 

  Unit5.DataModule5.ADOQuery1.Sort:='[kol] DESC';

end;

 

end.

 

Форма пользователя «Продавец»

 

unit Unit3;

 

var

  Form3: TForm3;

 

implementation

 

uses Unit1, Unit2, Unit4, Unit5, Unit6, Unit7, Unit12, Unit13, Unit14,

  Unit15;

 

{$R *.dfm}

 

//Выход

procedure TForm3.N6Click(Sender: TObject);

var

  R: Word; // переменная, в которой хранится результат

begin

  R:=MessageDlg('Вы действитеьно  хотите выйти?',mtConfirmation,[mbYes,mbNo],0);

  if R=mrYes then // если нажата кнопка Yes

    begin

      Application.Terminate

    end;

  if R=mrNo then // если нажата кнопка No

    begin

      // завершаем работу программы без  сохранения

    end;

end;

 

//Смена пользователя

procedure TForm3.N4Click(Sender: TObject);

begin

  Form3.Close;

  Form1.Show;

  Form1.Width:=220;

  Form1.Height:=225;

  Form1.LabeledEdit1.Visible:=False;

  Form1.BitBtn2.Visible:=False;

  Form1.RadioButton2.Checked:=False;

  if Form15.Showing then

    begin

      Form15.Close;

    end;

  if Form14.Showing then

    begin

      Form14.Close;

    end;

  if Form13.Showing then

    begin

      Form13.Close;

    end;

  if Form12.Showing then

    begin

      Form12.Close;

    end;

end;

 

//Excel

procedure TForm3.Excel1Click(Sender: TObject);

var

  Ex: Variant;

  row, col: Integer;

begin

  DBGridEh1.DataSource.DataSet.First;

  Ex:=CreateOleObject('Excel.Application');

  Ex.Workbooks.Add;

  Ex.WorkBooks[1].WorkSheets[1].Name := 'Отчет';

  for row :=0 to DBGridEh1.DataSource.DataSet.RecordCount-1 do

    begin

      if row=0 then DBGridEh1.DataSource.DataSet.First else DBGridEh1.DataSource.DataSet.Next;

      for col :=0 to DBGridEh1.Columns.Count-1 do

        begin

          Ex.WorkBooks[1].WorkSheets[1].Cells[2,col+1] := DBGridEh1.Columns[col].Title.Caption;

          Ex.WorkBooks[1].WorkSheets[1].Cells[row+3,col+1] := DBGridEh1.DataSource.DataSet.Fields[col].AsString;

          Ex.WorkBooks[1].WorkSheets[1].Cells[row+3,1] := row+1;

        end ;

    end;

  Ex.Visible := True;

  Unit5.DataModule5.ADOQuery1.First;

end;

 

//Печать

procedure TForm3.N2Click(Sender: TObject);

begin

  PrintDBGridEh1.Preview;

end;

 

//Дата и время

procedure TForm3.Timer1Timer(Sender: TObject);

begin

  Label1.Caption:='Время : ' + TimeToStr(time);

  Label2.Caption:='Дата : '+ DateToStr(date);

  Application.ProcessMessages;

end;

 

//Обновить автомат

procedure TForm3.Timer2Timer(Sender: TObject);

begin

  try

    Unit5.DataModule5.ADOQuery1.Refresh;

    Form3.Label3.Caption:='Количество записей : ' + InTtoStr(DBgridEh1.DataSource.DataSet.RecordCount);

    Unit5.DataModule5.ADOQuery1.Refresh;

  except

  on e:Exception do

  end;

end;

 

//Обновить меню

procedure TForm3.N11Click(Sender: TObject);

begin

  try

    Unit5.DataModule5.ADOQuery1.Refresh;

  except

  on e:Exception do

  end;

  Form3.Label3.Caption:='Количество записей : ' + InTtoStr(DBgridEh1.DataSource.DataSet.RecordCount);

end;

 

//Все записи

procedure TForm3.N10Click(Sender: TObject);

begin

  try

    Unit5.DataModule5.ADOQuery1.SQL.Clear;

    Unit5.DataModule5.ADOQuery1.SQL.Add('SELECT * FROM books');

    Unit5.DataModule5.ADOQuery1.Active:=True;

  except

  on e:Exception do

  end;

  Form3.Label3.Caption:='Количество записей : ' + InTtoStr(DBgridEh1.DataSource.DataSet.RecordCount);

end;

 

procedure TForm3.LabeledEdit4KeyPress(Sender: TObject; var Key: Char);

begin

  if Key in ['А'..'Я']+['а'..'я']+['a'..'z']+['A'..'Z']+

  ['`']+['~']+['!']+['@']+['"']+['#']+['№']+[';']+['$']+

  ['%']+['^']+[':']+['&']+['?']+['(']+[')']+['-']+['_']+

  ['=']+['+']+['/']+[',']+['.']+['Ё']+['ё']+['|']+['*']+

  ['{']+['}']+['[']+[']']+['<']+['>']+[' ']

  then Key:=#0;

end;

 

procedure TForm3.LabeledEdit6KeyPress(Sender: TObject; var Key: Char);

begin

  if Key in ['А'..'Я']+['а'..'я']+['a'..'z']+['A'..'Z']+

  ['`']+['~']+['!']+['@']+['"']+['#']+['№']+[';']+['$']+

  ['%']+['^']+[':']+['&']+['?']+['(']+[')']+['-']+['_']+

  ['=']+['+']+['/']+[',']+['.']+['Ё']+['ё']+['|']+['*']+

  ['{']+['}']+['[']+[']']+['<']+['>']+[' ']

Информация о работе Разработка программы для автоматизации работы книжного каталога