Код программы и его краткое описание
DBComponents. ADOQuery_Prihod_Naklad.SQL.Text:='SELECT, Поставщики. Название фирмы], Приход. Код поставщика], Приход, Оплачено, Внесено, Сумма FROM Приход, Поставщики WHERE Приход. Код поставщика]=Поставщики. Код поставщика]'; DBComponents. ADOQuery_Rashod_Details.SQL.Text:='SELECT Товары. Артикул, Товары. Название,. Количество,. Стоимость единицы],. Стоимость FROM Товары, WHERE='+kod_naklad… Читать ещё >
Код программы и его краткое описание (реферат, курсовая, диплом, контрольная)
Код проекта.
program Project1;
uses.
Forms,.
Unit1 in 'Unit1.pas' {MainForm},.
Unit2 in 'Unit2.pas' {DBComponents: TDataModule},.
Unit3 in 'Unit3.pas' {Priem},.
Unit4 in 'Unit4.pas' {Rashod},.
Unit5 in 'Unit5.pas' {Nalichie},.
Unit6 in 'Unit6.pas' {Priem_naklad},.
Unit7 in 'Unit7.pas' {Rashod_naklad},.
Unit8 in 'Unit8.pas' {Postavshiki},.
Unit9 in 'Unit9.pas' {Pokupateli},.
Unit10 in 'Unit10.pas' {Tovarooborot},.
Unit11 in 'Unit11.pas' {Finansy},.
Unit12 in 'Unit12.pas' {Rashod_Print};
{$R *.res}.
begin.
Application.Initialize;
Application.Title := 'Склад';
Application.CreateForm (TMainForm, MainForm);
Application.CreateForm (TDBComponents, DBComponents);
Application.CreateForm (TRashod_Print, Rashod_Print);
Application.Run;
end.
Главное окно программы — «MainForm"(управляющая форма).
Служит для вызова той или иной формы управления складом.
unit Unit1;
interface.
uses.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,.
Dialogs, StdCtrls, Unit2, Unit3, Unit4, Unit5, Unit6, Unit7, Unit8, Unit9, Unit10, Unit11, DateUtils;
type.
TMainForm = class (TForm).
GroupBox1: TGroupBox;
Button_Priem: TButton;
Button_Rashod: TButton;
Button_Nalichie: TButton;
GroupBox2: TGroupBox;
Button_Priem_Naklad: TButton;
Button_Rashod_Naklad: TButton;
Button_Close: TButton;
GroupBox3: TGroupBox;
GroupBox4: TGroupBox;
Button_Postavshiki: TButton;
Button_Pokupateli: TButton;
Button_Tovarooborot: TButton;
Button_Finansy: TButton;
Label1: TLabel;
Button5: TButton;
Label2: TLabel;
procedure Button_CloseClick (Sender: TObject);
procedure Button_PriemClick (Sender: TObject);
procedure Button_RashodClick (Sender: TObject);
procedure Button_NalichieClick (Sender: TObject);
procedure Button_Priem_NakladClick (Sender: TObject);
procedure Button_Rashod_NakladClick (Sender: TObject);
procedure Button_PostavshikiClick (Sender: TObject);
procedure Button_PokupateliClick (Sender: TObject);
procedure Button_TovarooborotClick (Sender: TObject);
procedure Button_FinansyClick (Sender: TObject);
procedure FormCreate (Sender: TObject);
procedure Button5Click (Sender: TObject);
private.
{ Private declarations }.
public.
{ Public declarations }.
end;
var.
MainForm: TMainForm;
implementation.
{$R *.dfm}.
procedure TMainForm. Button_CloseClick (Sender: TObject);
begin.
close;
end;
procedure TMainForm. Button_PriemClick (Sender: TObject);
begin.
Application.CreateForm (TPriem, Priem);
Priem.Show;
end;
procedure TMainForm. Button_RashodClick (Sender: TObject);
begin.
Application.CreateForm (TRashod, Rashod);
Rashod.Show;
end;
procedure TMainForm. Button_NalichieClick (Sender: TObject);
begin.
Application.CreateForm (TNalichie, Nalichie);
Nalichie.Show;
end;
procedure TMainForm. Button_Priem_NakladClick (Sender: TObject);
begin.
Application.CreateForm (TPriem_naklad, Priem_naklad);
Priem_naklad.Show.
end;
procedure TMainForm. Button_Rashod_NakladClick (Sender: TObject);
begin.
Application.CreateForm (TRashod_naklad, Rashod_naklad);
Rashod_naklad.Show;
end;
procedure TMainForm. Button_PostavshikiClick (Sender: TObject);
begin.
Application.CreateForm (TPostavshiki, Postavshiki);
Postavshiki.Show;
end;
procedure TMainForm. Button_PokupateliClick (Sender: TObject);
begin.
Application.CreateForm (TPokupateli, Pokupateli);
Pokupateli.Show;
end;
prcedure TMainForm. Button_TovarooborotClick (Sender: TObject);
begin.
Application.CreateForm (TTovarooborot, Tovarooborot);
Tovarooborot.Show;
end;
procedure TMainForm. Button_FinansyClick (Sender: TObject);
begin.
Application.CreateForm (TFinansy, Finansy);
Finansy.Show;
end;
procedure TMainForm. FormCreate (Sender: TObject);
begin.
Label2.Caption:=DateToStr (Now);
end;
procedure TMainForm. Button5Click (Sender: TObject);
var.
ost, i: integer;
art:string;
begin.
if DayOfTheMonth (Now)=1.
then.
begin.
DBComponents.ADOQuery_Priem.SQL.Text:='DELETE FROM Приход WHERE Оплачено=True';
DBComponents.ADOQuery_Priem.ExecSQL;
DBComponents.ADOQuery_Rashod_Naklad.SQL.Text:='SELECT [Код накладной] FROM Расход WHERE Оплачено=True';
DBComponents.ADOQuery_Rashod_Naklad.Active:=True;
i:=DBComponents.ADOQuery_Rashod_Naklad.RecNo;
DBComponents.ADOQuery_Rashod_Naklad.First;
while not (DBComponents.ADOQuery_Rashod_Naklad.Eof) do.
begin.
art:=DBComponents.ADOQuery_Rashod_Naklad.FieldByName ('Код накладной').AsString;
DeleteFile ('НакладныеНакладная_№_'+art+'.txt');
DBComponents.ADOQuery_Rashod_Naklad.Next;
end;
DBComponents.ADOQuery_Rashod_Naklad.RecNo:=i;
DBComponents.ADOQuery_Rashod.SQL.Text:='DELETE FROM Расход WHERE Оплачено=True';
DBComponents.ADOQuery_Rashod.ExecSQL;
DBComponents.ADOQuery_Tovari.SQL.Text:='SELECT Артикул,[Остаток на 1 число] FROM Товары ORDER BY Артикул';
DBComponents.ADOQuery_Tovari.Active:=True;
i:=DBComponents.ADOQuery_Tovari.RecNo;
DBComponents.ADOQuery_Tovari.First;
while not (DBComponents.ADOQuery_Tovari.Eof) do.
begin.
art:=DBComponents.ADOQuery_Tovari.FieldByName ('Артикул').AsString;
ost:=DBComponents.ADOQuery_Tovari.FieldByName ('Остаток на 1 число').AsInteger;
DBComponents.ADOQuery_Priem.SQL.Text:='SELECT SUM (Количество) AS Приход FROM [Подробности прихода] WHERE [Подробности прихода]. Артикул='+art+'';
DBComponents.ADOQuery_Priem.Active:=True;
ost:=ost+DBComponents.ADOQuery_Priem.FieldByName ('Приход').AsInteger;
DBComponents.ADOQuery_Priem.SQL.Text:='SELECT SUM (Количество) AS Расход FROM [Подробности расхода] WHERE [Подробности расхода]. Артикул='+art+'';
DBComponents.ADOQuery_Priem.Active:=True;
ost:=ost-DBComponents.ADOQuery_Priem.FieldByName ('Расход').AsInteger;
DBComponents.ADOQuery_Priem.SQL.Text:='UPDATE Товары SET [Остаток на 1 число]='+IntToStr (ost)+' WHERE Артикул='+art+'';
DBComponents.ADOQuery_Priem.ExecSQL;
DBComponents.ADOQuery_Tovari.Next;
end;
DBComponents.ADOQuery_Tovari.RecNo:=i;
end;
DBComponents.ADOQuery_Prihod_Naklad.SQL.Text:='DELETE FROM Приход WHERE Оплачено=True AND [Дата оплаты].
DBComponents.ADOQuery_Prihod_Naklad.ExecSQL;
DBComponents.ADOQuery_Rashod_Naklad.SQL.Text:='SELECT [Код накладной] FROM Расход WHERE Оплачено=True AND [Дата оплаты].
DBComponents.ADOQuery_Rashod_Naklad.Active:=True;
i:=DBComponents.ADOQuery_Rashod_Naklad.RecNo;
DBComponents.ADOQuery_Rashod_Naklad.First;
while not (DBComponents.ADOQuery_Rashod_Naklad.Eof) do.
begin.
art:=DBComponents.ADOQuery_Rashod_Naklad.FieldByName ('Код накладной').AsString;
DeleteFile ('НакладныеНакладная_№_'+art+'.txt');
DBComponents.ADOQuery_Rashod_Naklad.Next;
end;
DBComponents.ADOQuery_Rashod_Naklad.RecNo:=i;
DBComponents.ADOQuery_Rashod_Naklad.SQL.Text:='DELETE FROM Расход WHERE Оплачено=True AND [Дата оплаты].
DBComponents.ADOQuery_Rashod_Naklad.ExecSQL;
Button_Priem.Enabled:=True;
Button_Rashod.Enabled:=True;
Button_Nalichie.Enabled:=True;
Button_Priem_Naklad.Enabled:=True;
Button_Rashod_Naklad.Enabled:=True;
Button_Postavshiki.Enabled:=True;
Button_Pokupateli.Enabled:=True;
Button_Tovarooborot.Enabled:=True;
Button_Finansy.Enabled:=True;
end;
end.
Модуль данных программы — «DBComponents».
Содержит XPMan, а так же ADOConnection, DataSource, ADOQuery, соответствующие каждой функции программы.
unit Unit2;
interface.
uses.
SysUtils, Classes, XPMan, DB, ADODB;
type.
TDBComponents = class (TDataModule).
ADOConnection1: TADOConnection;
ADOQuery_Priem: TADOQuery;
DataSource_Priem: TDataSource;
XPManifest1: TXPManifest;
ADOQuery_Rashod: TADOQuery;
DataSource_Rashod: TDataSource;
ADOQuery_Prihod_Naklad: TADOQuery;
DataSource_Prihod_Naklad: TDataSource;
ADOQuery_Rashod_Naklad: TADOQuery;
DataSource_Rashod_Naklad: TDataSource;
ADOQuery_Tovari: TADOQuery;
DataSource_Tovari: TDataSource;
ADOQuery_Prihod_Details: TADOQuery;
DataSource_Prihod_Details: TDataSource;
ADOQuery_Rashod_Details: TADOQuery;
DataSource_Rashod_Details: TDataSource;
ADOQuery_Postavshiki: TADOQuery;
DataSource_Postavshiki: TDataSource;
ADOQuery_Pokupateli: TADOQuery;
DataSource_Pokupateli: TDataSource;
ADOQuery_Tovarooborot: TADOQuery;
DataSource_Tovarooborot: TDataSource;
ADOQuery_Finansy_Pokup1: TADOQuery;
DataSource_Finansy_Pokup1: TDataSource;
ADOQuery_Print1: TADOQuery;
DataSource_Print1: TDataSource;
ADOQuery_Print2: TADOQuery;
DataSource_Print2: TDataSource;
ADOQuery_Finansy_Post: TADOQuery;
DataSource_Finansy_Post: TDataSource;
ADOQuery_Finansy_Pokup2: TADOQuery;
DataSource_Finansy_Pokup2: TDataSource;
private.
{ Private declarations }.
public.
{ Public declarations }.
end;
var.
DBComponents: TDBComponents;
implementation.
{$R *.dfm}.
end.
Окно приёма товара — «Priem».
В этой форме реализована возможность приёма товара по приходным накладным.
unit Unit3;
interface.
uses.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,.
Dialogs, StdCtrls, ComCtrls, ExtCtrls, DBCtrls, Grids, DBGrids,.
Mask, Unit2;
type.
TPriem = class (TForm).
GroupBox1: TGroupBox;
Edit1: TEdit;
CheckBox1: TCheckBox;
DateTimePicker1: TDateTimePicker;
DateTimePicker2: TDateTimePicker;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
GroupBox2: TGroupBox;
Button2: TButton;
StringGrid1: TStringGrid;
Label9: TLabel;
Edit4: TEdit;
Button1: TButton;
Button3: TButton;
Label10: TLabel;
Button4: TButton;
Edit3: TEdit;
Label11: TLabel;
Edit5: TEdit;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
procedure Button2Click (Sender: TObject);
procedure Button3Click (Sender: TObject);
procedure Button4Click (Sender: TObject);
procedure FormCreate (Sender: TObject);
procedure Button1Click (Sender: TObject);
private.
{ Private declarations }.
public.
{ Public declarations }.
end;
var.
Priem: TPriem;
n:integer;
implementation.
{$R *.dfm}.
procedure TPriem. Button2Click (Sender: TObject);
begin.
close;
end;
procedure TPriem. Button3Click (Sender: TObject);
var.
i, cost, summ, razn, vznos: integer;
kod, cost1, kol: string;
begin.
summ:=0;
DBComponents.ADOQuery_Priem.SQL.Text:='INSERT INTO Приход ([Код поставщика], Приход,[Дата прихода], Внесено) VALUES ('+Edit1.Text+','+BoolToStr (CheckBox1.Checked)+'," '+DateToStr (DateTimePicker1.Date)+'" ,'+Edit2.Text+')';
DBComponents.ADOQuery_Priem.ExecSQL;
DBComponents.ADOQuery_Priem.SQL.Text:='SELECT max ([Код накладной]) FROM Приход';
DBComponents.ADOQuery_Priem.Active:=True;
kod:=DBComponents.ADOQuery_Priem.Fields[0]. AsString;
Edit3.Text:=kod;
Edit3.Enabled:=True;
for i:=1 to n do.
begin.
DBComponents.ADOQuery_Priem.SQL.Text:='SELECT [Цена покупки] FROM Товары WHERE Товары. Артикул='+StringGrid1.Cells[1,i]+'';
DBComponents.ADOQuery_Priem.Active:=True;
cost1:=DBComponents.ADOQuery_Priem.Fields[0]. AsString;
cost:=StrToInt (cost1)*StrToInt (StringGrid1.Cells[2,i]);
DBComponents.ADOQuery_Priem.SQL.Text:='SELECT Количество FROM Товары WHERE Товары. Артикул='+StringGrid1.Cells[1,i]+'';
DBComponents.ADOQuery_Priem.Active:=True;
kol:=DBComponents.ADOQuery_Priem.Fields[0]. AsString;
kol:=IntToStr (StrToInt (kol)+StrToInt (StringGrid1.Cells[2,i]));
DBComponents.ADOQuery_Priem.SQL.Clear;
DBComponents.ADOQuery_Priem.SQL.Text:='UPDATE Товары SET Количество='+kol+' WHERE Товары. Артикул='+StringGrid1.Cells[1,i]+'';
DBComponents.ADOQuery_Priem.ExecSQL;
DBComponents.ADOQuery_Priem.SQL.Text:='INSERT INTO [Подробности прихода] ([Код накладной], Артикул, Количество,[Стоимость единицы], Стоимость) VALUES ('+kod+','+StringGrid1.Cells[1,i]+','+StringGrid1.Cells[2,i]+','+cost1+','+IntToStr (cost)+')';
DBComponents.ADOQuery_Priem.ExecSQL;
summ:=summ+cost;
end;
Edit5.Text:=IntToStr (summ);
vznos:=StrToInt (Edit2.Text);
razn:=summ-vznos;
if razn>0.
then.
begin.
DBComponents.ADOQuery_Priem.SQL.Text:='UPDATE Приход SET Оплачено=False, Сумма='+Edit5.Text+' WHERE [Код накладной]='+kod+'';
DBComponents.ADOQuery_Priem.ExecSQL;
ShowMessage ('Не хватает '+IntToStr (razn)+' рублей');
end.
else.
begin.
DBComponents.ADOQuery_Priem.SQL.Text:='UPDATE Приход SET Оплачено=True,[Дата оплаты]="'+DateToStr (DateTimePicker2.Date)+'", Внесено='+Edit5.Text+', Сумма='+Edit5.Text+' WHERE [Код накладной]='+kod+'';
DBComponents.ADOQuery_Priem.ExecSQL;
if razn0 then ShowMessage ('Сдача '+IntToStr (abs (razn))+' рублей');
end;
Label10.Visible:=True;
end;
procedure TPriem. Button4Click (Sender: TObject);
begin.
Label10.Visible:=False;
Edit3.Enabled:=False;
Edit3.Clear;
Edit1.Clear;
Edit2.Clear;
Edit4.Clear;
StringGrid1.Enabled:=False;
StringGrid1.RowCount:=2;
CheckBox1.Checked:=False;
Button3.Enabled:=False;
StringGrid1.Cells[1,1]: ='';
StringGrid1.Cells[2,1]: ='';
end;
procedure TPriem. FormCreate (Sender: TObject);
begin.
StringGrid1.Cells[1,0]: =' Артикул';
StringGrid1.Cells[2,0]: =' Количество';
StringGrid1.Cells[0,1]: ='1';
StringGrid1.ColWidths[0]: =30;
end;
procedure TPriem. Button1Click (Sender: TObject);
var.
i:integer;
begin.
if Edit4. Text='0'.
then.
begin.
ShowMessage ('Количество позиций должно быть больше 0');
Exit;
end;
Try.
n:=StrtoInt (Edit4.Text);
Except.
ShowMessage ('Задайте верное количество позиций');
Exit;
end;
StringGrid1.RowCount:=n+1;
for i:=1 to n do.
StringGrid1.Cells[0,i]: =IntToStr (i);
StringGrid1.Enabled:=True;
Button3.Enabled:=True;
end;
end.
Окно отпуска товара — «Rashod».
В этой форме, по аналогии с предыдущей, реализована возможность отпуска товара по расходным накладным, после формирования накладной происходит создание отчёта с составом накладной и возможностью печати.
unit Unit4;
interface.
uses.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,.
Dialogs, StdCtrls, Grids, ComCtrls, Unit2, Unit12;
type.
TRashod = class (TForm).
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label4: TLabel;
Label7: TLabel;
Label8: TLabel;
Edit1: TEdit;
DateTimePicker1: TDateTimePicker;
Edit2: TEdit;
Edit3: TEdit;
GroupBox2: TGroupBox;
Label9: TLabel;
Label10: TLabel;
StringGrid1: TStringGrid;
Edit4: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Label3: TLabel;
Label13: TLabel;
Label6: TLabel;
DateTimePicker2: TDateTimePicker;
Label5: TLabel;
CheckBox1: TCheckBox;
procedure Button3Click (Sender: TObject);
procedure FormCreate (Sender: TObject);
procedure Button4Click (Sender: TObject);
procedure Button2Click (Sender: TObject);
procedure Button1Click (Sender: TObject);
private.
{ Private declarations }.
public.
{ Public declarations }.
end;
var.
Rashod: TRashod;
n:integer;
implementation.
{$R *.dfm}.
procedure TRashod. Button2Click (Sender: TObject);
begin.
close;
end;
procedure TRashod. Button3Click (Sender: TObject);
var.
i, cost, summ: integer;
kod, cost1, kol: string;
begin.
summ:=0;
for i:=1 to n do.
begin.
DBComponents.ADOQuery_Rashod.SQL.Text:='SELECT Количество FROM Товары WHERE Товары. Артикул='+StringGrid1.Cells[1,i]+'';
DBComponents.ADOQuery_Rashod.Active:=True;
kol:=DBComponents.ADOQuery_Rashod.Fields[0]. AsString;
kol:=IntToStr (StrToInt (kol)-StrToInt (StringGrid1.Cells[2,i]));
if StrToInt (kol)<0.
then.
begin.
ShowMessage ('Не хватает '+IntToStr (Abs (StrToInt (kol)))+' позиций на складе с артикулом '+StringGrid1.Cells[1,i]+'');
Exit;
end;
end;
DBComponents.ADOQuery_Rashod.SQL.Text:='INSERT INTO Расход ([Код покупателя],[Дата отпуска]) VALUES ('+Edit1.Text+'," '+DateToStr (DateTimePicker1.Date)+'")';
DBComponents.ADOQuery_Rashod.ExecSQL;
DBComponents.ADOQuery_Rashod.SQL.Text:='SELECT max ([Код накладной]) FROM Расход';
DBComponents.ADOQuery_Rashod.Active:=True;
kod:=DBComponents.ADOQuery_Rashod.Fields[0]. AsString;
Edit3.Text:=kod;
Edit3.Enabled:=True;
for i:=1 to n do.
begin.
DBComponents.ADOQuery_Rashod.SQL.Text:='SELECT [Цена продажи] FROM Товары WHERE Товары. Артикул='+StringGrid1.Cells[1,i]+'';
DBComponents.ADOQuery_Rashod.Active:=True;
cost1:=DBComponents.ADOQuery_Rashod.Fields[0]. AsString;
cost:=StrToInt (cost1)*StrToInt (StringGrid1.Cells[2,i]);
DBComponents.ADOQuery_Rashod.SQL.Text:='SELECT Количество FROM Товары WHERE Товары. Артикул='+StringGrid1.Cells[1,i]+'';
DBComponents.ADOQuery_Rashod.Active:=True;
kol:=DBComponents.ADOQuery_Rashod.Fields[0]. AsString;
kol:=IntToStr (StrToInt (kol)-StrToInt (StringGrid1.Cells[2,i]));
DBComponents.ADOQuery_Rashod.SQL.Clear;
DBComponents.ADOQuery_Rashod.SQL.Text:='UPDATE Товары SET Количество='+kol+' WHERE Товары. Артикул='+StringGrid1.Cells[1,i]+'';
DBComponents.ADOQuery_Rashod.ExecSQL;
DBComponents.ADOQuery_Rashod.SQL.Text:='INSERT INTO [Подробности расхода] ([Код накладной], Артикул, Количество,[Стоимость единицы], Стоимость) VALUES ('+kod+','+StringGrid1.Cells[1,i]+','+StringGrid1.Cells[2,i]+','+cost1+','+IntToStr (cost)+')';
DBComponents.ADOQuery_Rashod.ExecSQL;
summ:=summ+cost;
end;
Edit2.Text:=IntToStr (summ);
DBComponents.ADOQuery_Priem.SQL.Text:='UPDATE Расход SET Сумма='+Edit2.Text+' WHERE [Код накладной]='+kod+'';
DBComponents.ADOQuery_Priem.ExecSQL;
if Checkbox1. Checked=True.
then.
begin.
DBComponents.ADOQuery_Priem.SQL.Text:='UPDATE Расход SET Оплачено=True,[Дата оплаты]="'+DateToStr (DateTimePicker1.Date)+'" WHERE [Код накладной]='+kod+'';
DBComponents.ADOQuery_Priem.ExecSQL;
end;
Label10.Visible:=True;
DBComponents.ADOQuery_Print2.SQL.Text:='SELECT Расход. Код покупателя],[Название фирмы], Фамилия, Имя, Отчество, Телефон, Адрес,[Банк покупателя],[Расчётный счёт] FROM Расход, Покупатели WHERE Расход. Код накладной]='+kod+' AND Расход. Код покупателя]=Покупатели. Код покупателя]';
DBComponents.ADOQuery_Print2.Active:=True;
DBComponents.ADOQuery_Print1.SQL.Text:='SELECT [Код накладной], Товары. Артикул, Название,[Подробности расхода]. Количество,[Стоимость единицы], Стоимость FROM [Подробности расхода], Товары WHERE [Код накладной]='+kod+' AND Товары. Артикул=[Подробности расхода]. Артикул';
DBComponents.ADOQuery_Print1.Active:=True;
Rashod_Print.QuickRep1.ExportToFilter (TQRAsciiExp…
DBComponents.ADOQuery_Priem.ExecSQL;
end;
DBComponents.ADOQuery_Prihod_Naklad.SQL.Text:='SELECT [Код накладной], Поставщики. Название фирмы], Приход. Код поставщика], Приход,[Дата прихода], Оплачено,[Дата оплаты], Внесено, Сумма FROM Приход, Поставщики WHERE Приход. Код поставщика]=Поставщики. Код поставщика]';
DBComponents.ADOQuery_Prihod_Naklad.Active:=True;
end;
end.
Список расходных накладных — «Rashod_naklad».
В данном меню, по аналогии с предыдущей формой, реализовано отображение списка расходных накладных и состав любой выбранной из них с возможностью проставления отметок об оплате и дате оплаты накладной, выполнена реализация печати выбранной накладной.
unit Unit7;
interface.
uses.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,.
Dialogs, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, Unit2, ComCtrls, Unit12;
type.
TRashod_naklad = class (TForm).
GroupBox1: TGroupBox;
Label1: TLabel;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
Edit1: TEdit;
Button2: TButton;
GroupBox2: TGroupBox;
DBGrid2: TDBGrid;
DBNavigator2: TDBNavigator;
Button1: TButton;
Label2: TLabel;
Label3: TLabel;
Edit2: TEdit;
Edit3: TEdit;
Label4: TLabel;
Label5: TLabel;
GroupBox3: TGroupBox;
Button3: TButton;
CheckBox1: TCheckBox;
DateTimePicker1: TDateTimePicker;
Button4: TButton;
procedure Button2Click (Sender: TObject);
procedure Button1Click (Sender: TObject);
procedure FormCreate (Sender: TObject);
procedure DBGrid1CellClick (Column: TColumn);
procedure DBNavigator1Click (Sender: TObject; Button: TNavigateBtn);
procedure Button3Click (Sender: TObject);
procedure Button4Click (Sender: TObject);
private.
{ Private declarations }.
public.
{ Public declarations }.
end;
var.
Rashod_naklad: TRashod_naklad;
kod_naklad, summ, vneseno, oplacheno: string;
implementation.
{$R *.dfm}.
procedure TRashod_naklad.Button1Click (Sender: TObject);
begin.
close;
end;
procedure TRashod_naklad.FormCreate (Sender: TObject);
begin.
DBComponents.ADOQuery_Rashod_Naklad.SQL.Text:='SELECT SUM (Сумма) FROM Расход WHERE Оплачено=True';
DBComponents.ADOQuery_Rashod_Naklad.Active:=True;
vneseno:=DBComponents.ADOQuery_Rashod_Naklad.Fields[0]. AsString;
DBComponents.ADOQuery_Rashod_Naklad.SQL.Text:='SELECT SUM (Сумма) FROM Расход';
DBComponents.ADOQuery_Rashod_Naklad.Active:=True;
summ:=DBComponents.ADOQuery_Rashod_Naklad.Fields[0]. AsString;
Edit2.Text:=vneseno;
Edit3.Text:=summ;
DBComponents.ADOQuery_Rashod_Naklad.SQL.Text:='SELECT [Код накладной], Покупатели. Название фирмы], Расход. Код покупателя],[Дата отпуска], Оплачено,[Дата оплаты], Сумма FROM Расход, Покупатели WHERE Расход. Код покупателя]=Покупатели. Код покупателя]';
DBComponents.ADOQuery_Rashod_Naklad.Active:=True;
kod_naklad:=DBGrid1.DataSource.DataSet.FieldValues['Код накладной'];
oplacheno:=DBGrid1.DataSource.DataSet.FieldValues['Оплачено'];
Edit1.Text:=kod_naklad;
CheckBox1.Checked:=StrToBool (oplacheno);
DBComponents.ADOQuery_Rashod_Details.SQL.Text:='SELECT Товары. Артикул, Товары. Название,[Подробности расхода]. Количество,[Подробности расхода]. Стоимость единицы],[Подробности расхода]. Стоимость FROM Товары,[Подробности расхода] WHERE [Код накладной]='+kod_naklad+' AND Товары. Артикул=[Подробности расхода]. Артикул ORDER BY Товары. Артикул';
DBComponents.ADOQuery_Rashod_Details.Active:=True;
end;
procedure TRashod_naklad.DBGrid1CellClick (Column: TColumn);
begin.
kod_naklad:=DBGrid1.DataSource.DataSet.FieldValues['Код накладной'];
oplacheno:=DBGrid1.DataSource.DataSet.FieldValues['Оплачено'];
Edit1.Text:=kod_naklad;
CheckBox1.Checked:=StrToBool (oplacheno);
DBComponents.ADOQuery_Rashod_Details.SQL.Text:='SELECT Товары. Артикул, Товары. Название,[Подробности расхода]. Количество,[Подробности расхода]. Стоимость единицы],[Подробности расхода]. Стоимость FROM Товары,[Подробности расхода] WHERE [Код накладной]='+kod_naklad+' AND Товары. Артикул=[Подробности расхода]. Артикул ORDER BY Товары. Артикул';
DBComponents.ADOQuery_Rashod_Details.Active:=True;
end;
procedure TRashod_naklad.Button2Click (Sender: TObject);
begin.
kod_naklad:=Edit1.Text;
DBGrid1.DataSource.DataSet.RecNo:=StrToInt (kod_naklad);
DBComponents.ADOQuery_Rashod_Details.SQL.Text:='SELECT Товары. Артикул, Товары. Название,[Подробности расхода]. Количество,[Подробности расхода]. Стоимость единицы],[Подробности расхода]. Стоимость FROM Товары,[Подробности расхода] WHERE [Код накладной]='+kod_naklad+' AND Товары. Артикул=[Подробности расхода]. Артикул ORDER BY Товары. Артикул';
DBComponents.ADOQuery_Rashod_Details.Active:=True;
end;
procedure TRashod_naklad.DBNavigator1Click (Sender: TObject; Button: TNavigateBtn);
begin.
DBGrid1CellClick (nil);
end;
procedure TRashod_naklad.Button3Click (Sender: TObject);
begin.
if CheckBox1. Checked=True.
then.
begin.
DBComponents.ADOQuery_Priem.SQL.Text:='UPDATE Расход SET Оплачено=True,[Дата оплаты]="'+DateToStr (DateTimePicker1.Date)+'" WHERE [Код накладной]='+kod_naklad+'';
DBComponents.ADOQuery_Priem.ExecSQL;
end.
else.
begin.
DBComponents.ADOQuery_Priem.SQL.Text:='UPDATE Расход SET Оплачено=False WHERE [Код накладной]='+kod_naklad+'';
DBComponents.ADOQuery_Priem.ExecSQL;
end;
DBComponents.ADOQuery_Rashod_Naklad.SQL.Text:='SELECT [Код накладной], Покупатели. Название фирмы], Расход. Код покупателя],[Дата отпуска], Оплачено,[Дата оплаты], Сумма FROM Расход, Покупатели WHERE Расход. Код покупателя]=Покупатели. Код покупателя]';
DBComponents.ADOQuery_Rashod_Naklad.Active:=True;
end;
procedure TRashod_naklad.Button4Click (Sender: TObject);
begin.
DBComponents.ADOQuery_Print2.SQL.Text:='SELECT Расход. Код покупателя],[Название фирмы], Фамилия, Имя, Отчество, Телефон, Адрес,[Банк покупателя],[Расчётный счёт] FROM Расход, Покупатели WHERE Расход. Код накладной]='+kod_naklad+' AND Расход. Код покупателя]=Покупатели. Код покупателя]';
DBComponents.ADOQuery_Print2.Active:=True;
DBComponents.ADOQuery_Print1.SQL.Text:='SELECT [Код накладной], Товары. Артикул, Название,[Подробности расхода]. Количество,[Стоимость единицы], Стоимость FROM [Подробности расхода], Товары WHERE [Код накладной]='+kod_naklad+' AND Товары. Артикул=[Подробности расхода]. Артикул';
DBComponents.ADOQuery_Print1.Active:=True;
Rashod_Print.QuickRep1.Preview;
end;
procedure TRashod_naklad.Button5Click (Sender: TObject);
begin.
WinExec ('EXPLORER /e, '+'" Накладные" ', SW_SHOW);
end;
end.
Поставщики — «Postavshiki».
Список поставщиков с возможностью добавления и редактирования записей.
unit Unit8;
interface.
uses.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,.
Dialogs, Unit2, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids;
type.
TPostavshiki = class (TForm).
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
Button1: TButton;
procedure FormCreate (Sender: TObject);
procedure Button1Click (Sender: TObject);
private.
{ Private declarations }.
public.
{ Public declarations }.
end;
var.
Postavshiki: TPostavshiki;
implementation.
{$R *.dfm}.
procedure TPostavshiki. FormCreate (Sender: TObject);
begin.
DBComponents.ADOQuery_Postavshiki.SQL.Text:='SELECT * FROM Поставщики ORDER BY [Код поставщика]';
DBComponents.ADOQuery_Postavshiki.Active:=True;
end;
procedure TPostavshiki. Button1Click (Sender: TObject);
begin.
close;
end;
end.
Покупатели — «Pokupateli».
Список покупателей с возможностью добавления и редактирования записей.
unit Unit9;
interface.
uses.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,.
Dialogs, Unit2, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids;
type.
TPokupateli = class (TForm).
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
Button1: TButton;
procedure FormCreate (Sender: TObject);
procedure Button1Click (Sender: TObject);
private.
{ Private declarations }.
public.
{ Public declarations }.
end;
var.
Pokupateli: TPokupateli;
implementation.
{$R *.dfm}.
procedure TPokupateli. FormCreate (Sender: TObject);
begin.
DBComponents.ADOQuery_Pokupateli.SQL.Text:='SELECT * FROM Покупатели ORDER BY [Код покупателя]';
DBComponents.ADOQuery_Pokupateli.Active:=True;
end;
procedure TPokupateli. Button1Click (Sender: TObject);
begin.
close;
end;
end.
Товарооборот — «Tovarooborot».
Предоставление статистической информации в соответствии с таблицей 2 из задания.
unit Unit10;
interface.
uses.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,.
Dialogs, Unit2, StdCtrls, Grids, DBGrids;
type.
TTovarooborot = class (TForm).
DBGrid1: TDBGrid;
Button1: TButton;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
Label4: TLabel;
Edit4: TEdit;
procedure FormCreate (Sender: TObject);
procedure Button1Click (Sender: TObject);
private.
{ Private declarations }.
public.
{ Public declarations }.
end;
var.
Tovarooborot: TTovarooborot;
implementation.
{$R *.dfm}.
procedure TTovarooborot. FormCreate (Sender: TObject);
var.
ost, pri, ras, stoim, i: integer;
begin.
DBComponents.ADOQuery_Tovarooborot.SQL.Text:='SELECT Товары. Артикул, Название,[Цена покупки],[Цена продажи],[Остаток на 1 число],[Остаток на 1 число]*[Цена покупки] AS [Стоимость остатка], Sum ([Подробности прихода]. Количество) AS [Количество прихода],';
DBComponents.ADOQuery_Tovarooborot.SQL.Add (' [Количество прихода]*[Цена покупки] AS [Стоимость прихода], Sum ([Подробности расхода]. Количество) AS [Количество расхода],[Количество расхода]*[Цена покупки] AS [Стоимость расхода], Товары. Количество, Товары. Количество*[Цена покупки] AS Стоимость');
DBComponents.ADOQuery_Tovarooborot.SQL.Add (' FROM (Товары LEFT OUTER JOIN [Подробности расхода] ON Товары. Артикул=[Подробности расхода]. Артикул) LEFT OUTER JOIN [Подробности прихода] ON Товары. Артикул=[Подробности прихода]. Артикул');
DBComponents.ADOQuery_Tovarooborot.SQL.Add (' GROUP BY Товары. Артикул, Название,[Цена покупки],[Цена продажи], Товары. Количество,[Остаток на 1 число]');
DBComponents.ADOQuery_Tovarooborot.Active:=True;
ost:=0;
pri:=0;
ras:=0;
stoim:=0;
i:=DBComponents.ADOQuery_Tovarooborot.RecNo;
DBComponents.ADOQuery_Tovarooborot.First;
while not (DBComponents.ADOQuery_Tovarooborot.Eof) do.
begin.
ost:=ost+DBComponents.ADOQuery_Tovarooborot.FieldByName ('Стоимость остатка').AsInteger;
pri:=pri+DBComponents.ADOQuery_Tovarooborot.FieldByName ('Стоимость прихода').AsInteger;
ras:=ras+DBComponents.ADOQuery_Tovarooborot.FieldByName ('Стоимость расхода').AsInteger;
stoim:=stoim+DBComponents.ADOQuery_Tovarooborot.FieldByName ('Стоимость').AsInteger;
DBComponents.ADOQuery_Tovarooborot.Next;
end;
DBComponents.ADOQuery_Tovarooborot.RecNo:=i;
Edit1.Text:=IntToStr (ost);
Edit2.Text:=IntToStr (pri);
Edit3.Text:=IntToStr (ras);
Edit4.Text:=IntToStr (stoim);
end;
procedure TTovarooborot. Button1Click (Sender: TObject);
begin.
close;
end;
end.
Финансы — «Finansy».
Представление информации о задолженностях по поставщикам и покупателям.
unit Unit11;
interface.
uses.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,.
Dialogs, Unit2, ExtCtrls, DBCtrls, StdCtrls, Grids, DBGrids, ComCtrls;
type.
TFinansy = class (TForm).
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
DBGrid1: TDBGrid;
Button1: TButton;
DBNavigator1: TDBNavigator;
DBGrid2: TDBGrid;
DBGrid3: TDBGrid;
DBNavigator2: TDBNavigator;
DBNavigator3: TDBNavigator;
Label1: TLabel;
Edit1: TEdit;
procedure Button1Click (Sender: TObject);
procedure FormCreate (Sender: TObject);
procedure DBGrid2CellClick (Column: TColumn);
procedure DBNavigator2Click (Sender: TObject; Button: TNavigateBtn);
private.
{ Private declarations }.
public.
{ Public declarations }.
end;
var.
Finansy: TFinansy;
kod_pokup:string;
dolg, i: integer;
implementation.
{$R *.dfm}.
procedure TFinansy. Button1Click (Sender: TObject);
begin.
close;
end;
procedure TFinansy. FormCreate (Sender: TObject);
begin.
dolg:=0;
DBComponents.ADOQuery_Finansy_Post.SQL.Text:='SELECT Приход. Код поставщика],[Название фирмы],[Банк поставщика],[Расчётный счёт], SUM (Сумма-Внесено) AS Задолженность';
DBComponents.ADOQuery_Finansy_Post.SQL.Add (' FROM Приход, Поставщики WHERE Внесено<�Сумма AND Приход. Код поставщика]=Поставщики. Код поставщика] GROUP BY Приход. Код поставщика], [Название фирмы],[Банк поставщика],[Расчётный счёт]');
DBComponents.ADOQuery_Finansy_Post.Active:=True;
DBComponents.ADOQuery_Finansy_Pokup1.SQL.Text:='SELECT Расход. Код покупателя],[Название фирмы],[Банк покупателя],[Расчётный счёт] FROM Расход, Покупатели WHERE Расход. Код покупателя]=Покупатели. Код покупателя] AND Оплачено=False';
DBComponents.ADOQuery_Finansy_Pokup1.SQL.Add (' GROUP BY Расход. Код покупателя],[Название фирмы],[Банк покупателя],[Расчётный счёт]');
DBComponents.ADOQuery_Finansy_Pokup1.Active:=True;
kod_pokup:=DBGrid2.DataSource.DataSet.FieldValues['Код покупателя'];
DBComponents.ADOQuery_Finansy_Pokup2.SQL.Text:='SELECT [Код накладной],[Дата отпуска], Сумма FROM Расход WHERE Расход. Код покупателя]='+kod_pokup+' AND Оплачено=False';
DBComponents.ADOQuery_Finansy_Pokup2.Active:=True;
i:=DBComponents.ADOQuery_Finansy_Pokup2.RecNo;
DBComponents.ADOQuery_Finansy_Pokup2.First;
while not (DBComponents.ADOQuery_Finansy_Pokup2.Eof) do.
begin.
dolg:=dolg+DBComponents.ADOQuery_Finansy_Pokup2.FieldByName ('Сумма').AsInteger;
DBComponents.ADOQuery_Finansy_Pokup2.Next;
end;
DBComponents.ADOQuery_Finansy_Pokup2.RecNo:=i;
Edit1.Text:=IntToStr (dolg);
end;
procedure TFinansy. DBGrid2CellClick (Column: TColumn);
begin.
dolg:=0;
kod_pokup:=DBGrid2.DataSource.DataSet.FieldValues['Код покупателя'];
DBComponents.ADOQuery_Finansy_Pokup2.SQL.Text:='SELECT [Код накладной],[Дата отпуска], Сумма FROM Расход WHERE Расход. Код покупателя]='+kod_pokup+' AND Оплачено=False';
DBComponents.ADOQuery_Finansy_Pokup2.Active:=True;
i:=DBComponents.ADOQuery_Finansy_Pokup2.RecNo;
DBComponents.ADOQuery_Finansy_Pokup2.First;
while not (DBComponents.ADOQuery_Finansy_Pokup2.Eof) do.
begin.
dolg:=dolg+DBComponents.ADOQuery_Finansy_Pokup2.FieldByName ('Сумма').AsInteger;
DBComponents.ADOQuery_Finansy_Pokup2.Next;
end;
DBComponents.ADOQuery_Finansy_Pokup2.RecNo:=i;
Edit1.Text:=IntToStr (dolg);
end;
procedure TFinansy. DBNavigator2Click (Sender: TObject;
Button: TNavigateBtn);
begin.
DBGrid2CellClick (nil);
end;
end.
Отчётная форма — «Rashod_Print».
С помощью этой формы реализована отчётность программы по расходным наклажным и возможность печати.
unit Unit12;
interface.
uses.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,.
Dialogs, QRCtrls, QuickRpt, ExtCtrls, Unit2;
type.
TRashod_Print = class (TForm).
QuickRep1: TQuickRep;
QRBand1: TQRBand;
QRSysData2: TQRSysData;
QRBand2: TQRBand;
QRLabel6: TQRLabel;
QRExpr1: TQRExpr;
QRBand3: TQRBand;
DataR: TQRDBText;
Adress: TQRDBText;
Telephone: TQRDBText;
Familiya: TQRDBText;
Name: TQRDBText;
QRBand4: TQRBand;
QRLabel2: TQRLabel;
QRLabel3: TQRLabel;
QRLabel4: TQRLabel;
QRLabel5: TQRLabel;
QRBand5: TQRBand;
QRImage1: TQRImage;
QRLabel1: TQRLabel;
QRBand6: TQRBand;
QRSysData1: TQRSysData;
QRLabel7: TQRLabel;
QRLabel8: TQRLabel;
QRLabel9: TQRLabel;
QRDBText1: TQRDBText;
QRLabel10: TQRLabel;
QRExpr2: TQRExpr;
QRLabel12: TQRLabel;
QRLabel13: TQRLabel;
QRLabel14: TQRLabel;
QRDBText2: TQRDBText;
QRLabel11: TQRLabel;
QRLabel15: TQRLabel;
QRDBText3: TQRDBText;
QRLabel16: TQRLabel;
QRDBText4: TQRDBText;
QRLabel17: TQRLabel;
QRDBText5: TQRDBText;
QRLabel18: TQRLabel;
QRDBText6: TQRDBText;
QRDBText7: TQRDBText;
QRLabel19: TQRLabel;
QRLabel20: TQRLabel;
QRDBText8: TQRDBText;
QRDBText9: TQRDBText;
QRLabel21: TQRLabel;
QRLabel22: TQRLabel;
QRDBText10: TQRDBText;
private.
{ Private declarations }.
public.
{ Public declarations }.
end;
var.
Rashod_Print: TRashod_Print;
implementation.
{$R *.dfm}.
end.