Разработка АРМ администратора кафе

Обоснование необходимости автоматизации рабочего места администратора кафе. Краткий анализ существующих систем управления и выбор стратегии автоматизации. Анализ требований к системе. Проектирование информационной базы. Контрольный пример реализации.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 29.01.2013
Размер файла 1,8 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

begin

//если есть записи про клиентов

if (MyTableClients.RecordCount > 0) then

begin

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

MyTableOrders.Filter := 'customer_id='+QuotedStr(MyTableClientscustomer_id.AsString);

//если данные клиент создавал заказы, то

if (MyTableOrders.RecordCount > 0) then

begin

//спрашиваем, удалять ли клиента вместе со всеми его заказами

if Application.MessageBox(PChar('У данного заказчика есть определенные заказы. Удаляя данного заказчика вы '+

'подтверждаете удаление всех созданных им заказов!'), 'Внимание!', MB_OKCANCEL)=id_OK then

begin

MyTableOrders.First; //переходим на первый заказ клиента

//удаляем все заказы клиента

while (MyTableOrders.RecordCount>0) do

MyTableOrders.Delete;

//удаляем самого клиента

MyTableClients.Delete;

end;

end

else

if Application.MessageBox(PChar('Вы действительно хотите удалить запись?'), 'Внимание!', MB_OKCANCEL)=id_OK then

MyTableClients.Delete;

end;

end;

procedure TForm1.BitBtnDelOrderClick(Sender: TObject);

begin

if (MyTableOrders.RecordCount > 0) then

if Application.MessageBox(PChar('Вы действительно хотите удалить запись?'), 'Внимание!', MB_OKCANCEL)=id_OK then

MyTableOrders.Delete;

end;

procedure TForm1.BitBtnAddOrderClick(Sender: TObject);

begin

MyTableOrders.Append;

FormOrder.DateTimePickerStart.Date := Date();

FormOrder.DateTimePickerEnd.Date := Date();

FormOrder.ShowModal;

end;

procedure TForm1.BitBtnEditOrderClick(Sender: TObject);

begin

if (MyTableOrdersdatestart.AsString <> '') then

FormOrder.DateTimePickerStart.Date := MyTableOrdersdatestart.AsDateTime

else

FormOrder.DateTimePickerStart.Date := Date;

if (MyTableOrdersdateend.AsString <> '') then

FormOrder.DateTimePickerEnd.Date := MyTableOrdersdateend.AsDateTime

else

FormOrder.DateTimePickerEnd.Date := Date;

FormOrder.ShowModal;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

PageControl1.Enabled := false;

DateTimePickerOrderDate.Date := Date();

if (LoadOptions = false) then

begin

ShowMessage('Не удалось найти файл с настройками! Произведите настройки в меню "Файл->Настройки соединения"');

exit;

end;

try

MyConnection1.Connect;

if (MyConnection1.Connected) then

begin

PageControl1.Enabled := true;

MyTableOrders.Active := true;

MyTableClients.Active := true;

MyTableOrders.Filter := 'datestart>='+QuotedStr(DateToStr(DateTimePickerOrderDate.Date));

end

else

ShowMessage('Не удалось подключиться к базе данных! Проверьте настройки подключения.');

except

ShowMessage('Не удалось подключиться к базе данных! Проверьте настройки подключения.');

end;

end;

procedure TForm1.DateTimePickerOrderDateCloseUp(Sender: TObject);

begin

MyTableOrders.Filter := 'datestart>='+QuotedStr(DateToStr(DateTimePickerOrderDate.Date));

end;

function TForm1.IsOLEObjectInstalled(Name: String): boolean;

var

ClassID: TCLSID;

Rez : HRESULT;

begin

Rez := CLSIDFromProgID(PWideChar(WideString(Name)), ClassID);

if Rez = S_OK then

Result := true

else

Result := false;

end;

procedure TForm1.BitBtnExcelOrderClick(Sender: TObject);

var

XLApp, Sheet, Colum: Variant;

index, i: integer;

name: String;

begin

if IsOLEObjectInstalled('Excel.Application') then

begin

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

XLApp.Visible:=true;

XLApp.WorkBooks.Add(-4167);

name :='Заказы';

XLApp.WorkBooks[1].WorkSheets[1].Name:= name;

Colum:=XLApp.WorkBooks[1].WorkSheets[name].Columns;

Colum.Columns[1].ColumnWidth:=20;

Colum.Columns[2].ColumnWidth:=30;

Colum.Columns[3].ColumnWidth:=20;

Colum.Columns[4].ColumnWidth:=20;

Colum.Columns[5].ColumnWidth:=20;

Colum.Columns[6].ColumnWidth:=20;

