AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.09.2010, 12:55   #1  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
про дуплексную печать...
все на самом деле просто, изначально в windows в настройках принтера нужно поставить галку "Двухсторонняя печать". Затем нужно отправлять на печать всю книгу целиком, одним заданием. Если будете выводить на печать перебирая листы, дуплексной печати не получиться, потому что каждый лист будет уходить отдельным заданием, а принтер каждое задание начинает с нового листа.

по поводу реализации вывода сразу на печать. делаете галку в отчете "На принтер". Если галка стоит то делаете следующее (у нас написана своя обертка для вывода в Excel, но думаю вы поймете что к чему):
1. печатаем книгу:
X++:
excel.activeWorkBook().PrintOut(1, // From: OleVariant;
                                        32767, // To_: OleVariant;
                                        cntCopies ? cntCopies : 1, //Copies: OleVariant;
                                        false, // Preview: OleVariant;
                                        activePrinter, // ActivePrinter: OleVariant;
                                        false, // PrintToFile: OleVariant;
                                        true); //Collate: OleVariant; галка печатать "всю книгу"
2. Закрываем документ:
X++:
excel.ActiveWindow().Close(false); // save changes
или
X++:
excel.finalize();
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем

Последний раз редактировалось lev; 08.09.2010 в 13:12. Причина: добавил вариант закрытия экселя
За это сообщение автора поблагодарили: pitersky (1), kornix (1).
Старый 08.09.2010, 14:08   #2  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,514 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Цитата:
Сообщение от lev Посмотреть сообщение
по поводу реализации вывода сразу на печать...
X++:
excel.activeWorkBook().PrintOut(1, // From: OleVariant;
                                        32767, // To_: OleVariant;
                                        cntCopies ? cntCopies : 1, //Copies: OleVariant;
                                        false, // Preview: OleVariant;
                                        activePrinter, // ActivePrinter: OleVariant;
                                        false, // PrintToFile: OleVariant;
                                        true); //Collate: OleVariant; галка печатать "всю книгу"
Наверное, я чего-то не знаю. Но никакого activeWorkBook() на excel я не нашёл. Может это вы дописывали сами?
__________________
С уважением,
Вячеслав
Старый 08.09.2010, 14:46   #3  
kornix is offline
kornix
MCP
MCBMSS
Злыдни
Ex AND Project
 
414 / 146 (5) +++++
Регистрация: 24.02.2009
Адрес: Санкт-Петербург
Цитата:
Сообщение от pitersky Посмотреть сообщение
Наверное, я чего-то не знаю. Но никакого activeWorkBook() на excel я не нашёл. Может это вы дописывали сами?
activeWorkBook можно получить так

т.е. сначала от ComExcelDocument_RU можно получить getComDocument(), потом то что получили можно сохранить в COM, и от этой COM-переменной вызвать метод Application(), как написано в статье из ссылки:
X++:
    excel = new ComExcelDocument_RU(); 
    excel.newFile(fileName,true);
    doc = excel.getComDocument(); 
    app = doc.Application();             
    Workbook = app.ActiveWorkbook();
__________________
AXIOMA

Последний раз редактировалось kornix; 08.09.2010 в 15:01. Причина: добавил пример AndyD
За это сообщение автора поблагодарили: Ganna (1).
Старый 10.09.2010, 16:45   #4  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от kornix Посмотреть сообщение
activeWorkBook можно получить так

т.е. сначала от ComExcelDocument_RU можно получить getComDocument(), потом то что получили можно сохранить в COM, и от этой COM-переменной вызвать метод Application(), как написано в статье из ссылки:
X++:
    excel = new ComExcelDocument_RU(); 
    excel.newFile(fileName,true);
    doc = excel.getComDocument(); 
    app = doc.Application();             
    Workbook = app.ActiveWorkbook();
В данном конкретном случае две последние строки лишние, т.к. переменная doc в 3-й строке уже содержит ссылку на worbook, который active. Т.е. и doc, и Workbook после отработки этих 5 строк ссылаются на один и тот же объект.
Старый 08.09.2010, 14:58   #5  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от pitersky Посмотреть сообщение
Наверное, я чего-то не знаю. Но никакого activeWorkBook() на excel я не нашёл. Может это вы дописывали сами?
excel это ком:
X++:
excel = new COM("Excel.Application");
а уже у com объекта есть необходимая функция activeWorkBook(). После точки просто напишите это и все будет ок аксапта откомпилируется, и будет вам счастье.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 10.09.2010, 16:13   #6  
samolalex is offline
samolalex
Участник
Аватар для samolalex
Самостоятельные клиенты AX
 
259 / 107 (4) +++++
Регистрация: 18.06.2010
Адрес: Москва
Цитата:
Сообщение от pitersky Посмотреть сообщение
Наверное, я чего-то не знаю. Но никакого activeWorkBook() на excel я не нашёл. Может это вы дописывали сами?
Вы не нашли activeWorkBook(), потому что доступ к методам классов COM, ComExcelDocument_RU, ComWordDocument_RU происходит по принципу позднего свзвания, т.е. во время исполнения кода программы, в то время как при работе с другими классами срабатывает технология IntelliSense, благодаря которой при указании точки после экземпляра класса всплывает список доступных методов. Поэтому следуйте совету автора предыдущего сообщения
__________________
С уважением, Александр.
Теги
дуплексный режим, печать

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Параметры ГК по расчету курсовой разницы Ax 4.0 nmariya DAX: Функционал 2 10.12.2007 11:34
Параметры обработки НДС в книге Покупок sev DAX: Функционал 1 11.08.2005 20:41
Query, параметры введенные пользователем kostas DAX: Программирование 8 26.05.2005 16:43
Система не видит новые параметры методов при работе Anais DAX: Программирование 28 20.01.2005 22:38
LookUp форма и параметры SnowMan DAX: Программирование 7 18.09.2003 16:04

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 21:50.