powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Вызов COM из PB
6 сообщений из 6, страница 1 из 1
Вызов COM из PB
    #32864865
Alexander Kolotinets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго всем времени суток.

Собственно вопрос в сабже, кто-то пробовал использовать вызов COM-объектов из PB?
...
Рейтинг: 0 / 0
Вызов COM из PB
    #32864995
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander KolotinetsДоброго всем времени суток.

Собственно вопрос в сабже, кто-то пробовал использовать вызов COM-объектов из PB?Пробовал. Получалось.
...
Рейтинг: 0 / 0
Вызов COM из PB
    #32865739
Alexander Kolotinets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PL99 Alexander KolotinetsДоброго всем времени суток.

Собственно вопрос в сабже, кто-то пробовал использовать вызов COM-объектов из PB?Пробовал. Получалось.

Можешь описать в двух словах механизм покдлючения?
...
Рейтинг: 0 / 0
Вызов COM из PB
    #32865865
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Alexander Kolotinets Как правильно задавать вопросы
2 ASCRUS Может это куда-нибудь в Правила (в раздел "Рекомендуется")?

2 Alexander Kolotinets
PowerBuilder Help
This example creates an OLEObject variable and calls ConnectToNewObject to create a new Excel object and connect to it:
Код: plaintext
1.
2.
3.
4.
integer result
OLEObject myoleobject
myoleobject = CREATE OLEObject
result = myoleobject.ConnectToNewObject( &
		"excel.application")
This example creates an OLETxnObject variable and calls ConnectToNewObject to create and connect to a new instance of a PowerBuilder COM object on an MTS server:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
OLETxnObject EmpObj
Integer li_rc
EmpObj = CREATE OLETxnObject
li_rc = EmpObj.ConnectToNewObject("PB70COM.employee")
IF li_rc <  0  THEN
		DESTROY EmpObj
		MessageBox("Connecting to COM Object Failed",  &
      "Error: " + String(li_rc))
   Return
END IF
// Perform some work with the COM object
...
// If the work completed successfully, commit
// the transaction and disconnect the object
EmpObj.SetComplete()
EmpObj.DisconnectObject()

оно?
...
Рейтинг: 0 / 0
Вызов COM из PB
    #32867296
Alexander Kolotinets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PL992 Alexander Kolotinets Как правильно задавать вопросы
2 ASCRUS Может это куда-нибудь в Правила (в раздел "Рекомендуется")?

2 Alexander Kolotinets
PowerBuilder Help
This example creates an OLEObject variable and calls ConnectToNewObject to create a new Excel object and connect to it:
Код: plaintext
1.
2.
3.
4.
integer result
OLEObject myoleobject
myoleobject = CREATE OLEObject
result = myoleobject.ConnectToNewObject( &
		"excel.application")
This example creates an OLETxnObject variable and calls ConnectToNewObject to create and connect to a new instance of a PowerBuilder COM object on an MTS server:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
OLETxnObject EmpObj
Integer li_rc
EmpObj = CREATE OLETxnObject
li_rc = EmpObj.ConnectToNewObject("PB70COM.employee")
IF li_rc <  0  THEN
		DESTROY EmpObj
		MessageBox("Connecting to COM Object Failed",  &
      "Error: " + String(li_rc))
   Return
END IF
// Perform some work with the COM object
...
// If the work completed successfully, commit
// the transaction and disconnect the object
EmpObj.SetComplete()
EmpObj.DisconnectObject()

оно?

Спасибо, а вопрос задан был так как он поступил на повестку дня :)
...
Рейтинг: 0 / 0
Вызов COM из PB
    #32959868
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно, никто случаем не знает, как события COM-сервера в PB подписать ?

Я тут вот пару дней назад решил попробовать к PB прикрутить FastReport . Уж больно у него дизайнер удобен в рунтайме, дешево стоит, возможностей много и экспортит он преотлично в Excel :) Естественно пошел по пути наименьшего сопротивления - на Delphi начал обвязывать компоненты FastReport как COM-сервер, а на PB параллейно его обвязывать классом-оберткой вызовов его методов. Пока получается неплохо, уже можно вызывать дизайнер, превиев и печать, подгружать и сохранять отчеты в файлы или блобы в БД (даже стал катать окно-менеджер управления отчетами). В качестве доступа к данным отчетнику подцепил ADO, причем COM-сервер создает для отчетника соединение по указанным с PB параметрам (провайдер, строка соединения и уровень изоляции), а отчетник далее уже может на него вешать свои компоненты доступа к данным. В общей сложности могу сказать, что все что касается обвязки методов и свойств, то тут только вопрос времени. Однако было бы круто обвязать еще и события FastReport - тогда в отчетник можно было бы довстраивать функции, написанные на PB, управлять кодом в PB генерацией отчета (хотя конечно и скриптовый язык там не плох и почти все позволяет). В общем на будующее пригодилось бы. Насколько я понял, чтобы клиент мог подписаться на события COM-сервера, он сам должен стать фактически COM-сервером, т.е. реализовать класс с заявленным интерфейсом на события, прописанным в сервере. Никто из присутствующих не извращался в данном направлении, можно ли это сделать на PB или же переживем без событий, оставив их на совесть FastScript ?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Вызов COM из PB
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]