1、系统实施12系统实施1:系统输入界面设计与实现(一)实验目的VFP输入操作的目的是保证向系统输入正确的数据,并力争做到输入方法简单、迅速、经济和方便。(二)实验内容和实验类型实验内容:首先建立学生、课程和成绩三张表的表结构,然后设计表记录输入界面,最后完成基础数据的输入。为了保证输入的正确性,应遵循最小量、简单性和早检验的原则。在设计记录格式时,可采用块风格、阴影、选择框、颜色等技术。实验类型:设计性实验。(三)实验主要步骤1建立学生、课程和成绩表的结构,2建立学生、课程和成绩信息的输入界面,如图1、图2和图3所示。 图1 学生表记录输入界面1) 学生表记录输入界面说明 单击“添加”按钮,将各
2、文本框等控件的内容清空;THISFORM.TEXT3.VALUE=CTOD( / / )THISFORM.TEXT4.VALUE=000.00THISFORM.TEXT1.SETFOCUSTHISFORM.REFRESH 单击“保存”按钮,将各文本框内容存入学生表中。该表单的数据环境中引入了学生.DBF。APPE BLANKREPL 学号 WITH THISFORM.TEXT1.VALUEREPL 姓名 WITH THISFORM.TEXT2.VALUEREPL 性别 WITH THISFORM.CHECK1.VALUEREPL 出生年月 WITH THISFORM.TEXT3.VALUERE
3、PL 简历 WITH THISFORM.EDIT1.VALUEREPL 奖学金 WITH THISFORM.TEXT4.VALUETHIS.ENABLED=.F. THISFORM.SETALL(VALUE,TEXTBOX)THISFORM.CHECK1.VALUE=.F.THISFORM.EDIT1.VALUE=THISFORM.COMMAND1.SETFOCUS 图2 课程表记录输入界面2) 课程表记录输入界面说明 单击“添加”按钮,将各文本框控件的内容清空; 单击“保存”按钮,将各文本框内容存入课程表中,该表单的数据环境中引入了课程.DBF。 成绩表记录输入界面3) 成绩表记录输入界面说
4、明 表单初始运行时,“姓名”和“课程名”不可见; 当在“学号”或“课程号”列表框中选择某一值时,其相应的“姓名”或“课程名”显示在表单右侧; 该表单的数据环境中引入了学生.DBF、课程.DBF和成绩.DBF,组合框“COMBO1”和“COMBO2”的“STYLE”属性设为“1-下拉列表框”,“ROWSOURCETYPE”属性设为“6-字段”,“ROWSOURCE”属性分别设为“学生.学号”和“课程.课程号”。SELE 成绩APPE BLANKREPL 学号 WITH THISFORM.COMBO1.VALUE,;课程号 WITH THISFORM.COMBO2.VALUE,;成绩 WITH V
5、AL(THISFORM.TEXT1.VALUE)THIS.ENABLED=.F.THISFORM.SETALL(VALUE,)THISFORM.COMBO1.SETFOCUSTHISFORM.LABEL1.VISIBLE=.F.THISFORM.LABEL2.VISIBLE=.F.THISFORM.TEXT2.VISIBLE=.F.THISFORM.TEXT3.VISIBLE=.F.THISFORM.COMMAND1.SETFOCUS(四)实验环境和工具Visual Foxpro 6.0。系统实施2:系统查询设计与实现 (一)实验目的掌握常用信息查询功能的设计及程序实现方法。(二)实验内容和实
6、验类型实验内容:学习根据特定系统设计、实现信息查询功能。实验类型:设计性实验。(三)实验主要步骤1. 学生、课程和成绩信息查询的具体操作界面如图1所示。图12成绩信息查询的具体操作界面如图2所示。图23模糊查询的具体操作步骤和界面如图3所示(* 模糊查询不作要求,学生可视具体情况选择完成)。1) 步骤 首先确定需要查询的数据,据此分析用于查询这些数据的查询条件。可设置单个查询字段,也可设置几个查询字段供用户选择,形成组合条件查询;同时提供选项,由用户选择进行精确查询或者模糊查询。 新建表单,设置表单的Caption属性,并调整表单大小、位置。放置各类控件,包括提示信息(Label)、输入控件(
7、Text)、选项控件(复选框/选项按钮组)、按钮(“确定”、“退出”)、查询结果输出控件(Grid)等。 编辑按钮Click事件代码、Grid控件初始化代码。运用SQL语言实现查询功能,用AND组合多个查询条件,用精确比较(“= =”)实现精确查询,用包含操作符(“$”)实现模糊查询。2) 示例 学生数据查询,如图3所示。图3 新建表单,取名为“学生查询”,“caption”属性为“学生查询”。如图所示添加控件。其中复选框用于指示该字段是否作为查询条件;选项按钮组用于选择精确查询还是模糊查询。双击“确定”按钮,编辑CLICK事件的代码。首先将3个文本框内容去空格后赋值给相应变量s1,s2,s3
8、。根据单选按钮和复选框的值设置查询条件字符串S:若单选按钮组的值为1,则为精确查询,在条件中使用精确比较运算符“=”,例如以学号为查询条件进行查询则可将条件写成“alltrim(学号)=alltrim(thisform.text1.value)”;若单选按钮组的值为2,则为模糊查询,在条件中使用包含运算符“$”,例如以学号为查询条件进行查询则可将条件写成“alltrim(thisform.text1.value)$ alltrim(学号)”。在此前提下,若某个复选框被选中,即值为1,则使用此字段为查询条件之一,例如名称为“学号”的复选框被选中,则可在字符串S中加上形如“and alltrim(
9、学号)=alltrim(thisform.text1.value)”的字符串。若字符串S为空则提示用户输入查询条件。最后执行SQL语句,以S作为查询条件,如“select * from 学生 where &S into cursor cursor_name”,将查询结果存入游标。最后将表格控件的数据源设为游标,并显示表格。双击“退出”按钮,编辑CLICK事件的代码。关闭当前窗口。双击GRID1控件,编辑“Init”事件代码。将数据源设为空,并隐藏控件。普通成绩查询:select 成绩DELETE ALLSELECT 学生LOCATE FOR 学号=ALLTRIM(THISFORM.TEXT1.
10、VALUE)IF FOUND() THISFORM.TEXT2.VALUE=姓名 select 成绩 RECALL FOR 学号=学生.学号 &恢复逻辑删除记录 else messagebox(查无此人!)ENDIFTHISFORM.TEXT1.SELECTONENTRY=.T. &将学号输入框设置为自动选定THISFORM.TEXT1.SETFOCUSTHISFORM.REFRESH学生模糊查询:学生模糊查询:sxh=alltrim(thisform.text1.value)sxm=alltrim(thisform.text2.value)snl=alltrim(thisform.text3
11、.value)scondition=.t.if thisform.Optiongroup1.Value = 1 &精确查询 if thisform.Check1.value = 1 scondition = scondition + and alltrim(学号) = + + sxh + endif if thisform.Check2.value = 1 scondition = scondition + and alltrim(姓名) = + + sxm + endif if thisform.Check3.value = 1 scondition = scondition + and y
12、ear(date()-year(出生年月) = + snl endifelse &模糊查询 if thisform.Check1.value = 1 scondition = scondition + and alltrim(学号) like + +%+ sxh + % + endif if thisform.Check2.value = 1 scondition = scondition + and alltrim(姓名) like + +% + sxm + % + endif if thisform.Check3.value = 1 scondition = scondition + an
13、d year(date()-year(出生年月) = + snl endifendifif scondition = .t. messagebox(请输入查询条件!, 0+48+0, 提示) returnendif select *; from 学生; where &scondition; order by 学号; into cursor cx1thisform.grid1.recordsource = cx1thisform.grid1.visible = .t.thisform.Refresh 课程表数据查询,如图4所示。图4新建表单,取名为“课程查询”,“Caption”属性为“课程查询
14、”。如图所示添加控件。其中复选框用于指示该字段是否作为查询条件;选项按钮组用于选择精确查询还是模糊查询。双击“确定”按钮,编辑CLICK事件的代码。首先将3个文本框内容去空格后赋值给相应变量s1,s2,s3。根据单选按钮和复选框的值设置查询条件字符串S:若单选按钮组的值为1,则为精确查询,在条件中使用精确比较运算符“=”,例如以课程号为查询条件进行查询则可将条件写成“alltrim(课程号)=alltrim(thisform.text1.value)”;若单选按钮组的值为2,则为模糊查询,在条件中使用包含运算符“$”,例如以课程号为查询条件进行查询则可将条件写成“alltrim(thisfor
15、m.text1.value)$ alltrim(课程号)”。在此前提下,若某个复选框被选中,即值为1,则使用此字段为查询条件之一,例如名称为“课程号”的复选框被选中,则可在字符串S中加上形如“and alltrim(课程号)=alltrim(thisform.text1.value)”的字符串。若字符串S为空则提示用户输入查询条件。最后执行SQL语句,以S作为查询条件,如“select * from 课程 where &S into cursor cursor_name”,将查询结果存入游标。最后将表格控件的数据源设为游标,并显示表格。双击“退出”按钮,编辑CLICK事件的代码。关闭当前窗口。
16、双击GRID1控件,编辑“Init”事件代码。将数据源设为空,并隐藏控件。 成绩查询,如图5所示。图5新建表单,取名为“成绩查询”,“Caption”属性为“成绩查询”。如图所示添加控件。其中选项按钮组用于选择精确查询还是模糊查询。双击“确定”按钮,编辑CLICK事件的代码。首先将文本框内容去空格后赋值给相应变量s1。根据单选按钮和复选框的值设置查询条件字符串S:若单选按钮组的值为1,则为精确查询,在条件中使用精确比较运算符“=”,例如以学号为查询条件进行查询则可将条件写成“alltrim(学号)=alltrim(thisform.text1.value)”;若单选按钮组的值为2,则为模糊查询
17、,在条件中使用包含运算符“$”,例如以学号为查询条件进行查询则可将条件写成“alltrim(thisform.text1.value)$ alltrim(学号)”。若字符串S为空则提示用户输入查询条件。最后执行SQL语句,以S作为查询条件,如“select 学生.学号,学生.姓名,课程.课程名,成绩.分数 from 学生,课程,成绩 where &S into cursor cursor_name”,将查询结果存入游标。最后将表格控件的数据源设为游标,并显示表格。双击“退出”按钮,编辑CLICK事件的代码。关闭当前窗口。双击GRID1控件,编辑“Init”事件代码。将数据源设为空,并隐藏控件。(四)实验环境和工具Visual Foxpro 6.0
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1