"Система (подсистема) складкого учета материалов в строительной компании.(Delphi 6, Локальная СУБД)".

Заказать уникальную дипломную работу
Тип работы: Дипломная работа
Предмет: Программирование
  • 129 129 страниц
  • 89 + 89 источников
  • Добавлена 25.06.2009
3 000 руб.
  • Содержание
  • Часть работы
  • Список литературы
  • Вопросы/Ответы
Содержание дипломного проекта
Введение

1.Постановка задачи
1.1.Назначение и цели системы
1.2.Требование к системе
1.3.Содержательное описание постановки задачи
1.3.1.Описание эффективности внедрения
1.3.2.Основные действия

2.Проектирование
2.1.Обоснование выбора технических средств
2.1.1.Технические средства для реализации проекта
2.1.2.Технические средства для работы системы учета
2.2.Обоснование выбора программных средств
2.2.1.Характерные черты и достоинства Delphi 7 и MS SQL 2000 и их применения в качестве инструментальных программных продуктов
2.2.2.Системное программное обеспечение

3.Разработка программной реализации
3.1.Краткая характеристика программной среды
3.1.1.Описание программной среды
3.1.2.Выбранные средства реализации
3.2.Разработка структуры БД
3.3.Описание и обоснование использования всех таблиц (и их струк-тур),
3.4 Разработка форм отчетной документации
3.5 Разработка пользовательского интерфейса
3.6 Выбор методов обмена данными

4.Обеспечение надежности обработки данных в системе
4.1.Методы повышения надежности обработки данных
4.2.Обеспечение надежности обработки данных в среде Delphi 7 и MS SQL 2000
4.3 Основные задачи, цели и методы процессов верификации и валидации.

5.Руководство пользователя
5.1.Полное руководство пользователя на разработанный программ-ный продукт
5.2 Структура разработанного ПО
5.3 Спецификации главного модуля проекта MainClients.pas.

6.Экономическое обоснование
6.1.Введение
6.2.Организационный план работ по разработке системы
6.3.Расчёт себестоимости проекта
6.4.Расчет оценочной стоимости автоматизированной системы
6.5.Оценка экономической эффективности
6.6.Выводы

7.Охрана труда
7.1.Техника безопасности при работе за компьютером
7.2.Охрана окружающей среды и т.д.
Заключение
Литература
Приложения

Фрагмент для ознакомления

М.: «Вильямс», 2003. – 1128с.
Черников А. Поздняков В. От бухгалтерии под Windows к открытым Unix-системам // Компьютерное обозрение № 34 (402), 2003. с.22-27. www.ITC-UA.COM
Шумаков П.В., Фаронов В.В. Delphi 5. Руководство разработчика баз данных. — М.: Нолидж, 2000. — 635 с.



Приложение

Листинг модуля MainClients

unit MainClients;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, DB, ADODB, IniFiles, Grids, DBGrids,DBDirectoryTemplate, addsorce, DateUtils, parampoisk;
type
TMainClientsForm = class(TForm)
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
N19: TMenuItem;
DataSource1: TDataSource;
ADOTable2: TADOTable;
ADOTable3: TADOTable;
ADOTable4: TADOTable;
ADOTable5: TADOTable;
ADOTable6: TADOTable;
ADOTable7: TADOTable;
N20: TMenuItem;
N21: TMenuItem;
N22: TMenuItem;
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
procedure N12Click(Sender: TObject);
function IsMDIChildOpen(const AFormName: TForm; const AMDIChildName : string): Boolean;
function IsFormOpen(const FormName : string): Boolean;
procedure N6Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N20Click(Sender: TObject);
procedure N21Click(Sender: TObject);
procedure N22Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure DataSource1DataChange(Sender: TObject; Field: TField);
procedure N4Click(Sender: TObject);
procedure N14Click(Sender: TObject);
procedure N15Click(Sender: TObject);
procedure N16Click(Sender: TObject);
procedure N17Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure N19Click(Sender: TObject);
private
{ Private declarations }
procedure BuildGridDatabaseDirectoryItem(sCaption:String; ds:TDataSource);
public
{ Public declarations }
end;
var
MainClientsForm: TMainClientsForm;
nastr:tinifile;
DirectoryForm : TDBDirectoryTemplateForm;
prosmForm: Taddform;
mainflag:boolean;
nomer_poisk:word;
idLocation, idAddional, idZapas, idPartiya:integer;
implementation
{$R *.dfm}
function TMainClientsForm.IsMDIChildOpen(const AFormName: TForm; const AMDIChildName : string): Boolean;
var
i: Integer;
begin
Result := False;
for i := Pred(AFormName.MDIChildCount) DownTo 0 do
if (AFormName.MDIChildren[i].Name = AMDIChildName) then
begin
Result := True;
AFormName.MDIChildren[i].Free;
// Break;
end;
end;
function TMainClientsForm.IsFormOpen(const FormName : string): Boolean;
var
i: Integer;
begin
Result := False;
for i := Screen.FormCount - 1 DownTo 0 do
if (Screen.Forms[i].Name = FormName) then
begin
Result := True;
Break;
end;
end;
procedure TMainClientsForm.BuildGridDatabaseDirectoryItem(sCaption:String; ds:TDataSource);
begin
//создаем форму
DirectoryForm:=TDBDirectoryTemplateForm.Create(Owner);
DirectoryForm.TableDBGrid.DataSource:=ds;
DirectoryForm.Top:=0;
DirectoryForm.Left:=0;
DirectoryForm.Caption:=sCaption;
end;

procedure TMainClientsForm.N12Click(Sender: TObject);
begin
MainClientsForm.Close;
end;

