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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.10.2006, 14:22   #1  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
Порой при построении больших отчётов в Excel через Automation Microsoft Excel 11.0 Object Library порой возникают проблемы - построение прерывается и выскакивает окно об ошибке, но как обычно для ошибок выгрузки в эксель суть ошибки не раскрывается. При построении одного и того же отчёта по одним и тем же данным ошибка может возникать в разных местах, а может и вобще не возникать. На бухгалтерской машине оно выскакивает довольно часто и приходится некоторые отчёты строить только со 2-го или 3-го раза. С чем может быть связана эта поблема? У меня варианта 2:
- либо быстродействия и производительности компа не хватает
- либо это может быть связано с блокировками таблиц во время проводок (отчёт строится по книге проводок), хотя он только на чтение работает.
Что скажете?

Кста, сколько под дебагером ни пытался поймать - всё работает исправно, без него выго иногда выскакивает. Бухгалетра жалуются.
Старый 18.10.2006, 15:52   #2  
IGG is offline
IGG
Участник
 
665 / 29 (2) +++
Регистрация: 24.08.2005
Адрес: СПб/Москва
У меня при выгрузке в Эксель чаще всего возникает ошибка - если открыт какой нибуть файл в Эксель и ячейка редактируется - то есть курсор мигает в ячейке - любой экспорт отваливается
Вторая ошибка если пытаются выгрузить в одно и то же имя уже открытого в Экселе файла
Старый 18.10.2006, 16:11   #3  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
Цитата:
Сообщение от IGHG Посмотреть сообщение
У меня при выгрузке в Эксель чаще всего возникает ошибка - если открыт какой нибуть файл в Эксель и ячейка редактируется - то есть курсор мигает в ячейке - любой экспорт отваливается
Нет, это точно не этот случай.

Цитата:
Сообщение от IGHG Посмотреть сообщение
Вторая ошибка если пытаются выгрузить в одно и то же имя уже открытого в Экселе файла
Недопонял о чём это
Старый 18.10.2006, 16:16   #4  
IGG is offline
IGG
Участник
 
665 / 29 (2) +++
Регистрация: 24.08.2005
Адрес: СПб/Москва
Цитата:
Сообщение от IGHG Посмотреть сообщение
Вторая ошибка если пытаются выгрузить в одно и то же имя уже открытого в Экселе файла
Недопонял о чём это
Ну есть файл с именем File. Бухи не замечают что он уже окрыт и выгружают с тем же именем.
Ошибки конечно тупые но только они и происходят а по другим вопросам как то все и работает не отваливается.
Может тогда код не очень хороший. Он же не дебаггит вызовы Excel и может ошибки синтаксиса VBA?
Старый 18.10.2006, 16:36   #5  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Я замечал, что ошибка при выгрузке в эксель возникает в случае, если в это время попытаться просто открыть либо еще один эксель, либо эксельный файл. Любой.
Вроде было так ..
Старый 18.10.2006, 17:11   #6  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
Цитата:
Сообщение от IGHG Посмотреть сообщение
Ну есть файл с именем File. Бухи не замечают что он уже окрыт и выгружают с тем же именем.
Ошибки конечно тупые но только они и происходят а по другим вопросам как то все и работает не отваливается.
Ну во первых я сам у себя как-то пару раз эту ошибку случайно поймал, а у меня не был запущен эксель, а во вторых если б было так, то она вылезла бы сразу или после како-го то действия, а она вылазит допустим на строке десятитысячной.

Цитата:
Сообщение от IGHG Посмотреть сообщение
Может тогда код не очень хороший. Он же не дебаггит вызовы Excel и может ошибки синтаксиса VBA?
1. А как тогда объяснить что повторный запуск на тех же данных того же кода может отработать успешно или вылететь на другом месте совершенно?
2. Ничего хитрого там нет, просто данные пишутся в ячейки и в конце итоги подбиваются с помощью финкции СУММ, да и на тех же данных постоянно бы вызывал ошибку в одном месте.


Цитата:
Сообщение от romeo Посмотреть сообщение
Я замечал, что ошибка при выгрузке в эксель возникает в случае, если в это время попытаться просто открыть либо еще один эксель, либо эксельный файл. Любой.
Вроде было так ..
У меня самого вылазила эта ошибка случайно и я ничего такого не делал
Старый 18.10.2006, 21:30   #7  
IGG is offline
IGG
Участник
 
665 / 29 (2) +++
Регистрация: 24.08.2005
Адрес: СПб/Москва
Цитата:
1. А как тогда объяснить что повторный запуск на тех же данных того же кода может отработать успешно или вылететь на другом месте совершенно?
Это может объясняться тем что в памяти может остаться объект Excel который неактивировался при ошибке какой-нибудь. Если снять процессы Excel в процессах системы то может все нормально будет?

