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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.04.2007, 11:04   #1  
smoyk is offline
smoyk
Участник
 
188 / 13 (1) ++
Регистрация: 20.04.2007
Еще вчера вроде работал, седня перестал. Не могу сообразить в чем прикол.

DataPort - OnPreDataPort()
CREATE(xlApp);
xlApp.Workbooks.Open('E:\Шаблоны\Шаблон ''Реестр работников''');
xlBook := xlApp.ActiveWorkbook;
xlSheet := xlApp.ActiveSheet;

Выполняет последнюю строчку и сразу вылетает с ошибкой
"Операционная система не может найти устройство и каталог для файла .
Пожулуста, проверьте, что название устройства, каталога и имя файла корректны."

Фишка в том, что последняя строка выполняется нормально. Ставил после нее ERROR(xlSheet.Name) и выводилось имя активного листа и затем приложение закрывалось.

Я так думаю что дело не в коде, но в чем дело не могу докумекать. У когонить есть соображения?
Старый 20.04.2007, 12:28   #2  
IGG is offline
IGG
Участник
 
665 / 29 (2) +++
Регистрация: 24.08.2005
Адрес: СПб/Москва
Кавычки ессно
Старый 20.04.2007, 12:29   #3  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
Цитата:
Сообщение от smoyk Посмотреть сообщение
DataPort - OnPreDataPort()
CREATE(xlApp);
xlApp.Workbooks.Open('E:\Шаблоны\Шаблон ''Реестр работников''');
xlBook := xlApp.ActiveWorkbook;
xlSheet := xlApp.ActiveSheet;
Не в плане решения данного вопорса, но как совет по коду.- Зачем вам это в Датапорте?
Старый 21.04.2007, 11:12   #4  
smoyk is offline
smoyk
Участник
 
188 / 13 (1) ++
Регистрация: 20.04.2007
Информация к размышлению. Перекинул код в Report, заработало как часы... Мамой клянусь, код одинаковый, но в датапорте он не работает.

To IGHG
А что с ними?

To Fordewind
Ну а почему нет? Мне отчет как таковой не нужен, только выгрузка. В Codeunit'е еще не пробовал это закодить, но там вобще все с нуля надо делать: и форму запроса и индикацию и тп.

Кроме того, мне нужно выгрузить сложную структуру данных (инфа подтягивается из разных таблиц) и в текстовый файл, и в файл Excel. Зачем писать один и тот же код получения и форматирования значений дважды? В датапорте выгрузка в txt уже риализована, добавить одновременно запись в excel и усе.

Печально, но почемуто в датапорте не фурычит код, который фурычит в репорте. Хоть убей не могу понять почему.
Старый 21.04.2007, 13:56   #5  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Цитата:
Сообщение от smoyk Посмотреть сообщение
Информация к размышлению. Перекинул код в Report, заработало как часы... Мамой клянусь, код одинаковый, но в датапорте он не работает.

To IGHG
А что с ними?

To Fordewind
Ну а почему нет? Мне отчет как таковой не нужен, только выгрузка. В Codeunit'е еще не пробовал это закодить, но там вобще все с нуля надо делать: и форму запроса и индикацию и тп.

Кроме того, мне нужно выгрузить сложную структуру данных (инфа подтягивается из разных таблиц) и в текстовый файл, и в файл Excel. Зачем писать один и тот же код получения и форматирования значений дважды? В датапорте выгрузка в txt уже риализована, добавить одновременно запись в excel и усе.

Печально, но почемуто в датапорте не фурычит код, который фурычит в репорте. Хоть убей не могу понять почему.
Тогда пробуй найти ту строчку, что не работает корректно, а потом замени ее чем-нибудь подходящим...
Старый 22.04.2007, 08:33   #6  
smoyk is offline
smoyk
Участник
 
188 / 13 (1) ++
Регистрация: 20.04.2007
To RedFox
Да нет, млин, такой строчки! См. первый пост: последняя строка в тригере DataPort - OnPreDataPort() отрабатывает нормально и после этого он вылетает с ошибкой!
Старый 22.04.2007, 15:19   #7  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Может у Вас датапорт к тому же файлу стучаться пытается, который Вы уже экселем открыли?
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 23.04.2007, 10:59   #8  
Milk is offline
Milk
Участник
 
242 / 12 (1) ++
Регистрация: 08.06.2006
Вот это сообщение
Цитата:
Сообщение от smoyk Посмотреть сообщение
"Операционная система не может найти устройство и каталог для файла .
Пожулуста, проверьте, что название устройства, каталога и имя файла корректны."
относится не к открываемому экселевскму файлу, а к файлу датапорта (тот, который CurrDataport.FILENAME). Поэтому и в отчете все в порядке. Думаю, надо в эту сторону копать.
Старый 23.04.2007, 18:04   #9  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Цитата:
Сообщение от smoyk Посмотреть сообщение
To RedFox
Да нет, млин, такой строчки! См. первый пост: последняя строка в тригере DataPort - OnPreDataPort() отрабатывает нормально и после этого он вылетает с ошибкой!
А Вы уверены, что путь "Е:\\..." существует и отчет запускает xlApp.Workbooks.Open корректно? Вы уверены что ПК, где запускается приложение, имеет диск Е?
Старый 23.04.2007, 18:40   #10  
RobiBaggio is offline
RobiBaggio
Участник
Аватар для RobiBaggio
 
285 / 10 (1) +
Регистрация: 16.02.2004
Еще как вариант. После выполнения, остался висеть как сервис, excel. А при попытке запустить по новому его скрутило. Такое было у меня.
Старый 24.04.2007, 05:13   #11  
smoyk is offline
smoyk
Участник
 
188 / 13 (1) ++
Регистрация: 20.04.2007
Спасибо за советы, но увы...

2 Дуд
Тады была бы другая ошибка. Но в любом случае, уверен, что нет.

2 Milk
А как копать? Как только коментирую эти строки все работает на ура (в смысле датапорт). Т.е. в txt выгружает нормально. Не знаю.

2 RedFox
Абсолютно уверен. Как вы видите из кода в моем первом посте, я не создаю ни книги, ни листов. В переменные записываются только активные книга и лист. И как я писал, после последней строчки в триггере DataPort - OnPreDataPort() ставлю ERROR(xlSheet.Name) и мне нормально выводится имя "Реестр работников" того самого листа, что содержится в "Шаблон 'Реестр работников'". Извиняюсь за повтор. Так что файл открывается и загружается, сомнений нет.

2 RobiBaggio
Да, так и есть. Очень нездравая фича. Но я ее просек и ручками через диспетчер задач вырубил его. Так что дело опять же не в этом (*неуверенным тоном*). А можт, х.з., и в этом. Но я этот сервис обрубал перед запуском.

з.ы. Попутно вопрос, как энти сервис убить? Нехорошо ведь, что он висеть остается? Убить кстати желательно бы и в случае ошибки в датапорте, но это уже наверно незбыточные мечты Обработки исключений насколько я знаю в навике нет.

з.з.ы. А ктонибудь вобще в датапорте выгрузку в ексель делал? Можт навик такого в принципе не позволяет?
Старый 24.04.2007, 15:03   #12  
Milk is offline
Milk
Участник
 
242 / 12 (1) ++
Регистрация: 08.06.2006
А вы на всякий случай напишите после этого вашего кода
MESSAGE(CurrDataport.FILENAME)
Что-то я подозреваю, что у вас с ним проблема
Старый 24.04.2007, 22:54   #13  
alexb_imported is offline
alexb_imported
Участник
 
256 / 12 (1) ++
Регистрация: 25.08.2006
Цитата:
Сообщение от smoyk Посмотреть сообщение
з.ы. Попутно вопрос, как энти сервис убить? Нехорошо ведь, что он висеть остается?
А добавьте поcле обработки последней строчки:
xlApp.Workbooks.CLOSE;
CLEAR(xlApp);
Старый 25.04.2007, 05:44   #14  
smoyk is offline
smoyk
Участник
 
188 / 13 (1) ++
Регистрация: 20.04.2007
To Milk
Хм... Точно. Не в бровь, как говорится, а сразу в глаз. Выдает пустую строку. И в чем прикол? У навика что-то в мозку слетело и он просто глюкнул? Или это я как нить накосячил, сам того не ведая? И что делать вобще? Новый датик сделать и туда код скопировать?

To AlexB
Спасибо. Я правильно сказал, в случае возникновения ошибки в процессе выполнения этот сервис так и будет висеть? Мне бы в принципе пофигу, при выключении компа он все равно сгинет, но не хорошо это. Непрофессионально после себя в оперативке такой муссор оставлять
Старый 25.04.2007, 09:12   #15  
smoyk is offline
smoyk
Участник
 
188 / 13 (1) ++
Регистрация: 20.04.2007
Все, разобрался. Потыкал, потыкал и разобрался Свойство UseReqForm установил в No. Сделал это мимоходом, и пошел дальше код править, поэтому и не связал отказ в работе с изменением этого свойства. Короче, лопухнулся конкретно Извиняюсь. И всем спасибо.
 


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

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

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