
- •1.2.2 Описание структурных единиц документа р001 содержится в таблице 2.
- •1.2.12 Описание структурных единиц видеограммы v004 приведено в таблице 3.
- •1.3.2 Описание структурных единиц файла f001 содержится в таблице 5.
- •1.3.3 Описание структурных единиц файла f002 содержится в таблице 6.
- •1.3.4 Описание структурных единиц файла f003 содержится в таблице 7.
- •1.3.5 Описание структурных единиц файла f004 содержится в таблице 8.
- •1.3.5 Описание структурных единиц файла f005 содержится в таблице 9.
1.3.4 Описание структурных единиц файла f003 содержится в таблице 7.
Таблица 7
Наименование выходных данных |
Идентификатор |
||
vedom.dbf |
F003 |
||
Наименование структурных единиц |
Идентификатор |
Требование к точности |
|
Длина в знаках |
Диапазон |
||
Код детали |
Det |
9(18) |
1000000000000000…99999999999999 |
Наименование изделия |
Naim |
Х(20) |
‘A’-‘Z’,‘А’-‘Я’,‘a’-‘z’, ‘а’-‘я’, ‘–’, ‘ ’
|
Код вида исполнения |
Vid |
9(2) |
10…99 |
Код цеха изготовителя |
Cexiz |
9(3) |
1000…999 |
Распределение объемов производства |
Rasproiz |
9(3),9(1) |
10.0…99.9 |
Цех |
Ceh |
X(20) |
‘A’-‘Z’,‘А’-‘Я’,‘a’-‘z’, ‘а’-‘я’, ‘–’, ‘ ’ |
1.3.5 Описание структурных единиц файла f004 содержится в таблице 8.
Таблица8
Наименование выходных данных |
Идентификатор |
||
spravvid.dbf |
F004 |
||
Наименование структурных единиц |
Идентификатор |
Требование к точности |
|
Длина в знаках |
Диапазон |
||
Код изделия |
Izdel |
9(18) |
1000000000000000…99999999999999 |
Наименование изделия |
Naim |
X(20) |
‘A’-‘Z’,‘А’-‘Я’,‘a’-‘z’, ‘а’-‘я’, ‘–’, ‘ ’ |
Код вида исполнения |
Vid |
9(2) |
10…99 |
Наименование вида исполнения |
Naimvid |
X(20) |
A’-‘Z’,‘А’-‘Я’,‘a’-‘z’, ‘а’-‘я’, ‘–’, ‘ ’ |
Код детали |
Det |
9(18) |
1000000000000000…99999999999999 |
Наименование детали
|
Naimdet
|
X(20)
|
|
1.3.5 Описание структурных единиц файла f005 содержится в таблице 9.
Таблица9
Наименование выходных данных |
Идентификатор |
||
spravvid.dbf |
F004 |
||
Наименование структурных единиц |
Идентификатор |
Требование к точности |
|
Длина в знаках |
Диапазон |
||
Код изделия |
Izdel |
9(18) |
1000000000000000…99999999999999 |
Наименование изделия |
Naim |
X(20) |
A’-‘Z’,‘А’-‘Я’,‘a’-‘z’, ‘а’-‘я’, ‘–’, ‘ ’ |
Код вида исполнения |
Vid |
9(2) |
10…99 |
Наименование вида исполнения |
Naimvid |
X(20) |
A’-‘Z’,‘А’-‘Я’,‘a’-‘z’, ‘а’-‘я’, ‘–’, ‘ ’ |
Код детали |
Det |
9(18) |
1000000000000000…99999999999999 |
Наименование детали
|
Naimdet
|
X(20)
|
A’-‘Z’,‘А’-‘Я’,‘a’-‘z’, ‘а’-‘я’, ‘–’, ‘ ’ |
2 АЛГОРИТМ РЕШЕНИЯ ЗАДАЧИ
2.1 Назначение и характеристика алгоритма
-
Алгоритм предназначен для решения задачи планирования.
2.2 Используемая информация
2.2.1 Необходимая информация по изделию берется из файлов базы данных:
Наименование файла – sostavizd.db
Обозначение файла – F001
Наименование файла – potrgod.db
Обозначение файла – F002
Наименование файла – vedom.db
Обозначение файла – F003
Наименование файла – spravvid.db
Обозначение файла – F004
Наименование файла – Kod_ceh.db
Обозначение файла – F004
2.3 Результаты решения
2.3.1 Видеокадр ответа пользователя на запрос расчет плана:
Наименование – «План на товарный выпуск»
Обозначение – V001
2.3.2 Документ, сформированный для представления в виде распечатки:
Наименование – «План на товарный выпуск»
Обозначение – P001
2.3.3 Видеокадр ответа пользователя на запрос вывода сведений:
Наименование – «Добавление записи»
Обозначение – V002
2.3.4 Видеокадр ответа пользователя на запрос добавления записи в базу данных:
Наименование – «Расчёт плана»
Обозначение – V003
2.3.5 Видеокадр ответа пользователя на запрос расчёта плана:
Наименование – «Запрос по названию изделия»
Обозначение – V004
2.5 Описание алгоритма решения
-
Вывести главное меню программы:
Главная / Справочники/ О программе / Выход
-
Ввести пункт меню:
-
Если введен пункт меню «Главная», то:
-
2.5.1.1.1.1 Вывести пункты подменю:
Расчет плана / Поиск по изделию
2.5.1.1.1.1.1 Если введен пункт подменю «Расчет плана», то при выборе цеха будет выведен отчет плана
2.5.1.1.1.1.2 Если введен пункт подменю «Поиск по изделию», то перейти на п. 2.5.3.
-
Если введен пункт меню «Справочники»
-
Вывести пункты подменю:
Просмотр/Добавление записи
2.5.1.1.1.1.3 Если введен пункт подменю «Просмотр», то перейти на п. 2.5.2.
2.5.1.1.1.1.4 Если введен пункт подменю «Добавление записи», то перейти на п. 2.5.3.
-
Если введен пункт меню «О программе», то:
-
Вывести пункты подменю:
-
Справка / О Программе
-
Если введен пункт подменю «Справка», то перейти на п. 2.5.6.
-
Если введен пункт подменю «О программе», то перейти на п. 2.5.7.
-
Если введен пункт меню «Выход», то перейти на п. 2.5.11.
2.5.2 Вывести форму редактирования справочников
2.5.3 Вывести форму добавления записи (рис. 3):
2.5.3.1 Ввести все необходимые данные для добавления в базу данных.
2.5.3.2 Если нажата кнопка «Добавить запись в базу», то записать введённые ранее данные в базу данных.
-
Вывести форму “О программе”:
2.5.4.1 Вывести информацию о названии программы, версии, авторе и другую информацию.
2.5.11Выход:
-
Завершить работу программы.
-
РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ
-
Введение
Программа «Расчет плана потребности в деталях» предназначена для расчета плана на товарный выпуск продукции по цехам.
-
Программа позволяет: Выбрать вид изделия.
-
Производить поиск информации по указанным данным.
-
Вывести на терминал и на печать отчёт “Расчет плана”.
-
Добавлять и исправлять необходимую информацию.
(Для работы программы необходимы файлы базы данных: spravvid.db, potrgod.db, vedom.db, sostavizd.db, Kod_ceh).
3.2 Работа с программой
После запуска программы на экран будет выведено главное окно программы с кнопочной формой, где необходимо выбрать нужный пункт, щелкнув по нему левой клавишей мыши, и отвечать на запросы программы. Для выхода в главное окно необходимо нажать кнопку ‘Закрыть’.
Для перемещения по пунктам меню используется мышь или клавиатура. Выбор необходимого пункта меню осуществляется с помощью левой кнопки мыши или передвижением светового поля клавишами управления на клавиатуре.
Выберите интересующий Вас пункт. По запросу данных, требующих ввода с клавиатуры (в полях для ввода), введите их все.
3.7 Аварийные ситуации
К аварийным ситуациям относятся: нехватка оперативной памяти, сбой операционной системы и прерывание работы программы.
5 ПРИЛОЖЕНИЯ
5.1 Листинг программы
procedure TForm1.N3Click(Sender: TObject);
begin
Form3.ShowModal;
end;
procedure TForm1.N7Click(Sender: TObject);
begin
Form4.ShowModal;
end;
procedure TForm1.N6Click(Sender: TObject);
begin
Form5.ShowModal;
end;
procedure TForm1.N11Click(Sender: TObject);
begin
form6.showmodal;
end;
procedure TForm1.N10Click(Sender: TObject);
begin
Form7.ShowModal;
end;
end.
unit spravvid;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, ExtCtrls, DBCtrls, Grids, DBGrids, StdCtrls,
RpCon, RpConDS, RpDefine, RpRave;
type
TForm2 = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
Table1: TTable;
Button1: TButton;
DBGrid2: TDBGrid;
DataSource2: TDataSource;
Table2: TTable;
DBNavigator2: TDBNavigator;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Table3: TTable;
DataSource3: TDataSource;
DBNavigator3: TDBNavigator;
R1: TRvProject;
RvDataSetConnection1: TRvDataSetConnection;
RvDataSetConnection4: TRvDataSetConnection;
RvDataSetConnection5: TRvDataSetConnection;
DBGrid3: TDBGrid;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses main, unit7;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
close;
end;
end.
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, DBTables, Grids, DBGrids;
type
TForm3 = class(TForm)
DBGrid1: TDBGrid;
Query1: TQuery;
DataSource1: TDataSource;
DataSource2: TDataSource;
Label1: TLabel;
ComboBox1: TComboBox;
spravvid: TTable;
Button1: TButton;
Button2: TButton;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
procedure TForm3.Button2Click(Sender: TObject);
begin
Form3.Close;
end;
function check_list(list:tstrings;_naim:string):boolean;
var i:integer;
begin
for i:=1 to list.Count do
begin
if list.Strings[i-1]=_naim then
begin
result:=false;
exit;
end
end;
result:=true;
exit;
end;
procedure TForm3.Button1Click(Sender: TObject);
begin
If ComboBox1.Text = 'Показать все' Then Begin
try
Query1.Active:=false;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM db\spravvid');
Query1.Active:=true;
except
on error: EDatabaseError do begin
MessageDlg('При выполнении запроса произошла ошибка:'+#13+#13+
error.Message ,mtError,[mbOK],0);
end;
end;
end else begin
try
Query1.Active:=false;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM db\spravvid');
Query1.SQL.Add('WHERE naimizd= :naimizd');
Query1.Params.ParamByName('naimizd').AsString:=ComboBox1.Text;
Query1.Active:=true;
except
on error: EDatabaseError do begin
MessageDlg('При выполнении запроса произошла ошибка:'+#13+#13+
error.Message ,mtError,[mbOK],0);
end;
end;
end;
end;
procedure TForm3.FormShow(Sender: TObject);
var list:tstrings;
_naim:string;
begin
spravvid.active:=true;
list:=tstringlist.Create;
spravvid.First;
while not spravvid.Eof do
begin
_naim:=spravvid.fieldbyname('naimizd').asstring;
if check_list(list,_naim) then list.Add(_naim);
spravvid.Next;
end;
combobox1.Items:=list;
combobox1.Items.Add('Показать все');
end;
end.
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls;
type
TForm4 = class(TForm)
Image1: TImage;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
{$R *.dfm}
end.
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls;
type
TForm5 = class(TForm)
Image1: TImage;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form5: TForm5;
implementation
{$R *.dfm}
end.
unit Unit6;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, DBTables;
type
TForm6 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit9: TEdit;
Label11: TLabel;
Edit8: TEdit;
Button1: TButton;
potrgod: TTable;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form6: TForm6;
implementation
{$R *.dfm}
procedure fill_rezult_data;
begin
With Form6 do begin
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
Edit5.Text:='';
Edit6.Text:='';
Edit7.Text:='';
Edit8.Text:='';
Edit9.Text:='';
end;
end;
procedure TForm6.Button1Click(Sender: TObject);
begin
potrgod.Active:=true;
try
potrgod.AppendRecord([
strtoint(Edit1.Text),
strtoint(Edit2.Text),
strtoint(Edit3.Text),
strtoint(Edit4.Text),
strtoint(Edit5.Text),
strtoint(Edit6.Text),
strtoint(Edit7.Text),
strtoint(Edit8.Text),
strtoint(Edit9.Text)]);
except
MessageDlg('В поля формы введены недопустимые данные',
mtError,[mbOK],0);
Exit;
end;
fill_rezult_data;
ShowMessage('Запись добавлена!');
end;
procedure TForm6.FormCreate(Sender: TObject);
begin
fill_rezult_data;
end;
end.
unit Unit7;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBTables, DB, DBCtrls, StdCtrls, Grids, DBGrids;
type
TForm7 = class(TForm)
Button1: TButton;
Label1: TLabel;
DBLookupComboBox1: TDBLookupComboBox;
DataSource1: TDataSource;
Table1: TTable;
Query1: TQuery;
DBGrid1: TDBGrid;
DataSource2: TDataSource;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form7: TForm7;
implementation
uses main, spravvid;
{$R *.dfm}
procedure TForm7.Button1Click(Sender: TObject);
begin
{ try
Query1.Active:=false;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM db\spr_ceh');
Query1.Active:=true;
except
on error: EDatabaseError do begin
MessageDlg('При выполнении запроса произошла ошибка:'+#13+#13+
error.Message ,mtError,[mbOK],0);
end;
end; }
Form2.R1.Execute;
end;
end.
5.3 Результаты работы программы
После запуска программы на экране появляется главное окно с кнопочной формой (рис. 4).
Рисунок4
5.3.3 Если выбран пункт меню [Расчет плана], то появляется форма для выбора цеха (рис. 5).
Рисунок5
5.3.3.4 Если выбран цех, то появляется форма документа план потребности в деталях, готовая к печати (рис. 6).
Рисунок6
5.3.4 Если выбран пункт меню [Поиск по изделию], то на экран будет выведена форма поиска информации по изделию (Рис. 7).
Рисунок7
5.3.1 Если выбран пункт меню [Справочники] – [Просмотр], то появляется форма редактирования файлов баз данных (рис. 8).
Рисунок8
-
Если выбран пункт меню [Справочники] – [Добавление записи], то появляется форма добавления записи в базы данных (рис. 9).
Рисунок9
5.3.7 Если выбран пункт меню [О программе] – [Справка], то на экран будет выведена справочная информацию по работе с программой (рис. 10).
Рисунок 10
5.3.8 Если выбран пункт меню [О программе] – [О программе…], то на экран будет выведена справочная информацию названии программы, версии, авторе и т.п. (рис. 11).
Рисунок11
5.3.9 Если выбран пункт меню [Выход] или нажат крест в правом верхнем углу главного меню, то программа завершит свою работу.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
-
Архангельский А.Я. Программирование в Delphi 7. — М.: ООО «Бином-Пресс», 2003г. — 1152 с.
-
Лебедев А.Г. Методические указания по выполнению курсовой работы по предмету: Вычислительная техника в инженерных и экономических расчетах, 1993г. – 52 с.
-
Лебедев А.Г., Ларина Н.А., Липендина Е.А., Абрамова Л.М. Методические указания и задания для студентов специальности 073000 Прикладная математика «ПРАКТИКУМ НА ЭВМ ПО МОДЕЛИРОВАНИЮ», 2004 год. – 90 с.