procedure TMainClientsForm.N6Click(Sender: TObject);
begin
IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');
mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable1;
mainclientsform.ADOTable1.Active:=true;
MainClientsForm.BuildGridDatabaseDirectoryItem('товары', mainclientsform.DataSource1);
DirectoryForm.TableDBGrid.Fields[0].DisplayLabel:='ИД.№ товар';
DirectoryForm.TableDBGrid.Fields[1].DisplayLabel:='Наименование';
DirectoryForm.TableDBGrid.Fields[2].DisplayLabel:='ид.размещения';
DirectoryForm.TableDBGrid.Fields[3].DisplayLabel:='ид.дополн. информации';
DirectoryForm.TableDBGrid.Fields[4].DisplayLabel:='ид. запасов';
DirectoryForm.TableDBGrid.Fields[5].DisplayLabel:='ид. партии';
end;
procedure TMainClientsForm.N7Click(Sender: TObject);
begin
IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');
IsMDIChildOpen(MainClientsForm,'addForm');
mainflag:=false;
mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable2;
mainclientsform.ADOTable2.Active:=true;
MainClientsForm.BuildGridDatabaseDirectoryItem('накладные', mainclientsform.DataSource1);
DirectoryForm.TableDBGrid.Fields[0].DisplayLabel:='№ накладной';
DirectoryForm.TableDBGrid.Fields[1].DisplayLabel:='дата';
DirectoryForm.TableDBGrid.Fields[2].DisplayLabel:='ид. товара';
DirectoryForm.TableDBGrid.Fields[3].DisplayLabel:='откуда';
DirectoryForm.TableDBGrid.Fields[4].DisplayLabel:='цель';
DirectoryForm.TableDBGrid.Fields[5].DisplayLabel:='количество';
DirectoryForm.TableDBGrid.Fields[6].DisplayLabel:='стоимость';
DirectoryForm.TableDBGrid.Fields[7].DisplayLabel:='номер партии';
end;
procedure TMainClientsForm.N8Click(Sender: TObject);
begin
IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');
IsMDIChildOpen(MainClientsForm,'addForm');
mainflag:=false;
mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable3;
mainclientsform.ADOTable3.Active:=true;
MainClientsForm.BuildGridDatabaseDirectoryItem('запасы товара', mainclientsform.DataSource1);
DirectoryForm.TableDBGrid.Fields[0].DisplayLabel:='№ записи';
DirectoryForm.TableDBGrid.Fields[1].DisplayLabel:='ед. измерения';
DirectoryForm.TableDBGrid.Fields[2].DisplayLabel:='количество';
DirectoryForm.TableDBGrid.Fields[3].DisplayLabel:='стоимость';
DirectoryForm.TableDBGrid.Fields[4].DisplayLabel:='резерв. кол.';
DirectoryForm.TableDBGrid.Fields[5].DisplayLabel:='кто резерв.';
DirectoryForm.TableDBGrid.Fields[6].DisplayLabel:='дата резерв.';
DirectoryForm.TableDBGrid.Fields[7].DisplayLabel:='примечание';
end;
procedure TMainClientsForm.N9Click(Sender: TObject);
begin
IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');
IsMDIChildOpen(MainClientsForm,'addForm');
mainflag:=false;
mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable4;
mainclientsform.ADOTable4.Active:=true;
MainClientsForm.BuildGridDatabaseDirectoryItem('заказы на товар', mainclientsform.DataSource1);
DirectoryForm.TableDBGrid.Fields[0].DisplayLabel:='№ заказа';
DirectoryForm.TableDBGrid.Fields[1].DisplayLabel:='дата';
DirectoryForm.TableDBGrid.Fields[2].DisplayLabel:='заказчик';
DirectoryForm.TableDBGrid.Fields[3].DisplayLabel:='№ товара';
DirectoryForm.TableDBGrid.Fields[4].DisplayLabel:='количество';
end;
procedure TMainClientsForm.N10Click(Sender: TObject);
begin
IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');
IsMDIChildOpen(MainClientsForm,'addForm');
mainflag:=false;
mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable5;
mainclientsform.ADOTable5.Active:=true;
MainClientsForm.BuildGridDatabaseDirectoryItem('Размещение товаров', mainclientsform.DataSource1);
DirectoryForm.TableDBGrid.Fields[0].DisplayLabel:='№ записи';
DirectoryForm.TableDBGrid.Fields[1].DisplayLabel:='место на складе';
DirectoryForm.TableDBGrid.Fields[2].DisplayLabel:='уточнение размещение';
DirectoryForm.TableDBGrid.Fields[3].DisplayLabel:='примечание';

end;

procedure TMainClientsForm.N20Click(Sender: TObject);
begin
IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');
IsMDIChildOpen(MainClientsForm,'addForm');
mainflag:=false;
mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable6;
mainclientsform.ADOTable6.Active:=true;
MainClientsForm.BuildGridDatabaseDirectoryItem('Дополнительные сведения о товарах', mainclientsform.DataSource1);
DirectoryForm.TableDBGrid.Fields[0].DisplayLabel:='№ записи';
DirectoryForm.TableDBGrid.Fields[1].DisplayLabel:='серийный номер';
DirectoryForm.TableDBGrid.Fields[2].DisplayLabel:='срок годности';
end;
procedure TMainClientsForm.N21Click(Sender: TObject);
begin
IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');
IsMDIChildOpen(MainClientsForm,'addForm');
mainflag:=false;
mainclientsform.DataSource1.DataSet:=mainclientsform.ADOTable7;
mainclientsform.ADOTable7.Active:=true;
MainClientsForm.BuildGridDatabaseDirectoryItem('Сведения о партиях товаров', mainclientsform.DataSource1);
DirectoryForm.TableDBGrid.Fields[0].DisplayLabel:='№ записи';
DirectoryForm.TableDBGrid.Fields[1].DisplayLabel:='№ партии';
DirectoryForm.TableDBGrid.Fields[2].DisplayLabel:='количество';
DirectoryForm.TableDBGrid.Fields[3].DisplayLabel:='откуда';
DirectoryForm.TableDBGrid.Fields[4].DisplayLabel:='дата';
DirectoryForm.TableDBGrid.Fields[5].DisplayLabel:='описание операции';
end;
procedure TMainClientsForm.N22Click(Sender: TObject);
begin
IsMDIChildOpen(MainClientsForm,'addForm');
IsMDIChildOpen(MainClientsForm,'addForm');
mainflag:=false;
MainClientsForm.N6Click(sender);
prosmForm:=Taddform.Create(Owner);
prosmForm.Top:=230;
prosmForm.Left:=0;
prosmForm.Width:=500;
prosmForm.Height:=200;
prosmForm.Caption:='просмотр записей';
mainflag:=true;
prosmForm.Show;
prosmForm.Button1.Visible:=false;
prosmForm.GroupBox3.Visible:=false;
prosmForm.GroupBox4.Visible:=false;
MainClientsForm.DataSource1.DataSet.last
end;

