Party API
Party API
Как работать с PArty API?
Не получается запустить демонстрационный пример.
Может быть не тот язык программирования или старая версия: Visyal C++ 6.0?
Не получается запустить демонстрационный пример.
Может быть не тот язык программирования или старая версия: Visyal C++ 6.0?
Re: Party API
1. Прочитать описание PartyAPI.viris писал(а):Как работать с PArty API?
Не получается запустить демонстрационный пример.
Может быть не тот язык программирования или старая версия: Visyal C++ 6.0?
2. Научиться подключать в Visual C++ внешние DLL-файлы.
Все получится.
ЗЫ.: В примере используется "не тот язык программирования". Об этом написано в документации.

- Alxd
- Активный участник
- Сообщения: 50
- Зарегистрирован: 15 июл 2004, 12:42
- Откуда: Тюмень
- Контактная информация:
Легко!
Я недавно накатал модуль atableRpt2G, который переносит данные отчета Lotsia PDM Plus в чертеж AutoCAD. Как раз писал на VBA for AutoCAD. Его можно скачать и изучить. Все совсем не сложно, за исключением преобразования типов
Скачайте http://www.alx.ncn.ru/download/atableRpt2G.zip и посмотрите.
Я недавно накатал модуль atableRpt2G, который переносит данные отчета Lotsia PDM Plus в чертеж AutoCAD. Как раз писал на VBA for AutoCAD. Его можно скачать и изучить. Все совсем не сложно, за исключением преобразования типов

