北京延庆某部科技处 王永生
---- 随着mis开发工具的日益完善,人们对信息检索的要求也越来越高,以往每次查询时都由用户输入,然后进行检索的方式已越来越无法满足用户的要求,许多用户都希望系统具有自动记忆查询条件的功能,这样经常使用的查询条件就不必重复输入了。
powerbuilder(以下简称pb)中的datastore(数据存储)可以帮助开发人员方便地解决这一问题。pb作为c/s环境下的数据库开发工具,其面向对象、可视化以及方便移植等特点引人注目,成为目前非常流行的数据库前端开发工具。本文以一个文献索引数据库为实例,详细介绍如何在pb中利用datastore实现查询条件的记忆。
---- datastore是非可视的数据窗口控件,它能够为应用程序存储数据而不消耗任何图形资源。除了一些可视特征外,它的功能及行为与数据窗口控件相同。因此,我们可以利用datastore的特点方便地记忆和维护查询条件。
---- 第一步,在数据库中建立一个查询条件表,其中包含每个要用到的条件字段(如标题、文献来源、开始日期、结束日期等)和一个日期字段、时间字段。该表用来保存最近使用的10个(如果需要可以保存任意个)不同条件,每个条件就是一条记录,后两个字段(日期、时间)用来记载条件的使用时间。
---- 第二步,创建一个包含查询条件表中所有字段的数据窗口对象
dw_condation,按使用时间的先后排序。进行查询条件设置时,
---- 第三步,构造如下图的查询条件设置窗口。
---- 四个复选框对应四个条件字段,左、右方向按钮用来浏览设置最近使用过的条件。
---- 第四步,为窗口事件及各控件编写相应的程序。
---- 定义窗口实例变量:
datastore ids_data
long currentrow
窗口的open事件:
ids_data = create datastore
//创建数据存储实例
ids_data.dataobject = "dw_condation"
//将dw_condation数据窗口对象与ids_data连接
ids_data.settransobject(sqlca)
ids_data.retrieve()
if ids_data.rowcount() >1 then
//设置当前条件为最后一次使用的条件
pb_3.enabled=true
currentrow=ids_data.rowcount()
trigger event ue_setquery(ids_data.rowcount())
end if
窗口自定义事件ue_setquery:
string bt,source
//标题、文献来源
date start_day,end_day//开始日期、结束日期
long page
//页号
//根据参数rownum从数据存储实例中得到各条件值
bt=ids_data.object.bt[rownum]
source=ids_data.object.source[rownum]
start_day=ids_data.object.begin[rownum]
end_day=ids_data.object.end[rownum]
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器