04.07.2013, 14:26 | #1 |
Участник
|
Пакетная печать Excel
Microsoft dynamics ax 2012.
Добрый день. При попытке распечатать отчет Excel в пакете выдает следующие ошибки: "Method 'open' in COM object of class 'Workbooks' returned error code 0x800A03EC (<unknown>) which means: Microsoft Excel cannot access the file 'C:\Users\Administrator\AppData\Local\Temp\AxReports\ТОВАРНАЯ НАКЛАДНАЯ-000368.xlsx'. There are several possible reasons: • The file name or path does not exist. • The file is being used by another program. • The workbook you are trying to save has the same name as a currently open workbook." "Cannot create Microsoft Office Excel workbook." "File ’C:\Users\Administrator\AppData\Local\Temp\AxReports\ТОВАРНАЯ НАКЛАДНАЯ-000368.xlsx’ cannot be opened." Оно доходит до строки m_comDocument = comWorkBooks.open(_filename) и выдает ошибку(класс comExcelDocument_RU метод openDocument). X++: if (m_comApplication) { comWorkBooks = m_comApplication.workBooks(); this.finalizeCOM(m_comDocument); m_comDocument = comWorkBooks.open(_filename); comWorkBooks.finalize(); return true; } |
|
04.07.2013, 15:08 | #2 |
Участник
|
Мне кажется, стоит проверить вышеизложенные причины по очереди
|
|
04.07.2013, 16:33 | #3 |
Участник
|
На АХ2009, было два режима пакета (для совместимости).
там Ехель в пакете работал только в старом режиме, что логично, тк требует клиента запущенного. В серверном режиме пакета нужно доделывать отчет до формирования файла и последующего его открытия где-то у заказавшего (ссылку ему на емайл слать или еще как). Нужно понимать, что СОМ на АОС в пакетинике работает без визуализации и сам Ехель должен быть на АОС и ему виден, кк и все пути до шаблона и места сохранения. Так что, без напильника имхо никак. |
|
05.07.2013, 15:53 | #4 |
Участник
|
Нашёл решение здесь:
http://social.msdn.microsoft.com/For...erver-2008-x64 Надо создать папку. Просто создать ・Windows 2008 Server x64 C:\Windows\SysWOW64\config\systemprofile\Desktop ・Windows 2008 Server x86 C:\Windows\System32\config\systemprofile\Desktop Ошибка в самом деле пропадает. Что будет дальше неясно... |
|
|
За это сообщение автора поблагодарили: Maximin (3). |
05.07.2013, 19:48 | #5 |
Участник
|
Спасибо за помощь. Странность состоит в том, что у меня Windows 2008 Server x64. Я находил описание и создавал папку, но это не помогло. Сейчас я решил создать папку как для x86 и все заработало))))))
|
|
08.07.2013, 11:48 | #6 |
Участник
|
Добрый день.
Класс XMLExcelReport_RU метод processInExcel. X++: case PrintMedium::Printer: if (!excelDocument) { excelDocument = new ComExcelDocument_RU(); } prmMissing = new COMVariant(); prmMissing.variantType(COMVariantType::VT_NULL); excelDocument.open(_filename, false); workbook = excelDocument.getComDocument(); //BP deviation documented workbook.printOut(prmMissing, //fromPage prmMissing, //toPage numberOfCopies, //numberOfCopies false, //preview printJobSettings.deviceName()); //printerName, //BP deviation documented workbook.close(false); workbook.finalize(); |
|
08.07.2013, 12:43 | #7 |
Участник
|
Втавлял в run отчетов на пакете. Помогло.
X++: CodeAccessPermission permission = new InteropPermission(InteropKind::ComInterop);
;
permission.asset();
... |
|
08.07.2013, 19:13 | #8 |
Участник
|
Не помогло
|
|
11.07.2013, 10:17 | #9 |
Участник
|
Подскажите пожалуйста как можно вывести на печать документ Excel, который лежит на сервере.
|
|
17.07.2013, 12:55 | #10 |
Участник
|
AX2012 в пакетном режиме не поддерживает COM, как вариант можно выводить текстом в формат Excel XML.
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Пакетная печать документов в Excel | 10 | |||
Двухсторонняя печать в Excel | 2 | |||
Печать страниц Excel на отдельные листы | 3 | |||
Печать excel 2007 | 4 | |||
Печать отчета в Excel. Axapta 3.0 | 2 |
|