Дипломная работа: Автоматизация процесса ведения документации и отчетности в ИП Черкашин

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
93
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.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.N5Click(Sender: TObject);
begin
CreateSpravForm('Услуги','',Form1.viewteh,0); //Вызов
процедуры для работы со Справочником Внешний вид
end;
procedure TForm1.N4Click(Sender: TObject);
begin
CreateSpravForm('Виды услуг','',Form1.typeob,0); //Вызов
процедуры для работы со Справочником виды оборудования
end;
procedure TForm1.N7Click(Sender: TObject);
begin
CreateSpravForm('Пользователи','',Form1.users,0); //Вызов
процедуры для работы со Справочником Пользователи
end;
94
Function IndToCol(const ind:integer):String; //функция для
перевода номер столбца Excel в его текстовой индекс
begin
case ind of
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;
Excel := CreateOleObject('Excel.Application');
//Открываем его для работы
Excel.Workbooks.Add;
//задаем имя отчета
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
k:=1;
95
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].LineSt
yle:= 0;
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[6].LineSt
yle:= 0;
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[7].LineSt
yle:= 1;
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[8].LineSt
yle:= 1;
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[9].LineSt
yle:= 1;
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[10].LineS
tyle:= 1;
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[11].LineS
tyle:= 1;
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[12].LineS
tyle:= 1;
//строка итого
Excel.Range[indToCol(j-1)+IntTOStr(i+2)]:='ИТОГО';
Excel.Range[indToCol(j)+IntTOStr(i+2)]:='=СУММ('+indToCol(j)+'
3:'+indToCol(j)+IntTOStr(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;
96
end;
//процедура для создания формы для ввода параметров отчета
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; //устанавливаем
текущую дату
Child.Label3.Caption:=IntTOStr(p); //индекс отчета
end;
procedure TForm1.N3Click(Sender: TObject);
begin
CreateOtchetForm('Задайте интервал',1);
end;
//процедура создания формы списка клиентов
procedure TForm1.N8Click(Sender: TObject);
var
Child: TForm4;
i,k :integer;
f : boolean;
begin
f:=False; //флаг-ложь
k:=0;
for i:=0 to Form1.MDIChildCount-1 do //проверяем
создан ли экземнляр такого окна
if (Form1.MDIChildren[i] is TForm4) then
begin
f:=True;
97
k:=i;
end;
if (f) then //если создан, то
Form1.MDIChildren[k].Close; //закрываем
Child := TForm4.Create(Application);
//Обновляем отображаемые данные в списке
Child.ADOQuery1.Open;
//выравниваем ширину
Child.Setgridcolumnwidths;
end;
//создание формы для работы с клиентом
procedure TForm1.CreateClientForm(id : string);
var
Child: TForm5;
i,k :integer;
f : boolean;
begin
f:=False; //флаг-ложь
k:=0;
for i:=0 to Form1.MDIChildCount-1 do //проверяем
создан ли экземнляр такого окна
if (Form1.MDIChildren[i] is TForm5) then
begin
f:=True;
k:=i;
end;
if (f) then begin //если создан, то
Form1.MDIChildren[k].close; //закрываем
end;
//создаем форму
Child := TForm5.Create(Application);
Child.id.Caption:=id;
Child.Setgridcolumnwidths;
//если режим создания
if id='0' then
begin
Child.Edit1.Text:='';
Child.Edit2.Text:='';
Child.Edit3.Text:='';
Child.BitBtn3.Enabled:=false;
Child.BitBtn4.Enabled:=false;
end
else
begin
Child.Caption := 'Редактирование данных клиента';
//задаем название
With AdoQuery1 do
begin
close;
SQL.clear;
SQL.Add('SELECT * FROM client WHERE id='+id);
Источник: https://baza.diplomsite.ru/previewfile/2037