2016-07-06 10 views
0

В справке PowerBuilder (версия 9) объясняется, что вы можете использовать как точечную нотацию, так и методы «Описать» и «Изменить» для доступа к объектам, вложенным в составное окно данных. У меня возникают проблемы с этим в объекте, потому что объекты не находятся во время выполнения.Доступ к композитным объектам DataWindow

Пользовательский объект, с которым я работаю, является уровнем или двумя по цепочке наследования, и на нем есть сводный datawindow, содержащий четыре окна данных отчета (dw_1 через dw_4). Когда я пытаюсь увидеть, что композиционный DataWindow имеет глядя на описательных результатах datawindow.objects, я не получаю список

dw_1 dw_2 dw_3 dw_4

Что это дает мне вместо это:

obj_4112034 obj_4112035 obj_4112036 obj_4112037

имена объектов могут изменяться каждый раз, когда я бегу Это. Я предполагаю, что есть некоторая динамическая обработка, которая вызывает это, но я не уверен. Почему PowerBuilder не возвращает имена объектов, определенные в режиме разработки? Есть ли способ обойти это, чтобы я мог получить доступ к свойствам вложенных окон данных данных?

Спасибо за любую помощь, которую вы можете предоставить.

ответ

0

Я не уверен, что вы имеете в виду под "dw_composite.objects", но вы можете получить все объекты в tabseperated строку, используя

string s_objects 
s_objects=yourdatawindow.describe("Datawindow.objects") 
0

dw_data.modify('datawindow.crosstab.staticmode=yes');

От PB Справка:

Строка, указывающая, должна ли динамическая кросс-таблица быть помещена в статический режим. Динамическая кросс-таблица остается в статическом режиме, пока вы не установили StaticMode на номер. Пока динамическая кросс-таблица находится в статическом режиме, вы можете управлять свойствами отдельных столбцов.

+0

Спасибо, но я использую составной datawindow, а не кросс-таблицу. –