Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2010, 11:28   #1
Kuchiki Byakuya
Пользователь
 
Регистрация: 15.04.2010
Сообщений: 42
По умолчанию Print for button

Привет, помощ нужна вот процедурка:

Excel := CreateOleObject('Excel.Application' );
Excel.Visible := false;
WBk := Excel.WorkBooks.Open('D:\Diplom otschet v excel\Отчет1');
......
........{там строкам и колонкам задаю что надо}
.....
Excel.DisplayAlerts := False;
Excel.ActiveSheet.printout;
Excel.ActiveWorkbook.Close;
Excel.Application.Quit;
end;
Вместо печати он предлагает сохранить Отчет в *.tif, *tiff форматах, наверно он непонимает есть ли принтер. Подскажите что добавить для быстрой печати.

И еще вопрос ('D:\Diplom otschet v excel\Отчет1') как сделать чтоб он "Отчет1" открывался без путя к нему. Просто WBk := Excel.WorkBooks.Open('Отчет1') неканает.
Kuchiki Byakuya вне форума Ответить с цитированием
Старый 25.04.2010, 11:42   #2
MadReason
Ищу работу
Форумчанин
 
Аватар для MadReason
 
Регистрация: 16.02.2007
Сообщений: 269
По умолчанию

ты просто не успеваешь распечатать и закрываешь книгу.
Код:
try
Excel.ActiveSheet.printout;
finally//ожидаем пока пройдет печать
Excel.ActiveWorkbook.Close;
Excel.Application.Quit;
end;
не пробовал, но думаю что-то в это роде.

а где у тебя храниться "отчет1"? если в папке с программой, или где-то рядом, в фиксированной папке, то можно задать относительный путь

если в папке с программой, то можно так:
Код:
WBk := Excel.WorkBooks.Open(GetCurrentDir+'\Отчет1')
Пишу на Delphi все что угодно, недорого, красиво, с комментариями
###icq 107335###
MadReason вне форума Ответить с цитированием
Старый 25.04.2010, 11:50   #3
Kuchiki Byakuya
Пользователь
 
Регистрация: 15.04.2010
Сообщений: 42
По умолчанию

Благодарствую, буду пробовать
Kuchiki Byakuya вне форума Ответить с цитированием
Старый 25.04.2010, 11:54   #4
Kuchiki Byakuya
Пользователь
 
Регистрация: 15.04.2010
Сообщений: 42
По умолчанию

Неа, не так. Подскажи еще чтонибудь, я на счет печати.
Kuchiki Byakuya вне форума Ответить с цитированием
Старый 25.04.2010, 13:36   #5
MadReason
Ищу работу
Форумчанин
 
Аватар для MadReason
 
Регистрация: 16.02.2007
Сообщений: 269
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  Excel: OLEVariant;
begin
  Excel := CreateOleObject('Excel.Application');
  try
    Excel.Workbooks.Open('C:\qwe.xls');
    Excel.DisplayAlerts := False;
    Excel.ActiveSheet.printout;
    //Excel.Worksheets.PrintOut; тоже работает
  finally
    if not VarIsEmpty(Excel) then
    begin
      Excel.Quit;
      Excel := Unassigned;
    end;
  end;
end;
попробуй так. сам попробовал, все отлично работает
Пишу на Delphi все что угодно, недорого, красиво, с комментариями
###icq 107335###
MadReason вне форума Ответить с цитированием
Старый 25.04.2010, 14:15   #6
Kuchiki Byakuya
Пользователь
 
Регистрация: 15.04.2010
Сообщений: 42
По умолчанию

Извини что надоедаю(самому надоело) всеравно вылазяет табличка (мол куда сохранить в *.tif, *tiff форматах. Требую наверно слишком но незнаеш что нужно сделать чтобы выбрать принтер на котором будет печататься. Я так понимаю у меня проблема с дровами(но т.к. я делаю программу не для себя такого косяка нельзя исключать и у того кто будет пользоваться).
Kuchiki Byakuya вне форума Ответить с цитированием
Старый 25.04.2010, 15:06   #7
MadReason
Ищу работу
Форумчанин
 
Аватар для MadReason
 
Регистрация: 16.02.2007
Сообщений: 269
По умолчанию

Код:
Function ShowPrintDialog:boolean;
begin
ShowPrintDialog:=true;
try
ShowPrintDialog:=Excel.Dialogs.Item[8].Show;
except
ShowPrintDialog:=false;
end;
End;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Excel := CreateOleObject('Excel.Application');
  try
    Excel.Workbooks.Open('C:\qwe.xls');
    Excel.DisplayAlerts := False;
    ShowPrintDialog;
//    Excel.ActiveSheet.printout;
    //Excel.Worksheets.PrintOut; тоже работает
  finally
    if not VarIsEmpty(Excel) then
    begin
      Excel.Quit;
      Excel := Unassigned;
    end;
  end;
end;
ну вот тебе с диалогом. надеюсь заработает))
Пишу на Delphi все что угодно, недорого, красиво, с комментариями
###icq 107335###
MadReason вне форума Ответить с цитированием
Старый 25.04.2010, 15:23   #8
Kuchiki Byakuya
Пользователь
 
Регистрация: 15.04.2010
Сообщений: 42
По умолчанию

Каюсь, выручил конкретно, вот только куда всунуть
ShowPrintDialog:=true;
try
ShowPrintDialog:=Excel.Dialogs.Item[8].Show;
except
ShowPrintDialog:=false;
end;
End;
Kuchiki Byakuya вне форума Ответить с цитированием
Старый 25.04.2010, 15:31   #9
MadReason
Ищу работу
Форумчанин
 
Аватар для MadReason
 
Регистрация: 16.02.2007
Сообщений: 269
По умолчанию

в смысле куда? просто в код. функция обычная. если не нужно обрабатывать выдался ли диалог или нет, то можно так:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  Excel: OLEVariant;
begin
  Excel := CreateOleObject('Excel.Application');
  try
    Excel.Workbooks.Open('C:\qwe.xls');
    Excel.DisplayAlerts := False;
    Excel.Dialogs.Item[8].Show;
    //Excel.ActiveSheet.printout;
    //Excel.Worksheets.PrintOut; тоже работает
  finally
    if not VarIsEmpty(Excel) then
    begin
      Excel.Quit;
      Excel := Unassigned;
    end;
  end;
end;
Пишу на Delphi все что угодно, недорого, красиво, с комментариями
###icq 107335###
MadReason вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
webbrowser + print wiskas Компоненты Delphi 1 29.04.2010 15:53
Print Screen на КПК? Snoopy Свободное общение 6 08.04.2010 14:35
Print Screen Maxs Общие вопросы C/C++ 5 12.04.2009 13:57
Print v VBA NathaliE Microsoft Office Excel 2 02.08.2008 15:05
Print ZhekON Общие вопросы Delphi 8 11.08.2007 11:45