Colum.Columns[7].ColumnWidth:=40;

Colum:=XLApp.WorkBooks[1].WorkSheets[name].Rows;

Colum.Rows[2].Font.Bold:=true;

Colum.Rows[1].Font.Bold:=true;

Colum.Rows[1].Font.Color:=clBlue;

Colum.Rows[1].Font.size:=14;

Sheet:=XLApp.Workbooks[1].WorkSheets[name];

Sheet.Cells[1,2]:= name;

Sheet.Cells[2,1]:='Номер заказа';

Sheet.Cells[2,2]:='Заказчик';

Sheet.Cells[2,3]:='Дата начала';

Sheet.Cells[2,4]:='Время начала';

Sheet.Cells[2,5]:='Дата окончания';

Sheet.Cells[2,6]:='Время окончания';

Sheet.Cells[2,7]:='Объект брони';

index:=3;

MyTableOrders.First;

for i:=0 to MyTableOrders.RecordCount-1 do

begin

Sheet.Cells[index, 1]:=IntToStr(MyTableOrdersorder_id.AsInteger);

Sheet.Cells[index, 2]:=MyTableOrdersClient.AsString;

Sheet.Cells[index, 3]:=DateToStr(MyTableOrdersdatestart.AsDateTime);

Sheet.Cells[index, 4]:=MyTableOrderstimestart.AsString;

Sheet.Cells[index, 5]:=DateToStr(MyTableOrdersdateend.AsDateTime);

Sheet.Cells[index, 6]:=MyTableOrderstimeend.AsString;

Sheet.Cells[index, 7]:=MyTableOrderstarget.AsString;

Inc(index);

MyTableOrders.Next;

end;

end

else

ShowMessage('Возможно у Вас не установлен Excel');

end;

procedure TForm1.BitBtnExcelClientClick(Sender: TObject);

var

XLApp, Sheet, Colum: Variant;

index, i: integer;

name: String;

begin

if IsOLEObjectInstalled('Excel.Application') then

begin

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

XLApp.Visible:=true;

XLApp.WorkBooks.Add(-4167);

name :='Клиенты';

XLApp.WorkBooks[1].WorkSheets[1].Name:= name;

Colum:=XLApp.WorkBooks[1].WorkSheets[name].Columns;

Colum.Columns[1].ColumnWidth:=16;

Colum.Columns[2].ColumnWidth:=30;

Colum.Columns[3].ColumnWidth:=16;

Colum.Columns[4].ColumnWidth:=16;

Colum.Columns[5].ColumnWidth:=16;

Colum.Columns[6].ColumnWidth:=16;

Colum.Columns[7].ColumnWidth:=40;

Colum:=XLApp.WorkBooks[1].WorkSheets[name].Rows;

Colum.Rows[2].Font.Bold:=true;

Colum.Rows[1].Font.Bold:=true;

Colum.Rows[1].Font.Color:=clBlue;

Colum.Rows[1].Font.size:=14;

Sheet:=XLApp.Workbooks[1].WorkSheets[name];

Sheet.Cells[1,2]:= name;

Sheet.Cells[2,1]:='Код клиента';

Sheet.Cells[2,2]:='Ф.И.О';

Sheet.Cells[2,3]:='Телефон';

Sheet.Cells[2,4]:='Email';

Sheet.Cells[2,5]:='Паспорт';

Sheet.Cells[2,6]:='Дата рождения';

Sheet.Cells[2,7]:='Комментарий';

index:=3;

MyTableClients.First;

for i:=0 to MyTableClients.RecordCount-1 do

begin

Sheet.Cells[index, 1]:=IntToStr(MyTableClientscustomer_id.AsInteger);

Sheet.Cells[index, 2]:=MyTableClientsfio.AsString;

Sheet.Cells[index, 3]:=MyTableClientsphone.AsString;

Sheet.Cells[index, 4]:=MyTableClientsemail.AsString;

Sheet.Cells[index, 5]:=MyTableClientspassport.AsString;

Sheet.Cells[index, 6]:=DateToStr(MyTableClientsbirthdate.AsDateTime);

Sheet.Cells[index, 7]:=MyTableClientscomment.AsString;

Inc(index);

MyTableClients.Next;

end;

end

else

ShowMessage('Возможно у Вас не установлен Excel');

end;

function TForm1.LoadOptions: boolean;

begin

if (FileExists(ExtractFilePath(Application.exename) + 'ConnectOptions.ini')) then

begin

Ini := TIniFile.Create(ExtractFilePath(Application.exename)

+ 'ConnectOptions.ini');

MyConnection1.Server := Ini.ReadString('STRING', 'ServerHost', '127.0.0.1');

MyConnection1.Port := StrToInt(Ini.ReadString('STRING', 'Port', '3306'));

