Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Конфликт с событием (OPEN) / 14 сообщений из 14, страница 1 из 1
24.12.2007, 16:24
    #35030483
bara242
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конфликт с событием (OPEN)
Есть проблема. PB6.5
Нужно подключить фискальный регистратор "Меркурий 119F". Компонент ActiveX использует для подключения метод OPEN и при обращению к нему PB выдает ошибку (Error accessing external object property open at line.........................). Скорее всего причина в конфликте с одноименным событием OPEN в PB.

Вот скрипт:
ole_cassa.object.NumPort = 1
ole_cassa.object.BaudRate = 9600
ole_cassa.object.Password = '0000'
ole_cassa.object.Open()

Может кто поможет решить проблему?
...
Рейтинг: 0 / 0
24.12.2007, 17:21
    #35030649
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конфликт с событием (OPEN)
Насчет конфликта - полная фигня
Может ole_cassa.open() попробовать
Неплохо бы еще показать кусочек инициализации где вы коннектитесь к объекту
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
24.12.2007, 18:10
    #35030795
qwsdxc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конфликт с событием (OPEN)
Может лучше создать наследника от OleObject и посмотреть на события error и externalExeption, по моему, ошибки ole там обрабатываются
...
Рейтинг: 0 / 0
25.12.2007, 08:16
    #35031404
bara242
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конфликт с событием (OPEN)
Спасибо за ответы. Это и есть кусок инициализации. Сажаю на окно компонент от меркурия, сообщаю ему свойства NumPort, BaudRate, Password и далее по команде OPEN он должен коннектится как и написано в описании компонента. Другие команды (не требующие соединения) выполняются без проблем...
...
Рейтинг: 0 / 0
25.12.2007, 08:34
    #35031414
bara242
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конфликт с событием (OPEN)
Еще пробовал так: есть поддержка COM

OLEobject cassa
cassa = CREATE OLEobject
ll_status = cassa.ConnectToNewObject("Incotex.MercuryFPrtCOM")
сassa.PortNum = 1
cassa.BaudRate = 9600
cassa.Password = '0000'
cassa.Open()

Результат тотже. При обращении к Open выдает туже ошибку.
...
Рейтинг: 0 / 0
25.12.2007, 09:36
    #35031484
oleg_shishkin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конфликт с событием (OPEN)
У меня с ККМ все прекрасно было
вот кусок кода

KKM = CREATE OLEObject
l_status = KKM.ConnectToNewObject("AddIn.FprnM45")
IF l_status <> 0 THEN
OLEEnabled=false
else
OLEEnabled=true
// инициализируем устройство
this.post init()
END IF

в инит
if not OLEEnabled then return 1

// читаем статус
ResultCode=KKM.GetStatus()
If ResultCode = 0 Then
// закрываем чек
If KKM.CheckState <> 0 Then
ResultCode=KKM.CancelCheck()
If ResultCode <> 0 Then
return 1
end if
End If
else
// занимаем порт
KKM.DeviceEnabled = True
ResultCode=KKM.ResultCode
If ResultCode <> 0 Then
return 1
End If
DeviceEnabled = True

// Получить Параметры Устройства
ResultCode=KKM.GetDeviceMetrics()
If ResultCode <> 0 Then
// необходима полная инициализация
b_init_full=true
return 1
End If
// проверяем тип устройства
if KKM.UType<>1 then
return 1
end if
и т.д.
...
Рейтинг: 0 / 0
25.12.2007, 09:39
    #35031488
oleg_shishkin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конфликт с событием (OPEN)
и правильней наверно надо было обращаться
le_cassa.NumPort = 1
ole_cassa.BaudRate = 9600
ole_cassa.Password = '0000'
ole_cassa.Open()
...
Рейтинг: 0 / 0
25.12.2007, 09:57
    #35031513
bara242
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конфликт с событием (OPEN)
C ЭлвесМикро у меня тоже проблем не было, пользую уже 3 года. Там подключение черз DeviceEnabled = True, а здесь Open(). Кстати не так давно хотел использовать компонент для соединения через FTP, и там нужно было потключаться командой Connect. Так вот и тогда был тот же конфликт связаный скорее всего с оператором Connect PB. Пришлось использовать другой компонент.
...
Рейтинг: 0 / 0
25.12.2007, 11:23
    #35031762
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конфликт с событием (OPEN)
Для FTP писал программу используя wodftpdlx
Тоже маялся с примерно той же ошибкой
В результате оказалось все до обидного просто
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
25.12.2007, 14:00
    #35032433
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конфликт с событием (OPEN)
spas2001 В результате оказалось все до обидного просто
И в чем же ошибка?
To bara242
Эта же функция экспортируется из этого ActiveX компонента? Соответственно в HEX редакторе можно подшаманить на Opek например (если, конечно, в этом дело). Может быть перерегистрировать его нужно будет потом...
...
Рейтинг: 0 / 0
25.12.2007, 14:08
    #35032476
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конфликт с событием (OPEN)
А какая-то фигня, сейчас не вспомню, исходняков тоже под рукой не осталось
То-ли скобки поставил, то-ли фиг его знает, не могу сейчас вспомнить
Помню только, что когда нашел сам офигел - и смешно и обидно
Поэтому только и вспомнил
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
25.12.2007, 14:25
    #35032569
bara242
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конфликт с событием (OPEN)
Спасибо за совет, тоже думал переименовать функцию в OCX-е.
Буду пробовать.
...
Рейтинг: 0 / 0
25.12.2007, 14:55
    #35032712
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конфликт с событием (OPEN)
Попробуйте вместо
ole_cassa.object.Open()
написать
ole_cassa.Open()
ole_cassa.Open
ole_cassa.Open = True

PS. Вы нам чего-то не договариваете. Error accessing external object property open ... означает что синтаксически идет обращение к свойству, а у вас в примере написан вызов метода.

PS2. Покажите доку по этой функции
...
Рейтинг: 0 / 0
25.12.2007, 15:37
    #35032926
bara242
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конфликт с событием (OPEN)
Вот пример на VB:
' открытие соединения с ККМ
Private Sub Open_Click()
On Error GoTo ErrorHandler
Mercury.PortNum = PortNumber.ListIndex + 1
Select Case PortSpeed.ListIndex
Case 0
Mercury.BaudRate = 9600
Case 1
Mercury.BaudRate = 19200
Case 2
Mercury.BaudRate = 57600
Case 3
Mercury.BaudRate = 115200
End Select
Mercury.Password = Password
On Error GoTo ErrorHandler
Mercury.Open
' проверка режима узкой ленты
If (Mercury.CheckEcrStatus(6) = 0) Then
NarrowMode.Value = 0
Else
NarrowMode.Value = 1
End If
Exit Sub
ErrorHandler:
ShowError
End Sub
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Конфликт с событием (OPEN) / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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