Скачайте http://www.alx.ncn.ru/download/atableRpt2G.zip и посмотрите.
-
- Активный участник
- Сообщения: 239
- Зарегистрирован: 13 янв 2005, 14:30
- Используемое ПО: Lotsia PDM PLUS LT
- Откуда: Украина, Донецк
- Контактная информация:
Пример описания процедур для С#
Вот описание класса C# для работы с Party API:
public class Party
{
[DllImport("partyapi.dll")]
public static extern UInt16 PartyInit();
[DllImport("partyapi.dll")]
public static extern UInt16 PartyReset();
[DllImport("partyapi.dll")]
public static extern UInt16 PartyLoad();
[DllImport("partyapi.dll")]
public static extern UInt16 PartyInitConnect(IntPtr lpParm);
[DllImport("partyapi.dll")]
public static extern UInt16 PartyConnectInfo(out IntPtr lpParm);
[DllImport("partyapi.dll")]
public static extern short PartyUIActivate();
[DllImport("partyapi.dll")]
public static extern UInt16 PartyUIObjectOpen([MarshalAs(UnmanagedType.LPArray)] char[] ptid, int dwFlag);
[DllImport("partyapi.dll")]
public static extern UInt16 PartyUIOperationSelect(int HWND,out IntPtr lpOperID,int dwFlags);
[DllImport("partyapi.dll")]
public static extern UInt16 PartyOperationRun(int HWND, Int32 ptid, IntPtr Arg);
[DllImport("partyapi.dll")]
public static extern UInt16 PartyUIObjectSelect2(IntPtr HWND,out IntPtr ptid, Int32 dwFlags); //множественный выбор
[DllImport("partyapi.dll")]
public static extern UInt16 PartyUIObjectSelect2(IntPtr HWND, IntPtr ptid, Int32 dwFlags); //одиночный выбор (инициализация буффера)
[DllImport("partyapi.dll")]
public static extern UInt16 PartyUIArcDocVerSelect(int hWnd, IntPtr ObjId, Int32 dwFlags, out IntPtr lpVerId, IntPtr lpCount); //множественный выбор
[DllImport("partyapi.dll")]
public static extern UInt16 PartyUIArcDocVerSelect(int hWnd, IntPtr ObjId, Int32 dwFlags, IntPtr lpVerId, IntPtr lpCount); //одиночный выбор (инициализация буффера)
[DllImport("partyapi.dll")]
public static extern UInt16 PartyDocVerOpen([MarshalAs(UnmanagedType.LPArray)] char[] DocId, Int32 dwFlags, IntPtr lpPath);
[DllImport("partyapi.dll")]
public static extern UInt16 PartyUIArcDocVerOpen(int hWnd, [MarshalAs(UnmanagedType.LPArray)] char[] DocId, IntPtr lpArg);
[DllImport("partyapi.dll")]
public static extern UInt16 PartyDocVerClose([MarshalAs(UnmanagedType.LPArray)] char[] DocId);
[DllImport("partyapi.dll")]
public static extern UInt16 PartyDocRightGet([MarshalAs(UnmanagedType.LPArray)] char[] DocId, Int32 wCount,out IntPtr lpRightList);
[DllImport("partyapi.dll")]
public static extern UInt16 PartyUIObjectSelectTree(int hWnd, IntPtr lpRootId, Int32 dwLinkTypeId, IntPtr lpObjID, IntPtr lpTreeLinkID);
}
public class Party
{
[DllImport("partyapi.dll")]
public static extern UInt16 PartyInit();
[DllImport("partyapi.dll")]
public static extern UInt16 PartyReset();
[DllImport("partyapi.dll")]
public static extern UInt16 PartyLoad();
[DllImport("partyapi.dll")]
public static extern UInt16 PartyInitConnect(IntPtr lpParm);
[DllImport("partyapi.dll")]
public static extern UInt16 PartyConnectInfo(out IntPtr lpParm);
[DllImport("partyapi.dll")]
public static extern short PartyUIActivate();
[DllImport("partyapi.dll")]
public static extern UInt16 PartyUIObjectOpen([MarshalAs(UnmanagedType.LPArray)] char[] ptid, int dwFlag);
[DllImport("partyapi.dll")]
public static extern UInt16 PartyUIOperationSelect(int HWND,out IntPtr lpOperID,int dwFlags);
[DllImport("partyapi.dll")]
public static extern UInt16 PartyOperationRun(int HWND, Int32 ptid, IntPtr Arg);
[DllImport("partyapi.dll")]
public static extern UInt16 PartyUIObjectSelect2(IntPtr HWND,out IntPtr ptid, Int32 dwFlags); //множественный выбор
[DllImport("partyapi.dll")]
public static extern UInt16 PartyUIObjectSelect2(IntPtr HWND, IntPtr ptid, Int32 dwFlags); //одиночный выбор (инициализация буффера)
[DllImport("partyapi.dll")]
public static extern UInt16 PartyUIArcDocVerSelect(int hWnd, IntPtr ObjId, Int32 dwFlags, out IntPtr lpVerId, IntPtr lpCount); //множественный выбор
[DllImport("partyapi.dll")]
public static extern UInt16 PartyUIArcDocVerSelect(int hWnd, IntPtr ObjId, Int32 dwFlags, IntPtr lpVerId, IntPtr lpCount); //одиночный выбор (инициализация буффера)
[DllImport("partyapi.dll")]
public static extern UInt16 PartyDocVerOpen([MarshalAs(UnmanagedType.LPArray)] char[] DocId, Int32 dwFlags, IntPtr lpPath);
[DllImport("partyapi.dll")]
public static extern UInt16 PartyUIArcDocVerOpen(int hWnd, [MarshalAs(UnmanagedType.LPArray)] char[] DocId, IntPtr lpArg);
[DllImport("partyapi.dll")]
public static extern UInt16 PartyDocVerClose([MarshalAs(UnmanagedType.LPArray)] char[] DocId);
[DllImport("partyapi.dll")]
public static extern UInt16 PartyDocRightGet([MarshalAs(UnmanagedType.LPArray)] char[] DocId, Int32 wCount,out IntPtr lpRightList);
[DllImport("partyapi.dll")]
public static extern UInt16 PartyUIObjectSelectTree(int hWnd, IntPtr lpRootId, Int32 dwLinkTypeId, IntPtr lpObjID, IntPtr lpTreeLinkID);
}
Буду очень признателен если пришлешь пример работы с PartyAPI на С# на akozlov@ics.perm.ru. Очень нужно.Юрий писал(а):Могу прислать пример как работать с PartyApi на c#
-
- Новый участник
- Сообщения: 4
- Зарегистрирован: 16 июн 2010, 19:55
- Используемое ПО: Lotsia PDM PLUS
Re: Party API
Всем привет!
Не подскажите как получить значения ф-и PartyConnectInfo на VB.NET?
Для подключения библиотеки я в Microsoft Visual Studio 2005 на VB создаю WindowsApplication(для теста функций) и
при объявлении класса формы прописываю:
на форму вешаю пару кнопок:
1:
Врезультате: запускается лоция с предложением ввести пользователя и пароль, если она не открыта, как и должно быть("PartyAPI.doc").
2:
Врезультате: Сообщение выдает-0. Ошибок никаких нет. Т.е. я неверно использую структуру и "lpszLoginName" содержит адрес на строку? А как всетаки получить саму строку по адресу в VB.NET?
Может кто-нибудь дать пример использования PartyAPI на VB.NET и C#?
Буду очень признателен
Не подскажите как получить значения ф-и PartyConnectInfo на VB.NET?
Для подключения библиотеки я в Microsoft Visual Studio 2005 на VB создаю WindowsApplication(для теста функций) и
при объявлении класса формы прописываю:
Код: Выделить всё
<StructLayout(LayoutKind.Sequential)> Public Structure PtConnectInfo 'структура для ф-и PartyConnectInfo
Public dwSize As Long
Public lpszLoginName As Long
Public lpszPassword As Long
Public wDBMSType As Long
Public lpszServer As Long
Public lpszDataBase As Long
End Structure
Declare Auto Function PartyInit Lib "PartyAPI.dll" Alias (ByVal hWnd As Integer) As Integer
Declare Auto Function PartyLoad Lib "PartyAPI.dll" () As Integer
Declare Auto Sub PartyConnectInfo Lib "PartyAPI.dll" (ByRef PtConnInfo As PtConnectInfo)
на форму вешаю пару кнопок:
1:
Код: Выделить всё
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim a As Integer
PartyInit(0)
a = PartyLoad()
End Sub
Врезультате: запускается лоция с предложением ввести пользователя и пароль, если она не открыта, как и должно быть("PartyAPI.doc").
2:
Код: Выделить всё
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim inf As PtConnectInfo
Dim s As String
PartyInit(0)
PartyConnectInfo(inf)
s = "PartyAPI: " & inf.lpszLoginName
MsgBox(s)
End Sub
Врезультате: Сообщение выдает-0. Ошибок никаких нет. Т.е. я неверно использую структуру и "lpszLoginName" содержит адрес на строку? А как всетаки получить саму строку по адресу в VB.NET?
Может кто-нибудь дать пример использования PartyAPI на VB.NET и C#?
Буду очень признателен
Re: Party API
Могу посоветовать посмотреть проект http://code.google.com/p/lsapi/
-
- Новый участник
- Сообщения: 4
- Зарегистрирован: 16 июн 2010, 19:55
- Используемое ПО: Lotsia PDM PLUS
Re: Party API
Что то ничего там нет, ссылку не могу найти на скачивание
-
- Активный участник
- Сообщения: 239
- Зарегистрирован: 13 янв 2005, 14:30
- Используемое ПО: Lotsia PDM PLUS LT
- Откуда: Украина, Донецк
- Контактная информация:
Re: Party API
В примерах к PartyAPI есть доковский документ со скриптом, который илюстрирует
работу с бейсиком. Там показанно как описывать структуры.
работу с бейсиком. Там показанно как описывать структуры.
Re: Party API
Попробуйте такую ссылку: http://lsapi.googlecode.com/svn/trunk/OrAcOoL писал(а):Что то ничего там нет, ссылку не могу найти на скачивание
-
- Новый участник
- Сообщения: 4
- Зарегистрирован: 16 июн 2010, 19:55
- Используемое ПО: Lotsia PDM PLUS
Re: Party API
Теперь что то есть. Спасибо за ссылку, буду разбираться.
-
- Новый участник
- Сообщения: 4
- Зарегистрирован: 16 июн 2010, 19:55
- Используемое ПО: Lotsia PDM PLUS
Re: Party API
Спасибо, Юрий. Буду разбираться.Юрий писал(а):В примерах к PartyAPI есть доковский документ со скриптом, который илюстрирует
работу с бейсиком. Там показанно как описывать структуры.
Видел Вашу тему "Новая возможность вызова API функций из VBScript Офиса и др."
Скачал по ссылке архив, все сделал по readme, но вылетает ошибка: Невозможно создание объекта контейнером ActiveX:'demo_run_action.Class1'.
FrameWork 2.0 установлен, в реестре тоже все верно.
В vb.net подключил PartyApiFDN.dll напрямую. Но еще не пробовал.
Может у Вас есть какой-нибудь примерчик посмотреть?
Можно намекнуть на импорт/экспорт документов?