摘 要:利用PowerBuilder可以开发各种实用的管理信息系统,
查询模块是系统功能模块中重要的组成部分,本文通过介绍学生档案管理系统的学生信息查询模块,提供了一种通用查询模块的编程方法及技巧.
关 键 词:PowerBuilder学生信息查询
0引言
在学生档案管理系统中数据查询模块包括如下多个子模块:学生信息查询、学生德育查询、奖学金信息查询、违纪学生查询、教师信息查询、请检测学生查询、奖励查询、班级信息查询、班级考核查询等.本文介绍学生信息查询子模块的详细的设计过程.
1学生查询模块设计
在系统主窗口中,打开“数据查询”下拉菜单.选择“学生信息查询”选项,进入“学生信息查询”窗口w_query_
xsxc,如图1所示.首先选择一个查询的关键字:班级,选择“等于”号,输入要查询的班级值:网Z011,单击“查询”按钮,提示符合查询条件的有三位学生.选择and复选框(可以进行复合查询),选择另一个关键字:所在市,选择“等于”号,输入查询值:鞍山,再单击“查询”按钮,符合查询条件的有一位学生.找到符合条件的记录后,可查看当前学生的家庭档案和学生个人简历.对查询的结果可以浏览、打印输出.学生个人简历以A4纸打印输出.
图1学生信息查询窗口w_query_xsxc
2查询功能的实现
2.1窗口对象的实例变量声明如下:
stringxm,xh
stringxscm,xszh
intget,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.3tab_1控件的SelectionChanged事件脚本修改如下:
get等于tab_1.tabpage_1.dw_1.getrow()
ifget<>0then
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("提示","查无此人!")
endif
2.4tab_1控件的create事件脚本如下:
this.tabpage_1等于createtabpage_1
this.tabpage_2等于createtabpage_2
this.tabpage_3等于createtabpage_3
this.Control[]等于{this.tabpage_1,&
this.tabpage_2,&
this.tabpage_3}
2.5tab_1控件的destroy事件脚本如下:
destroy(this.tabpage_1)
destroy(this.tabpage_2)
destroy(this.tabpage_3)
2.6标签页tabpage_1上的“查询”按钮的Clicked事件脚本如下:
stringaa,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()
ifcbx_1.checked等于falsethen
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()
endif
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后,做复合查询.