Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вывод документа на печать

10K
14 августа 2006 года
Mishelle
25 / / 09.12.2005
Как сделать так, чтобы заполнить шаблон Excel, потом напечатать то, что получилось и закрыть шаблон без сохранения?
В частности, меня интересует функция печати документа.
Заранее спасибо.

Код:
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"); // - здесь возникает ошибка


Может я функцию печати неправильно пишу или не так к ней обращаюсь?
246
14 августа 2006 года
GIZMO
1.8K / / 30.07.2004
[QUOTE=Mishelle]Как сделать так, чтобы заполнить шаблон Excel, потом напечатать то, что получилось и закрыть шаблон без сохранения?

В частности, меня интересует функция печати документа.

Заранее спасибо.[/QUOTE]
Существует один универсальный метод по работе с Word, Excel e.t.c. - ставишь на запись макрос и делаешь, что тебе нужно, потом смотришь что вышло и переводишь в с++.
10K
15 августа 2006 года
Mishelle
25 / / 09.12.2005
Как же все таки вызвать PrintPreview?
246
15 августа 2006 года
GIZMO
1.8K / / 30.07.2004
[QUOTE=Mishelle]Как же все таки вызвать PrintPreview?[/QUOTE]
 
Код:
//ActiveCell.FormulaR1C1 = "блаблабла"
//Range("A4").Select
//ActiveWindow.SelectedSheets.PrintPreview

App.Exec(PropertyGet("ActiveWindow")).Exec(PropertyGet("SelectedSheets")).Exec(PropertySet("PrintPreview") << true);

или

Sh.Exec(Function("PrintPreview"));

Билдера нет под рукой, поэтому проверить не могу. Если не разберешься до вечера, то приду домой сделаю (но лучше сама, это полезнее:)).
10K
15 августа 2006 года
Mishelle
25 / / 09.12.2005
Спасибо за совет, сейчас попробую :)
10K
15 августа 2006 года
Mishelle
25 / / 09.12.2005
[QUOTE=GIZMO]
 
Код:
//ActiveCell.FormulaR1C1 = "блаблабла"
//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);


и все заработало!
Спасибо тебе огромное)))
А то я уже пол дня мучаюсь...

Правда он теперь пишет, что принтер не установлен, но эту проблему уже будет решать пользователь программы)
246
15 августа 2006 года
GIZMO
1.8K / / 30.07.2004
[QUOTE=Mishelle]Написала
Спасибо тебе огромное)))
А то я уже пол дня мучаюсь...
[/QUOTE]
Не-за-что:)

P.S. Для спасиба есть кнопочка: "Добавить отзыв для - NickName".
10K
15 августа 2006 года
Mishelle
25 / / 09.12.2005
А я уже добавила )))
А как узнать, добавился он или нет?
10K
15 августа 2006 года
Mishelle
25 / / 09.12.2005
Пишу

 
Код:
Variant App;
...
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;

работает.
246
15 августа 2006 года
GIZMO
1.8K / / 30.07.2004
[QUOTE=Mishelle]Пишу

 
Код:
Variant App;
...
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;

работает.[/QUOTE]

 
Код:
Variant XL = CreateOleObject("Excel.Application.8");
...
XL.OlePropertySet("DisplayAlerts",false);

вроде так...
10K
15 августа 2006 года
Mishelle
25 / / 09.12.2005
Да, я так тоже пробовала, но все равно сообщение об ошибке всплывает...
Причем я так понимаю, дело в том, что это мой проект выдает сообщение о том, что принтер не установлен. И программа прерывается. Как этого можно избежать?
В принципе, я думала, что try достаточно...
10K
15 августа 2006 года
Mishelle
25 / / 09.12.2005
В общем, проблему я решила.
Как раз try не надо было писать.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог