摘要:利用PowerBuilder可以开发各种实用的管理信息系统,

查询模块是系统功能模块中重要的组成部分,本文通过介绍学生档案管理系统的学生信息查询模块,提供了一种通用查询模块的编程方法及技巧。

关键词:PowerBuilder 学生信息 查询

0 引言

在学生档案管理系统中数据查询模块包括如下多个子模块:学生信息查询、学生德育查询、奖学金信息查询、违纪学生查询、教师信息查询、请假学生查询、奖励查询、班级信息查询、班级考核查询等。本文介绍学生信息查询子模块的详细的设计过程。

1 学生查询模块设计

在系统主窗口中,打开“数据查询”下拉菜单。选择“学生信息查询”选项,进入“学生信息查询”窗口w_query_

xsxc,如图1所示。首先选择一个查询的关键字:班级,选择“=”号,输入要查询的班级值:网Z011,单击“查询”按钮,提示符合查询条件的有三位学生。选择and复选框(可以进行复合查询),选择另一个关键字:所在市,选择“=”号,输入查询值:鞍山,再单击“查询”按钮,符合查询条件的有一位学生。找到符合条件的记录后,可查看当前学生的家庭档案和学生个人简历。对查询的结果可以浏览、打印输出。学生个人简历以A4纸打印输出。

图1 学生信息查询窗口w_query_xsxc

2 查询功能的实现

2.1 窗口对象的实例变量声明如下:

string xm,xh

string xscm,xszh

int get,xcz,cou

2.2 窗口对象的Open事件脚本修改如下:

tab_1.tabpage_1.dw_1.settransobject(sqlca)

tab_1.tabpage_1.dw_1.retrieve()

cou=tab_1.tabpage_1.dw_1.rowcount()

get=tab_1.tabpage_1.dw_1.getrow()

xscm=tab_1.tabpage_1.dw_1.getitemstring(get,"姓名")

2.3 tab_1控件的SelectionChanged事件脚本修改如下:

get=tab_1.tabpage_1.dw_1.getrow()

if get<>0 then

tab_1.tabpage_2.dw_2.settransobject(sqlca)

tab_1.tabpage_2.dw_2.retrieve()

tab_1.tabpage_3.dw_3.settransobject(sqlca)

tab_1.tabpage_3.dw_3.retrieve()

get=tab_1.tabpage_1.dw_1.getrow()

xscm=tab_1.tabpage_1.dw_1.getitemstring(get,"姓名")

tab_1.tabpage_2.dw_2.setfilter("xscm='"+xscm+"'")

tab_1.tabpage_2.dw_2.retrieve()

tab_1.tabpage_3.dw_3.setfilter("姓名='"+xscm+"'")

tab_1.tabpage_3.dw_3.retrieve()

else

tab_1.tabpage_2.dw_2.reset()

tab_1.tabpage_3.dw_3.reset()

messagebox("提示","查无此人!")

end if

2.4 tab_1控件的create事件脚本如下:

this.tabpage_1=create tabpage_1

this.tabpage_2=create tabpage_2

this.tabpage_3=create tabpage_3

this.Control[]={this.tabpage_1,&

this.tabpage_2,&

this.tabpage_3}

2.5 tab_1控件的destroy事件脚本如下:

destroy(this.tabpage_1)

destroy(this.tabpage_2)

destroy(this.tabpage_3)

2.6 标签页tabpage_1上的“查询”按钮的Clicked事件脚本如下:

string aa,bb,cc,dd,ee,ff

bb=ddlb_1.text

aa=sle_1.text

cc=ddlb_2.text

dd=ddlb_3.text

ee=ddlb_4.text

ff=sle_2.text

tab_1.tabpage_1.dw_1.clear()

if cbx_1.checked=false then

tab_1.tabpage_1.dw_1.setfilter(bb+cc+"'"+aa+"'")

tab_1.tabpage_1.dw_1.retrieve()

else

tab_1.tabpage_1.dw_1.setfilter(bb+cc+"'"+aa+"'")

tab_1.tabpage_1.dw_1.setfilter(dd+ee+"'"+ff+"'")

tab_1.tabpage_1.dw_1.retrieve()

end if

2.7 标签页tabpage_1上的“全部”按钮的Clicked事件脚本如下:

tab_1.tabpage_1.dw_1.setfilter("")

tab_1.tabpage_1.dw_1.retrieve()

2.8 标签页tabpage_1上的“打印”按钮的Clicked事件脚本如下:

tab_1.tabpage_1.dw_1.print()

2.9 标签页tabpage_1上的“退出”按钮的Clicked事件脚本如下:

close(w_query_xsxc)

2.10 标签页tabpage_2上的“打印”按钮的Clicked事件脚本如下:

tab_1.tabpage_2.dw_2.print()

2.11 标签页tabpage_3上的“打印”按钮的Clicked事件脚本如下:

tab_1.tabpage_3.dw_3.print()

3 结语

在系统主窗口中,打开“数据查询”下拉菜单。选择“学生德育查询”等其他查询模块选项,进入“学生德育查询”等其他窗口,操作方法与上述学生信息查询模块一致,既可以按班级、姓名、学号、学年、学期、周数、学分关键字查询,也可以选择复选框and后,做复合查询。

参考文献:

[1]何绪洪,余建英.powerbuilder8.0数据库系统开发实例导航[M].人民邮电出版社,2003.

[2]柯建勋,蔡毅,邓格林.PowerBuilder8.0基础篇[M].北京:清华大学出版社,2002.

[3]柯建勋,张涛,邵亮.PowerBuilder8.0进阶篇[M].北京:清华大学出版社,2002.

作者简介:王超(1972-),女,辽宁朝阳人,信息工程系副主任,副教授,研究方向:软件开发。