procedure TMainClientsForm.FormCreate(Sender: TObject);
var NewConnection: Widestring;
begin
NewConnection := PromptDataSource(Handle, MainClientsForm.ADOConnection1.Connectionstring);
MainClientsForm.ADOConnection1.Connectionstring:=NewConnection;
MainClientsForm.ADOConnection1.Connected:=true;
MainClientsForm.ADOTable1.Active:=true;
MainClientsForm.ADOTable2.Active:=true;
MainClientsForm.ADOTable3.Active:=true;
MainClientsForm.ADOTable4.Active:=true;
MainClientsForm.ADOTable5.Active:=true;
MainClientsForm.ADOTable6.Active:=true;
MainClientsForm.ADOTable7.Active:=true;
end;
procedure TMainClientsForm.N3Click(Sender: TObject);
var dobForm: Taddform;
begin
mainflag:=false;
IsMDIChildOpen(MainClientsForm,'addForm');
dobForm:=Taddform.Create(Owner);
dobForm.Top:=240;
dobForm.Left:=3;
dobForm.Caption:='добавление записи';
dobForm.Show;
dobForm.Button1.Visible:=true;
dobForm.GroupBox1.Visible:=false;
dobForm.GroupBox3.Visible:=false;
dobForm.GroupBox4.Visible:=false;
end;
procedure TMainClientsForm.DataSource1DataChange(Sender: TObject;
Field: TField);
var
sql_str,rez:string;
P11:Tparameter;
rezdate:tdatetime;
rezint:integer;
rezfloat:real;
Ayear, amonth,aday,ahour,aminute,asecond,amillisecond:word;
begin
if mainflag then
begin
prosmForm.edit1.text:='';
prosmForm.edit2.text:='';
prosmForm.edit3.text:='';
prosmForm.edit4.text:='';
prosmForm.edit5.text:='';
prosmForm.edit6.text:='1';
prosmForm.edit7.text:='1';
prosmForm.edit9.text:='1';
prosmForm.edit10.text:='1';
prosmForm.edit8.text:='2009';
prosmForm.edit11.text:='2009';
prosmForm.edit12.text:='';
prosmForm.edit13.text:='';
prosmForm.edit14.text:='';
prosmForm.edit15.text:='';
prosmForm.edit16.text:='';
prosmForm.edit17.text:='';
prosmForm.edit18.text:='';
prosmForm.edit19.text:='';
prosmForm.edit20.text:='';
prosmForm.edit21.text:='';
prosmForm.edit22.text:='';
prosmForm.edit23.text:='';
//из таблицы
prosmForm.Edit1.Text:=MainClientsForm.DataSource1.DataSet.FieldByName('nameTovar').AsString;
idLoсаtion:=MainClientsForm.DataSource1.DataSet.FieldByName('idLocation').AsInteger; ;
idAdional:=MainClientsForm.DataSource1.DataSet.FieldByName('idAddional').AsInteger; ;
idZpas:=MainClientsForm.DataSource1.DataSet.FieldByName('idZapas').AsInteger; ; idPartiya:=MainClientsForm.DataSource1.DataSet.FieldByName('idPartiya').AsInteger; ; // размещение
sql_str:='SELECT * from Location where idLocation= :P11';
MainClientsForm.ADOQuery1.Active:=false;
MainClientsForm.ADOQuery1.SQL.Clear;
P11 :=mainclientsform.ADOQuery1.Parameters.AddParameter;
P11.Name:='P11';
p11.DataType := ftinteger;
P11.Value:=idLocation;
P11.Size:=4;
MainClientsForm.ADOQuery1.SQL.Add(sql_str);
MainClientsForm.ADOQuery1.Active:=true;
MainClientsForm.ADOQuery1.ExecSQL;
rez:=MainClientsForm.ADOQuery1.FieldByName('Location').AsString;
prosmForm.Edit14.Text:=rez;
rez:=MainClientsForm.ADOQuery1.FieldByName('addional_location').AsString;
prosmForm.Edit15.Text:=rez;
rez:=MainClientsForm.ADOQuery1.FieldByName('notes').AsString;
prosmForm.Edit16.Text:=rez;
// дополнительные сведения
sql_str:='SELECT * from Addional where idAddional= :P11';
MainClientsForm.ADOQuery1.Active:=false;
MainClientsForm.ADOQuery1.SQL.Clear;
P11 :=mainclientsform.ADOQuery1.Parameters.AddParameter;
P11.Name:='P11';
p11.DataType := ftinteger;
P11.Value:= idAddional;
P11.Size:=4;
MainClientsForm.ADOQuery1.SQL.Add(sql_str);
MainClientsForm.ADOQuery1.Active:=true;
MainClientsForm.ADOQuery1.ExecSQL;
rez:=MainClientsForm.ADOQuery1.FieldByName('Ser_num').AsString;
prosmForm.Edit5.Text:=rez;
rezdate:= MainClientsForm.ADOQuery1.FieldByName('srok_godnost').AsDateTime;
decodedatetime(rezdate,Ayear, amonth,aday,ahour,aminute,asecond,amillisecond);
prosmForm.Edit6.Text:=inttostr(aday);
prosmForm.Edit7.Text:=inttostr(amonth);
prosmForm.Edit8.Text:=inttostr(Ayear);
// запасы
sql_str:='SELECT * from zapas where idzapas= :P11';
MainClientsForm.ADOQuery1.Active:=false;
MainClientsForm.ADOQuery1.SQL.Clear;
P11 :=mainclientsform.ADOQuery1.Parameters.AddParameter;
P11.Name:='P11';
p11.DataType := ftinteger;
P11.Value:= idzapas;
P11.Size:=4;
MainClientsForm.ADOQuery1.SQL.Add(sql_str);
MainClientsForm.ADOQuery1.Active:=true;
MainClientsForm.ADOQuery1.ExecSQL;
rez:=MainClientsForm.ADOQuery1.FieldByName('Izmerenie').AsString;
prosmForm.ComboBox1.Text:=rez;
rezint:= MainClientsForm.ADOQuery1.FieldByName('zapas').AsInteger;
prosmForm.Edit2.Text:=inttostr( rezint);
rezfloat:= MainClientsForm.ADOQuery1.FieldByName('stoimost').AsFloat;
prosmForm.Edit3.Text:=floattostr( rezfloat);
rez:=MainClientsForm.ADOQuery1.FieldByName('rezerv_name').AsString;
prosmForm.Edit19.Text:=rez;
rez:=MainClientsForm.ADOQuery1.FieldByName('rezerv_prim').AsString;
prosmForm.Edit23.Text:=rez;
rezint:= MainClientsForm.ADOQuery1.FieldByName('rezerv_kol').AsInteger;
prosmForm.Edit18.Text:=inttostr( rezint);
rezdate:= MainClientsForm.ADOQuery1.FieldByName('rezerv_date').AsDateTime;
decodedatetime(rezdate,Ayear, amonth,aday,ahour,aminute,asecond,amillisecond);
aday:=1;
amonth:=1;
Ayear:=0;
if Ayear>2000 then begin
prosmForm.Edit20.Text:=inttostr(aday);
prosmForm.Edit21.Text:=inttostr(amonth);
prosmForm.Edit22.Text:=inttostr(Ayear);
end;
// партия
sql_str:='SELECT * from Partiya where idPartiya= :P11';
MainClientsForm.ADOQuery1.Active:=false;
MainClientsForm.ADOQuery1.SQL.Clear;
P11 :=mainclientsform.ADOQuery1.Parameters.AddParameter;
P11.Name:='P11';
p11.DataType := ftinteger;
P11.Value:= idPartiya;
P11.Size:=4;
MainClientsForm.ADOQuery1.SQL.Add(sql_str);
MainClientsForm.ADOQuery1.Active:=true;
MainClientsForm.ADOQuery1.ExecSQL;
rez:=MainClientsForm.ADOQuery1.FieldByName('Nom_part').AsString;
prosmForm.Edit4.Text:=rez;
rez:=MainClientsForm.ADOQuery1.FieldByName('description').AsString;
prosmForm.Edit13.Text:=rez;
rez:=MainClientsForm.ADOQuery1.FieldByName('otkuda').AsString;
prosmForm.Edit12.Text:=rez;
rezdate:= MainClientsForm.ADOQuery1.FieldByName('kogda').AsDateTime;
aday:=1;
amonth:=1;
Ayear:=0;
if Ayear>2000 then begin
prosmForm.Edit9.Text:=inttostr(aday);
prosmForm.Edit10.Text:=inttostr(amonth);
prosmForm.Edit11.Text:=inttostr(Ayear);
end;
end;
end;

