学院首页 软件应用 编程开发 创意设计 认证培训 软件论坛
ASP ASP.NET PHP JSP SQL MYSQL Java VB

您的位置:学院 >> 编程开发 >> PowerBuilder >> 在PowerBuilder中实现数据库的实时过滤


在PowerBuilder中实现数据库的实时过滤



---- 在拥有大量数据记录的数据库的表中进行有关记录的查询,如果不采取一定的技巧,那将是非常费时费力的事情,利用单 行 编 辑 器 和 数 据 窗 口 结 合, 再进行适当编程就能够实现数据窗口中的记录根据你键入的字符而逐步缩小范围,以方便查询。
---- PowerBuilder中的单行编辑器SingleLineEdit中可以输入字符,但它没有在输入过程中作出实时响应的事件,为了能够对输入的数据进行实时响应,我们必须利用其他的对象的事件,而窗口(Window)的Key事件能够对窗口内的键盘输入作出实时响应,可以利用该事件获取单行编辑器的内容,然后对数据窗口进行过滤,达到实时缩小查询范围的目的。在测试过程中,发现必须输入下一个字符才能响应当前的过滤,如:我想将数据窗口过滤为左边两个字符为'02',必须输入‘02x',系统才会进行前面的过 滤。为了能够真正做到实时响应,我在窗口对象中另外定义了一个用户事件user_reduce,将获取数据和过滤的代码写在该事件中,然后在Key事件中写入代码this.postevent("user_reduce"), 由于postevent()函数将事件加入到事件队列的末 尾,这样系统在响应输入的操作以后再进行该事件的处理,从而实现了数据窗口根据 用户的输入实时缩小查询范围的目的。
---- 具体实现方法如下:
---- 设数据库中有一表名为pcode.dbf,用于记录材料信息,其字段描述如下:
---- 字段描述字段名字段类型长度格式
---- 编号 CODE CHAR 10 XX-XX-XXXX
---- 名称 NAME VARCHAR 30
---- 型号规格 MODEL VARCHAR 28
---- 单位 UNIT VARCHAR 10
---- 假设 你 在Application 的Open事件中已经写入连接该数据库的代码,并已成
功连接数据库,那么你就可以进行以下的步骤:
---- 1、 新建一个窗口对象,将它保存为w_search, 在Application 的Open 事件 中加入open(w_search) 代码,这样就可以打开窗口。
---- 2、 建立一个datawindow,类型为Grid, 数据来源为数据库中的code.dbf表, 字段全选,保存为dw_see;
---- 3、 在w_search 窗口中增加两个对象分别为单行编辑器sle_1和数据窗口dw_1, 在dw_1 的 属 性 中 选 择 连 接 的datawindow 为dw_see, 在w_search 的open 事
件 中 写 如 下 代 码:
connect using sqlca;
dw_1.settransobject(sqlca)
dw_1.retrieve()
dw_1.setrowfocusindicator(hand!) // 设 置 手 型 行 指 针
---- 3、 鼠 标 单 击w_search 窗 口 的 空 白 处, 单 击 菜 单Declare 下 的User event 菜
单 项, 在 最 下 面 的 空 白 栏 中 输 入user_reduce, 按ok 钮 返 回。
---- 4、 鼠 标 在w_search 窗 口 的 空 白 处 单 击 右 键, 选 择 弹 出 菜 单 的script 项 进 入
代 码 编 辑 窗, 在user_reduce 事 件 中 输 入 以 下 代 码:
string acode,code_filter
long acount
code_filter = ""
acode = trim(sle_1.text)
if len(acode) > 0 then
acount = len(acode)
code_filter = " left(code," + string(acount) + ") = '" ;
+ acode + "' "
dw_1.setfilter( code_filter)
dw_1.filter()
dw_1.setsort("code A")
dw_1.sort()
end if
---- 5、 在w_search 窗 口 的key 事 件 中 输 入 如 下 代 码:
---- this.postevent("user_reduce")
---- 6、 保 存 并 运 行。 则 数 据 窗 口 中 的 记 录 会 根 据 你 在 单 行 编 辑 器 中 的 输 入 内 容
进 行 动 态 缩 小 范 围。
---- 此 程 序 在PowerBuilder5.0 中 运 行 通 过。
技术文章快速查找

栏目导航
软件应用
·操作系统 ·杀毒防黑 ·应用软件
·聊天软件 ·网络软件  
Web开发
·ASP ·JavaScript ·CGI
·JSP ·VbScript ·Web服务器
·PHP ·XML  
开发语言
·VB ·VC ·ASP.NET
·Java ·C/C++ ·Delphi
数据库开发
·MySQL ·SQL/Access ·PowerBuilder
·Oracle ·DB2  
网站设计
·Flash ·Dreamweaver ·HTML/CSS
·Fireworks ·FrontPage  
平面设计
·Photoshop ·CorelDraw ·AutoCAD
·FreeHand ·Illustrator ·3DsMAX
媒体动画
·Director ·Authorware ·Maya
·视频处理    


相关软件 产品库推荐
·笔记本 ·台式机 ·服务器
·数码相机 ·手机 ·GPS
·DV摄像机 ·MP3 ·MP4
·CPU ·硬盘 ·内存
·主板 ·显卡 ·显示器
·打印机 ·投影机 ·路由器

还没人留言,抢个先,哈哈!
对"在PowerBuilder中实现数据库的实时过滤"的评论 - 快速回贴
内容:
  [完成后可按Ctrl+Enter发布]

百度中 在PowerBuilder中实现数据库的实时过滤 相关内容
Google搜索中 在PowerBuilder中实现数据库的实时过滤 相关内容
雅虎中 在PowerBuilder中实现数据库的实时过滤 相关内容
Sogou搜索中 在PowerBuilder中实现数据库的实时过滤 相关内容

相关软件 最新回复帖子:

·AutoCAD打造精致三维鸟笼实例详解
·Photoshop自定义水晶字特效样式
·AutoCAD三维基础实例教程
·PS为黑背景长发美女照片抠图换背
·用Photoshop自制个性摩托车贴花小经验
·轻松几步将美女照片处理为手工素描
·巧用Photoshop画笔轻松绘制创意特效
·用Photoshop通道将模糊肖像照片清晰化
·照片处理:Photoshop修复残破照片
·PS CS2新增形状模糊滤镜绘制花布图案


  相关软件 在PowerBuilder中实现数据库的实时过滤相关文章
用Enter键来进行窗口上的各个控键的焦点转跳 PB5中如何实现诸如Ms word之类的启动画面
如何在数据窗口(Datawindow)中用Enter代替Tab在字段间移动 PB问题解答之一
PB问题解答之二 PB问答(-)
在PB中使用FoxPro数据库的方法 PB中窗口自动居中
PB 5.0由网络版改为单机版的技巧 在PB程序中如何删除只读文件
Pb中定制打印页长实现连续打印