系统实施12.docx
《系统实施12.docx》由会员分享,可在线阅读,更多相关《系统实施12.docx(16页珍藏版)》请在冰豆网上搜索。
系统实施12
系统实施1:
系统输入界面设计与实现
(一)实验目的
VFP输入操作的目的是保证向系统输入正确的数据,并力争做到输入方法简单、迅速、经济和方便。
(二)实验内容和实验类型
实验内容:
首先建立学生、课程和成绩三张表的表结构,然后设计表记录输入界面,最后完成基础数据的输入。
为了保证输入的正确性,应遵循最小量、简单性和早检验的原则。
在设计记录格式时,可采用块风格、阴影、选择框、颜色等技术。
实验类型:
设计性实验。
(三)实验主要步骤
1.建立学生、课程和成绩表的结构,
2.建立学生、课程和成绩信息的输入界面,如图1、图2和图3所示。
图1学生表记录输入界面
1)学生表记录输入界面说明
●单击“添加”按钮,将各文本框等控件的内容清空;
THISFORM.TEXT3.VALUE=CTOD("//")
THISFORM.TEXT4.VALUE=000.00
THISFORM.TEXT1.SETFOCUS
THISFORM.REFRESH
●单击“保存”按钮,将各文本框内容存入学生表中。
该表单的数据环境中引入了学生.DBF。
APPEBLANK
REPL学号WITHTHISFORM.TEXT1.VALUE
REPL姓名WITHTHISFORM.TEXT2.VALUE
REPL性别WITHTHISFORM.CHECK1.VALUE
REPL出生年月WITHTHISFORM.TEXT3.VALUE
REPL简历WITHTHISFORM.EDIT1.VALUE
REPL奖学金WITHTHISFORM.TEXT4.VALUE
THIS.ENABLED=.F.
THISFORM.SETALL("VALUE","","TEXTBOX")
THISFORM.CHECK1.VALUE=.F.
THISFORM.EDIT1.VALUE=""
THISFORM.COMMAND1.SETFOCUS
图2课程表记录输入界面
2)课程表记录输入界面说明
●单击“添加”按钮,将各文本框控件的内容清空;
●单击“保存”按钮,将各文本框内容存入课程表中,该表单的数据环境中引入了课程.DBF。
成绩表记录输入界面
3)成绩表记录输入界面说明
●表单初始运行时,“姓名”和“课程名”不可见;
●当在“学号”或“课程号”列表框中选择某一值时,其相应的“姓名”或“课程名”显示在表单右侧;
●该表单的数据环境中引入了学生.DBF、课程.DBF和成绩.DBF,组合框“COMBO1”和“COMBO2”的“STYLE”属性设为“1-下拉列表框”,“ROWSOURCETYPE”属性设为“6-字段”,“ROWSOURCE”属性分别设为“学生.学号”和“课程.课程号”。
SELE成绩
APPEBLANK
REPL学号WITHTHISFORM.COMBO1.VALUE,;
课程号WITHTHISFORM.COMBO2.VALUE,;
成绩WITHVAL(THISFORM.TEXT1.VALUE)
THIS.ENABLED=.F.
THISFORM.SETALL("VALUE","")
THISFORM.COMBO1.SETFOCUS
THISFORM.LABEL1.VISIBLE=.F.
THISFORM.LABEL2.VISIBLE=.F.
THISFORM.TEXT2.VISIBLE=.F.
THISFORM.TEXT3.VISIBLE=.F.
THISFORM.COMMAND1.SETFOCUS
(四)实验环境和工具
VisualFoxpro6.0。
系统实施2:
系统查询设计与实现
(一)实验目的
掌握常用信息查询功能的设计及程序实现方法。
(二)实验内容和实验类型
实验内容:
学习根据特定系统设计、实现信息查询功能。
实验类型:
设计性实验。
(三)实验主要步骤
1.学生、课程和成绩信息查询的具体操作界面如图1所示。
图1
2.成绩信息查询的具体操作界面如图2所示。
图2
3.模糊查询的具体操作步骤和界面如图3所示(*模糊查询不作要求,学生可视具体情况选择完成)。
1)步骤
首先确定需要查询的数据,据此分析用于查询这些数据的查询条件。
可设置单个查询字段,也可设置几个查询字段供用户选择,形成组合条件查询;同时提供选项,由用户选择进行精确查询或者模糊查询。
新建表单,设置表单的Caption属性,并调整表单大小、位置。
放置各类控件,包括提示信息(Label)、输入控件(Text)、选项控件(复选框/选项按钮组)、按钮(“确定”、“退出”)、查询结果输出控件(Grid)等。
编辑按钮Click事件代码、Grid控件初始化代码。
运用SQL语言实现查询功能,用AND组合多个查询条件,用精确比较(“==”)实现精确查询,用包含操作符(“$”)实现模糊查询。
2)示例
◆学生数据查询,如图3所示。
图3
新建表单,取名为“学生查询”,“caption”属性为“学生查询”。
如图所示添加控件。
其中复选框用于指示该字段是否作为查询条件;选项按钮组用于选择精确查询还是模糊查询。
双击“确定”按钮,编辑CLICK事件的代码。
首先将3个文本框内容去空格后赋值给相应变量s1,s2,s3。
根据单选按钮和复选框的值设置查询条件字符串S:
若单选按钮组的值为1,则为精确查询,在条件中使用精确比较运算符“==”,例如以学号为查询条件进行查询则可将条件写成“alltrim(学号)==alltrim(thisform.text1.value)”;若单选按钮组的值为2,则为模糊查询,在条件中使用包含运算符“$”,例如以学号为查询条件进行查询则可将条件写成“alltrim(thisform.text1.value)$alltrim(学号)”。
在此前提下,若某个复选框被选中,即值为1,则使用此字段为查询条件之一,例如名称为“学号”的复选框被选中,则可在字符串S中加上形如“andalltrim(学号)==alltrim(thisform.text1.value)”的字符串。
若字符串S为空则提示用户输入查询条件。
最后执行SQL语句,以S作为查询条件,如“select*from学生where&Sintocursorcursor_name”,将查询结果存入游标。
最后将表格控件的数据源设为游标,并显示表格。
双击“退出”按钮,编辑CLICK事件的代码。
关闭当前窗口。
双击GRID1控件,编辑“Init”事件代码。
将数据源设为空,并隐藏控件。
普通成绩查询:
select成绩
DELETEALL
SELECT学生
LOCATEFOR学号=ALLTRIM(THISFORM.TEXT1.VALUE)
IFFOUND()
THISFORM.TEXT2.VALUE=姓名
select成绩
RECALLFOR学号=学生.学号&&恢复逻辑删除记录
else
messagebox("查无此人!
")
ENDIF
THISFORM.TEXT1.SELECTONENTRY=.T.&&将学号输入框设置为自动选定
THISFORM.TEXT1.SETFOCUS
THISFORM.REFRESH
学生模糊查询:
学生模糊查询:
sxh=alltrim(thisform.text1.value)
sxm=alltrim(thisform.text2.value)
snl=alltrim(thisform.text3.value)
scondition=".t."
ifthisform.Optiongroup1.Value=1&&精确查询
ifthisform.Check1.value=1
scondition=scondition+"andalltrim(学号)=="+'"'+sxh+'"'
endif
ifthisform.Check2.value=1
scondition=scondition+"andalltrim(姓名)=="+'"'+sxm+'"'
endif
ifthisform.Check3.value=1
scondition=scondition+"andyear(date())-year(出生年月)=="+snl
endif
else&&模糊查询
ifthisform.Check1.value=1
scondition=scondition+"andalltrim(学号)like"+'"'+"%"+sxh+"%"+'"'
endif
ifthisform.Check2.value=1
scondition=scondition+"andalltrim(姓名)like"+'"'+"%"+sxm+"%"+'"'
endif
ifthisform.Check3.value=1
scondition=scondition+"andyear(date())-year(出生年月)="+snl
endif
endif
ifscondition==".t."
messagebox("请输入查询条件!
",0+48+0,"提示")
return
endif
select*;
from学生;
where&scondition;
orderby学号;
intocursorcx1
thisform.grid1.recordsource="cx1"
thisform.grid1.visible=.t.
thisform.Refresh
◆课程表数据查询,如图4所示。
图4
新建表单,取名为“课程查询”,“Caption”属性为“课程查询”。
如图所示添加控件。
其中复选框用于指示该字段是否作为查询条件;选项按钮组用于选择精确查询还是模糊查询。
双击“确定”按钮,编辑CLICK事件的代码。
首先将3个文本框内容去空格后赋值给相应变量s1,s2,s3。
根据单选按钮和复选框的值设置查询条件字符串S:
若单选按钮组的值为1,则为精确查询,在条件中使用精确比较运算符“==”,例如以课程号为查询条件进行查询则可将条件写成“alltrim(课程号)==alltrim(thisform.text1.value)”;若单选按钮组的值为2,则为模糊查询,在条件中使用包含运算符“$”,例如以课程号为查询条件进行查询则可将条件写成“alltrim(thisform.text1.value)$alltrim(课程号)”。
在此前提下,若某个复选框被选中,即值为1,则使用此字段为查询条件之一,例如名称为“课程号”的复选框被选中,则可在字符串S中加上形如“andalltrim(课程号)==alltrim(thisform.text1.value)”的字符串。
若字符串S为空则提示用户输入查询条件。
最后执行SQL语句,以S作为查询条件,如“select*from课程where&Sintocursorcursor_name”,将查询结果存入游标。
最后将表格控件的数据源设为游标,并显示表格。
双击“退出”按钮,编辑CLICK事件的代码。
关闭当前窗口。
双击GRID1控件,编辑“Init”事件代码。
将数据源设为空,并隐藏控件。
◆成绩查询,如图5所示。
图5
新建表单,取名为“成绩查询”,“Caption”属性为“成绩查询”。
如图所示添加控件。
其中选项按钮组用于选择精确查询还是模糊查询。
双击“确定”按钮,编辑CLICK事件的代码。
首先将文本框内容去空格后赋值给相应变量s1。
根据单选按钮和复选框的值设置查询条件字符串S:
若单选按钮组的值为1,则为精确查询,在条件中使用精确比较运算符“==”,例如以学号为查询条件进行查询则可将条件写成“alltrim(学号)==alltrim(thisform.text1.value)”;若单选按钮组的值为2,则为模糊查询,在条件中使用包含运算符“$”,例如以学号为查询条件进行查询则可将条件写成“alltrim(thisform.text1.value)$alltrim(学号)”。
若字符串S为空则提示用户输入查询条件。
最后执行SQL语句,以S作为查询条件,如“select学生.学号,学生.姓名,课程.课程名,成绩.分数from学生,课程,成绩where&Sintocursorcursor_name”,将查询结果存入游标。
最后将表格控件的数据源设为游标,并显示表格。
双击“退出”按钮,编辑CLICK事件的代码。
关闭当前窗口。
双击GRID1控件,编辑“Init”事件代码。
将数据源设为空,并隐藏控件。
(四)实验环境和工具
VisualFoxpro6.0