每次数据窗口刷出100条数据

linleming 2003-05-24 08:56:44
为了提高速度,数据窗口每次刷出100条符合条件的数据,按下一页在刷出另100条符合数据条件的数据。
...全文
26 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
tchatcha 2003-05-25
  • 打赏
  • 举报
回复
对不起贴错地方了
tchatcha 2003-05-25
  • 打赏
  • 举报
回复
在列的TEXTCOLOR属性写表达示
下面表达示说明第三行为红色
if (getrow()=3,255,0)
homeness 2003-05-25
  • 打赏
  • 举报
回复
在数据窗口中设置一次最多能显示的记录数
dw_1.getrow()/100
然后在retrieve as needed就可以了
Thinkinger 2003-05-24
  • 打赏
  • 举报
回复
这并不矛盾,你还是可以用上面的方法解决的!
linleming 2003-05-24
  • 打赏
  • 举报
回复
查询条件是动态的,不一定按什么条件查询,得用filter()。如果用上述方法,得进行全部的过滤,速度很慢!
Thinkinger 2003-05-24
  • 打赏
  • 举报
回复
方法一:

//实例变量
string is_condition

在retrieverow(long row)事件中写代码:
if row = 100 then return 1 //此次检索100条记录以后停止从数据库中检索

在retrieveend(long rowcount)事件中写代码:
//把检索出来的记录提取他们的主键值作为条件在下一次检索记录时作为过滤条件——不包括已经检索的记录

string ls_sql
integer i

for i = 1 to rowcount
is_condition += " and keycolumn <> columnvalue"'"

ls_sql = getsqlselect()

ls_sql += is_condition

setsqlselect(ls_sql)
next

方法二:
//实例变量,保存上一次检索后的order by列的最大值
any la_lastvalue

1.你把数据窗口的数据源用order by对某个有序列排序

2.在retrieverow(long row)事件中写代码:
if row = 100 then return 1 //此次检索100条记录以后停止从数据库中检索

3.在retrieveend(long rowcount)事件中写代码:
la_lastvalue = getitemx(rowcount,column)
//把上面的值用setsqlselect()函数设置在数据窗口数据源的where子句中


waterstony 2003-05-24
  • 打赏
  • 举报
回复
用retrieve as need选项就能满足你的需要。
linleming 2003-05-24
  • 打赏
  • 举报
回复
thinkinger:非常感谢你。

joss;能不能说得在详细些?有没类似的代码?可以给我借鉴一下。谢谢你。
我的Email:llm.luori@tom.com
joss 2003-05-24
  • 打赏
  • 举报
回复
用存储过程做数据源,再设置数据窗口属性为只检索需要的页!

609

社区成员

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

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