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