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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.02.2007, 15:31   #1  
Artem Mikhailov is offline
Artem Mikhailov
Участник
 
19 / 11 (1) +
Регистрация: 22.10.2005
танцы с бубном - COM Объект не имеет метода 'worksheets'
Добрый день,

На второй день, проведенный в дебаггере, понял, что ничего не понимаю окончательно. В полном смятении, нужна помощь клуба.

Есть ряд отчетов, выгружающих данные в нежно любимый пользователем эксель. Работают они давно и успешно. На неделе внесли в один из них ряд изменений, что выдало сразу замечательную трассировку:

COM Объект не имеет метода 'worksheets'

(C) \Classes\COM\worksheets
(C) \Classes\ComExcelDocument_RU\getWorkSheet - line 13
(C) \Classes\ComExcelDocument_RU\findRange - line 12
(C) \Classes\ComExcelDocument_RU\insertValue - line 9
(C) \Classes\RWExcelReport_WorkShop\insertOLAPHeaderText - line 3
(C) \Classes\RWExcelReport_WorkShop\run - line 7
(C) \Classes\RWExcelReport\main - line 14

insertOLAPHeaderText - необязательно этот метод. Любой, кто делает банальное excelDocument.insertValue(...) на какой либо лист - таких в классе штук пять.

Все меняли, все переставляли. Убирали изменение. Добавляли иные. Вообще оставили одну строку с excelDocument.insertValue(..). Компилировали все используемые классы. Компилировали инкрементно. Компилировали АОТ. Взяли с трех проектов ComExcelDocument_RU - посравнивали. Убили usr слой с ComExcelDocument_RU с невнятными старыми измененями. Ну что еще? - всего за два дня не упомнишь. Всякие мелочи типа удаление данных пользователя, рестарт КОМ-сервиса на локальной мешине - понятно дело, делали. Шаблон заново создавали. Переносили на иные диски. Итог был регулярно один и тот же...

Что характерно - иногда отчет строился. Мы радостно откладывали бубен в сторону и начинали приводить его в итоговый вид из полуразобранного, но на второе-третье построение получали тот же отлуп.

В какой то из моментов доходило до того, что этот отчет, со всеми параметрами, которые в принципе можно сделать равными, подряд:
- строился,
- строился,
- строился,
- НЕ строился,
- строился,
- НЕ строился,
- НЕ строился,
- строился...

Понятно в принипе, что в какой то момент при запуске отчета и инициализации классов КОМа объект m_comDocument то считает себя документом экселя, то нет. Но причина непонятна.

Шаблон сделан как .xlt.

Axapta 3.0 CIS SP2
RWExcelReport RunOn: Called from
ComExcelDocument_RU RunOn: Client

Есть идеи?
Старый 05.02.2007, 10:49   #2  
Kolja is offline
Kolja
Участник
 
14 / 10 (1) +
Регистрация: 23.12.2005
У меня подобная обшибка возникает если в момент формирования открыть другой Excel файл, или в процессах зависает процесс Excel. И ошибки могут быть разными. Здесь уже где-то подобное рассматривали
Старый 05.02.2007, 12:23   #3  
blokva is offline
blokva
Пенсионер
Аватар для blokva
SAP
NavAx Club
 
743 / 167 (7) ++++++
Регистрация: 04.06.2003
Адрес: Беларусь
Очень часто такое происходит, если не предусмотрено принудительное закрытие ёксель файла по ошибке, он остается в памяти, а если открывался как анвизибл, то сразу и не поймешь.
Просто надо принудительно его финализировать...хотя может быть и другая причина
__________________
Законы природы еще никто не отменял!
А еще у меня растет 2 внучки!!! Кому интересно подробности тут:
http://www.baby-shine.com/
Старый 05.02.2007, 14:21   #4  
Artem Mikhailov is offline
Artem Mikhailov
Участник
 
19 / 11 (1) +
Регистрация: 22.10.2005
Ошибка пропала после того, как заменил параметр видимости экселя при создании файла:

excelDocument = new ComExcelDocument_RU();
excelDocument.newFile(templateFile, true));

Изначально было false. Хотел посмотреть, что эксель делает в момент ошибки, но после этой операции ошибка больше не появлялась.

Причина осталась за кадром
Старый 05.02.2007, 14:25   #5  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
А вы в окне Excel на клавиатуре в момент экспорта ничего не нажимали?
Вообще, посмотрите эту тему Проблема с импортом из Excel через COM
__________________
Axapta v.3.0 sp5 kr2
Теги
olap, ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ошибка при вызове COM-метода koraman DAX: Программирование 8 23.10.2014 09:57
Как удалить COM объект? jon DAX: Программирование 8 11.09.2006 16:11
Объект, как параметр COM-метода Андре DAX: Программирование 10 22.03.2006 18:21
FormActiveXControl Объект не имеет метода Application() chi DAX: Программирование 10 22.12.2005 16:05
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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