2011-01-30 60 views
4

我有一個主 - 細節數據窗口。在詳細信息窗口中,當用戶點擊一行時,我打開另一個數據窗口作爲彈出數據窗口,它位於用戶單擊的行的正下方。只要細節窗口中的行數少於11行,它就可以正常工作。當窗口包含11行以上並且用戶單擊下面一行時,彈出窗口不會放在應該出現的位置。Powerbuilder:定位彈出框

我的猜測是,當用戶點擊較低區域中的一行時,窗口將滾動到底部,並且一些行由於滾動而隱藏。如果兩行由於滾動而隱藏,則彈出窗口在所需行下方打開兩行。我的定位邏輯如下 -

// "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的社區這麼小?如果我詢問了關於JQuery/.NET/PHP的任何內容,現在至少會有2-3個答案:-( – 2011-01-30 07:16:19

回答

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