请教freeform型数据窗口当前显示页与当前页的文件

tianzhihen_002 2008-12-28 08:39:17
我有一个freeform型的数据窗口放在tab2里,比如说有50条数据,每页显示一条,当切换到tab2显示时,getrow()返回1正常,但是当拖动滚动条改变了当时显示的页面,比如改到第3条,getrow()仍然返回1不变,需要鼠标点选窗口上某一项后,才返回3正常。

想请教大家,1。当前显示的页面和当前页为什么不一样呢?
2。我需要对当前显示的页面,如何得到这个页数呢?
...全文
66 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
softvery 2008-12-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 tianzhihen_002 的回复:]
已解决:在scrollvertical事件中加入代码
this.scrolltorow(long(this.object.datawindow.firstrowonpage ))
不过不明白的是为什么每页第一列字段会被选中呢?
[/Quote]

因为你的第一列是可编辑列
而你调用了ScrollToRow
Scrolls a DataWindow control to the specified row. ScrollToRow changes the current row but not the current column.

如果这个数据窗只是用来显示的可以:
dw_1.object.datawindow.readonly='yes'


另外如果你想要获取当前页号:
messagebox('',dw_1.describe("evaluate('page()',"+string(dw_1.Object.DataWindow.FirstRowOnPage)+")"))

当然如果你的一页只是显示一行的话,这就页号就等于FirstRowPage

liubocy 2008-12-28
  • 打赏
  • 举报
回复

//新建事件ue_vscroll,event id: ue_vscroll

Long ll_RowCount, ll_Row, ll_Tmp
String ls_Max, ls_Position, ls_Detail

ll_RowCount = This.RowCount()
ls_Max = This.Object.DataWindow.VerticalScrollMaximum
ls_Position = This.Object.DataWindow.VerticalScrollPosition
ls_Detail = This.Object.DataWindow.Detail.Height

IF ls_Max = '0' THEN RETURN
IF ls_Position = '0' THEN This.SetRow(1)

ll_Tmp = ( Long(ls_Max) - Long(ls_Position) ) / Long(ls_Detail)
ll_Row = ll_RowCount - ll_Tmp

This.SetRow(ll_Row)
tianzhihen_002 2008-12-28
  • 打赏
  • 举报
回复
已解决:在scrollvertical事件中加入代码
this.scrolltorow(long(this.object.datawindow.firstrowonpage ))
不过不明白的是为什么每页第一列字段会被选中呢?
tianzhihen_002 2008-12-28
  • 打赏
  • 举报
回复
谢谢liubocy:

当前显示页面发生变化的时候,会触发什么事件吗?我现在希望实现无论显示哪页,在切换页面的时候都setrow(),这样在外面取getrow的时候应该就会正确了吧?我的dw每页只显示一行信息。
或者有什么更好的办法都行,向大家请教!~
liubocy 2008-12-28
  • 打赏
  • 举报
回复
1 拖滚动条和滚动鼠标滑轮不会触发行的改变,getrow()返回的是当前行,不是页
2 要得到当前的页数,有点麻烦。要看当前数据窗口可以显示几行,滚动框的值是多少,当前滑块的值是多少,可以计算出当前显示数据的行数。

这个就跟你做个grid,放到dw控件里,调整dw控件高度到只能显示一行数据的效果类似。

应用中大多少free数据窗口带检索条件只让显示一条数据。

609

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