4

マスター/ディテール データウィンドウがあります。詳細ウィンドウで、ユーザーが行をクリックすると、ユーザーがクリックした行のすぐ下にあるポップアップ データウィンドウとして別のデータウィンドウを開きます。詳細ウィンドウの行数が 11 未満であれば問題なく動作します。ウィンドウに 11 行を超える行が含まれている場合、ユーザーが下の領域から行をクリックすると、ポップアップが本来あるべき場所に配置されません。

私の推測では、ユーザーが下部領域の行をクリックすると、ウィンドウが一番下までスクロールされ、スクロールの結果として一部の行が非表示になります。スクロールの結果として 2 つの行が非表示になる場合、ポップアップは目的の行の下に 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

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

5

私は解決策を持っています。トリックはFirstRowOnPage、詳細データウィンドウのプロパティを使用し、それを使用してy位置を決定することです-

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
于 2011-01-30T07:14:44.473 に答える