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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.02.2003, 14:16   #14  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
Пример использования COM Axapta из другого приложения (например Fox, Delphi, C++).

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

Это так, отступление. Теперь отвечаю на Ваш вопрос -

Под рукой нашлись исходники только на VB, но думаю разберетесь:

Пример 1 - Вызов методов какого либо Аксаптовского класса из нашей прог-мы:


' Коннектимся к Аксапте
Set axapta = New AxaptaCOMConnector.axapta
axapta.Logon "Admin", "", "", ""

Dim AxaptaQuery As AxaptaCOMConnector.IAxaptaObject
Dim AxaptaDataSource As AxaptaCOMConnector.IAxaptaObject
Dim AxaptaRange As AxaptaCOMConnector.IAxaptaObject
Dim CustTableBuffer As AxaptaCOMConnector.IAxaptaRecord
Dim s As String

' Создаю экземпляр класса
Set AxaptaQuery = axapta.CreateObject("myClass")

' Вызываю метод класса
AxaptaQuery.Call ("say")



Пример 2 - получение данных из Аксапты:

' Коннектимся к Аксапте
Set axapta = New AxaptaCOMConnector.axapta
axapta.Logon "Admin", "", "", ""

Dim AxaptaQuery As AxaptaCOMConnector.IAxaptaObject
Dim AxaptaDataSource As AxaptaCOMConnector.IAxaptaObject
Dim AxaptaRange As AxaptaCOMConnector.IAxaptaObject
Dim CustTableBuffer As AxaptaCOMConnector.IAxaptaRecord
Dim s As String

' Это то самое ID - свойство
CustTable = 77
CustTable_Name = 2

Set AxaptaQuery = axapta.CreateObject("Query")
Set AxaptaDataSource = AxaptaQuery.Call("AddDataSource", CustTable)
Set AxaptaRange = AxaptaDataSource.Call("AddRange", CustTable_Name)

AxaptaRange.Call "Value", "*"
Set AxaptaQueryRun = axapta.CreateObject("QueryRun", AxaptaQuery)

i = 1

While (AxaptaQueryRun.Call("Next"))
s = ""
Set CustTableBuffer = AxaptaQueryRun.Call("GetNo", 1)
s = s + Str(i) + " - " + CustTableBuffer.field("AccountNum")
s = s + " " + CustTableBuffer.field("Name")
s = s + " " + CustTableBuffer.field("Address")
s = s + " " + CustTableBuffer.field("Phone")
s = s + " " + CustTableBuffer.field("Telefax")

ListView.AddItem (s)

i = i + 1
Wend

Axapta.Logoff
Set Axapta = Nothing


А вообще, про это хорошо написано в руководстве разработчика
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Экспорт в DBF количество символов. Himan DAX: Программирование 1 16.11.2006 18:14
почти DBF Gorlum DAX: Программирование 3 17.03.2006 12:52
Как создать DBF...? velk DAX: Программирование 11 10.03.2005 17:11
Импорт из DBF : кириллица Mechanizm DAX: Программирование 8 29.09.2004 18:31
Достать данные из DBF в форму edd DAX: Программирование 29 06.02.2003 21:01

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

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

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