Показать сообщение отдельно
  #2  
Старый 14.03.2018, 21:46
Аватар для son_yaa
son_yaa son_yaa вне форума
Прохожий
 
Регистрация: 10.03.2018
Сообщения: 6
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от son_yaa
Помогите пожалуйста. почему закрывается моя форма при открытии Exel?
Код:
procedure TForm26.suiButton22Click(Sender: TObject);
const Months:array [1..12] of string[8]=('Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь');
Var y:Word;
i, s, s1:integer;
XL: variant;
data1, data2: string;

begin
 if (Form26.QueryPoliMes.RecordCount<=0) then begin
 Application.MessageBox('Извините, Заказов нет!','Предупреждение',MB_OK);
 end
 else if (Form26.QueryPoliMes.RecordCount>0) then begin try
    if Application.MessageBox('Вы уверены?'+#13+'Сделать расчет для Бухгалтера?',
    'Расчет Полиграфия',MB_OKCANCEL)=1 then
    Close;
    XL := CreateOleObject('Excel.Application');
    XL.DisplayAlerts := false;
    XL.WorkBooks.Add;
    XL.Visible := true;
 //   XL.Selection.WrapText:=True; // перенос по словам
    XL.Worksheets[1].PageSetup.Orientation := 1;  // Ориентация бумаги: 1=Книжная, 2=Альбомная
    XL.Worksheets[1].PageSetup.PaperSize := 9; // Указать размер бумаги. 8=А3, 9=А4, 11=А5
      XL.WorkBooks[1].WorkSheets[1].PageSetup.LeftMargin := 70;
      XL.WorkBooks[1].WorkSheets[1].PageSetup.RightMargin := 10;
      XL.WorkBooks[1].WorkSheets[1].Name := 'Расчет' ;
      XL.WorkBooks[1].WorkSheets[1].PageSetup.PrintTitleRows := '$3:$3';
      XL.WorkBooks[1].WorkSheets[1].PageSetup.PrintTitleColumns := '$A:$A';
        XL.WorkBooks[1].WorkSheets[1].Columns[1].ColumnWidth := 9;
        XL.WorkBooks[1].WorkSheets[1].Columns[2].ColumnWidth := 25;
        XL.WorkBooks[1].WorkSheets[1].Columns[3].ColumnWidth := 4;
        XL.WorkBooks[1].WorkSheets[1].Columns[4].ColumnWidth := 7;
        XL.WorkBooks[1].WorkSheets[1].Columns[5].ColumnWidth := 7;
        XL.WorkBooks[1].WorkSheets[1].Columns[6].ColumnWidth := 7;
    //    XL.WorkBooks[1].WorkSheets[1].Columns[7].ColumnWidth := 6;


           XL.WorkBooks[1].WorkSheets[1].Rows[2].Font.Bold := True;
         //  XL.WorkBooks[1].WorkSheets[1].Rows[2].Font.Bold := True;
           XL.WorkBooks[1].WorkSheets[1].Rows[2].Font.Size := 14;
           XL.WorkBooks[1].WorkSheets[1].Rows[1].Font.Color := clBlack;
           XL.WorkBooks[1].WorkSheets[1].Rows[1].Font.Size := 13;
           XL.WorkBooks[1].WorkSheets[1].Rows[1].Font.Name := 'Monotype Corsiva';
           XL.WorkBooks[1].WorkSheets[1].Rows[6].Font.Underline := True;
           XL.WorkBooks[1].WorkSheets[1].Rows[6].Font.Color := clBlack;
           XL.WorkBooks[1].WorkSheets[1].Rows[6].Font.Size := 8;
           XL.WorkBooks[1].WorkSheets[1].Rows[6].Font.Name := 'Times New Roman';

           XL.WorkBooks[1].WorkSheets[1].Cells[1, 1] := 'Расчет '+ Months[MonthOf(Now)]+' '+IntToStr(YearOf(Now))+' года';
           XL.WorkBooks[1].WorkSheets[1].Cells[2, 1] := 'ФИО/Организация';
           XL.WorkBooks[1].WorkSheets[1].Cells[3, 1] := 'Контактное Лицо';
           XL.WorkBooks[1].WorkSheets[1].Cells[3, 5] := 'Телефон';
           XL.WorkBooks[1].WorkSheets[1].Cells[4, 1] := 'Реквизиты';
           XL.WorkBooks[1].WorkSheets[1].Cells[6, 1] := 'Дата зак.';
           XL.WorkBooks[1].WorkSheets[1].Cells[6, 2] := 'Описание';
           XL.WorkBooks[1].WorkSheets[1].Cells[6, 3] := 'Колич.';
           XL.WorkBooks[1].WorkSheets[1].Cells[6, 4] := 'Стоим.';
           XL.WorkBooks[1].WorkSheets[1].Cells[6, 5] := 'Себест.';
           XL.WorkBooks[1].WorkSheets[1].Cells[6, 6] := 'Приб.';
           Form26.QueryPoliMes.First;
    s1:=0;
    For i:=0 to  Form26.QueryPoliMes.RecordCount-1 do begin
    XL.WorkBooks[1].WorkSheets[1].Cells[i+2,3]:=Form26.QueryPoliMes.FieldByName('FIO').AsString;
    XL.WorkBooks[1].WorkSheets[1].Cells[i+3,3]:=DataModule3.Tklient.FieldByName('КонтактноеЛицо').AsString;
    XL.WorkBooks[1].WorkSheets[1].Cells[i+3,6]:=DataModule3.Tklient.FieldByName('Номертел').AsString;
    XL.WorkBooks[1].WorkSheets[1].Cells[i+4,4]:=DataModule3.Tklient.FieldByName('Реквизиты').AsString;
    XL.WorkBooks[1].WorkSheets[1].Cells[i+4,4].WrapText:=True;//перенос по словам
    XL.WorkBooks[1].WorkSheets[1].Cells[i+7,1]:=Form26.QueryPoliMes.FieldByName('Data').AsString;
    XL.WorkBooks[1].WorkSheets[1].Cells[i+7,2]:=Form26.QueryPoliMes.FieldByName('Описание').AsString;
    XL.WorkBooks[1].WorkSheets[1].Cells[i+7,2].WrapText:=True;//перенос по словам
    XL.WorkBooks[1].WorkSheets[1].Cells[i+7,3]:=Form26.QueryPoliMes.FieldByName('КолВо').AsString;
   // XL.WorkBooks[1].WorkSheets[1].Cells[i+7,3]:=Form26.QueryPoliMes.FieldByName('КолВо').AsInteger;
    XL.WorkBooks[1].WorkSheets[1].Cells[i+7,4]:=Form26.QueryPoliMes.FieldByName('Стоимость').AsCurrency;
    XL.WorkBooks[1].WorkSheets[1].Cells[i+7,5]:=Form26.QueryPoliMes.FieldByName('Себестоимость').AsCurrency;
    XL.WorkBooks[1].WorkSheets[1].Cells[i+7,6]:=Form26.QueryPoliMes.FieldByName('Прибыль').AsCurrency;
   end;
   except
end;
 end;

end;
Админ: Пользуемся тегами при оформлении кода!
Ответить с цитированием