基于Foxtable的女生课余体育活动查询系统的构建
Foxtable是将Excel、Access、Foxpro以及易表的优势融合在一起,其功能有数据录入、查询、统计以及报表生成等。同时Foxtable又是一个高效的.net平台开发工具,专门针对数据管理软件的开发作了大量的优化,其开发效率十倍于其他专业开发工具。本文分别利用其查询与统计功能,分别对300份问卷进行了体育活动频率分析、参与时间分析、主要目的分析等,并在此基础上建立了女生课余体育活动查询系统。
1 统计表的建立
单击“新建”,在打开的“创建项目”对话框中,输入项目名称“成绩查询”,选择“创建表”标签,分别创建频率表、时间表、目的表、项目表、形式表等,如图1-2所示。
2 指标分析
以“形式表”为例,将相关指标输入单元格中,其中“比例”一例设置为“表达式列”,在“数据表”功能区,选择“列相关”功能组,单击“表达式”,在弹出的“表达式生成器”中进行相应的设置,如图3所示。
3 窗口设计
在“管理项目”功能区,选择“窗口管理”,在打开的“窗口管理”对话框中,分别选择“增加”和“设计”两个按钮,进行相关的设置。添加8个“按钮”控件,如图4所示。
4 代码设计
4.1 SQL基本语法介绍
Foxtable中的SQL语句,表名需要用大括号括起来,例如:
SELECT* FROM {形式}
SELECT 字段列表 FROM {表名} WHERE 条件 GROUP BY 分组字段 ORDER BY 排序字段
其中"WHERE"、"GROUP BY"和"ORDER BY"是可选的,这三者的顺序是不能调换的。
4.2 以“形式”表为例代码设计
选择“参与形式”按钮,在Click中添加代码:
Dim tbl As WinForm.Tabletbl = e.Form.CreateSQLQuery(“Table1”, “Select * From {形式}","")tbl.SetBounds(10, 10, 600, 400)e.Form.AddControl(tbl)
其含义是,在窗口1中形成一个查询表,内容是“形式”中的全部字段。如图5所示。
5 其他查询代码设计
(1) 如要查询“时间”表中周末参加的人数,则代码为:
Dim tbl As WinForm.Tabletbl = e.Form.CreateSQLQuery(“Table1”, “Select 人数 From {时间} WHERE 指标=’周末’","")
tbl.SetBounds(10, 10, 600, 400)
e.Form.AddControl(tbl)
(2) 如要查询周末与清晨同时参加的人数,则代码为:
Dim tbl As WinForm.Table
tbl = e.Form.CreateSQLQuery(“Table1”, “Select 人数 From {时间} WHERE 指标=’周末’AND指标=’清晨’","")
tbl.SetBounds(10, 10, 600, 400)
e.Form.AddControl(tbl)
(3) 如要将查询结果按人数排序显示,则代码为:
Dim tbl As WinForm.Table
tbl = e.Form.CreateSQLQuery(“Table1”, “Select 人数 From {时间} WHERE 指标=’周末’AND指标=’清晨’ ORDER BY 人数","")
tbl.SetBounds(10, 10, 600, 400)
e.Form.AddControl(tbl)
(4) 如要查询总人数或平均人数,则代码为:
Dim tbl As WinForm.Table
tbl = e.Form.CreateSQLQuery(“Table1”, “Select SUM(人数) AS 总计, AVG(人数) AS 平均From {时间} ","")
tbl.SetBounds(10, 10, 600, 400)
e.Form.AddControl(tbl)
(5) 如要在“项目”表中查询参加人数最多的前3个项目,则代码为:
Dim tbl As WinForm.Table
tbl = e.Form.CreateSQLQuery(“Table1”, “SELECT TOP 3 * FROM {项目} ORDER BY 人数 DESC","")
tbl.SetBounds(10, 10, 600, 400)
e.Form.AddControl(tbl)
(6) 如要在“项目”表中查询参加篮球或参加足球的人数,则代码为:
Dim tbl As WinForm.Table
tbl = e.Form.CreateSQLQuery(“Table1”, “SELECT * FROM {项目} WHERE 指标 IN (’篮球’,’足球’)
","")
tbl.SetBounds(10, 10, 600, 400)
e.Form.AddControl(tbl)
6 查询结果输出
除了在窗口中动态形成一个逻辑查询表外,Foxtable还提供了可以将查询结果以数据表的形式输出的功能。如前述查询“时间”表中周末参加的人数,其代码为:
Dim q As new QueryBuilder
q.TableName = "时间表1"
q.SelectString = " Select 人数 From {时间} WHERE 指标=’周末’"
q.Build
MainTable = Tables("时间表1")
其含义是形成一个数据表“时间表1”,并将主表设置为“时间表1”。
这样形成了一个物理的数据表后,就可将该表保存或输出为Excel电子表或Access数据库表。
其操作步骤如下:
在“杂项”功能区,选择“高速导出”,在弹出的“另存为”对话框中,在“保存类型”中选择“Excel文件”则保存为工作簿的形式,如图6所示。
如要保存为数据库文件,在“保存类型”中选择“Access文件”即可。
另外在“杂项”功能区中还有一个“高速导入”的功能,可以将Excel电子表或Access数据库表导入为Foxtable的数据表。其操作步骤如下:
在“杂项”功能区,选择“高速导入”,在弹出的“打开”对话框中,在“文件类型”中选择“Excel文件”即可。