MyConnection1.Username := Ini.ReadString('STRING', 'Login', 'root');

MyConnection1.Password := Ini.ReadString('STRING', 'Password', 'root');

Ini.Free;

Result := true;

end

else

Result := false;

end;

procedure TForm1.N2Click(Sender: TObject);

begin

FormConnectOptions.ShowModal;

end;

procedure TForm1.TabSheet1Show(Sender: TObject);

begin

if (MyConnection1.Connected) then

begin

MyTableOrders.Refresh;

MyTableOrders.Filter := 'datestart>='+QuotedStr(DateToStr(DateTimePickerOrderDate.Date));

end;

end;

procedure TForm1.TabSheet2Show(Sender: TObject);

begin

if (MyConnection1.Connected) then

MyTableClients.Refresh;

end;

procedure TForm1.N10Click(Sender: TObject);

begin

ShowMessage('Данная программа предназначена для учета заказов клиентов кафе.');

end;

end.

unit ClientUnit;// Работа с клиентом

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Mask, DBCtrls, Buttons, ExtCtrls, ComCtrls;

type

TFormClient = class(TForm)

Image1: TImage;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

DBEdit3: TDBEdit;

DBEdit4: TDBEdit;

DBEdit6: TDBEdit;

DateTimePickerBirthdayClient: TDateTimePicker;

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

private

{ Private declarations }

function GetDateFromDateTime(datet : TDateTime) : TDateTime;

public

{ Public declarations }

end;

var

FormClient: TFormClient;

implementation

uses Unit1;

{$R *.dfm}

procedure TFormClient.BitBtn1Click(Sender: TObject);

begin

//если дата рождения клиента больше текущей, то выводим сообщение на экран

if (GetDateFromDateTime(DateTimePickerBirthdayClient.DateTime) > GetDateFromDateTime(Date())) then

begin

ShowMessage('Дата рождения не может быть больше текущей!');

exit;

end;

Form1.MyTableClients.Edit;

Form1.MyTableClientsbirthdate.AsDateTime := DateTimePickerBirthdayClient.Date;

if (Form1.MyTableClients.Modified) then

begin

Form1.MyTableClients.Post;

end;

Close;

end;

procedure TFormClient.BitBtn2Click(Sender: TObject);

begin

Form1.MyTableClients.Cancel;

Close;

end;

procedure TFormClient.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Form1.MyTableClients.Cancel;

end;

function TFormClient.GetDateFromDateTime(datet: TDateTime): TDateTime;

var

year, month, day: Word;

newDate: TDateTime;

begin

DecodeDate(datet, year, month, day);

newDate := EncodeDate(year, month, day);

result := newDate;

end;

end.

unit OrderUnit;// Работа с заказом

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, StdCtrls, Buttons, Mask, DBCtrls, ComCtrls;

type

TFormOrder = class(TForm)

Image1: TImage;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

DBLookupComboBox1: TDBLookupComboBox;

DBEdit1: TDBEdit;

DBEditTimeStart: TDBEdit;

DBEditTimeEnd: TDBEdit;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

DateTimePickerStart: TDateTimePicker;

DateTimePickerEnd: TDateTimePicker;

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

private

{ Private declarations }

function GetDateFromDateTime(datet : TDateTime) : TDateTime;

public

{ Public declarations }

end;

var

FormOrder: TFormOrder;

implementation

uses Unit1;

{$R *.dfm}

procedure TFormOrder.BitBtn1Click(Sender: TObject);

var

timeStart, timeEnd: Integer;

begin

//проверка на корректность времени начала

if (StrToInt(DBEditTimeStart.Text[1])*10 + StrToInt(DBEditTimeStart.Text[2]) > 23) or

(StrToInt(DBEditTimeStart.Text[4])*10 + StrToInt(DBEditTimeStart.Text[5]) > 59) then

begin

ShowMessage('Введите корректное время начала');

exit;

end;

//проверка на корректность времени окончания

if (StrToInt(DBEditTimeEnd.Text[1])*10 + StrToInt(DBEditTimeEnd.Text[2]) > 23) or

(StrToInt(DBEditTimeEnd.Text[4])*10 + StrToInt(DBEditTimeEnd.Text[5]) > 59) then

begin

ShowMessage('Введите корректное время окончания');

exit;

end;

if (GetDateFromDateTime(DateTimePickerStart.DateTime) > GetDateFromDateTime(DateTimePickerEnd.DateTime)) then

begin

ShowMessage('Дата начала должна быть меньше, чем дата окончания!');

exit;

end;

//если дата начала и дата окончания одинакова, то следует проверить, что бы

//время окончания было больше, чем время начала

