2.2. Рабочее проектирование
2.2.1. Программное обеспечение
Алгоритмы реализации процедур поиска входной информации Поиск в таблице «Продукт»
Листинг1. Поиск в таблице «Продукт» procedure TForm1.N14Click(Sender: TObject); begin
Form11.RadioGroup1.Items.Clear; Form11.RadioGroup1.Items.Add(‘По коду продукта’); Form11.RadioGroup1.Items.Add(‘По названию продукта’); Form11.RadioGroup1.Items.Add(‘По единице измерения’); if Form11.ShowModal=mrOK then begin
with DataModule2.ADOTable1 do begin
if Form11.RadioGroup1.ItemIndex=0 then Filter:=’ID_product= ‘+ QuotedStr(Form11.Edit1.Text) else if Form11.RadioGroup1.ItemIndex=1 then Filter:=’Product_name= ‘+ QuotedStr(Form11.Edit1.Text) else if Form11.RadioGroup1.ItemIndex=2 then Filter:=’Unit= ‘+ QuotedStr(Form11.Edit1.Text); Filtered:=True;
end; end
end


Поиск в справочнике «Пицца» Листинг 2. Поиск в справочнике «Пицца» procedure TForm9.N4Click(Sender: TObject); begin
Form11.RadioGroup1.Items.Clear; Form11.RadioGroup1.Items.Add(‘По коду пиццы’); Form11.RadioGroup1.Items.Add(‘По названию пиццы’); Form11.RadioGroup1.Items.Add(‘По цене’);
if Form11.ShowModal=mrOK then begin with DataModule2.ADOTable13 do begin if Form11.RadioGroup1.ItemIndex=0 then
Filter:=’ID_pizza= ‘+ QuotedStr(Form11.Edit1.Text) else if Form11.RadioGroup1.ItemIndex=1 then Filter:=’Pizza_name= ‘+ QuotedStr(Form11.Edit1.Text) else if Form11.RadioGroup1.ItemIndex=2 then Filter:=’Pizza_cost= ‘+ QuotedStr(Form11.Edit1.Text); Filtered:=True;
end; end
end;
Рис.2.9. Поиск в справочнике «Пицца»
Рис. 2.10. Результаты поиска
Поиск в справочнике состава пиццы.
Листинг 3. Поиск в справочнике состава пиццы. procedure TForm10.N4Click(Sender: TObject); begin
Form11.RadioGroup1.Items.Clear; Form11.RadioGroup1.Items.Add(‘По коду продукта’); Form11.RadioGroup1.Items.Add(‘По коду пиццы’);
if Form11.ShowModal=mrOK then begin with DataModule2.ADOTable14 do begin if Form11.RadioGroup1.ItemIndex=0 then
Filter:=’ID_product= ‘+ QuotedStr(Form11.Edit1.Text) else if Form11.RadioGroup1.ItemIndex=1 then Filter:=’ID_pizza= ‘+ QuotedStr(Form11.Edit1.Text); Filtered:=True;
end; end
end;
Рис.2.11. Поиск в справочнике состава пиццы.
Рис.2.12. Результаты поиска
Поиск в документе Оформление заказа
Поиск по сумме заказа
Листинг 4. Поиск по сумме заказа в документе Оформление заказа procedure TForm6.N5Click(Sender: TObject);
begin
if Form12.ShowModal = mrOK then begin
with DataModule2.ADOTable5 do Begin
Filter := ‘Sum_of_money= ‘ + QuotedStr(Form12.Edit1.Text); Filtered := true;
end end;
end;
Рис. 2.13. Поиск по сумме заказа в документе Оформление заказа
Рис. 2.14. Результаты поиска
Поиск по дате
Листинг 5. Поиск по дате заказа в документе Оформление заказа procedure TForm6.N6Click(Sender: TObject);
begin
if Form13.ShowModal = mrOK then begin
with DataModule2.ADOTable5 do Begin
Filter := ‘Date= ‘ + DateToStr(Form13.MonthCalendar1.Date); Filtered := true;
end end;
end;
Рис.2.15. Поиск по дате заказа в документе Оформление заказа
Рис.2.16. Результаты поиска
Поиск по коду заказа
Листинг 6. Поиск по коду заказа в документе Оформление заказа procedure TForm6.N7Click(Sender: TObject);
begin
if Form12.ShowModal = mrOK then begin
with DataModule2.ADOTable5 do Begin
Filter := ‘ID_custom= ‘ + QuotedStr(Form12.Edit1.Text); Filtered := true;
end end;
end;
Рис.2.17. Поиск по коду заказа в документе Оформление заказа
Рис. 2.18. Результаты поиска
2.2.1. Программная документация
Система необходима для автоматизации учета запасов на предприятии общественного питания.
Запуск системы происходит путем нажатия на иконку Project1.exe, в папке с файлами системы.
Также необходимо настроить строку подключения к базе данных, для этого следует обратиться к системному администратору.
Пример схемы навигации диалога пользователя представлен на рис. 2.19. Появившись, главная форма предоставляет следующие возможности:
Справочники (с формами Пицца и Состав пиццы); Поиск с различными вариантами поиска; Отчеты; Поступление продуктов; Сформировать меню; Оформление заказа.
На рис. 2.20. показано главное меню системы.

