MD *_*med 4 powerbuilder datawindow
我有一个主 - 详细数据窗口.在详细信息窗口中,当用户单击某一行时,我打开另一个数据窗口作为弹出数据窗口,该窗口位于用户单击的行的正下方.只要细节窗口中的行数少于11行,它就可以正常工作.当窗口包含超过11行并且用户单击来自下部区域的行时,弹出窗口不会放置在应该位于的位置.
我的猜测是,当用户点击下方区域的一行时,窗口会滚动到底部,一些行会因滚动而被隐藏.如果滚动导致两行被隐藏,则弹出窗口将在所需行下方打开两行.我的定位逻辑如下 -
// "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
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
我有解决方案.诀窍是使用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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2285 次 |
| 最近记录: |