PB中实现数据窗口动态排序的三种方法.docx

上传人:小飞机 文档编号:3162784 上传时间:2023-03-11 格式:DOCX 页数:3 大小:37.28KB
返回 下载 相关 举报
PB中实现数据窗口动态排序的三种方法.docx_第1页
第1页 / 共3页
PB中实现数据窗口动态排序的三种方法.docx_第2页
第2页 / 共3页
PB中实现数据窗口动态排序的三种方法.docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《PB中实现数据窗口动态排序的三种方法.docx》由会员分享,可在线阅读,更多相关《PB中实现数据窗口动态排序的三种方法.docx(3页珍藏版)》请在三一办公上搜索。

1、PB中实现数据窗口动态排序的三种方法PB中实现数据窗口动态排序的三种方法 在PowerBuilder中使用数据窗口检索到的数据往往是无序的,虽然可以通过设置Select语句实现排序的功能,但是数据窗口一旦生成都无法进行动态调整。笔者总结了在已经生成的数据窗口中实现动态排序的三种方法,现介绍给大家。 一、 准备工作 设计如图1所示的示例窗口。为了更好地比较三种不同的方法,dw1中的数据来自两个表student和class。student表中包含四个字段sid(学号)、sname(姓名)、saddr(住址)和cid(班号),class表中包含两个字段cid(班号)和cname(班级名称)。 图1

2、二、三种方法的源程序 三种方法中的“执行”按钮的代码分别为: 方法1:用SetSQLselect string lsoldsql,lsnewsql,lsorder lscolumn lsoldsql=dw1.getsqlselect choose case ddlb1.text case 学号lscolumn=sid case 姓名lscolumn=sname case 住址lscolumn=saddr case 班号lscolumn=class.cid case 班级名称 lscolumn=cname end choose if rb1.checked then lsorder=ASC el

3、se lsorder=DESC end if lsnewsql=lsoldsql ORDER BY lscolumn lsorder if dw1.setsqlselect(lsnewsql)=1 then messagebox(警告,数据设置失败,stopsign!) else dw1.settransobject(sqlca) dw1.reset dw1.retrieve dw1.setsqlselect(lsoldsql) end if 方法2:用describe和modify string lsmod, lsorder,lsold,lscolumn lsold=dw1.describe

4、(datawindow.table.select) dw1.settransobject(sqlca) choose case ddlb1.text case 学号lscolumn=sid case 姓名lscolumn=sname case 住址lscolumn=saddr case 班号lscolumn=class.cid case 班级名称 lscolumn=cname end choose if rb1.checked then lsorder=ASC else lsorder=DESC end if lsmod=datawindow.table.select= lsold ORDER

5、 BY lscolumn lsorder dw1.modify(lsmod) dw1.retrieve dw1.modify(datawindow.table.select= lsold ) 方法3:用setsort和sort string lssort,lsorder,lscolumn choose case ddlb1.text case 学号 lscolumn=1 case 姓名 lscolumn=2 case 住址 lscolumn=3 case 班号 lscolumn=4 case 班级名称 lscolumn=5 end choose if rb1.checked then lsorder=A else lsorder=D end if lssort=lscolumnlsorder dw1.setsort(lssort) dw1.sort 三、三种方法的比较 1.第一种和第二种方法要求数据窗口在生成时是无序的,第三种方法无此要求。 2.对于来自不同表单的相同的列名(如student.cid、class.cid)用第二种方法排序实现起来较麻烦,因为在用modify函数时要特别注意引号的使用。但是第二种方法比第一种方法的执行速度要快。 3.第三种方法使用起来最方便,既可以引用列名也可引用列号(如4表示第四列)来指定序列。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号