Цитата:
2. Ничего хитрого там нет, просто данные пишутся в ячейки и в конце итоги подбиваются с помощью финкции СУММ, да и на тех же данных постоянно бы вызывал ошибку в одном месте
Тут может быть засада что сумма может наткнуться на нецифровую ячейку? Может у одного числа формат корявый?
Старый 19.10.2006, 08:47   #8  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
[quote=IGHG;353873]
Это может объясняться тем что в памяти может остаться объект Excel который неактивировался при ошибке какой-нибудь. Если снять процессы Excel в процессах системы то может все нормально будет?
[quote]
Не знаю, возможно, но отследить трудно. Вобще если такео у меян происходит, то обычно активируются после визибл все документы и конфликтов по этому поводу не замечал.
Цитата:
Сообщение от IGHG Посмотреть сообщение

Тут может быть засада что сумма может наткнуться на нецифровую ячейку? Может у одного числа формат корявый?
Ну функция СУММ в конце всего документа, а ошибка вылетает где-то посередине, да и если бы было так, то огибка повторялась на тех же данных в одном и том же месте.
Старый 19.10.2006, 11:30   #9  
Likefire is offline
Likefire
Заноза в заднице
Аватар для Likefire
MCBMSS
Лучший по профессии 2009
 
547 / 50 (3) ++++
Регистрация: 22.10.2007
Адрес: Москва
Записей в блоге: 1
Цитата:
Сообщение от grif Посмотреть сообщение
Порой при построении больших отчётов в Excel через Automation Microsoft Excel 11.0 Object Library порой возникают проблемы - построение прерывается и выскакивает окно об ошибке, но как обычно для ошибок выгрузки в эксель суть ошибки не раскрывается. При построении одного и того же отчёта по одним и тем же данным ошибка может возникать в разных местах, а может и вобще не возникать. На бухгалтерской машине оно выскакивает довольно часто и приходится некоторые отчёты строить только со 2-го или 3-го раза. С чем может быть связана эта поблема? У меня варианта 2:
- либо быстродействия и производительности компа не хватает
- либо это может быть связано с блокировками таблиц во время проводок (отчёт строится по книге проводок), хотя он только на чтение работает.
Что скажете?

Кста, сколько под дебагером ни пытался поймать - всё работает исправно, без него выго иногда выскакивает. Бухгалетра жалуются.
А скриншот ошибки можно продемонстрировать? Если по разному в разных случаях- несколько скриншотов?
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков!
Старый 19.10.2006, 12:33   #10  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
Не могу подловить у себя теперь. Бухгалтеров надо заставлять. Вобещ там текст почти такой: сообщения для прогармистов C\AL и т.д. без подробностей и раскрытия сути ошибки. Т.е. ошибка выкинута самим навиженом. Такое же сообщение точно сообщение вылезает если вызвать как-то криво функцию экселевскую, например.

А в разных случаях всегда по одинаковому
Старый 20.10.2006, 11:31   #11  
leprud is offline
leprud
Участник
 
12 / 10 (1) +
Регистрация: 19.12.2006
Цитата:
Сообщение от grif Посмотреть сообщение
Не могу подловить у себя теперь. Бухгалтеров надо заставлять. Вобещ там текст почти такой: сообщения для прогармистов C\AL и т.д. без подробностей и раскрытия сути ошибки. Т.е. ошибка выкинута самим навиженом. Такое же сообщение точно сообщение вылезает если вызвать как-то криво функцию экселевскую, например.

А в разных случаях всегда по одинаковому
У меня подобная ошибка возникала если первый символ в "выводимом" значении - символ равенства, который Excel воспринимал как начало формулы, а не текст, на что и ругался..

Рекомендую проверить.
Старый 20.10.2006, 11:41   #12  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
1. Если бы было так, то оно стабильно бы ругалось бы в одном и том же месте и причём каждый раз
2. Ругается не Excel, а Navision
Старый 20.10.2006, 14:23   #13  
murick is offline
murick
Участник
Аватар для murick
 
59 / 10 (1) +
Регистрация: 10.04.2006
[attachment=532:attachment]
Цитата:
там текст почти такой: сообщения для прогармистов C\AL и т.д.
До боли знакомое сообщение об ошибке. Сам сталкивался с подобными эррорами. Причём долгое время не мог поймать закономерность. Не меняя ничего в коде первый раз нави выкидывает ошибку, а во второй раз работает нормально. Наконец чисто случайно просёк такой момент. Если во время формирования отчёта кликнуть мышкой где-нить на экселевском листе, то генерация листа прекращается и вылетает сообщение об ошибке типа компонент OLE или Automation не обеспечил описание исключения.
Честно говоря, устранить подобную проблему не получилось, просто приучил финансистов и бухгалтеров к тому, чтобы терпеливо ждалии и не трогали эксель, пока он не закончит рисоваться.
Миниатюры
Нажмите на изображение для увеличения
Название: exel_error.JPG
Просмотров: 414
Размер:	16.1 Кб
ID:	10065  
Старый 20.10.2006, 14:46   #14  
randrews is offline
randrews
Участник
Аватар для randrews
 
