Разработка АРМ администратора кафе
Обоснование необходимости автоматизации рабочего места администратора кафе. Краткий анализ существующих систем управления и выбор стратегии автоматизации. Анализ требований к системе. Проектирование информационной базы. Контрольный пример реализации.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 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