if (GetDateFromDateTime(DateTimePickerStart.DateTime) = GetDateFromDateTime(DateTimePickerEnd.DateTime)) then

begin

timeStart := (StrToInt(DBEditTimeStart.Text[1])*10 + StrToInt(DBEditTimeStart.Text[2]))*60 + //часы в минутах

StrToInt(DBEditTimeStart.Text[4])*10 + StrToInt(DBEditTimeStart.Text[5]);

timeEnd := (StrToInt(DBEditTimeEnd.Text[1])*10 + StrToInt(DBEditTimeEnd.Text[2]))*60 + //часы в минутах

StrToInt(DBEditTimeEnd.Text[4])*10 + StrToInt(DBEditTimeEnd.Text[5]);

if (timeStart >= timeEnd) then

begin

ShowMessage('Время начала должно быть меньше, чем время конца!');

exit;

end;

end;

Form1.MyTableOrders.Edit;

Form1.MyTableOrdersdatestart.AsDateTime := DateTimePickerStart.Date;

Form1.MyTableOrdersdateend.AsDateTime := DateTimePickerEnd.Date;

if (Form1.MyTableOrders.Modified) then

Form1.MyTableOrders.Post;

Close();

end;

procedure TFormOrder.BitBtn2Click(Sender: TObject);

begin

Form1.MyTableOrders.Cancel;

Close();

end;

procedure TFormOrder.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Form1.MyTableOrders.Cancel;

end;

function TFormOrder.GetDateFromDateTime(datet: TDateTime): TDateTime;

var

year, month, day: Word;

newDate: TDateTime;

begin

DecodeDate(datet, year, month, day);

newDate := EncodeDate(year, month, day);

result := newDate;

end;

end.

Размещено на Allbest.ru


Подобные документы

  • Исследование деятельности предприятия, его основные бизнес-процессы, обоснование необходимости разработки автоматизированной системы. Анализ существующих систем и выбор стратегии автоматизации предприятия. Реализация и оценка программного решения.

    дипломная работа [2,8 M], добавлен 24.03.2014

  • Схема автоматизации магазина и бизнес-процессов администратора отдела продаж автомагазина "Москвич". Снижение трудоемкости подбора автозапчастей. Формирование сведений о запросах. Функционирование автоматизированного рабочего места администратора.

    курсовая работа [730,1 K], добавлен 21.06.2013

  • Анализ предметной области и описание основных функциональных подсистем автоматизированного рабочего места администратора кинотеатра "Мир". Разработка инфологической модели базы данных и заполнение форм данных. Обеспечение безопасности и доступа к данным.

    курсовая работа [4,4 M], добавлен 27.12.2014

  • Краткий обзор технических средств для промышленной автоматизации. Концепция построения информационной системы производства на базе Proficy. Анализ разработки автоматизации узлов учета нефти автоматизированного рабочего места оператора нефтебазы.

    дипломная работа [5,2 M], добавлен 19.03.2015

  • Инструментальная среда разработки автоматизированной системы "Фотоцентр" - СУБД Microsoft Access. Добавление, редактирование, удаление данных о заказах, киосках, работниках, клиентах. Ведение мониторинга продаж в программе, отслеживание выполнения заказа.

    курсовая работа [1,5 M], добавлен 01.04.2013

  • Анализ существующих разработок и выбор стратегии автоматизации делопроизводства взаимоотношении поставщиков лекарственных препаратов с аптекой. Разработка проекта базы данных аптеки "Ригла". Обоснование экономической эффективности разработки базы данных.

    дипломная работа [3,0 M], добавлен 19.09.2013

  • Офисные программы, необходимые для автоматизации работы турфирмы. Описание входной и выходной информации, структуры базы данных. Аппаратное и программное средства для функционирования автоматизированной информационной системы, ее работоспособность.

    курсовая работа [902,2 K], добавлен 02.05.2017

  • Требования к программному обеспечению и надежности разрабатываемой автоматизированной системы. Словарь предметной области. Схема состава вычислительной системы. Диаграмма объектов и классов. Анализ общих затрат на разработку автоматизации рабочего места.

    курсовая работа [1,4 M], добавлен 30.06.2013

  • Разработка информационной подсистемы автоматизации рабочего места менеджера салона по ремонту мобильных телефонов. Проблемы CRM-систем, необходимость их использования. Система управления базой данных как способ реализации информационной системы.

    дипломная работа [1,4 M], добавлен 28.11.2012

  • Обоснование необходимости автоматизации рабочего места. Выбор среды программирования. Этапы разработки программного продукта. База данных и таблицы. Расчет возможного роста производительности труда от внедрения автоматизированной информационной системы.

    дипломная работа [661,4 K], добавлен 17.07.2016

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.