首页 > 开发 > 综合 > 正文

让PowerBuilder制作查询系统的界面更加酷

2024-07-21 02:10:11
字体:
来源:转载
供稿:网友

在管理信息系统中,查询系统占了相当重要的地位(sql的中文就是结构化查询语言),因为它是向用户开放的,界面一定要友善,要让别人一看就会操作。根据查询结果记录的个数来分,查询可分为两种:1.唯一记录查询。如:从键盘输入记录号,查询该人的档案。

2. 模糊查询,结果记录可能很多。

这里我们以制作婚姻介绍系统为例子,包括了难度较大的模糊查询,多按钮式选择界面,记录的连动。 工作原理:通过自己定义变量的来传递选择的条件,如:性别可定义变量sex,年龄可定义变量old。注意变量要先定义,后使用。一. 多按钮选择界面的制作。在分组框内多个radio button在同一时刻只能选中一个。操作步骤:新建一名字为b2的窗口,窗口内放置控件如下图。定义变量(重要),按菜单declare的instance variables,在对话框中定义实例变量,键盘输入: string sexinteger old定义变量后查询按钮的click事件中输入如下脚本:if rb_1.checked=true thensex="w"elseif rb_2.checked=true thensex="m"end ifif rb_3.checked=true thenold=30elseif rb_4.checked=true thenold=40elseif rb_5.checked=true thenold=50end if sle_1.text=sexsle_2.text=string(old)若运行窗口(注意不是运行应用程序),选择后按查询按钮,结果如下图,则变量已被正确地自动赋值。二.数据的过滤。接下来要进行过滤操作,即将变量传给sql语言中的where语句,在哪里写sql语句呢?在数据窗口下方的where标签页里,可以自动生成sql的过滤语句。在sql anywhere里制作建立并输入下表,表名为aaa1,表头:字段 类型 长度 标题头id char 10 编号name char 10 姓名old integer 年龄sex char 10 性别status char 30 状况表aaa1的内容:id name old sex status1 小王 23 女 导游会英语2 小李 34 男 个体收入高3 小林 45 女 会计4 小黄 27 男 电脑专家5 小郑 38 女 教师在数据窗口中新建立两个数据窗口:数据来源都为aaa1表,要求如下:数据窗口名 字段 数据源形式 显示格式 sql过滤语句ad1 id,name,old,sex sql select 表格 "aaa1"."sex"=:sex and"aaa1"."old"<=:oldad2 id,name,old,sex,status sql select 自由格式 "aaa1"."id"=:id注意写sql过滤语句是:在数据窗口中,先点中id和 name两个字段,在窗口下方按where标签页,按colume,并在cloume的下拉条中选中"aaa1"."sex",在valua的一栏中填入 :sex,注意,这里的sex前面有一冒号,再在cloume的下拉条中选中"aaa1". "old",在operator栏选<=,在valua的一栏中填入 :old,按窗口上方的desion菜单,选retriveal arguments,在name一栏填sex,注意,这里的sex前面没有冒号,type一栏选string,再在name一栏的下一行填old,type一栏选number。同时,为让个人资料的表格数据按年龄升序排列,在窗口下方按sort标签页,将左边的id字段拖到右边。按syntax标签页可看到自动生成的sql语句。select "aaa1"."id", "aaa1"."name", "aaa1"."old", "aaa1"."sex" from "aaa1" where ( "aaa1"."sex" = :sex ) and ( "aaa1"."old" <= :old ) order by "aaa1"."old" asc这里sql语句的意思是选取性别=变量sex,年龄<=变量old的记录。只显示几个字段。尽管在pb中,这些语句是通过拖动图标自动生成,但看一看,了解其工作原理还是有好处的。三.数据的连动.可以用鼠标让记录的连动的窗口制作如下图,这里主要用到函数getitemstring(getrow(),1),它可取得双击鼠标当前行的左边第一个字符串,即数据窗口一内当前行id字段的值,并赋给实例变量tttt,tttt再传给数据窗口二的sql的过滤语句,where id=:id,就可在数据窗口二中显示id=tttt的记录。在这两个数据窗口之间,变量tttt从数据窗口一跑到数据窗口二,起到象桥梁般的连接作用。数据窗口一即dw_1的鼠标单击事件的脚本如下:ttttt=dw_1.getitemstring (getrow(),1)sle_1.text=tttttb4.dw_1.settransobject(sqlca)b4.dw_1.retrieve(b3.ttttt)dw_2.settransobject(sqlca)dw_2.retrieve(ttttt)


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表