Powerbuilder Передача хранилища данных / объекта - PullRequest
0 голосов
/ 06 марта 2012

У меня есть хранилище данных, которое при получении и результатах показывает строки в другом окне

ds_1.Retrieve ()

IF ds_1.RowCount ()> 0 THEN

i_str_pass.po[1] = ds_1

OpenWithParm(w_error, i_str_pass)

END IF

i_str_pass - структура, а po - powerobject

я хочучтобы отобразить результаты ds_1 в окне данных w_error без необходимости извлекать его снова

я попытался вызвать в w_error

str_pass i_str_pass

i_str_pass = Message.PowerObjectparm

dw_1 = i_str_pass.po [1]

Я отладил и увидел, что передал его правильно, но данные, которые были получены, вообще не показывали, что я делаю не так?спасибо в Adv.

Ответы [ 2 ]

3 голосов
/ 07 марта 2012

Использование

i_str_pass.po[1]. DYNAMIC ShareData(dw_1)

вместо

dw_1 = i_str_pass.po[1]

Удивило, что последнее не было ошибкой во время выполнения, поскольку вы назначаете хранилище данных для окна данных.

GetFullState / RowsCopy тоже все в порядке, но влечет за собой потерю памяти, так как вы делаете копию этих данных (что может вызывать или не беспокоить)

1 голос
/ 06 марта 2012

Вы можете взглянуть на GetFullState() / SetFullState():

blobl lbl_data
if i_str_pass.po[1].GetFullState(lbl_data) = 1 then
    dw_1.SetFullState(lbl_data)
end if

Вы также можете взглянуть на ShareData(), чтобы установить «связь» между 2 DataStores или DataWindows.

...