procedure TMainClientsForm.N4Click(Sender: TObject);
var zakForm: Taddform;
begin
mainflag:=false;
IsMDIChildOpen(MainClientsForm,'zakForm');
IsMDIChildOpen(MainClientsForm,'addForm');
zakForm:=Taddform.Create(Owner);
zakForm.Top:=240;
zakForm.Left:=3;
zakForm.Caption:='создание заказа';
zakForm.Show;
zakForm.Button1.Visible:=true;
zakForm.GroupBox1.Visible:=false;
zakForm.GroupBox2.Visible:=false;
zakForm.GroupBox4.Visible:=false;
zakForm.GroupBox3.Left:=2;
zakForm.GroupBox3.Top:=2;
end;
procedure TMainClientsForm.N14Click(Sender: TObject);
var poisk:Tparampoik;
begin
IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');
IsMDIChildOpen(MainClientsForm,'addform');
IsMDIChildOpen(MainClientsForm,'parampoik');
poisk:=Tparampoik.Create(Owner);
poisk.Left:=530;
poisk.Top:=3;
poisk.Width:=300;
poisk.Caption:='поиск наличия товара';
nomer_poisk:=1;
poisk.Label2.Visible:=false;
poisk.Label3.Visible:=false;
poisk.Label7.Visible:=false;
poisk.Edit2.Visible:=false;
poisk.Edit3.Visible:=false;
poisk.Edit4.Visible:=false;
poisk.Edit5.Visible:=false;
poisk.Edit6.Visible:=false;
poisk.Edit7.Visible:=false;
poisk.UpDown1.Visible:=false;
poisk.UpDown2.Visible:=false;
poisk.UpDown3.Visible:=false;
poisk.UpDown4.Visible:=false;
end;
procedure TMainClientsForm.N15Click(Sender: TObject);
var poisk:Tparampoik;
begin
IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');
IsMDIChildOpen(MainClientsForm,'addform');
IsMDIChildOpen(MainClientsForm,'parampoik');
poisk:=Tparampoik.Create(Owner);
poisk.Left:=530;
poisk.Top:=3;
poisk.Width:=300;
poisk.Caption:='проверка срока годности';
nomer_poisk:=2;
poisk.Edit1.Visible:=false;
poisk.Label1.Visible:=false;
poisk.Label3.Visible:=false;
poisk.Label2.Visible:=false;
poisk.Edit5.Visible:=false;
poisk.Edit6.Visible:=false;
poisk.Edit7.Visible:=false;
poisk.UpDown3.Visible:=false;
poisk.UpDown4.Visible:=false;
end;
procedure TMainClientsForm.N16Click(Sender: TObject);
var poisk:Tparampoik;
begin
IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');
IsMDIChildOpen(MainClientsForm,'addform');
IsMDIChildOpen(MainClientsForm,'parampoik');
poisk:=Tparampoik.Create(Owner);
poisk.Left:=530;
poisk.Top:=3;
poisk.Width:=300;
poisk.Caption:='поиск размещения товара';
nomer_poisk:=3;
poisk.Label2.Visible:=false;
poisk.Label3.Visible:=false;
poisk.Label7.Visible:=false;
poisk.Edit2.Visible:=false;
poisk.Edit3.Visible:=false;
poisk.Edit4.Visible:=false;
poisk.Edit5.Visible:=false;
poisk.Edit6.Visible:=false;
poisk.Edit7.Visible:=false;
poisk.UpDown1.Visible:=false;
poisk.UpDown2.Visible:=false;
poisk.UpDown3.Visible:=false;
poisk.UpDown4.Visible:=false;
end;
procedure TMainClientsForm.N17Click(Sender: TObject);
var poisk:Tparampoik;
begin
IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');
IsMDIChildOpen(MainClientsForm,'addform');
IsMDIChildOpen(MainClientsForm,'parampoik');
poisk:=Tparampoik.Create(Owner);
poisk.Left:=530;
poisk.Top:=3;
poisk.Width:=300;
poisk.Caption:='просмотр хронологии накладных';
nomer_poisk:=4;
poisk.Label1.Visible:=false;
poisk.Edit1.Visible:=false;
poisk.Label7.Caption:='Накладные в период'
end;
procedure TMainClientsForm.N11Click(Sender: TObject);
var naklForm: Taddform;
begin
mainflag:=false;
IsMDIChildOpen(MainClientsForm,'naklForm');
IsMDIChildOpen(MainClientsForm,'addForm');
naklForm:=Taddform.Create(Owner);
naklForm.Top:=240;
naklForm.Left:=3;
naklForm.Caption:='создание накладной';
naklForm.Show;
naklForm.GroupBox1.Visible:=false;
naklForm.GroupBox2.Visible:=false;
naklForm.GroupBox3.Visible:=false;
naklForm.GroupBox4.Left:=2;
naklForm.GroupBox4.Top:=2;
naklForm.GroupBox4.Width:=600;
naklForm.GroupBox4.Height:=250;
end;
procedure TMainClientsForm.N19Click(Sender: TObject);
var poisk:Tparampoik;
begin
IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');
IsMDIChildOpen(MainClientsForm,'addform');
IsMDIChildOpen(MainClientsForm,'parampoik');
poisk:=Tparampoik.Create(Owner);
poisk.Left:=530;
poisk.Top:=3;
poisk.Width:=300;
poisk.Caption:='проводка накладной';
nomer_poisk:=5;
poisk.Label2.Visible:=false;
poisk.Label3.Visible:=false;
poisk.Label7.Visible:=false;
poisk.Edit2.Visible:=false;
poisk.Edit3.Visible:=false;
poisk.Edit4.Visible:=false;
poisk.Edit5.Visible:=false;
poisk.Edit6.Visible:=false;
poisk.Edit7.Visible:=false;
poisk.UpDown1.Visible:=false;
poisk.UpDown2.Visible:=false;
poisk.UpDown3.Visible:=false;
poisk.UpDown4.Visible:=false;
poisk.Label1.Caption:='номер накладной';
poisk.Button1.Caption:='ПРОВОДКА'
end;
end.

Листинг модуля addsorce
unit addsorce;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, Menus, ChildTemplate, Grids, DBGrids,
StdCtrls, Mask,DateUtils, ExtCtrls, ComCtrls, DBCtrls ;
type
TaddForm = class(TForm)
Panel1: TPanel;
GroupBox1: TGroupBox;
Label15: TLabel;
Edit18: TEdit;
Label16: TLabel;
Edit19: TEdit;
Edit20: TEdit;
Edit21: TEdit;
Edit22: TEdit;
Label17: TLabel;
Label18: TLabel;
Edit23: TEdit;
GroupBox2: TGroupBox;
Edit16: TEdit;
Button1: TButton;
DBNavigator1: TDBNavigator;
Edit13: TEdit;
Label10: TLabel;
Label9: TLabel;
Label8: TLabel;
Label7: TLabel;
Label5: TLabel;
Label2: TLabel;
Label1: TLabel;
Edit1: TEdit;
ComboBox1: TComboBox;
Edit5: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit17: TEdit;
Label14: TLabel;
Label4: TLabel;
Label3: TLabel;
Label6: TLabel;
Edit8: TEdit;
Edit7: TEdit;
Edit6: TEdit;
Edit9: TEdit;
UpDown4: TUpDown;
UpDown1: TUpDown;
Edit10: TEdit;
UpDown5: TUpDown;
Edit12: TEdit;
UpDown6: TUpDown;
Edit11: TEdit;
Label13: TLabel;
Label12: TLabel;
Label11: TLabel;
Edit14: TEdit;
Edit15: TEdit;
UpDown2: TUpDown;
Edit4: TEdit;
UpDown3: TUpDown;
GroupBox3: TGroupBox;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Edit24: TEdit;
Edit25: TEdit;
Edit26: TEdit;
Edit27: TEdit;
Edit28: TEdit;
Edit29: TEdit;
Label22: TLabel;
Button2: TButton;
GroupBox4: TGroupBox;
Label23: TLabel;
Edit30: TEdit;
Edit31: TEdit;
Edit32: TEdit;
UpDown7: TUpDown;
UpDown8: TUpDown;
Label24: TLabel;
Edit33: TEdit;
Label25: TLabel;
Edit34: TEdit;
Label26: TLabel;
Edit35: TEdit;
Label27: TLabel;
Label28: TLabel;
Edit36: TEdit;
Edit37: TEdit;
Label29: TLabel;
Edit38: TEdit;
Label30: TLabel;
Edit39: TEdit;
Label31: TLabel;
Edit40: TEdit;
Button3: TButton;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
addForm: TaddForm;
naim:string;
ed_izm:string;
kolvo:integer;
cena:real;
nomerpartiya:string;
sernum:string;
srok_godnost:tdate;
data_postavka:tdate;
postavchik:string;
description:string;
location:string;
location_part:string;
primech:string;
Ayear, amonth,aday:word;
razmer_part,kol:integer;
id_part,idaddional,idlocation,idzapas:integer;
idtov:integer;
implementation
uses MainClients;
{$R *.dfm}
procedure TaddForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TaddForm.Button1Click(Sender: TObject);
begin
naim:=Edit1.Text;
ed_izm:=ComboBox1.Text;
kolvo:=strtoint(Edit2.Text);
cena:=strtofloat(Edit3.Text);
nomerpartiya:=Edit4.Text;
sernum:=Edit5.Text;
postavchik:=Edit12.Text;
description:=Edit13.Text;
location:=Edit14.Text;
location_part:=Edit15.Text;
primech:=Edit16.Text;
Ayear:=strtoint(Edit8.Text);
amonth:= strtoint(Edit7.Text);
aday:= strtoint(Edit6.Text);
srok_godnost:=encodedate(Ayear, amonth,aday);
Ayear:=strtoint(Edit11.Text);
amonth:= strtoint(Edit10.Text);
aday:= strtoint(Edit9.Text);
data_postavka :=encodedate(Ayear, amonth,aday);
razmer_part:=strtoint(Edit17.Text);
if naim<>'' then
begin
MainClientsForm.ADOTable7.Active:=true;
MainClientsForm.ADOTable7.Insert;
MainClientsForm.ADOTable7.FieldByName('Nom_part').AsString:=nomerpartiya;
MainClientsForm.ADOTable7.FieldByName('kolichestvo').AsInteger:= razmer_part;
MainClientsForm.ADOTable7.FieldByName('otkuda').AsString:= postavchik;
MainClientsForm.ADOTable7.FieldByName('kogda').AsDateTime:=data_postavka;
MainClientsForm.ADOTable7.FieldByName('description').AsString:=description;
MainClientsForm.ADOTable7.Post;
id_part:=MainClientsForm.ADOTable7.FieldByName('IdPartiya').AsInteger;
MainClientsForm.ADOTable6.Active:=true;
MainClientsForm.ADOTable6.Insert;
MainClientsForm.ADOTable6.FieldByName('ser_num').AsString:= sernum;
MainClientsForm.ADOTable6.FieldByName('srok_godnost').AsDateTime:=srok_godnost;
MainClientsForm.ADOTable6.Post;
idaddional:= MainClientsForm.ADOTable6.FieldByName('idaddional').AsInteger;
MainClientsForm.ADOTable5.Active:=true;
MainClientsForm.ADOTable5.Insert;
MainClientsForm.ADOTable5.FieldByName('Location').AsString:= location;
MainClientsForm.ADOTable5.FieldByName('addional_location').AsString:= location_part;
MainClientsForm.ADOTable5.FieldByName('notes').AsString:= primech;
MainClientsForm.ADOTable5.Post;
idlocation:= MainClientsForm.ADOTable5.FieldByName('IdLocation').AsInteger;
MainClientsForm.ADOTable1.Active:=true;
MainClientsForm.ADOTable3.Active:=true;
MainClientsForm.ADOTable3.Insert;
MainClientsForm.ADOTable3.FieldByName('Izmerenie').AsString :=ed_izm;
MainClientsForm.ADOTable3.FieldByName('zapas').AsInteger :=kolvo;
MainClientsForm.ADOTable3.FieldByName('stoimost').AsFloat :=kolvo*cena;
MainClientsForm.ADOTable3.Post;
idzapas:=MainClientsForm.ADOTable3.FieldByName('idZapas').AsInteger;
MainClientsForm.ADOTable1.Insert;
MainClientsForm.ADOTable1.FieldByName('nameTovar').AsString:= naim;
MainClientsForm.ADOTable1.FieldByName('idLocation').AsInteger:=idlocation;
MainClientsForm.ADOTable1.FieldByName('idAddional').AsInteger:= idaddional;
MainClientsForm.ADOTable1.FieldByName('idPartiya').AsInteger:= id_part;
MainClientsForm.ADOTable1.FieldByName('idZapas').AsInteger:= idzapas;
MainClientsForm.ADOTable1.Post;
end;
end;
procedure TaddForm.Button2Click(Sender: TObject);
var tovar, srtkl,name_poisk,sqlwhere,stroka_SQL :string;
p1:tparameter;
begin
tovar:=Edit24.Text;
mainclientsform.DataSource1.DataSet:=mainclientsform.ADOQuery2;
mainclientsform.ADOQuery2.Active:=false;
mainclientsform.ADOQuery2.SQL.Clear;
P1 :=mainclientsform.ADOQuery2.Parameters.AddParameter;
P1.Name:='P1';
p1.DataType := ftstring;
if edit24.Text<>'' then begin
srtkl := edit24.Text;
name_poisk:= 'Tovar.nameTovar'
end;
if srtkl<>'' then
begin
srtkl:='%'+ srtkl+'%';
P1.Value:=srtkl;
P1.Size:=Length(srtkl);
end;
stroka_SQL:='select * from tovar where tovar.nametovar like :P1';
mainclientsform.ADOQuery2.SQL.Add(stroka_SQL);
if stroka_SQL<>'' then begin
mainclientsform.ADOQuery2.Active:=true;
mainclientsform.ADOQuery2.ExecSQL;
end;
kol:= mainclientsform.ADOQuery2.RecordCount;
if kol=0 then showmessage('такого товара не существует')
else
begin
idtov:=mainclientsform.ADOQuery2.FieldByName('idtovar').AsInteger;
mainclientsform.ADOTable4.Active:=true;
mainclientsform.ADOTable4.Insert;
mainclientsform.ADOTable4.FieldByName('idTovar').AsInteger:=idtov;
mainclientsform.ADOTable4.FieldByName('kolichestvo').AsInteger:=strtoint(Edit29.Text);
mainclientsform.ADOTable4.FieldByName('lico').AsString:=Edit28.Text;
Ayear:=strtoint(Edit27.Text);
amonth:= strtoint(Edit26.Text);
aday:= strtoint(Edit25.Text);
srok_godnost:=encodedate(Ayear, amonth,aday);
mainclientsform.ADOTable4.FieldByName('kogda').AsDateTime:=srok_godnost;
mainclientsform.ADOTable4.Post;
end;
end;
procedure TaddForm.Button3Click(Sender: TObject);
var tovar, srtkl,name_poisk,sqlwhere,stroka_SQL :string;
p1:tparameter;
begin
tovar:=Edit33.Text;
mainclientsform.DataSource1.DataSet:=mainclientsform.ADOQuery2;
mainclientsform.ADOQuery2.Active:=false;
mainclientsform.ADOQuery2.SQL.Clear;
P1 :=mainclientsform.ADOQuery2.Parameters.AddParameter;
P1.Name:='P1';
p1.DataType := ftstring;
if edit33.Text<>'' then begin
srtkl := edit33.Text;
name_poisk:= 'Tovar.nameTovar'
end;
if srtkl<>'' then
begin
srtkl:='%'+ srtkl+'%';
P1.Value:=srtkl;
P1.Size:=Length(srtkl);
end;
stroka_SQL:='select * from tovar where tovar.nametovar like :P1';
mainclientsform.ADOQuery2.SQL.Add(stroka_SQL);
if stroka_SQL<>'' then begin
mainclientsform.ADOQuery2.Active:=true;
mainclientsform.ADOQuery2.ExecSQL;
end;
kol:= mainclientsform.ADOQuery2.RecordCount;
if kol=0 then showmessage('такого товара не существует')
else
begin
idtov:=mainclientsform.ADOQuery2.FieldByName('idtovar').AsInteger;
mainclientsform.ADOTable2.Active:=true;
mainclientsform.ADOTable2.Insert;
mainclientsform.ADOTable2.FieldByName('idTovar').AsInteger:=idtov;
mainclientsform.ADOTable2.FieldByName('kolichestvo').AsInteger:=strtoint(Edit35.Text);
mainclientsform.ADOTable2.FieldByName('Lico').AsString:=Edit34.Text;
mainclientsform.ADOTable2.FieldByName('stoimost').AsFloat:=strtofloat(Edit37.Text);
mainclientsform.ADOTable2.FieldByName('otkuda').AsString:=Edit36.Text;
mainclientsform.ADOTable2.FieldByName('kuda').AsString:=Edit38.Text;
mainclientsform.ADOTable2.FieldByName('idPartiya').AsInteger:= strtoint(Edit39.Text);
mainclientsform.ADOTable2.FieldByName('IdZakaz').AsInteger:= strtoint(Edit40.Text);
mainclientsform.ADOTable2.FieldByName('provodka').AsString:='N';
Ayear:=strtoint(Edit32.Text);
amonth:= strtoint(Edit31.Text);
aday:= strtoint(Edit30.Text);
srok_godnost:=encodedate(Ayear, amonth,aday);
mainclientsform.ADOTable2.FieldByName('vremya').AsDateTime:=srok_godnost;
mainclientsform.ADOTable2.post;
end;
end;
end.

