Диплом: Автоматизация учета аренды площадей клиентами компании (на примере ООО "Кристалл")

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
96
ZakazPostavTovarprice: TBCDField;
ZakazPostavTovarStoim: TCurrencyField;
ZakazPostavPrim: TWideStringField;
ZakazPostavSumm: TBCDField;
Tovarzakupprice: TBCDField;
Tovarzakazano: TIntegerField;
PostupTovarT: TADOTable;
Label15: TLabel;
Label16: TLabel;
PostupTovar: TADOTable;
PostupTovarTid: TAutoIncField;
PostupTovarTidtovar: TIntegerField;
PostupTovarTidPostup: TIntegerField;
PostupTovarTnum: TIntegerField;
PostupTovarid: TAutoIncField;
PostupTovaridTovar: TIntegerField;
PostupTovaridZakaz: TIntegerField;
PostupTovarnum: TIntegerField;
PostupTovarprice: TBCDField;
PostupTovarTovarL: TStringField;
PostupTovarStoim: TFloatField;
PostupTovarTprice: TBCDField;
PostupTovarTnumpostup: TIntegerField;
PostupTovarTTovarL: TStringField;
PostupTovarTStoim: TFloatField;
PostupTovarnumpostup: TIntegerField;
ZakazPostavpostup: TIntegerField;
Postupid: TAutoIncField;
PostupidSotr: TAutoIncField;
procedure CreateSpravForm(const childName, id: string; table: TDataset;
p: integer);
procedure N15Click(Sender: TObject);
procedure N16Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure N12Click(Sender: TObject);
procedure N17Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure ZakaKlientTovarCalcFields(DataSet: TDataSet);
procedure N14Click(Sender: TObject);
procedure TovarCalcFields(DataSet: TDataSet);
procedure OtgruzTovarCalcFields(DataSet: TDataSet);
procedure OtgruzTovarTCalcFields(DataSet: TDataSet);
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure N21Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure Othet(const Data: TADOQUERY; Otchetname: string);
97
procedure N18Click(Sender: TObject);
procedure N19Click(Sender: TObject);
procedure N20Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure ZakazPostavTovarCalcFields(DataSet: TDataSet);
procedure PostupTovarCalcFields(DataSet: TDataSet);
procedure PostupTovarTCalcFields(DataSet: TDataSet);
private
procedure CreateDocForm(const childName: string; table: TDataset;
p: integer);
procedure CreateOtchetForm(const childName:String; p: integer);
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Sprav, Doc, Login, Otchet;
{$R *.dfm}
//процедура для создания формы для ввода параметров отчета
procedure TForm1.CreateOtchetForm(const childName:String; p: integer); //параметры -
название формы и индекс отчета
var
Child: TForm9;
i,k :integer;
f : boolean;
begin
f:=False; //влаг-ложь
k:=0;
for i:=0 to Form1.MDIChildCount-1 do //проверяем создан ли экземпляр такого
окна
if (Form1.MDIChildren[i] is TForm9) then
begin
f:=True;
k:=i;
end;
if (f) then //если создан, то
Form1.MDIChildren[k].Close; //переносим его вперед
Child := TForm9.Create(Application);
Child.Caption := childName; //задаем название формы
Child.DateTimePicker1.DateTime:=now-30; //устанавливаем дату на 30 дней меньше
текущей
Child.DateTimePicker2.datetime:=now; //устанавливаем текущую дату
98
Child.Label3.Caption:=IntTOStr(p); //индекс отчета
end;
//создание формы для работы со справочником
procedure TForm1.CreateSpravForm(const childName, id : string; table: TDataset; p:
integer);
var
Child: TForm2;
i,k :integer;
f : boolean;
begin
f:=False; //влаг-ложь
k:=0;
for i:=0 to Form1.MDIChildCount-1 do //проверяем создан ли экземпляр такого
окна
if (Form1.MDIChildren[i] is TForm2) and (Form1.MDIChildren[i].caption=childName)
then
begin
f:=True;
k:=i;
end;
if (f) and (Form1.MDIChildren[k].Caption=childName) then begin //если создан, то
Form1.MDIChildren[k].bringToFront; //переносим его вперед
if Form1.MDIChildren[k].WindowState=wsMinimized then
Form1.MDIChildren[k].WindowState:=wsNormal;
end
else
begin //иначе - создаем форму
Child := TForm2.Create(Application);
Child.Caption := childName; //задаем название
Child.DBGrid1.DataSource.DataSet:=table; //задаем таблицу справочник, с которой
будем работать
table.active:=true; //делаем таблицу активной
Child.Setgridcolumnwidths; //выравниваем ширину столбцов
Child.Label1.Caption:=id; //передаем ид
Case p of
1: Child.n1.visible:=true; //отображаем первый пункт контекстного меню
2: Child.n2.visible:=true; //отображаем второй пункт контекстного меню
{3: Child.n3.visible:=true; //отображаем третий пункт контекстного меню
4: Child.n4.visible:=true; //отображаем четвертый пункт контекстного меню
5: begin Child.n5.visible:=true; //отображаем четвертый пункт контекстного меню
Child.Panel2.visible:=false; }
end;
end;
end;
//процедура создания формы для работы со списком документов
procedure TForm1.CreateDocForm(const childName : string; table: TDataset; p: integer);
//название формы, таблица - источник данных и индекс документа
var
Child: TForm3;
99
i,k :integer;
f : boolean;
begin
f:=False; //влаг-ложь
k:=0;
for i:=0 to Form1.MDIChildCount-1 do //проверяем создан ли экземпляр такого
окна
if (Form1.MDIChildren[i] is TForm3) and (Form1.MDIChildren[i].caption=childName)
then
begin
f:=True;
k:=i;
end;
if (f) and (Form1.MDIChildren[k].Caption=childName) then begin //если
создан, то
Form1.MDIChildren[k].bringToFront; //переносим его вперед
if Form1.MDIChildren[k].WindowState=wsMinimized then
Form1.MDIChildren[k].WindowState:=wsNormal;
end
else
begin //иначе - создаем форму
Child := TForm3.Create(Application);
Child.Caption := childName; //задаем название формы
Child.DBGrid1.DataSource.DataSet:=table; //задаем источник данных
table.open; //открываем источник данных
Child.Setgridcolumnwidths; //выравниваем ширину столбцов
Child.label1.caption:=IntToStr(p); //параметр для определения типа открытого
документа
Case p of //в зависимости от типа документов настраиваем выпадающие
списки/прячем их
1: begin
Child.Combobox2.Items.Add('Все'); //добавляем элементы для заказов покупателей
Child.Combobox2.Items.Add('Оплаченные');
Child.Combobox2.Items.Add('Неоплаченные');
Child.ComboBox2.ItemIndex:=0;
Child.Combobox3.Items.Add('Все');
Child.Combobox3.Items.Add('Отгруженные');
Child.Combobox3.Items.Add('Неотгруженные');
Child.ComboBox3.ItemIndex:=0;
end;
2: begin //для заказов поставщиков
Child.GroupBox3.Caption:='Поступление';
Child.ComboBox2.Items.Clear;
Child.ComboBox2.Items.Add('Все');
Child.ComboBox2.Items.Add('Поступившие');
Child.ComboBox2.Items.Add('Непоступившие');
Child.ComboBox2.ItemIndex:=0;
Child.GroupBox4.Visible:=false;
end;
3,4,5,6: begin //прячем фильтры
Child.GroupBox3.visible:=false;;
100
Child.GroupBox4.Visible:=false;
end;
end;
end;
end;
procedure TForm1.N15Click(Sender: TObject);
begin
CreateSpravForm('Сотрудники','',Form1.Sotr,0); // Вызов процедуры для работы со
Справочником Сотрудники
end;
procedure TForm1.N16Click(Sender: TObject);
begin
CreateSpravForm('Единицы измерений','',Form1.EdIzm,0); // ниже вызываются
процедуры для других справочников
end;
procedure TForm1.N7Click(Sender: TObject);
begin
CreateDocForm('Заказы клиентов,Form1.ZakazClient,1); // вызываем процедуру для
работы с заказами клиентов
end;
procedure TForm1.N9Click(Sender: TObject);
begin
CreateSpravForm('Клиенты','',Form1.klient,0);
end;
procedure TForm1.N10Click(Sender: TObject);
begin
CreateSpravForm('Арендодатели','',Form1.Postav,0);
end;
procedure TForm1.N8Click(Sender: TObject);
begin
CreateDocForm('Заказы на состояние сдаваемых площадей', Form1.ZakazPostav,2);
//Вызываем процедуру для создания формы работы с документами
end;
procedure TForm1.N11Click(Sender: TObject);
begin
CreateDocForm('Ввод новых объектов недвижимости',Form1.Postup,3); //Поступления
end;
procedure TForm1.N13Click(Sender: TObject);
begin
CreateDocForm('Сдача в аренду площадей',Form1.Otgruz,6); //сдача в аренду
end;
101
procedure TForm1.ZakaKlientTovarCalcFields(DataSet: TDataSet);
begin
ZakaKlientTovar.FieldByName('Stoim').Value:=ZakaKlientTovar.FieldByName('Price').Valu
e*ZakaKlientTovar.FieldByName('Num').Value
end;
procedure TForm1.N14Click(Sender: TObject);
begin
CreateSpravForm('Недвижимость','',Form1.Tovar,0);
end;
procedure TForm1.TovarCalcFields(DataSet: TDataSet); //автоподсчет остатка площадей
в таблице справочнике недвижимости. если меньше 0, то отображаем 0
begin
if Tovar.FieldByName('Ostatok').Value<0 then
Tovar.FieldByName('OstatokL').Value:=0
else
Tovar.FieldByName('OstatokL').Value:=Tovar.FieldByName('Ostatok').Value;
end;
procedure TForm1.OtgruzTovarCalcFields(DataSet: TDataSet); //стоимость для сдачи
begin
OtgruzTovar.FieldByName('Stoim').Value:=OtgruzTovar.FieldByName('Price').Value*Otgru
zTovar.FieldByName('Numot1').Value
end;
procedure TForm1.OtgruzTovarTCalcFields(DataSet: TDataSet);
begin
OtgruzTovarT.FieldByName('Stoim').Value:=OtgruzTovarT.FieldByName('Price').Value*Ot
gruzTovarT.FieldByName('Num').Value
end;
procedure TForm1.FormShow(Sender: TObject); //создаем форму для авторизации
var
Child: TForm8;
begin
Child := TForm8.Create(Application);
Child.Width:=319;
Child.Height:=153;
end;
procedure TForm1.FormCreate(Sender: TObject); //прячем главное меню (до момента
успешного прохождения авторизации)
begin
Menu:=nil;
end;
Function IndToCol(const ind:integer):String; //функция для перевода номер столбца Excel
в его текстовой индекс
begin
case ind of
102
0: result:='A';
1: result:='B';
2: result:='C';
3: result:='D';
4: result:='E';
5: result:='F';
6: result:='G';
7: result:='H';
8: result:='J';
9: result:='K';
10: result:='L';
11: result:='M';
12: result:='N';
13: result:='O';
14: result:='P';
15: result:='Q';
16: result:='R';
17: result:='S';
18: result:='T';
19: result:='U';
end;
end;
Procedure TForm1.Othet(const Data: TADOQUERY; Otchetname: string); //процедура для
выгрузки отчета в Excel на основании запроса к БД
var
Excel:Variant;
i,j,k:integer;
begin
//Обновляем данные
Data.close;
Data.open;
//Удаляем предыдущий отчет
if FileExists(Pchar(ExtractFilePath(ParamStr(0))+'docs\Othet1.xls')) then
DeleteFile(Pchar(ExtractFilePath(ParamStr(0))+'docs\Othet1.xls'));
//Создаем новый отчет
CopyFile(Pchar(ExtractFilePath(ParamStr(0))+'docs\Othet.xls'),
Pchar(ExtractFilePath(ParamStr(0))+'docs\Othet1.xls'), true);
Excel := CreateOleObject('Excel.Application');
//Открываем его для работы
Excel.Workbooks.open[ExtractFilePath(ParamStr(0))+'docs\Othet1.xls'];
//задаем имя отчета
Excel.Range['A1']:=OtchetName;
//Задаем шапку таблицы
For j:=0 to Data.FieldCount-1 do
begin
Excel.Range[IndToCol(j+1)+'2']:=Data.Fields[j].FullName;
end;
//передаем результаты запроса в виде таблицы
if Data.RecordCount<>0 then
begin
103
k:=1;
For j:=0 to Data.FieldCount-1 do
begin
Data.First;
for i:=1 to Data.RecordCount do
begin
Excel.range['A'+IntTOStr(i+2)]:=IntTOStr(i);
Excel.Range[indToCol(j+1)+IntToStr(i+2) ]:=Data.Fields[j].Value;
Data.Next;
end;
end;
//задаем границы таблицы
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[5].LineStyle:= 0;
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[6].LineStyle:= 0;
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[7].LineStyle:= 1;
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[8].LineStyle:= 1;
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[9].LineStyle:= 1;
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[10].LineStyle:= 1;
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[11].LineStyle:= 1;
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[12].LineStyle:= 1;
//строка итого
Excel.Range[indToCol(j-1)+IntTOStr(i+2)]:='ИТОГО';
Excel.Range[indToCol(j)+IntTOStr(i+2)]:='=СУММ('+indToCol(j)+'3:'+indToCol(j)+IntTO
Str(i+1)+')';
if j<2 then j:=2;
//Задаем дату формирования отчета
Excel.Range[indToCol(j-1)+IntTOStr(i+4)].Value:='Отчет сформирован:';
Excel.Range[indToCol(j)+IntTOStr(i+4)].Value:=dateToStr(Now);
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+4)].Columns.AutoFit;
end;
//отображаем отчет
Excel.visible:=true;
end;
procedure TForm1.N21Click(Sender: TObject);
//Создается форма для ввода отчетного промежутка времени
procedure TForm1.N3Click(Sender: TObject);
begin
CreateOtchetForm('Задайте интервал',1);
end;
procedure TForm1.N18Click(Sender: TObject);
begin
CreateOtchetForm('Задайте интервал',2);
end;
procedure TForm1.N19Click(Sender: TObject);
104
begin
CreateOtchetForm('Задайте интервал',3);
end;
procedure TForm1.N20Click(Sender: TObject);
begin
CreateOtchetForm('Задайте интервал',4);
end;
end;
procedure TForm1.ZakazPostavTovarCalcFields(DataSet: TDataSet);
begin
ZakazPostavTovar.FieldByName('Stoim').Value:=ZakazPostavTovar.FieldByName('Price').V
alue*ZakazPostavTovar.FieldByName('Num').Value
end;
procedure TForm1.PostupTovarCalcFields(DataSet: TDataSet);
begin
PostupTovar.FieldByName('Stoim').Value:=PostupTovar.FieldByName('Price').Value*Postup
Tovar.FieldByName('num').Value;
PostupTovar.FieldByName('numpostup').Value:=PostupTovar.FieldByName('num').Value;
end;
procedure TForm1.PostupTovarTCalcFields(DataSet: TDataSet);
begin
PostupTovarT.FieldByName('Stoim').Value:=PostupTovarT.FieldByName('Price').Value*Pos
tupTovarT.FieldByName('numpostup').Value;
end;
end.

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)