分享
 
 
 

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

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

在管理信息系统中,查询系统占了相当重要的地位(SQL的中文就是结构化查询语言),因为它是向用户开放的,界面一定要友善,要让别人一看就会操作。

根据查询结果记录的个数来分,查询可分为两种:

1.唯一记录查询。如:从键盘输入记录号,查询该人的档案。

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

这里我们以制作婚姻介绍系统为例子,包括了难度较大的模糊查询,多按钮式选择界面,记录的连动。

工作原理:通过自己定义变量的来传递选择的条件,如:性别可定义变量sex,年龄可定义变量old。注意变量要先定义,后使用。

一. 多按钮选择界面的制作。在分组框内多个Radio Button在同一时刻只能选中一个。

操作步骤:新建一名字为b2的窗口,窗口内放置控件如下图。定义变量(重要),按菜单Declare的InstanceVariables,在对话框中定义实例变量,键盘输入:

string sex

integer old

定义变量后查询按钮的Click事件中输入如下脚本:

if rb_1.checked=true then

sex="w"

elseif rb_2.checked=true then

sex="m"

end if

if rb_3.checked=true then

old=30

elseif rb_4.checked=true then

old=40

elseif rb_5.checked=true then

old=50

end if

sle_1.text=sex

sle_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 status

1 小王 23 女 导游会英语

2 小李 34 男 个体收入高

3 小林 45 女 会计

4 小黄 27 男 电脑专家

5 小郑 38 女 教师

在数据窗口中新建立两个数据窗口:数据来源都为aaa1表,要求如下:

数据窗口名 字段 数据源形式 显示格式 SQL过滤语句

Ad1 Id,name,old,sex SQL Select 表格 "aaa1"."sex"=:sex and"aaa1"."old"<=:old

Ad2 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=ttttt

b4.dw_1.settransobject(sqlca)

b4.dw_1.retrieve(b3.ttttt)

dw_2.settransobject(sqlca)

dw_2.retrieve(ttttt)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有