AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 15.07.2015, 02:05   #1  
twilight ist offline
twilight
MCTS
MCBMSS
 
890 / 241 (10) ++++++
Registriert seit: 17.10.2004
Ort: Королёв
Как распечатать только активные листы в 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.
Alt 15.07.2015, 10:33   #2  
Craz ist offline
Craz
Участник
 
56 / 19 (1) ++
Registriert seit: 17.09.2009
Насколько мне известно специальных параметров никаких нет, могу ошибаться :-)

Метод printOut применим не только к объекту книге (Workbook) но и к объекту листу (Worksheet). Так что скорее всего придется перебирать (тем более в функцию вы уже передаете номер листа).
This post has been rated by: twilight (1).
Alt 15.07.2015, 10:45   #3  
Владимир Максимов ist offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1.715 / 1204 (44) ++++++++
Registriert seit: 13.01.2004
Blog-Einträge: 3
"Если ничего не получается, попробуйте почитать инструкцию"

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

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

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

X++:
COM comWorkSheet;
;
comWorkSheet = m_comDocument.activeSheet();
comWorkSheet.printOut(comPageFrom, comPageTo, comNumOfCopies, comNullValue, comPrinterName);
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
This post has been rated by: twilight (3).
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
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

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 21:56 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.