Листинг модуля ChildTemplate
unit ChildTemplate;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, Grids, DBGrids, ExtCtrls, Menus, StdCtrls;
type
TChildTemplateForm = class(TForm)
DBGrid1: TDBGrid;
Label1: TLabel;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure RzToolbarButton2Click(Sender: TObject);
procedure RzToolbarButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
implementation
{$R *.dfm}
uses mainclients;
procedure TChildTemplateForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TChildTemplateForm.RzToolbarButton1Click(Sender: TObject);
begin
dbgrid1.DataSource.DataSet.Insert;
end;
procedure TChildTemplateForm.RzToolbarButton2Click(Sender: TObject);
begin
dbgrid1.DataSource.DataSet.Edit;
end;
end.
Листинг модуля DBDirectoryTemplate;
unit DBDirectoryTemplate;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids;

type
TDBDirectoryTemplateForm = class(TForm)
TableDBGrid: TDBGrid;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
DBDirectoryTemplateForm: TDBDirectoryTemplateForm;
implementation
{$R *.dfm}
procedure TDBDirectoryTemplateForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
end.
Листинг модуля parampoisk
unit parampoisk;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, Menus, ChildTemplate, Grids, DBGrids,addsorce,
StdCtrls, Mask,DateUtils, ExtCtrls, ComCtrls ;
type
Tparampoik = class(TForm)
Button1: TButton;
GroupBox1: TGroupBox;
Label1: TLabel;
Edit1: TEdit;
Label7: TLabel;
Edit2: TEdit;
UpDown1: TUpDown;
Edit3: TEdit;
Edit4: TEdit;
UpDown2: TUpDown;
Edit5: TEdit;
UpDown3: TUpDown;
Edit6: TEdit;
UpDown4: TUpDown;
Edit7: TEdit;
Label2: TLabel;
Label3: TLabel;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
parampoik: Tparampoik;
ChildTemplateForm1: TChildTemplateForm;
ff:string;
flagpoisk:boolean;
p1,p2:tparameter;
all:boolean;
ahour, aminute, asecond, amillisecond :word;
priznak:string;
stroka_SQL,pole,tabl, srtkl,name_poisk, sqlwhere:string;
idnakl,idzapas,i,sravn,kolnakl,kolzapas, rezerv_kol:integer;
implementation
uses mainclients;
{$R *.dfm}
procedure Tparampoik.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure Tparampoik.Button1Click(Sender: TObject);
var ChildTemplateForm:TChildTemplateform;
timenach,timekon:tdatetime;
begin
MainClientsForm.IsMDIChildOpen(MainClientsForm,'DBDirectoryTemplateForm');
MainClientsForm.IsMDIChildOpen(MainClientsForm,'addform');
MainClientsForm.IsMDIChildOpen(MainClientsForm,'ChildTemplateForm');
ChildTemplateForm:=TChildTemplateform.Create(Owner);

ChildTemplateForm.Left:=0;
ChildTemplateForm.Top:=3;
mainclientsform.DataSource1.DataSet:=mainclientsform.ADOQuery2;
mainclientsform.ADOQuery2.Active:=false;
mainclientsform.ADOQuery2.SQL.Clear;
if nomer_poisk=1 then begin
P1 :=mainclientsform.ADOQuery2.Parameters.AddParameter;
P1.Name:='P1';
p1.DataType := ftstring;
if edit1.Text<>'' then begin
srtkl := edit1.Text;
name_poisk:= 'Tovar.nameTovar'
end;
if srtkl<>'' then
begin
srtkl:='%'+ srtkl+'%';
P1.Value:=srtkl;
P1.Size:=Length(srtkl);
end;
ChildTemplateForm.Label1.Caption:='Информация о товаре: '+edit1.Text;
sqlwhere:= ' where (zapas.idzapas = ( select tovar.idzapas from tovar where tovar.nametovar like :P1))';
stroka_SQL:='select * from zapas'+sqlwhere ;
mainclientsform.ADOQuery2.SQL.Add(stroka_SQL);
if stroka_SQL<>'' then begin
mainclientsform.ADOQuery2.Active:=true;
mainclientsform.ADOQuery2.ExecSQL;
end;
end;
if nomer_poisk=2 then begin
P1 :=mainclientsform.ADOQuery2.Parameters.AddParameter;
P1.Name:='P1';
p1.DataType := ftdatetime;
ayear:= strtoint(Edit4.Text);
amonth:=strtoint(Edit3.Text);
aday:=strtoint(Edit2.Text);
ahour:=0;
aminute:=0;
asecond:=0;
amillisecond:=0;
timenach:=encodedatetime(Ayear, amonth,aday,ahour,aminute,asecond,amillisecond);
if edit1.Text<>'' then begin
srtkl := edit1.Text;
name_poisk:= 'Tovar.nameTovar'
end;
if srtkl<>'' then
begin
srtkl:='%'+ srtkl+'%';
P1.Value := timenach;
end;
sqlwhere:= ' where addional.srok_godnost < :P1';
stroka_SQL:='select tovar.nametovar, addional.srok_godnost from tovar,addional'+ sqlwhere;
mainclientsform.ADOQuery2.SQL.Add(stroka_SQL);
if stroka_SQL<>'' then begin
mainclientsform.ADOQuery2.Active:=true;
mainclientsform.ADOQuery2.ExecSQL;
end;
end;
if nomer_poisk=3 then begin
P1 :=mainclientsform.ADOQuery2.Parameters.AddParameter;
P1.Name:='P1';
p1.DataType := ftstring;
if edit1.Text<>'' then begin
srtkl := edit1.Text;
name_poisk:= 'Tovar.nameTovar'
end;
if srtkl<>'' then
begin
srtkl:='%'+ srtkl+'%';
P1.Value:=srtkl;
P1.Size:=Length(srtkl);
end;
sqlwhere:= ' where (location.idlocation = ( select tovar.idlocation from tovar where tovar.nametovar like :P1))';
stroka_SQL:='select * from location '+sqlwhere ;
mainclientsform.ADOQuery2.SQL.Add(stroka_SQL);
if stroka_SQL<>'' then begin
mainclientsform.ADOQuery2.Active:=true;
mainclientsform.ADOQuery2.ExecSQL;
end;
end;
if nomer_poisk=4 then begin
P1 :=mainclientsform.ADOQuery2.Parameters.AddParameter;
P1.Name:='P1';
p1.DataType := ftdatetime;
ayear:= strtoint(Edit4.Text);
amonth:=strtoint(Edit3.Text);
aday:=strtoint(Edit2.Text);
ahour:=0;
aminute:=0;
asecond:=0;
amillisecond:=0;
timenach:=encodedatetime(Ayear, amonth,aday,ahour,aminute,asecond,amillisecond);
ayear:= strtoint(Edit7.Text);
amonth:=strtoint(Edit6.Text);
aday:=strtoint(Edit5.Text);
ahour:=0;
aminute:=0;
asecond:=0;
amillisecond:=0;
timekon:=encodedatetime(Ayear, amonth,aday,ahour,aminute,asecond,amillisecond);
P2 :=mainclientsform.ADOQuery2.Parameters.AddParameter;
P2.Name:='P2';
p2.DataType := ftdatetime;
P1.Value := timenach;
P2.Value := timekon;
sqlwhere:= ' where (Nakladnaya.vremya > :P1) and (nakladnaya.vremya < :P2)';
stroka_SQL:='select * from Nakladnaya'+ sqlwhere;
mainclientsform.ADOQuery2.SQL.Add(stroka_SQL);
if stroka_SQL<>'' then begin
mainclientsform.ADOQuery2.Active:=true;
mainclientsform.ADOQuery2.ExecSQL;
end;
end;
if nomer_poisk=5 then begin
P1 :=mainclientsform.ADOQuery2.Parameters.AddParameter;
P1.Name:='P1';
p1.DataType := ftinteger;
if edit1.Text<>'' then
begin
idnakl:=strtoint(edit1.Text);
P1.Value :=idnakl;
sqlwhere:= ' where (Nakladnaya.idNakladnaya = :P1)';
stroka_SQL:='select * from Nakladnaya'+ sqlwhere;
mainclientsform.ADOQuery2.SQL.Add(stroka_SQL);
if stroka_SQL<>'' then begin
mainclientsform.ADOQuery2.Active:=true;
mainclientsform.ADOQuery2.ExecSQL;
end;
kol:= mainclientsform.ADOQuery2.RecordCount;
if kol=0 then showmessage('такого товара не существует')
else
begin
idtov:=mainclientsform.ADOQuery2.FieldByName('idtovar').AsInteger;
kolnakl:=(mainclientsform.ADOQuery2.FieldByName('kolichestvo').AsInteger);
priznak:=mainclientsform.ADOQuery2.FieldByName('provodka').AsString;
if priznak='N' then begin
mainclientsform.ADOQuery2.Active:=false;
mainclientsform.ADOQuery2.SQL.Clear;
P2 :=mainclientsform.ADOQuery2.Parameters.AddParameter;
P2.Name:='P2';
p2.DataType := ftinteger;
P2.Value :=idtov;
sqlwhere:= ' where (tovar.idtovar = :P2)';
stroka_SQL:='select * from tovar'+ sqlwhere;
mainclientsform.ADOQuery2.SQL.Add(stroka_SQL);
if stroka_SQL<>'' then begin
mainclientsform.ADOQuery2.Active:=true;
mainclientsform.ADOQuery2.ExecSQL;
end;
kol:= mainclientsform.ADOQuery2.RecordCount;
if kol=0 then showmessage('такого товара не существует')
else
begin
idzapas:=mainclientsform.ADOQuery2.FieldByName('idZapas').AsInteger;
if idzapas=0 then showmessage('товара нет в наличии')
else
begin
mainclientsform.ADOTable3.First;
for i:=1 to mainclientsform.ADOTable3.RecordCount do
begin
sravn:=mainclientsform.ADOTable3.FieldByName('idZapas').AsInteger;
if sravn=idzapas then
begin
kolzapas:=mainclientsform.ADOTable3.FieldByName('Zapas').AsInteger;
if kolnakl>kolzapas then showmessage('такого количества товара нет в наличии')
else
begin
rezerv_kol:=mainclientsform.ADOTable3.FieldByName('rezerv_kol').AsInteger;
if kolnakl>kolzapas- rezerv_kol then
showmessage('проводка не осуществлена - Товар зарезервирован')
else
begin
mainclientsform.ADOTable3.Edit;
mainclientsform.ADOTable3.FieldByName('Zapas').AsInteger:=kolzapas-kolnakl;
showmessage('проводка осуществлена УСПЕШНО!');
mainclientsform.ADOTable2.First;
for i:=1 to mainclientsform.ADOTable2.RecordCount do
begin
if idnakl= mainclientsform.ADOTable2.FieldByName('idNakladnaya').AsInteger
then
begin
mainclientsform.ADOTable2.Edit;
mainclientsform.ADOTable2.FieldByName('provodka').AsString:='Y';
end;
mainclientsform.ADOTable2.Next;
end;
end;
end;
end;
mainclientsform.ADOTable3.Next;
end;
end;
end;
end
else showmessage('проводка накладной не требуется')
end;
end;
end;
end;
end.
7. СОСТАВ БАЗЫ ДАННЫХ

Sklad_data.mdf - файл, содержащий, все таблицы базы данных

Sklad_log.ldf - файл, содержащий, все транзакции к базе данных
8. СОСТАВ ПРОГРАММНОГО КОМПЛЕКСА

mainClients Главный модуль: запуск, создание дочерних форм, организация взаимодействия, управление вычислительным процессом Parampoisk Формирование параметров поиска, организация проводки накладных Childetemplate Отображение результатов поиска в базе данных DBDDirectoryTemplate Просмотр справочных таблиц, организация взаимодействия с базой данных addsource Создание записей, накладных, заказов, отображение содержимое связанных таблиц
Склад товаров

Менеджер

Заказчик
(исполнитель работ)

Поставщики

Снабжение

Проект sklad

Главная форма приложения MainClients

childTemplate.pas

DbdDirectoryTemplate

AddSource.pas

