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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.07.2015, 02:05   #1  
twilight is offline
twilight
MCTS
MCBMSS
 
881 / 237 (9) ++++++
Регистрация: 17.10.2004
Адрес: Королёв
Как распечатать только активные листы в Excel?
Если я открываю шаблон в Excel и печатаю его, то по умолчанию он выводит на печать только активные листы. Однако если я печатаю из кода методом
X++:
boolean printWorkBook(int _copiesNum = 1, int _workSheetNum = currentWorkSheetNum, str _activePrinter = "")
{
    COM     comWorkBook;
    COMVariant              comPageFrom,
                            comPageTo,
                            comNumOfCopies,
                            comPrinterName,
                            comNullValue = ComVariant::createFromBoolean(false); //COMVariant::createNoValue();
    ;

    try
    {
        comWorkBook = this.getComDocument(); //getWorkSheet(_workSheetNum);
        if (comWorkBook)
        {
            comPageFrom = COMVariant::createNoValue();
            comPageTo   = COMVariant::createNoValue();
            comNumOfCopies  = COMVariant::createFromInt(_copiesNum);
            comPrinterName  = COMVariant::createFromStr(_activePrinter);

            comWorkBook.printOut(comPageFrom, comPageTo, comNumOfCopies, comNullValue, comPrinterName);

            return true;
        }
    }
    catch (Exception::Error)
    {
//        this.finalize();
    }
    catch(exception::internal)
    {
//        this.finalize();
    }
    return false;
}
то у меня печатаются все листы. Как можно сделать, чтобы печатались только активные? Есть ли какой то параметр или надо тупо перебирать все листы и смотреть активный он или нет?
__________________
I could tell you, but then I would have to bill you.
Старый 15.07.2015, 10:33   #2  
Craz is offline
Craz
Участник
 
56 / 19 (1) ++
Регистрация: 17.09.2009
Насколько мне известно специальных параметров никаких нет, могу ошибаться :-)

Метод printOut применим не только к объекту книге (Workbook) но и к объекту листу (Worksheet). Так что скорее всего придется перебирать (тем более в функцию вы уже передаете номер листа).
За это сообщение автора поблагодарили: twilight (1).
Старый 15.07.2015, 10:45   #3  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
"Если ничего не получается, попробуйте почитать инструкцию"

При открытии файла Excel, по умолчанию, Вы выполняете метод printOut() для текущего (активного) листа Excel. Т.е. для объекта WorkSheet, а не для объекта WorkBook, как в Вашем методе.

Соответственно, для печати конкретного листа надо получить ссылку на нужный лист и у полученного объекта использовать метод printOut() - список параметров такой же.

Получить ссылку на активный в данный момент лист можно через метод activeSheet(), например, так

X++:
COM comWorkSheet;
;
comWorkSheet = m_comDocument.activeSheet();
comWorkSheet.printOut(comPageFrom, comPageTo, comNumOfCopies, comNullValue, comPrinterName);
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: twilight (3).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axblog4u: Tip: Suppress “Save Changes” prompt when you close a Excel workbook using X++ in Dynamics AX Blog bot DAX Blogs 0 01.05.2014 13:11
emeadaxsupport: How to copy a budget to a new budget in AX 2012 using Excel Add-in Blog bot DAX Blogs 0 27.11.2012 15:11
проблема использования Excel через clr Batuev Artem DAX: Программирование 8 22.08.2011 18:01
dynamics-ax: Microsoft Dynamics AX 2012 Excel Add-in Blog bot DAX Blogs 0 08.06.2011 08:12
hariprasadp: Import Excel file data in to dynamics AX through Dynamics AX Blog bot DAX Blogs 0 17.12.2009 20:05

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

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

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