![]() |
#14 |
Moderator
|
Цитата:
Пример использования 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 количество символов. | 1 | |||
почти DBF | 3 | |||
Как создать DBF...? | 11 | |||
Импорт из DBF : кириллица | 8 | |||
Достать данные из DBF в форму | 29 |
|