ParamPoisk.pas

Условно постоянные затраты

Затраты на производство

Выручка от реализации

Сумма,
тыс. руб



76654

65

Объемы продаж, шт

ЛИТЕРАТУРА

1.Архангельский А.Я. 100 компонентов общего назначения библиотеки Delphi 5. — М.: Бином, 1999. — 266 с.
2.Архангельский А.Я. Delphi 6. Справочное пособие. — М.: Бином, 2001. — 1024 с.
3.Архангельский А.Я. Программирование в Delphi 6. — М.: Бином, 2001. — 564 с.
4.Архангельский А.Я. Язык SQL в Delphi 5. — М.: Бином, 2000. — 205 с.
5.Базы данных: модели, разработка, реализация / Карпова Т.- СПб.: Пи-тер, 2001. –304с.
6.Белов А.Н. Бухгалтерский учет в учреждениях непроизводственной сферы. – М.: Финансы и статистика, 1995. – 240с.
7.Буч Г. Объектно-ориентированное проектирование с примерами при-менения. М., 1992. - 654с.
8.Волков В. Ф. Экономика предприятия. – М.: Вита-Пресс, 1998. – 380с.
9.Галатенко В. Информационная безопасность // Открытые системы- 1996. – N 1-4.
10.Глушаков С.В., Ломотько Д.В. Базы данных .- Х.: Фолио, 2002. – 504 с.
11.Голубков Е.П. Маркетинг: стратегии, планы, структуры. М., Де¬ло, 1995. – 450с.
12.Голубков Е.П. Маркетинговые исследования: теория, методология и практика. М., Финпресс, 1998. – 280с.
13.Гофман В.Э. Хомоненко А.Д. Delphi 5. - СПб.: - Санки-Петербург, 2000. –800с.
14.Гофман В.Э. Хомоненко А.Д. Delphi 6. - СПб.: - Санки-Петербург, 2001. –1145с.
15.Дайан А. и др. Маркетинг. М., Экономика, 1993.
16.Жидецкий В. Ц. Охрана труда пользователей компьютеров. – К.: «Ос-вгга», 1999.- 186с.
17.Жутова З.У. Бюджетный учет и отчетность. М.: Финансы, 1970.-215с.
18.Ковалев А. И., Войленко В. В. Маркетинговый анализ. М., Центр эко-номики и маркетинга, 1996.
19.Конноли Томас, Бегг Каролин. Базы данных. Проектирование, реализа-ция и сопровождение. Теория и практика. — М.: Вильямс, 2000. – 1111 с.
20.Культин Н.Б. Delphi 6: Программирование на OBJECT PASCAL. — М.: Бином, 2001. — 526 с.
21.Культин Н.Б. Delphi 7: Программирование на OBJECT PASCAL. — М.: Бином, 2003. — 535 с.
22.Магнус Я.Р., Катышев П.К., Пересецкий А.А. Эконометрика. Началь-ный курс. М., Дело, 1997
23.Маклаков С.В. BPwin и ERwin. CASE-средства разработки информаци-онных систем. — М.: Диалог-Мифи, 2001. — 304 с.
24.Матвеева В.О. Бюджетные организации: бухгалтерский учет и налого-облажение. –Харьков: Фактор, 2001. – 566с.
25.Турчин С. Обзор АСУП для малого бизнеса. Функциональные особен-ности // Компьютерное обозрение № 17 (286), 2001. с.22-27. // www.ITC-UA.COM
26.Фатрелл Р., Шафер Д. Шафер Л. Управление программными проекта-ми: достижение оптимального качества при минимуме затрат. М.: «Вильямс», 2003. – 1128с.
27.Черников А. Поздняков В. От бухгалтерии под Windows к открытым Unix-системам // Компьютерное обозрение № 34 (402), 2003. с.22-27. www.ITC-UA.COM
28.Шумаков П.В., Фаронов В.В. Delphi 5. Руководство разработчика баз данных. — М.: Нолидж, 2000. — 635 с.

Вопрос-ответ:

Для чего используется система складского учета материалов в строительной компании Delphi 6?

Система складского учета материалов в строительной компании Delphi 6 используется для эффективного контроля и управления запасами материалов на складе. Она позволяет автоматизировать процессы приема, хранения, выдачи и списания материалов, а также вести учет остатков и движения материальных ценностей.

Какие требования предъявляются к системе складского учета материалов в строительной компании Delphi 6?

К системе складского учета материалов в строительной компании Delphi 6 предъявляются такие требования, как точность и надежность учета, удобный интерфейс для работы с системой, возможность генерации отчетов и аналитики, поддержка различных операций с материалами (прием, хранение, выдача, списание), возможность интеграции с другими информационными системами компании.

Каким образом система складского учета материалов в строительной компании Delphi 6 повышает эффективность внедрения?

Система складского учета материалов в строительной компании Delphi 6 повышает эффективность внедрения путем автоматизации рутинных процессов учета материалов, устранения возможности ошибок в учете, обеспечения быстрого доступа к информации и возможности оперативного контроля за запасами. Это позволяет сэкономить время и ресурсы, оптимизировать процессы управления и принимать более обоснованные решения.

Какие технические средства используются для реализации проекта системы складского учета материалов в строительной компании Delphi 6?

Для реализации проекта системы складского учета материалов в строительной компании Delphi 6 используются следующие технические средства: Delphi 6 - интегрированная среда разработки, позволяющая создавать программное обеспечение; локальная СУБД - система управления базами данных, обеспечивающая хранение и обработку информации; компьютеры или серверы для установки программного обеспечения и хранения данных.

Какие технические средства используются для работы системы складского учета материалов в строительной компании Delphi 6?

Для работы системы складского учета материалов в строительной компании Delphi 6 используются компьютеры или серверы с установленной программой Delphi 6 и локальной СУБД. Также может использоваться сеть для доступа к системе учета и обмена данными между разными пользователями.

Какая цель системы подсистемы складкого учета материалов в строительной компании Delphi 6?

Целью системы является облегчение и ускорение учета материалов на складе строительной компании Delphi 6. Она позволяет автоматизировать процесс учета поступления и расхода материалов, а также контролировать и оптимизировать их использование.

Какие требования предъявляются к системе подсистемы складкого учета материалов в строительной компании Delphi 6?

К системе предъявляются следующие требования: надежность и безопасность данных, простота и удобство использования, возможность ведения детального учета, гибкость системы для адаптации к различным потребностям компании, возможность генерации отчетов и анализа данных.

Каким образом система подсистемы складкого учета материалов в строительной компании Delphi 6 повышает эффективность внедрения?

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

Какие технические средства используются для реализации проекта системы подсистемы складкого учета материалов в строительной компании Delphi 6?

Для реализации проекта используются следующие технические средства: Delphi 6 - среда разработки программного обеспечения, локальная СУБД - база данных для хранения информации о материалах и операциях с ними, компьютеры и серверы для установки программного обеспечения и обеспечения доступа к системе.

Каким образом система подсистемы складкого учета материалов в строительной компании Delphi 6 помогает контролировать и оптимизировать использование материалов на складе?

Система позволяет автоматизировать учет поступления и расхода материалов, а также отслеживать и анализировать их количество и состояние в реальном времени. Это позволяет производить своевременный контроль за запасами и оптимизировать их использование, избегая излишних или недостаточных закупок.