2011-01-30 25 views
4

私はマスターディテールのデータウィンドウを持っています。詳細ウィンドウでは、ユーザーが行をクリックすると、ユーザーがクリックした行のすぐ下にある別のデータウィンドウをポップアップデータウィンドウとして開きます。詳細ウィンドウに11行以下がある限り、正常に動作します。ウィンドウに11行以上の行が含まれていて、ユーザーが下部領域の行をクリックすると、ポップアップはその場所に配置されません。Powerbuilder:ポップアップの位置付け

私が推測していることは、ユーザーが下部領域の行をクリックすると、スクロールの結果ウィンドウが下部にスクロールされ、一部の行が非表示になることです。スクロールの結果として2つの行が表示されない場合、ポップアップは目的の行の下の行を開きます。私の位置付けロジックは以下の通りです -

// "parent" is the user object that contains the datawindow 
// "row" contains clicked row number 
// "this" points to the detail datawindow 

ll_detail_height = long(this.Object.DataWindow.Detail.Height) 
dw_status.y = this.y + (ll_detail_height * (row)) + parent.y 

どうすればこの問題を解決できますか?

+0

なぜPowerBuilderのコミュニティは非常に小さい - トリックは詳細データウィンドウのFirstRowOnPageプロパティを使用してy位置を決定するためにそれを使用するのですか?私がJQuery/.NET/PHPについて何か質問をしていれば、今のところ少なくとも2-3の回答があったでしょう:-( –

+0

Powerbuilderを使用している人はあまりいません私は恐れています。 ( –

+1

@Colin Pickard:それは本当に悲しいです: '(:'(: '( –

答えて

5

私は解決策を得ました。

ll_first_row = long(this.Object.DataWindow.FirstRowOnPage) 
ll_row = row - ll_first_row + 1 
ll_detail_height = long(this.Object.DataWindow.Detail.Height) 
dw_status.y = this.y + (ll_detail_height * ll_row) + parent.y