摘要:利用PowerBuilder可以開發(fā)各種實用的管理信息系統(tǒng),
查詢模塊是系統(tǒng)功能模塊中重要的組成部分,本文通過介紹學生檔案管理系統(tǒng)的學生信息查詢模塊,提供了一種通用查詢模塊的編程方法及技巧。
關鍵詞:PowerBuilder 學生信息 查詢
0 引言
在學生檔案管理系統(tǒng)中數(shù)據(jù)查詢模塊包括如下多個子模塊:學生信息查詢、學生德育查詢、獎學金信息查詢、違紀學生查詢、教師信息查詢、請假學生查詢、獎勵查詢、班級信息查詢、班級考核查詢等。本文介紹學生信息查詢子模塊的詳細的設計過程。
1 學生查詢模塊設計
在系統(tǒng)主窗口中,打開“數(shù)據(jù)查詢”下拉菜單。選擇“學生信息查詢”選項,進入“學生信息查詢”窗口w_query_
xsxc,如圖1所示。首先選擇一個查詢的關鍵字:班級,選擇“=”號,輸入要查詢的班級值:網Z011,單擊“查詢”按鈕,提示符合查詢條件的有三位學生。選擇and復選框(可以進行復合查詢),選擇另一個關鍵字:所在市,選擇“=”號,輸入查詢值:鞍山,再單擊“查詢”按鈕,符合查詢條件的有一位學生。找到符合條件的記錄后,可查看當前學生的家庭檔案和學生個人簡歷。對查詢的結果可以瀏覽、打印輸出。學生個人簡歷以A4紙打印輸出。
圖1 學生信息查詢窗口w_query_xsxc
2 查詢功能的實現(xiàn)
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 結語
在系統(tǒng)主窗口中,打開“數(shù)據(jù)查詢”下拉菜單。選擇“學生德育查詢”等其他查詢模塊選項,進入“學生德育查詢”等其他窗口,操作方法與上述學生信息查詢模塊一致,既可以按班級、姓名、學號、學年、學期、周數(shù)、學分關鍵字查詢,也可以選擇復選框and后,做復合查詢。
參考文獻:
[1]何緒洪,余建英.powerbuilder8.0數(shù)據(jù)庫系統(tǒng)開發(fā)實例導航[M].人民郵電出版社,2003.
[2]柯建勛,蔡毅,鄧格林.PowerBuilder8.0基礎篇[M].北京:清華大學出版社,2002.
[3]柯建勛,張濤,邵亮.PowerBuilder8.0進階篇[M].北京:清華大學出版社,2002.
作者簡介:王超(1972-),女,遼寧朝陽人,信息工程系副主任,副教授,研究方向:軟件開發(fā)。endprint