如何做上一页,下一页,首页,末页啊

yvqq 2003-06-07 04:12:01
我有两个datawindow,一个是dw1_rpt,一个是dw1_data
dw1_rpt 是一个grid,存放查出的所出数据。
dw1_data是一个freedom的窗口,存放单条记录的数据
现在我要在dw1_data上增加上一页,下一页,首页,末页的功能,
我用以下方法实现,结果按下上一页,下一页,首页,末页的其中一个按钮
反映速度很慢,并且屏幕会刷新一次,看上去很不舒服。以前我们同事也做个一样的程序,但他的不会有这种情况,请大家帮忙啊,详细一点!:
string l_item_no
//string item_nm,item_sp,unit,clas_no,clas_no_1
//string safe_qty,ror_pot,sup_pot,min_qty,pch_qty
long l_count,row
row=w_item_maint.tab_1.tabpage_rpt.dw_rpt.getrow()
l_count=w_item_maint.tab_1.tabpage_rpt.dw_rpt.rowcount()
if row>0 and row<l_count then
row=row+1
w_item_maint.tab_1.tabpage_rpt.dw_rpt.setrow(row)
w_item_maint.TAB_1.TABPage_data.DW_data.clear( )
l_item_no=w_item_maint.tab_1.tabpage_rpt.dw_rpt.getitemstring(row,'item_no')
if menu_item='1' then
w_item_maint.tab_1.tabpage_data.dw_data.dataobject='d_item_maint_sgk'
elseif menu_item='2' then
w_item_maint.tab_1.tabpage_data.dw_data.dataobject='d_item_mainT_wlk'
end if
w_item_maint.tab_1.tabpage_data.dw_data.settransobject(sqlca)
w_item_maint.tab_1.tabpage_data.dw_data.retrieve(l_item_no)
// w_item_maint.tab_1.selectedtab=3
end if

...全文
264 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sun2927 2003-06-09
  • 打赏
  • 举报
回复
这个问题其实比较简单
用dw的ScrollPriorRow,ScrollNextRow(),至于第一条,最后一条就用scrolltorow(1),scrolltorow(dw.rowcount()),然后的到你需要的参数,再在另外一个数据窗口中检索;
yvqq 2003-06-09
  • 打赏
  • 举报
回复
若是用copy 数据到第二个窗口的话,我想速度肯定是快的,但是我觉得pb中定义的colomn控件无法知道它的数据类型,必须要查看数据库才能知道。而不知道数据类型的话又会有问题。请问大家是如何处理这类事情的啊!
yvqq 2003-06-08
  • 打赏
  • 举报
回复
还是没搞定,还是要闪烁的,感觉速度也挺慢。
我想:别人是不是不用检索功能,而是在scrollnextrow之后,将数据取出然后用语句添加到
另一个数据窗口中的
cooltnt 2003-06-08
  • 打赏
  • 举报
回复
不好意思!没仔细看,呵呵!
用dw的ScrollPriorRow,ScrollNextRow(),至于第一条,最后一条就用scrolltorow(1),scrolltorow(dw.rowcount()),然后的到你需要的参数,再在另外一个数据窗口中检索;刷新前先用dw.setredraw(false),然后再dw.setredraw(true)就不会有闪烁感。
yvqq 2003-06-08
  • 打赏
  • 举报
回复
to cooltnt:
我试着好像没用,另外,你有没有看我的题目,我是有两个datawindow,一个dw是包括所有的记录集,别一个dw是显示一个记录行的所有数据,我现在如何将两个数据集联系起来!
另外,我用的是菜单,根本没有action属性。
cooltnt 2003-06-08
  • 打赏
  • 举报
回复
1、使数据窗口处于编辑状态。
2、选择[按钮]控件。
3、在Action属性中选择,Pagefirst等
yvqq 2003-06-08
  • 打赏
  • 举报
回复
具体如何操作!我不太清楚!
xjunhua 2003-06-08
  • 打赏
  • 举报
回复
这个四个功能 数据窗口本身就带有的,根本不用写任何程序的,选择按钮的 Action 就可以了
I_Love_IT! 2003-06-08
  • 打赏
  • 举报
回复
1、第一个窗口GRID式,第二个窗口FREEFORM式,第二个窗口增加检索参数,依据第一个窗口的指针移动来显示数据。

2、移动指针的按钮只操作第一个窗口,比如上一条就是:
第一个窗口.SCROLLPRIOR()

3、两个窗口同步:
第一个窗口的ROWFOCUSCHANGED事件中,将主键值传给第二个窗口作检索参数:
变量=第一个窗口.GETITEMSTRING(主键值)...
第二个窗口.RETRIEVE(从第一个窗口传来的主键值)
yingmu 2003-06-08
  • 打赏
  • 举报
回复
或者直接将第一个数据窗口的当前行rowscopy到第二个数据窗口中。反正我认为,控制当前记录行应该在第一个数据窗口上实现,第二个数据窗口仅仅实现显示第一个数据窗口当前行的数据就可以了。
yingmu 2003-06-08
  • 打赏
  • 举报
回复
用四个按钮控制包括所有记录的dw来达到第一条、最后一条、上一条、下一条的功能,将另一个dw从属于第一个数据窗口。
waterstony 2003-06-07
  • 打赏
  • 举报
回复
在数据窗口中加入四个按钮,点击右键,选择这些按钮的属性。

611

社区成员

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

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