簡體   English   中英

如何在Powerbuilder中創建用戶對象數組?

[英]How to create an array of User Objects in Powerbuilder?

我正在嘗試將曾經嵌入在窗口中的VISUAL USER OBJECT轉換為另一個窗口(相同程序包)中動態創建的VISUAL USER OBJECT。

我遇到的問題是,我似乎無法在沒有獲取空引用或一遍又一遍地重復使用同一對象的情況下創建這些對象的數組。

此刻,當用戶需要一個新的數組元素時:

long ll_count
ll_count = UpperBound(iuo_backorders[])
iuo_backorders[ll_count+1] = uo_backorder    
lb_ok = iuo_backorders[ll_count+1].init('w_backorder_popup', '', '', '', 'd_backorder_popup', sqlca, useTransObj()) 

這一次又一次地重復使用相同的uo_backorder。

使用: iuo_backorders[ll_count+1] = create uo_backorder返回空對象引用。

用戶對象包含在另一個窗口中(我認為),所以我不確定是否需要將uo_命令移到PBL中它自己的文件中,或者以某種方式更改引用(新窗口是原始窗口的子窗口) ,但不確定與uo_有什么關系)

所有功能已經在uo_中,我只需要能夠解決

A)如何動態創建可視用戶對象

B)然后如何創建這些對象的數組。

要實例化視覺對象,您需要:

windowname.OpenUserObject ( userobjectvar {, x, y } )

要么

windowname.OpenUserObject ( userobjectvar, userobjecttype {, x, y } )

我希望您能夠為您的userobjectvar使用iuo_backorders [ll_count + 1],但如果沒有,則只需使用單個用戶對象變量並將其實例化后分配給array元素。

祝好運,

特里

PowerBuilder巧妙地試圖告訴您您使用了錯誤的方法。 當在運行時通過OpenUserObject創建可視控件時,必須管理為每個控件提供x,y坐標的布局。 另外,如果您需要多個相同的控件,則必須使用Terry發布的第二種形式的OpenUserObject。 如果您想制作類似向導的東西並堆疊用戶對象,那很好,但是在其他情況下,用Disco在代碼中布置對象就行了。 在PowerBuilder中,只要要顯示多個內容(尤其是可變數量的內容),就應該訪問DataWindow控件。 在您的情況下,您需要將uo_backorder中的功能移動到非可視對象,並在DataWindow中顯示數據。 如果所有數據(狀態)都在DataWindow的行中,則所有行僅需要一個nvo。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM