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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.08.2007, 11:08   #1  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,658 / 1162 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Насколько я понимаю, Excel не поддерживает версионность COM-интерфейса. Т.е. чтобы физически была возможность запустить разные версии Excel через COM-интерфейс в реестре должны быть разные CLSID для разных версий. Но реально CLSID одинаковый для любой версии Excel. Вопрос только в том, что именно он запускает.

Это значит, что чтобы сделать возможность выбора версии Excel через COM-интерфейс надо иметь возможность напрямую править сам реестр. Изменить настройки (привязку) CLSID к конкретной версии Excel.

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

Кроме того, конечно, некоторые свойства и методы COM-интерфейса в разных версиях меняются, но в основном, все остается без изменений. Так что, думаю, не должно быть особых проблем при работе со старшей версией, кроме некоторых специфических ситуаций.

Да, проверить какую же версию Excel подхватил COM-интерфейс можно через свойство version()

X++:
Com     excel;
;

excel = new Com("Excel.Application");
info(strFmt("%1",excel.version()));
За это сообщение автора поблагодарили: Андре (5), aidsua (1).
Старый 07.08.2007, 11:26   #2  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
INFO: Автоматизация Office в системе, где установлено несколько версий пакета MS Office:
Цитата:
Бытует мнение, что при автоматизации Office в системе, где установлены пакеты несколько версий Office, можно указать загружаемую версию приложения с помощью программного идентификатора PROGID, который уникален для каждой версии продукта (например, для загрузки Excel 2000 служит идентификатор Excel.Application.9, Excel 2002 соответствует Excel.Application.10, а Office Excel 2003 — Excel.Application.11). В действительности это не так. Для Excel 2000, 2002 и 2003 используется один и тот же идентификатор класса (CLSID), а это значит, что версия приложения, загружаемая с одним из программных идентификаторов (PROGID), определяется только порядком установки версий программы.
т.е. похоже, что человеку надо просто переустановить 11, чтобы запускать ее автоматом, а новомоднюю 12 будет для своих утех запускать вручную
За это сообщение автора поблагодарили: vladz (1).
Теги
excel

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Выделить несколько диапазонов одновременно (в Excel) MironovI DAX: Программирование 31 23.12.2016 15:12
Исследование скорости экспорта данных из Axapta в Excel (коллективный эксперимент) Gustav DAX: База знаний и проекты 79 13.02.2014 13:18
aEremenko: Несколько серверов DAX на одной машине Blog bot DAX Blogs 3 30.11.2006 08:13
Вызов Item() для коллекций Excel Владимир Максимов DAX: Программирование 15 17.08.2006 19:47
Как быть если у клиента несколько адресов доставки? Rafael DAX: Функционал 7 12.03.2002 22:49

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

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

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