powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Вызов функции объекта в DataWindow
9 сообщений из 9, страница 1 из 1
Вызов функции объекта в DataWindow
    #33409814
Фотография Amberit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, уважаемые коллеги!

Помогите, пожалуйста, разобраться с одним интересующим меня вопросом. Известно, что внутри DataWindow (в Computed Field'ах, например) можно вызывать не только функции PowerBuilder'а, но и свои собственные функции. А вот можно ли каким-то образом вызывать функции пользовательского объекта? Если да - то как это лучше сделать? Если нет - то как можно обойти существующую проблему?

Заранее спасибо. ;-)
...
Рейтинг: 0 / 0
Вызов функции объекта в DataWindow
    #33409855
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только через глобальную ф-ю.
Естественно при этом нужно иметь глобальную ссылку на экземпляр объекта.
...
Рейтинг: 0 / 0
Вызов функции объекта в DataWindow
    #33410242
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskЕстественно при этом нужно иметь глобальную ссылку на экземпляр объекта.
А внутри функции объект создать разве нельзя? :)
...
Рейтинг: 0 / 0
Вызов функции объекта в DataWindow
    #33410411
Nikulitsa A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть один способ... правда он недокументирован.
Поэтому использовать его не рекомендую.
Пару лет назад столкнулся с такой возможностью в результате опечатки.
Я не уверен что он будет работать во всех версиях Powerbuilder(в PB6 и PB9 работает)

Заключается в следующем:
Например у вас есть userobject n_cst_obj
в котором объявлена функция integer of_test(integer parm1)

Стандартный пример вызова функции:
Код: plaintext
1.
2.
n_cst_obj lnvo_obj
lnvo_obj = create n_cst_obj
lnvo_obj.of_test( 1 )

Недокументированный пример вызова функции:
Код: plaintext
1.
2.
n_cst_obj lnvo_obj
lnvo_obj = create n_cst_obj
of_test(lnvo_obj,  1 )

Так вот, если у вас есть глобальный экземпляр необходимого объекта,
то можно попробовать вызвать его метод как глобальную функцию,
вставив в начало списка параметров данный объект.
...
Рейтинг: 0 / 0
Вызов функции объекта в DataWindow
    #33410439
Nikulitsa A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавлю еще, что данный метод работает не только с userobjects,
но и с другими объектами powerbuilder.
(commandbutton, datawindow и т.д.)
...
Рейтинг: 0 / 0
Вызов функции объекта в DataWindow
    #33411092
Ничё себе ты опечатался ;)

Nikulitsa A.Есть один способ... правда он недокументирован.
Поэтому использовать его не рекомендую.
Пару лет назад столкнулся с такой возможностью в результате опечатки.
Я не уверен что он будет работать во всех версиях Powerbuilder(в PB6 и PB9 работает)
Код: plaintext
lnvo_obj.of_test( 1 )
->
Код: plaintext
of_test(lnvo_obj,  1 )
...
Рейтинг: 0 / 0
Вызов функции объекта в DataWindow
    #33411215
Nikulitsa A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гость форумаНичё себе ты опечатался ;)

Nikulitsa A.Есть один способ... правда он недокументирован.
Поэтому использовать его не рекомендую.
Пару лет назад столкнулся с такой возможностью в результате опечатки.
Я не уверен что он будет работать во всех версиях Powerbuilder(в PB6 и PB9 работает)
Код: plaintext
lnvo_obj.of_test( 1 )
->
Код: plaintext
of_test(lnvo_obj,  1 )

На самом деле опечатка произошла не в списке параметров, в названии функции.
вместо of_retrieve(dw_1) было написано retrieve(dw_1)
что было успешно проглочено PowerBuilder-ом, хотя по идее должно было
выдать синтаксическую ошибку.
В результате анализа причин сего безобразия и была обнаружена данная недокументированная возможность.
...
Рейтинг: 0 / 0
Вызов функции объекта в DataWindow
    #33411883
ZhV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забавно. Надо попробовать.
Вообще-то это может значить вполне обьяснимую для ООП вещь - в стеке вызова функции явноили неявно задается ссылка на контекст или обьект , в составе которого сидит функции - по умолчанию предполагается ссылка на глобальный контекст приложения.
...
Рейтинг: 0 / 0
Вызов функции объекта в DataWindow
    #33412594
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я в курсе этой фичи, но в выражениях DW она не работает, только в PowerScript.

Ну, или по крайней мере мне не удавалось заставить это работать, когда мне надо было :)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Вызов функции объекта в DataWindow
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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