Variant App, Sh;
AnsiString File="...";
App=Variant::CreateObject("Excel.Application");
App.OlePropertyGet("WorkBooks").OleProcedure("Open",File.c_str());
Sh=App.OlePropertyGet("WorkSheets",1);
...заполнение шаблона
App.OlePropertySet("Visible",true);
Sh.OleProcedure("PrintPreview"); // - здесь возникает ошибка
Вывод документа на печать
В частности, меня интересует функция печати документа.
Заранее спасибо.
Код:
Может я функцию печати неправильно пишу или не так к ней обращаюсь?
В частности, меня интересует функция печати документа.
Заранее спасибо.[/QUOTE]
Существует один универсальный метод по работе с Word, Excel e.t.c. - ставишь на запись макрос и делаешь, что тебе нужно, потом смотришь что вышло и переводишь в с++.
Как же все таки вызвать PrintPreview?
Код:
//ActiveCell.FormulaR1C1 = "блаблабла"
//Range("A4").Select
//ActiveWindow.SelectedSheets.PrintPreview
App.Exec(PropertyGet("ActiveWindow")).Exec(PropertyGet("SelectedSheets")).Exec(PropertySet("PrintPreview") << true);
или
Sh.Exec(Function("PrintPreview"));
//Range("A4").Select
//ActiveWindow.SelectedSheets.PrintPreview
App.Exec(PropertyGet("ActiveWindow")).Exec(PropertyGet("SelectedSheets")).Exec(PropertySet("PrintPreview") << true);
или
Sh.Exec(Function("PrintPreview"));
Билдера нет под рукой, поэтому проверить не могу. Если не разберешься до вечера, то приду домой сделаю (но лучше сама, это полезнее:)).
Спасибо за совет, сейчас попробую :)
Код:
//ActiveCell.FormulaR1C1 = "блаблабла"
//Range("A4").Select
//ActiveWindow.SelectedSheets.PrintPreview
App.Exec(PropertyGet("ActiveWindow")).Exec(PropertyGet("SelectedSheets")).Exec(PropertySet("PrintPreview") << true);
или
Sh.Exec(Function("PrintPreview"));
//Range("A4").Select
//ActiveWindow.SelectedSheets.PrintPreview
App.Exec(PropertyGet("ActiveWindow")).Exec(PropertyGet("SelectedSheets")).Exec(PropertySet("PrintPreview") << true);
или
Sh.Exec(Function("PrintPreview"));
Билдера нет под рукой, поэтому проверить не могу. Если не разберешься до вечера, то приду домой сделаю (но лучше сама, это полезнее:)).[/QUOTE]
Написала
Код:
App.Exec(PropertyGet("ActiveWindow")).Exeс(PropertyGet"SelectedSheets")).Exec(Procedure("PrintPreview") << true);
и все заработало!
Спасибо тебе огромное)))
А то я уже пол дня мучаюсь...
Правда он теперь пишет, что принтер не установлен, но эту проблему уже будет решать пользователь программы)
Спасибо тебе огромное)))
А то я уже пол дня мучаюсь...
[/QUOTE]
Не-за-что:)
P.S. Для спасиба есть кнопочка: "Добавить отзыв для - NickName".
А как узнать, добавился он или нет?
Код:
Variant App;
...
App.Exec(PropertyGet("Application")).Exec(PropertySet("EnableEvents") << false);
App.Exec(PropertyGet("Application")).Exec(PropertySet("displayalerts") << false);
...
App.Exec(PropertyGet("Application")).Exec(PropertySet("EnableEvents") << false);
App.Exec(PropertyGet("Application")).Exec(PropertySet("displayalerts") << false);
и он(Excel) все равно ругается...
Скорее всего данные свойства не переопределяются.
На Дельфи код такой:
Код:
Variant ExcelApp;
...
ExcelApp.Application.EnableEvents := false;
ExcelApp.Application.displayalerts := false;
...
ExcelApp.Application.EnableEvents := false;
ExcelApp.Application.displayalerts := false;
работает.
Код:
Variant App;
...
App.Exec(PropertyGet("Application")).Exec(PropertySet("EnableEvents") << false);
App.Exec(PropertyGet("Application")).Exec(PropertySet("displayalerts") << false);
...
App.Exec(PropertyGet("Application")).Exec(PropertySet("EnableEvents") << false);
App.Exec(PropertyGet("Application")).Exec(PropertySet("displayalerts") << false);
и он(Excel) все равно ругается...
Скорее всего данные свойства не переопределяются.
На Дельфи код такой:
Код:
Variant ExcelApp;
...
ExcelApp.Application.EnableEvents := false;
ExcelApp.Application.displayalerts := false;
...
ExcelApp.Application.EnableEvents := false;
ExcelApp.Application.displayalerts := false;
работает.[/QUOTE]
Код:
Variant XL = CreateOleObject("Excel.Application.8");
...
XL.OlePropertySet("DisplayAlerts",false);
...
XL.OlePropertySet("DisplayAlerts",false);
вроде так...
Причем я так понимаю, дело в том, что это мой проект выдает сообщение о том, что принтер не установлен. И программа прерывается. Как этого можно избежать?
В принципе, я думала, что try достаточно...
Как раз try не надо было писать.