
Foxtable是將Excel、Access、Foxpro以及易表的優(yōu)勢融合在一起,其功能有數(shù)據(jù)錄入、查詢、統(tǒng)計以及報表生成等。同時Foxtable又是一個高效的.net平臺開發(fā)工具,專門針對數(shù)據(jù)管理軟件的開發(fā)作了大量的優(yōu)化,其開發(fā)效率十倍于其他專業(yè)開發(fā)工具。本文分別利用其查詢與統(tǒng)計功能,分別對300份問卷進行了體育活動頻率分析、參與時間分析、主要目的分析等,并在此基礎(chǔ)上建立了女生課余體育活動查詢系統(tǒng)。
1 統(tǒng)計表的建立
單擊“新建”,在打開的“創(chuàng)建項目”對話框中,輸入項目名稱“成績查詢”,選擇“創(chuàng)建表”標(biāo)簽,分別創(chuàng)建頻率表、時間表、目的表、項目表、形式表等,如圖1-2所示。
2 指標(biāo)分析
以“形式表”為例,將相關(guān)指標(biāo)輸入單元格中,其中“比例”一例設(shè)置為“表達式列”,在“數(shù)據(jù)表”功能區(qū),選擇“列相關(guān)”功能組,單擊“表達式”,在彈出的“表達式生成器”中進行相應(yīng)的設(shè)置,如圖3所示。
3 窗口設(shè)計
在“管理項目”功能區(qū),選擇“窗口管理”,在打開的“窗口管理”對話框中,分別選擇“增加”和“設(shè)計”兩個按鈕,進行相關(guān)的設(shè)置。添加8個“按鈕”控件,如圖4所示。
4 代碼設(shè)計
4.1 SQL基本語法介紹
?。疲铮簦幔猓欤逯械模樱眩陶Z句,表名需要用大括號括起來,例如:
?。樱牛蹋牛茫? FROM {形式}
?。樱牛蹋牛茫?字段列表 FROM {表名} WHERE 條件 GROUP BY 分組字段 ORDER BY 排序字段
其中"WHERE"、"GROUP BY"和"ORDER BY"是可選的,這三者的順序是不能調(diào)換的。
4.2 以“形式”表為例代碼設(shè)計
選擇“參與形式”按鈕,在Click中添加代碼:
?。模椋?tbl As WinForm.Tabletbl = e.Form.CreateSQLQuery(“Table1”, “Select * From {形式}","")tbl.SetBounds(10, 10, 600, 400)e.Form.AddControl(tbl)
其含義是,在窗口1中形成一個查詢表,內(nèi)容是“形式”中的全部字段。如圖5所示。
5 其他查詢代碼設(shè)計
?。?) 如要查詢“時間”表中周末參加的人數(shù),則代碼為:
?。模椋?tbl As WinForm.Tabletbl = e.Form.CreateSQLQuery(“Table1”, “Select 人數(shù) From {時間} WHERE 指標(biāo)=’周末’","")
?。簦猓欤樱澹簦拢铮酰睿洌螅ǎ保?, 10, 600, 400)
?。澹疲铮颍恚粒洌洌茫铮睿簦颍铮欤ǎ簦猓欤?br />
(2) 如要查詢周末與清晨同時參加的人數(shù),則代碼為:
?。模椋?tbl As WinForm.Table
tbl = e.Form.CreateSQLQuery(“Table1”, “Select 人數(shù) From {時間} WHERE 指標(biāo)=’周末’AND指標(biāo)=’清晨’","")
?。簦猓欤樱澹簦拢铮酰睿洌螅ǎ保?, 10, 600, 400)
e.Form.AddControl(tbl)
?。?) 如要將查詢結(jié)果按人數(shù)排序顯示,則代碼為:
?。模椋?tbl As WinForm.Table
tbl = e.Form.CreateSQLQuery(“Table1”, “Select 人數(shù) From {時間} WHERE 指標(biāo)=’周末’AND指標(biāo)=’清晨’ ORDER BY 人數(shù)","")
?。簦猓欤樱澹簦拢铮酰睿洌螅ǎ保埃?10, 600, 400)
?。澹疲铮颍恚粒洌洌茫铮睿簦颍铮欤ǎ簦猓欤?br />
?。?) 如要查詢總?cè)藬?shù)或平均人數(shù),則代碼為:
?。模椋?tbl As WinForm.Table
tbl = e.Form.CreateSQLQuery(“Table1”, “Select SUM(人數(shù)) AS 總計, AVG(人數(shù)) AS 平均From {時間} ","")
tbl.SetBounds(10, 10, 600, 400)
?。澹疲铮颍恚粒洌洌茫铮睿簦颍铮欤ǎ簦猓欤?br />
?。?) 如要在“項目”表中查詢參加人數(shù)最多的前3個項目,則代碼為:
Dim tbl As WinForm.Table
?。簦猓?= e.Form.CreateSQLQuery(“Table1”, “SELECT TOP 3 * FROM {項目} ORDER BY 人數(shù) DESC","")
?。簦猓欤樱澹簦拢铮酰睿洌螅ǎ保?, 10, 600, 400)
e.Form.AddControl(tbl)
?。?) 如要在“項目”表中查詢參加籃球或參加足球的人數(shù),則代碼為:
?。模椋?tbl As WinForm.Table
?。簦猓?= e.Form.CreateSQLQuery(“Table1”, “SELECT * FROM {項目} WHERE 指標(biāo) IN (’籃球’,’足球’)
?。?,"")
?。簦猓欤樱澹簦拢铮酰睿洌螅ǎ保?, 10, 600, 400)
?。澹疲铮颍恚粒洌洌茫铮睿簦颍铮欤ǎ簦猓欤?br />
6 查詢結(jié)果輸出
除了在窗口中動態(tài)形成一個邏輯查詢表外,Foxtable還提供了可以將查詢結(jié)果以數(shù)據(jù)表的形式輸出的功能。如前述查詢“時間”表中周末參加的人數(shù),其代碼為:
?。模椋?q As new QueryBuilder
?。瘢裕幔猓欤澹危幔恚?= "時間表1"
?。瘢樱澹欤澹悖簦樱簦颍椋睿?= " Select 人數(shù) From {時間} WHERE 指標(biāo)=’周末’"
?。瘢拢酰椋欤?br />
?。停幔椋睿裕幔猓欤?= Tables("時間表1")
其含義是形成一個數(shù)據(jù)表“時間表1”,并將主表設(shè)置為“時間表1”。
這樣形成了一個物理的數(shù)據(jù)表后,就可將該表保存或輸出為Excel電子表或Access數(shù)據(jù)庫表。
其操作步驟如下:
在“雜項”功能區(qū),選擇“高速導(dǎo)出”,在彈出的“另存為”對話框中,在“保存類型”中選擇“Excel文件”則保存為工作簿的形式,如圖6所示。
如要保存為數(shù)據(jù)庫文件,在“保存類型”中選擇“Access文件”即可。
另外在“雜項”功能區(qū)中還有一個“高速導(dǎo)入”的功能,可以將Excel電子表或Access數(shù)據(jù)庫表導(dǎo)入為Foxtable的數(shù)據(jù)表。其操作步驟如下:
在“雜項”功能區(qū),選擇“高速導(dǎo)入”,在彈出的“打開”對話框中,在“文件類型”中選擇“Excel文件”即可。