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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.04.2004, 16:18   #1  
NeveB is offline
NeveB
Участник
 
60 / 16 (1) ++
Регистрация: 14.11.2003
Адрес: Mosсow
? Как посмотреть свойства или методы COM-объектов?
Можно ли сделать такое? В отладчике Axapta или другими средствами.

В частности необъходимо узнать методы и парамеры Com объектов Excel, т.к. многих функций, которые есть в VB нет в COM'е.

Спасибо.
Старый 20.04.2004, 16:35   #2  
mit is offline
mit
Участник
Аватар для mit
 
386 / 36 (2) +++
Регистрация: 15.01.2003
Адрес: Moscow
Есть очень удобная на мой взгляд вещь - мастер оболочек для COM объектов
Старый 21.04.2004, 09:09   #3  
NeveB is offline
NeveB
Участник
 
60 / 16 (1) ++
Регистрация: 14.11.2003
Адрес: Mosсow
Спасибо за совет.
Да, хорошая вещь, правда проблемы не решила: в классе Range есть функция, напимер IndentLevel, а при ее вызове Axapta ругается что такой функции нет!
Старый 21.04.2004, 10:15   #4  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
Не поленился, проверил - функция IndentLevel() нормально вызывается... Как аксапта то ругается?
Старый 21.04.2004, 10:30   #5  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
А свойства и методы обязательно смотеть средствами Аксапты ?

Вообще, вся информация о com объектах хранится в реестре Ок, оставим этот способ для экстремалов.
Практически с любым средством разработки идет некий инструмент, позволяющий получить данную информацию: для MS Visual Studio - это OLE Viewer, в VB - это кажется называется Object Browser, Delphi - умеет генерить - tlb для любого com-объекта.
Как правило, все эти средства позволяют получить гораздо больше информации о com-объекте, нежели из Аксапты.

И еще небольшой совет - когда мне нужно написать что-то под Аксапту с использованием COM - я обычно сначала это делаю на одном из вышеописанных языках, а потом переношу работающее решение на X++. Может и тратится больше времени, зато в процессе разработки я получаю гораздо больший контроль над самой разработкой.
Старый 21.04.2004, 11:15   #6  
mit is offline
mit
Участник
Аватар для mit
 
386 / 36 (2) +++
Регистрация: 15.01.2003
Адрес: Moscow
То, что недоступны некоторые ф-ции - может быть глюк самого Excel, может версии. Действительно, Андре прав, проще сначала написать вызов на VB в самом Excel. Из Аксапты получать информацию о COM объектах сложно. Еще может быть засада, если разработка ведется на 3-х уровневой конфигурации. Компонента может быть зарегистрированна на клиенте, а вызываться на сервере...
Старый 21.04.2004, 11:18   #7  
NeveB is offline
NeveB
Участник
 
60 / 16 (1) ++
Регистрация: 14.11.2003
Адрес: Mosсow
Точно так и делаю - сначала записываю макрос, потом переношу код в Аксапту. но в 30% случаев выдаются ошибки о наличии таких функций у объекта.
Старый 21.04.2004, 11:30   #8  
NeveB is offline
NeveB
Участник
 
60 / 16 (1) ++
Регистрация: 14.11.2003
Адрес: Mosсow
Такое ощущение, что у Аксапты еще не отлажен механизм работы с COM-объетами - находится гдето на стадии бета-тестирования...
1 из 5 запусков вылетают ошибки о неправильных параметрах функций, хотя каждый раз они одни и те же.

З.Ы. Может и правда Excel кривой стоит...
Старый 21.04.2004, 11:31   #9  
mit is offline
mit
Участник
Аватар для mit
 
386 / 36 (2) +++
Регистрация: 15.01.2003
Адрес: Moscow

Не все йогурты одинаково полезны!
на самом деле если функция реализована в самом VB, не обязательно, что она работает через COM. Макроса будет недостаточно. Попробуй создать в VB именно COM объект
выглядит примерно так:
Код:
Private Sub cmdGO_Click()
Dim myObject As Object
Dim strLine As String

Set myObject = CreateObject("myObject .myClass", "192.168.0.1")

    strLine = "test"
    
    strLine = myObject .myFunction(strLine)
    MsgBox (strLine)

End Sub
Старый 21.04.2004, 11:40   #10  
mit is offline
mit
Участник
Аватар для mit
 
386 / 36 (2) +++
Регистрация: 15.01.2003
Адрес: Moscow
да, и еще, если кто будет с СОМами биться, в аксапте есть глюк:
если в СОМе пресдусмотрен возврат переменных strLine1, strLine2, strLine3,
myObject .myFunction(strLine1, strLine2, strLine3)
то в аксапту они не попадут
Старый 21.04.2004, 11:45   #11  
NeveB is offline
NeveB
Участник
 
60 / 16 (1) ++
Регистрация: 14.11.2003
Адрес: Mosсow
пробовал через ComVariant в параметрах ComVariantInOut::Out_retVal указать?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Kurt Hatlevik: Sneak preview of the WMS E&E Blog bot DAX Blogs 0 20.11.2008 01:10
msdynamicsax: VB script that test the com connector for Dynamics Ax 4.0 Blog bot DAX Blogs 0 25.08.2008 18:05
Обработка исключений COM-объектов bms DAX: Программирование 24 06.04.2004 15:04
Менять свойства объектов и вызывать методы renat DAX: Программирование 5 26.02.2003 10:14

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

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

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