powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Конфликт с событием (OPEN)
14 сообщений из 14, страница 1 из 1
Конфликт с событием (OPEN)
    #35030483
bara242
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть проблема. 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
Конфликт с событием (OPEN)
    #35030649
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчет конфликта - полная фигня
Может ole_cassa.open() попробовать
Неплохо бы еще показать кусочек инициализации где вы коннектитесь к объекту
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Конфликт с событием (OPEN)
    #35030795
qwsdxc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может лучше создать наследника от OleObject и посмотреть на события error и externalExeption, по моему, ошибки ole там обрабатываются
...
Рейтинг: 0 / 0
Конфликт с событием (OPEN)
    #35031404
bara242
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы. Это и есть кусок инициализации. Сажаю на окно компонент от меркурия, сообщаю ему свойства NumPort, BaudRate, Password и далее по команде OPEN он должен коннектится как и написано в описании компонента. Другие команды (не требующие соединения) выполняются без проблем...
...
Рейтинг: 0 / 0
Конфликт с событием (OPEN)
    #35031414
bara242
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще пробовал так: есть поддержка 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
Конфликт с событием (OPEN)
    #35031484
oleg_shishkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня с ККМ все прекрасно было
вот кусок кода

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
Конфликт с событием (OPEN)
    #35031488
oleg_shishkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и правильней наверно надо было обращаться
le_cassa.NumPort = 1
ole_cassa.BaudRate = 9600
ole_cassa.Password = '0000'
ole_cassa.Open()
...
Рейтинг: 0 / 0
Конфликт с событием (OPEN)
    #35031513
bara242
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
C ЭлвесМикро у меня тоже проблем не было, пользую уже 3 года. Там подключение черз DeviceEnabled = True, а здесь Open(). Кстати не так давно хотел использовать компонент для соединения через FTP, и там нужно было потключаться командой Connect. Так вот и тогда был тот же конфликт связаный скорее всего с оператором Connect PB. Пришлось использовать другой компонент.
...
Рейтинг: 0 / 0
Конфликт с событием (OPEN)
    #35031762
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для FTP писал программу используя wodftpdlx
Тоже маялся с примерно той же ошибкой
В результате оказалось все до обидного просто
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Конфликт с событием (OPEN)
    #35032433
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spas2001 В результате оказалось все до обидного просто
И в чем же ошибка?
To bara242
Эта же функция экспортируется из этого ActiveX компонента? Соответственно в HEX редакторе можно подшаманить на Opek например (если, конечно, в этом дело). Может быть перерегистрировать его нужно будет потом...
...
Рейтинг: 0 / 0
Конфликт с событием (OPEN)
    #35032476
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какая-то фигня, сейчас не вспомню, исходняков тоже под рукой не осталось
То-ли скобки поставил, то-ли фиг его знает, не могу сейчас вспомнить
Помню только, что когда нашел сам офигел - и смешно и обидно
Поэтому только и вспомнил
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Конфликт с событием (OPEN)
    #35032569
bara242
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за совет, тоже думал переименовать функцию в OCX-е.
Буду пробовать.
...
Рейтинг: 0 / 0
Конфликт с событием (OPEN)
    #35032712
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте вместо
ole_cassa.object.Open()
написать
ole_cassa.Open()
ole_cassa.Open
ole_cassa.Open = True

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

PS2. Покажите доку по этой функции
...
Рейтинг: 0 / 0
Конфликт с событием (OPEN)
    #35032926
bara242
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот пример на 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
14 сообщений из 14, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Конфликт с событием (OPEN)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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