Диплом: Автоматизация регистрации и обработки заявок на комплектующие для ПК на ООО "Samsung Electronics"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
106
Excel := CreateOleObject('Excel.Application');
try
Excel.Workbooks.Open(WorkbookName);
//Экспорт данных из таблицы БД:
with DM do
begin
dstAllDevices.Open;
if dstAllDevices.Locate('ИнвN', DeviceID, []) then
begin
Excel.Cells[1,7] := DeviceID;
Excel.Cells[3,4] := dstAllDevices.FieldByName('Тип').AsString;
Excel.Cells[4,4] := dstAllDevices.FieldByName('Наименование').AsString;
Excel.Cells[5,4] := DeviceID;
Excel.Cells[6,4] := dstAllDevices.FieldByName('СерийныйN').AsString;
Excel.Cells[7,4] := dstAllDevices.FieldByName('Профилактика').AsString;
Excel.Cells[8,4] := dstAllDevices.FieldByName('Амортизация').AsString;
Excel.Cells[3,12] := dstAllDevices.FieldByName('Поставщик').AsString;
if not dstAllDevices.FieldByName('Счет').IsNull then
Excel.Cells[4,12] := '№ ' + dstAllDevices.FieldByName('Счет').AsString +
' от ' + dstAllDevices.FieldByName('СчетДата').AsString;
if not dstAllDevices.FieldByName('СчетФактура').IsNull then
Excel.Cells[5,12] := '№ ' +
dstAllDevices.FieldByName('СчетФактура').AsString +
' от ' + dstAllDevices.FieldByName('СчетФактураДата').AsString;
if not dstAllDevices.FieldByName('Накладная').IsNull then
107
Excel.Cells[6,12] := '№ ' + dstAllDevices.FieldByName('Накладная').AsString
+ ' от ' + dstAllDevices.FieldByName('НакладнаяДата').AsString;
Excel.Cells[7,12] := dstAllDevices.FieldByName('Цена').AsFloat;
i:=0;
PosInc := 11;
//Экспорт данных из таблиц БД:
dstHistoryMove.Parameters.ParamByName('pInvN').Value := DeviceID;
dstHistoryMove.Open;
dstHistoryMove.First;
while not dstHistoryMove.Eof do
begin
//Добавление новой строки:
if i <> 0 then
begin
Excel.Rows.Item[PosInc+i].Select;
Excel.Selection.Insert;
Excel.Rows.Item[PosInc].Select;
Excel.Selection.Copy;
Excel.Rows.Item[PosInc+i].Select;
Excel.ActiveSheet.Paste;
Excel.Application.CutCopyMode := False;
end;
Excel.Cells[i+PosInc,1] := dstHistoryMove.FieldByName('Дата').AsString;
Excel.Cells[i+PosInc,3] :=
dstHistoryMove.FieldByName('Подразделение').AsString;
108
Excel.Cells[i+PosInc,8] :=
dstHistoryMove.FieldByName('РабМесто').AsString;
Excel.Cells[i+PosInc,13] :=
dstHistoryMove.FieldByName('СетевоеИмя').AsString;
dstHistoryMove.Next;
Inc(i);
end; //while
dstHistoryMove.Close;
end; //if Locate
dstAllDevices.Close;
end; //with
Excel.Visible := True;
except
Excel.Quit;
end;
end;
//Формирование накладной на внутреннее перемещение:
procedure Rep_DeviceMove;
var Excel: Variant;
WorkbookName: string;
begin
//Шаблон хранится в папке Шаблоны:
WorkbookName := GetCurrentDir + '\Шаблоны\Накладная на перемещение.xlt';
Excel := CreateOleObject('Excel.Application');
try
Excel.Workbooks.Open(WorkbookName);
109
//Экспорт данных из таблиц БД:
with DM do
begin
Excel.Cells[16,111] := Date;
Excel.Cells[22,11] :=
DM.dstDevicesAtPlace.FieldByName('Устройство').AsString;
Excel.Cells[22,60] :=
DM.dstDevicesAtPlace.FieldByName('ДатаВвода').AsString;
Excel.Cells[22,81] := FormatFloat('0000',
DM.dstDevicesAtPlace.FieldByName('ИнвN').AsInteger);
Excel.Cells[22,118] := DM.dstDevicesAtPlace.FieldByName('Цена').AsFloat;
Excel.Cells[22,141] := DM.dstDevicesAtPlace.FieldByName('Цена').AsFloat;
Excel.Cells[56,141] := DM.dstDevicesAtPlace.FieldByName('Цена').AsFloat;
end; //with
Excel.Visible := True;
except
Excel.Quit;
end;
end;
//Формирование отчета "Устройства по рабочим местам":
procedure Rep_AllPlacesEquipment;
var
Excel: Variant;
i: Integer;
Caption: string;
begin
110
Excel := CreateOleObject('Excel.Application');
Screen.Cursor := crHourGlass;
try
try
Excel.Application.EnableEvents := False;
Excel.Workbooks.Add;
Excel.Cells[1,1] := Date;
Excel.Cells[3,3] := 'Устройства по рабочим местам';
Excel.Cells[3,3].Font.Bold := True;
Excel.Cells[3,3].Font.Size := 14;
i := 5;
DM.dstPlaces2.Open;
DM.dstPlaces2.Sort := 'Наименование';
DM.dstPlaces2.First;
//Цикл по раб. местам:
while not DM.dstPlaces2.Eof do
begin
//Определение списка устройств на текущем раб. месте:
DM.dstDevicesAtPlace.Close;
DM.dstDevicesAtPlace.Parameters.ParamByName('pRM').Value :=
DM.dstPlaces2.FieldByName('ID').AsInteger;
DM.dstDevicesAtPlace.Open;
//Данные по раб. месту выводим только если к нему приписаны какие-либо
устройства:
if DM.dstDevicesAtPlace.RecordCount > 0 then
begin
111
Caption := DM.dstPlaces2.FieldByName('Наименование').AsString;
if DM.dstPlaces2.FieldByName('СетевоеИмя').AsString <> '' then
Caption := Caption + ' (' +
DM.dstPlaces2.FieldByName('СетевоеИмя').AsString + ')';
Excel.Cells[i,1] := Caption;
Excel.Cells[i,1].Font.Bold := True;
Excel.Cells[i,1].Font.Size := 12;
Inc(i);
//Заголовки столбцов:
Excel.Cells[i,2] := 'Инв. №';
Excel.Cells[i,3] := 'Устройство';
Excel.Cells[i,4] := 'Дата размещения';
Excel.Cells[i,3].ColumnWidth := 50;
Excel.Cells[i,2].Font.Bold := True;
Excel.Cells[i,3].Font.Bold := True;
Excel.Cells[i,4].Font.Bold := True;
Inc(i);
DM.dstDevicesAtPlace.First;
//Цикл по устройствам на раб. месте:
while not DM.dstDevicesAtPlace.Eof do
begin
Excel.Cells[i,2] := FormatFloat('0000',
DM.dstDevicesAtPlace.FieldByName('ИнвN').AsInteger);
Excel.Cells[i,3] :=
DM.dstDevicesAtPlace.FieldByName('Устройство').AsString;
Excel.Cells[i,4] := DM.dstDevicesAtPlace.FieldByName('Дата').AsString;
112
DM.dstDevicesAtPlace.Next;
Inc(i);
end;
Inc(i, 2);
end;
DM.dstPlaces2.Next;
end; //while
DM.dstPlaces2.Close;
Excel.Application.EnableEvents := True;
Excel.Visible := True;
except
Excel.Quit;
end;
finally
Screen.Cursor := crDefault;
end;
end;
end.

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

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