Показать сообщение отдельно
Старый 05.04.2012, 09:49   #7  
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).