109
// объявляю параметры запроса
Parameters.ParamByName('dateN').Value:=DateToStr(dtp_dateN.Date);
Parameters.ParamByName('dateK').Value := DateToStr(dtp_dateK.Date);
// выполнение запроса через обработчик ошибок
try {перехватчик ошибок}
Open ; {выполняем запрос и открываем набор данных}
if RecordCount<>0 then begin
First;
// координаты левого верхнего угла области, в которую будем выводить данные
BeginRow := 6; lnVsegoSuma:=0; lnVsegoMetry:=0;
while not eof do begin
// копирую форматированную строку из шаблона
ExcelApp.Range[ExcelApp.ActiveSheet.Cells[5, 1], ExcelApp.ActiveSheet.Cells[5, 7]].Select;
ExcelApp.Selection.copy;
ExcelApp.Range[ExcelApp.ActiveSheet.Cells[BeginRow, 1], ExcelApp.ActiveSheet.Cells[BeginRow, 1]].Select;
ExcelApp.ActiveSheet.Paste;
// запись данных
WorkSheet.Cells[BeginRow, 1]:=FieldByName('НомерДоговора').value;
WorkSheet.Cells[BeginRow, 2]:=FieldByName('Объект').value;
WorkSheet.Cells[BeginRow, 3]:=FieldByName('Арендатор').value;
WorkSheet.Cells[BeginRow, 4]:=FieldByName('ДатаНачала').value;
WorkSheet.Cells[BeginRow, 5]:=FieldByName('ДатОООкончания').value;
WorkSheet.Cells[BeginRow, 6]:=FieldByName('Метры').value;
WorkSheet.Cells[BeginRow, 7]:=FieldByName('Стоимость').value;
lnVsegoSuma:=lnVsegoSuma+FieldByName('Стоимость').value;
lnVsegoMetry:=lnVsegoMetry+FieldByName('Метры').value;
Inc(BeginRow);
Next; // на след запись
end; // while
// всего
ExcelApp.Range[ExcelApp.ActiveSheet.Cells[5, 1], ExcelApp.ActiveSheet.Cells[5, 7]].Select;
ExcelApp.Selection.copy;
ExcelApp.Range[ExcelApp.ActiveSheet.Cells[BeginRow, 1], ExcelApp.ActiveSheet.Cells[BeginRow, 1]].Select;
ExcelApp.ActiveSheet.Paste;
WorkSheet.Cells[BeginRow, 1]:='ВСЕГО:';
WorkSheet.Cells[BeginRow, 6]:=lnVsegoMetry;
WorkSheet.Cells[BeginRow, 7]:=lnVsegoSuma;
end; //if
except {секция обработки ошибок}
On e : EDatabaseError do {e - новый дескриптор ошибки}
messageDlg(e.message,mtError,[mbOK],0); {показываем свойство message объекта e}
end; {окончание обработки ошибки}
end;
// делаею Excel видимым
ExcelApp.Visible := true;
end;
end;
procedure TForm_otchet1.Button2Click(Sender: TObject);
begin
Form_otchet1.Close;
end;
end.