1

ウィンドウに埋め込まれた VISUAL USER OBJECT を、別のウィンドウ (同じパッケージ) の DYNAMICALLY CREATED VISUAL USER OBJECT に変換しようとしています。

私が得ている問題は、null 参照を取得したり、同じオブジェクトを何度も再利用したりせずに、これらのオブジェクトの配列を作成できないように見えることです。

現時点で、ユーザーが新しい配列要素を必要とする場合:

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 が何度も再利用されます。

Using: iuo_backorders[ll_count+1] = create uo_backordernull オブジェクト参照を返します。

ユーザー オブジェクトは別のウィンドウ内に含まれているため (私が思うに)、uo_ コマンドを PBL 内の独自のファイルに移動する必要があるのか​​、参照を変更する必要があるのか​​ わかりません (新しいウィンドウは元のウィンドウの子です)。 、しかしそれがuo_にどのように関係するかは不明です)

すべての機能はすでに uo_ に含まれています。

A)ビジュアル ユーザー オブジェクトを動的に作成する方法

B)これらのオブジェクトの配列を作成する方法。

4

2 に答える 2

1

ビジュアル オブジェクトをインスタンス化するには、次のものが必要です。

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

また

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

userobjectvar に iuo_backorders[ll_count+1] を使用できると思いますが、そうでない場合は、単一のユーザー オブジェクト変数を使用して、インスタンス化した後に配列要素に割り当てます。

幸運を、

テリー。

于 2010-03-25T03:18:05.607 に答える
0

PowerBuilder は、間違ったアプローチを使用していることを微妙に伝えようとしています。OpenUserObject を介して実行時にビジュアル コントロールを作成する場合、各コントロールの x、y 座標を提供するレイアウトを管理する必要があります。また、同じコントロールが複数必要な場合は、Terry が投稿した 2 番目の形式の OpenUserObject を使用する必要があります。ウィザードのようなものを作成してユーザー オブジェクトをスタックしたい場合はこれで問題ありませんが、それ以外の場合は、オブジェクトをコード内に配置するのが Disco でうまくいきませんでした。PowerBuilder では、何かを複数表示したい場合、特に可変数のものを表示したい場合は、すぐにデータウィンドウ コントロールに手を伸ばす必要があります。あなたの場合、uo_backorder にある機能を非ビジュアル オブジェクトに移動し、データウィンドウにデータを表示する必要があります。すべてのデータ (状態) がデータウィンドウの行にある場合、

于 2010-03-25T14:25:58.287 に答える