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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.04.2009, 14:39   #1  
decoder is offline
decoder
Участник
Аватар для decoder
 
63 / 15 (1) ++
Регистрация: 19.12.2008
Адрес: Москва
Как автоматически отключать связи в файле Excel при пакетной обработке?
При импорте данных из файла Excel часто выскакивает запрос следующего содержания:
Цитата:
Книга содержит связи с другими источниками данных.
- Чтобы обновить связанные данные, нажмите кнопку "Да".
- Чтобы сохранить существующие данные, нажмите кнопку "Нет".
Есть ли возможность проверять и отключать (без нажатия кнопок) такие связи у каждого файла Excel при пакетной обработке?

Ах3.0 sp6
Старый 23.04.2009, 15:02   #2  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Вот картинка из Excel 2000: по меню Сервис - Параметры - вкладка "Вычисления"

Название: ExcelExternalLinks.jpg
Просмотров: 3397

Размер: 53.7 Кб

Оно?

Если программно, то это свойство SaveLinkValues объекта Workbook.
За это сообщение автора поблагодарили: decoder (1).
Старый 23.04.2009, 15:22   #3  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
На самом деле, наверное, не оно. А вот следующее, похоже, в точку (VBA):
Код:
Workbooks.Open Filename:= "МойФайл.xls", UpdateLinks:=0
Вот с этим параметром UpdateLinks:=0 не спрашивает про связи при открытии.
Старый 23.04.2009, 15:32   #4  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
И вот наконец, наверное, окончательно ТО: свойство AskToUpdateLinks объекта Excel.Application.
Цитата:
True if Microsoft Excel asks the user to update links when opening files with links. False if links are automatically updated with no dialog box. Read/write Boolean.
Надо поставить в False перед открытием файла.
Старый 23.04.2009, 15:50   #5  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Для ComExcelDocument_RU: надо в метод openDocument добавить строку перед существующей строкой
X++:
m_comApplication.askToUpdateLinks(false);     // добавляемая
m_comDocument = comWorkBooks.open(_filename); // существующая
Вы попробуйте сначала, убедитесь, что работает как надо, а потом решите, где будете исполнять эту команду - в этом методе или раньше при инициализации Application. И оставить ли false навсегда или сделать параметром.
Старый 23.04.2009, 17:28   #6  
decoder is offline
decoder
Участник
Аватар для decoder
 
63 / 15 (1) ++
Регистрация: 19.12.2008
Адрес: Москва
спасибо! работает
Старый 03.06.2009, 14:36   #7  
decoder is offline
decoder
Участник
Аватар для decoder
 
63 / 15 (1) ++
Регистрация: 19.12.2008
Адрес: Москва
Цитата:
Сообщение от Gustav Посмотреть сообщение
Для ComExcelDocument_RU: надо в метод openDocument добавить строку перед существующей строкой
X++:
m_comApplication.askToUpdateLinks(false);     // добавляемая
m_comDocument = comWorkBooks.open(_filename); // существующая
А можно ли дополнительно принудительно отключить само обновление связей?
Что-то вроде:
X++:
m_comApplication.askToUpdateLinks(false);
  m_comApplication.UpdateLinks(false);
Просто у меня отключение запроса связей иногда не срабатывает и пакетник все равно стопорится

ЗЫ
Цитата:
Ошибка времени выполнения. : COM Объект не имеет метода "UpdateLinks"
Старый 03.06.2009, 19:19   #8  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от Gustav Посмотреть сообщение
Код:
Workbooks.Open Filename:= "МойФайл.xls", UpdateLinks:=0
Цитата:
Сообщение от Gustav Посмотреть сообщение
X++:
m_comApplication.askToUpdateLinks(false);     // добавляемая
m_comDocument = comWorkBooks.open(_filename); // существующая
Цитата:
Сообщение от decoder Посмотреть сообщение
А можно ли дополнительно принудительно отключить само обновление связей?
Что-то вроде:
X++:
m_comApplication.askToUpdateLinks(false);
  m_comApplication.UpdateLinks(false);
Просто у меня отключение запроса связей иногда не срабатывает и пакетник все равно стопорится
Наверное, можно, только к другому объекту "приставить" UpdateLinks (=0). Как-то так надо:
X++:
m_comApplication.askToUpdateLinks(false);     // добавляемая

updateLinks = 0;
m_comDocument = comWorkBooks.open(_filename, updateLinks); // ИЗМЕНЯЕМАЯ
За это сообщение автора поблагодарили: decoder (1).
Теги
excel, программно, связи

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Исследование скорости экспорта данных из Axapta в Excel (коллективный эксперимент) Gustav DAX: База знаний и проекты 79 13.02.2014 13:18
Не обновляется класс при пакетной обработке Eldar9x DAX: Программирование 7 28.01.2009 08:23
[Excel] - Несколько версий Excel на машине клиента Андре DAX: Программирование 11 07.08.2007 13:45
Какой способ для связи Axapta с Excel вы предпочитаете? Gustav DAX: База знаний и проекты 37 09.06.2006 09:02
Еще 1 простой вопрос по пакетной обработке Smith DAX: Функционал 1 26.10.2004 17:55

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

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

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