摘要:利用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-),女,辽宁朝阳人,信息工程系副主任,副教授,研究方向:软件开发。endprint