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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.04.2012, 09:49   #1  
samolalex is offline
samolalex
Участник
Аватар для samolalex
Самостоятельные клиенты AX
 
259 / 107 (4) +++++
Регистрация: 18.06.2010
Адрес: Москва
Нашел старый код, там отчет создавался посредством класса COM (без участия Аксаптовских классов):
X++:
  try
    {
        excelApplication = new COM("excel.application");
        excelApplication.SheetsInNewWorkBook(1);
        excelWorkBooks = excelApplication.Workbooks();
        excelWorkBook = excelWorkBooks.add();
        excelWorkSheet = excelWorkBook.ActiveSheet();
        cells = excelWorksheet.Cells();

        pageSetup =  excelWorkSheet.PageSetup();
        pageSetup.Orientation(2);

    //Header -->
        this.CreateHeader();
    //Header <--

    //FillBody -->
        this.FillDocument();
    //FillBody <--

        excelApplication.visible(true);
    }
    catch(exception::Error)
    {
        if(excelApplication)
        {
            excelApplication.displayAlerts(false);
            excelWorkBooks.close();
            excelApplication.quit();
        }
    }
Таким образом, может быть, в качестве решения, стоит привязаться в конце построения отчета к непосредственным COM-переменным и уже через них закрыть процесс?

Хотя по идее excelApplication.quit() отрабатывается в методе класса COMOfficeDocument_RU.quitApplication - класс, от которого наследуется COMExcelDocument_RU.
А вы, кстати, пробовали вызывать метод quitApplication()?
__________________
С уважением, Александр.

Последний раз редактировалось samolalex; 05.04.2012 в 09:59.
За это сообщение автора поблагодарили: iCloud (2).
Старый 05.04.2012, 09:59   #2  
AlexeyS is offline
AlexeyS
Участник
 
404 / 339 (12) ++++++
Регистрация: 15.06.2004
Адрес: москва
процесс завершает excel.quitApplication(true); (true - закрыть процесс без сохранения документа)
За это сообщение автора поблагодарили: iCloud (2).
Старый 05.04.2012, 10:20   #3  
iCloud is offline
iCloud
Enjoy!
Аватар для iCloud
MCP
Злыдни
 
195 / 112 (4) +++++
Регистрация: 06.03.2012
Цитата:
Сообщение от samolalex Посмотреть сообщение
Нашел старый код, там отчет создавался посредством класса COM (без участия Аксаптовских классов):
Да, даже попробовал, создал метод в ComExcelDocument_RU, который .quit() выполнял, не помогло.
quitApplication() пробовал но без параметра.

quitApplication(false) при visible(false) после каждой фактуры спрашивает, сохранить ли документ?
Старый 05.04.2012, 10:28   #4  
iCloud is offline
iCloud
Enjoy!
Аватар для iCloud
MCP
Злыдни
 
195 / 112 (4) +++++
Регистрация: 06.03.2012
Передав true в quitApplication() после printOut() всё получилось - процесс убивается! Хотя я не прослеживаю логики. Сохранить-да. А куда\чего.

to S.Kuskov
Вы были правы, фишка "подвисания" процесса связана с вылетающим окошком при закрытии Excel.

to samolalex
Спасибо за мысли.
Старый 05.04.2012, 10:38   #5  
iCloud is offline
iCloud
Enjoy!
Аватар для iCloud
MCP
Злыдни
 
195 / 112 (4) +++++
Регистрация: 06.03.2012
Нашел в методе:
True if the specified document or template hasn't been changed since it was last saved.
// False if office application displays a prompt to save changes when the document is closed.

Ну это всё объясняет. Спасибо всем.
Теги
excel

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Исследование скорости экспорта данных из Axapta в Excel (коллективный эксперимент) Gustav DAX: База знаний и проекты 79 13.02.2014 13:18
Иморт из Excel 2010. Как правильно закрыть Excel? jkspb DAX: Программирование 4 13.10.2013 00:55
проблема использования Excel через clr Batuev Artem DAX: Программирование 8 22.08.2011 18:01
Sample Design Patterns: Microsoft Dynamics AX - Remedy for slow Microsoft Excel import Blog bot DAX Blogs 0 29.05.2011 17:13
Как убить процессы Excel? DreamCreator DAX: Программирование 4 06.10.2005 16:32

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

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

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