312 / 10 (1) +
Регистрация: 06.12.2004
Цитата:
Сообщение от Neovision Посмотреть сообщение
[attachment=532:attachment]
Цитата:
там текст почти такой: сообщения для прогармистов C\AL и т.д.
До боли знакомое сообщение об ошибке. Сам сталкивался с подобными эррорами. Причём долгое время не мог поймать закономерность. Не меняя ничего в коде первый раз нави выкидывает ошибку, а во второй раз работает нормально. Наконец чисто случайно просёк такой момент. Если во время формирования отчёта кликнуть мышкой где-нить на экселевском листе, то генерация листа прекращается и вылетает сообщение об ошибке типа компонент OLE или Automation не обеспечил описание исключения.
Честно говоря, устранить подобную проблему не получилось, просто приучил финансистов и бухгалтеров к тому, чтобы терпеливо ждалии и не трогали эксель, пока он не закончит рисоваться.
А еще, если нажать в книге F2 (находится в режиме редаткирования ячейки), а в Navi запустить отчет Excel, то тоже может такая ошибка появляться
Старый 20.10.2006, 16:05   #15  
Milk is offline
Milk
Участник
 
242 / 12 (1) ++
Регистрация: 08.06.2006
Цитата:
Сообщение от Neovision Посмотреть сообщение
Если во время формирования отчёта кликнуть мышкой где-нить на экселевском листе, то генерация листа прекращается и вылетает сообщение об ошибке типа компонент OLE или Automation не обеспечил описание исключения.
Честно говоря, устранить подобную проблему не получилось, просто приучил финансистов и бухгалтеров к тому, чтобы терпеливо ждалии и не трогали эксель, пока он не закончит рисоваться.
Если дело окажется в том, что пользователи тыкают в другие листы, надо просто показывать юзеру отчет только после окончания его формирования.
Старый 20.10.2006, 16:10   #16  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
Люди! А зачем вы показываете пользователю как рисуется Ёксель? Пусть сначалал отработает, а потом уже давайте пользователю на растерзание!

Milk опередил
Старый 20.10.2006, 16:22   #17  
murick is offline
murick
Участник
Аватар для murick
 
59 / 10 (1) +
Регистрация: 10.04.2006
Цитата:
Если дело окажется в том, что пользователи тыкают в другие листы, надо просто показывать юзеру отчет только после окончания его формирования.
То есть UserСontrol в самом конце поставить? Хм, если дело только в этом, то у меня так и сделано. Можно чуть поконкретней об этом? Фрагмент кода, если не затруднит?
Старый 20.10.2006, 16:36   #18  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Цитата:
Сообщение от Fordewind Посмотреть сообщение
Люди! А зачем вы показываете пользователю как рисуется Ёксель? Пусть сначалал отработает, а потом уже давайте пользователю на растерзание!

Milk опередил
+1
Старый 20.10.2006, 16:42   #19  
apanko is offline
apanko
MCTS
MCBMSS
Лучший по профессии 2009
 
1,164 / 139 (7) +++++
Регистрация: 24.02.2005
Думаю что-то типа:

В начале
XlApp.Visible(FALSE);

В конце
XlApp.Visible(TRUE);
XlApp.UserControl(TRUE);
CLEAR(XlApp);


______________
добавил.
Пример см. в таблице 370. Пример использования таблицы 370 см в отчете 12469
Старый 20.10.2006, 16:58   #20  
murick is offline
murick
Участник
Аватар для murick
 
59 / 10 (1) +
Регистрация: 10.04.2006
Цитата:
В начале
XlApp.Visible(FALSE);

В конце
XlApp.Visible(TRUE);
XlApp.UserControl(TRUE);
CLEAR(XlApp);
Да, сглупил я однако. Когда я первый раз запустил отчёт с экспортом в эксель он ругнулся, что не может вызвать метод clear. В доке говорилось, что это из-за того, что эксель остаётся invisible, и как решение советовалось объявлять его видимым сразу же после создания. Теперь понимаю, что разумней было бы сделать его visible непосредственно перед тем как передать юзеру во владение. Спасибо за совет
 


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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 10:51.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.