Рис. 2.20. Главное меню системы
1. Отчет «Меню»
Алгоритмы реализации процедур формирования выходной информации
Служит для вывода информации о сформированном меню Листинг 7. Отчет «Меню»
procedure TForm1.N9Click(Sender: TObject); begin
Report1.QuickRep1.PreviewModal; end;
2. Отчет «Заказ продуктов»
Служит для вывода информации о заказе продуктов на день.
Листинг №8. Отчет «Заказ продуктов» procedure TForm1.N10Click(Sender: TObject); begin
Report2.QuickRep1.PreviewModal; end;
Отчет сделан с использованием ADOQuery.
3. Отчет по доходам за период с группировкой по блюдам
Листинг №9. Отчет по доходам
procedure TReportForm3.BitBtn1Click(Sender: TObject); var d1, d2, pn, cd:string;
i,idp, nz, cost, sum, gsum:integer; begin
if StringGrid1.RowCount>2 then StringGrid1.RowCount:=2; DataModule2.ADOQuery5.Close; DataModule2.ADOQuery6.Close; DataModule2.ADOQuery5.SQL.Clear;
DataModule2.ADOQuery5.SQL.Add(‘SELECT Id_pizza, Pizza_name FROM Pizza’);
DataModule2.ADOQuery5.Open; gsum:=0;
i:=1;
DataModule2.ADOQuery5.First;
while not DataModule2.ADOQuery5.Eof do begin idp:=DataModule2.ADOQuery5.FieldByName(‘ID_pizza’).Value; pn:=DataModule2.ADOQuery5.FieldByName(‘Pizza_name’).Value; DateSeparator:=’/’; d1:=FormatDateTime(‘mm/dd/yyyy’,DateTimePicker1.Date); d2:=FormatDateTime(‘mm/dd/yyyy’,DateTimePicker2.Date); DataModule2.ADOQuery6.SQL.Clear; DataModule2.ADOQuery6.SQL.Add(‘SELECT Custom_content.ID_pizza,
Custom_content.ID_custom, Custom_content.Cost, Custom_content.Date FROM Custom_content WHERE (((Custom_content.Date)>=#’+d1+’# And (Custom_content.Date)<=#’+d2+’#)) AND (Custom_content.ID_pizza=:idpz)’);
DataModule2.ADOQuery6.Parameters.ParamByName(‘idpz’).Value:=inttostr(idp); DataModule2.ADOQuery6.Open;
StringGrid1.Cells[0,i]:=pn;
StringGrid1.RowCount:=StringGrid1.RowCount+DataModule2.ADOQuery6.RecordCo unt;
sum:=0; DataModule2.ADOQuery6.First;
while not DataModule2.ADOQuery6.Eof do begin nz:=DataModule2.ADOQuery6.FieldByName(‘ID_custom’).Value; cost:=DataModule2.ADOQuery6.FieldByName(‘Cost’).Value; cd:=DataModule2.ADOQuery6.FieldByName(‘Date’).Value; sum:=sum+cost;
StringGrid1.Cells[1,i+1]:=inttostr(nz); StringGrid1.Cells[2,i+1]:=inttostr(cost);
StringGrid1.Cells[3,i+1]:=cd; DataModule2.ADOQuery6.Next; i:=i+1;
end; gsum:=gsum+sum;
StringGrid1.RowCount:=StringGrid1.RowCount+1; StringGrid1.Cells[1,i+1]:=’СУММА:’;
StringGrid1.Cells[2,i+1]:=inttostr(sum)+’ руб’; i:=i+1;
DataModule2.ADOQuery5.Next; StringGrid1.RowCount:=StringGrid1.RowCount+1;
i:=i+1;
end; StringGrid1.RowCount:=StringGrid1.RowCount+1; StringGrid1.Cells[1,i+1]:=’ОБЩАЯ СУММА:’; StringGrid1.Cells[2,i+1]:=inttostr(gsum)+’ руб’;
end;
Рис.2.21. Отчет по доходам
