系统指定了做题的位置,为了避免每次存取文件都要指定路径的麻烦,可以在VF系统中设置默认目录:“工具”菜单——选项——文件位置——默认目录——修改——使用默认目录。
注意要和考试系统的一样。
查询与视图的建立:
查询和视图都是从一个或多个表中“导出”数据,它们的建立方式相似:
1、首先添加表:
根据需要,添加一个或多个表(视图),若是多个表,还需要建立联系,两个表有一个联系,三个表两个联系,……以此类推。
2、添加表后,在查询(视图)设计器窗口的上半部就显示了添加的表以及它们的联系:
3、在查询(视图)设计器窗口的下半部有六(七)个选项卡,分别设置:
“字段”(SELECT):设置最终的查询结果内容,可以直接选择源表中的内容,也可以通过函数和表达式来得到计算之后的结果。
“联接”(JOIN……ON):因为在添加表时已经设置了链接,此处不需再设
“筛选”(WHERE):设置条件,在题目中,“查询”的宾语是结果,在“字段”选项卡设置,其中的定语就是条件,在此设置。<字段名> 比较运算符 <值> 这种形式
“排序依据”(Order BY):设置排序
“分组依据”(GROUP BY):设置分组
“杂项”(DISTINCT和TOP):可以设置结果取消重复以及结果选取最高项;
“查询”菜单下的“查询去向”命令设置查询输出的结果形式。
建索引——建联系——清理数据库——建参照完整性
建联系之前必须建立索引,间参照完整性之前必需建联系。
1、建索引:索引就是对记录的重新排序(逻辑排序)
设置四方面的内容:
排序方式:升序或降序;
索引名:每条索引的标志;
类型:主索引、候选索引、普通索引、唯一索引;
表达式:排序的依据,可以是一个字段,也可以是多个字段的组合(用表达式的形式)。
2、建联系:建联系之前必须先建索引。
表之间的联系只有两种:一对一,一对多。在实际应用中,大多数是一对多联系。
一的一方叫父表,关联字段建主索引;多的一方为子表,关联字段建普通索引。
关联字段一般的情况是两表中同时都具有的字段,也有特殊情况是相同类型的字段
3、建参照完整性:
两个表建了联系之后,在建参照完整性之前还有一项必要的操作:“清理数据库”,“数据库”菜单下选择“清理数据库”命令,若该命令不能执行,可以先关闭(CLOSE ALL)再重新打开数据库(打开时选择“独占”),再执行。
设置有效性规则
对于数据库表可以设置有效性规则,打开表设计器
必须先选中相应字段
规则框:填写条件,条件的形式:<字段名> 比较运算符 <值>
<字段名> 比较运算符 <值> AND/OR <字段名> 比较运算符 <值>
信息框:填写错误提示信息,任何地方,只要是“信息”,必须用英文引号(””)引起来
默认值:注意值的类型必须与所选字段类型一致
表单操作
表单操作是考试内容最丰富的,比较简单的就是设置控件的属性,比较难的就是通过编写程序代码,完成一定的任务。(涉及到写代码,不管是写一条简单的命令,还是编写程序,还是在表单中写某一事件的执行代码,都是同学们的难点,为什么?主要体现在两方面:一是形式要求严格,一行代码由若干个字符组成,错一个符号、一个标点、甚至一个空格都不对;二是内容灵活,针对不同的问题,有不同的解决方式,问题形形色色,解决方式也各种各样,因此要灵活应用。)
如图为属性窗口,赋值时首先在对象名框里选中对象(也可在表单上选中),然后从给定的属性名列表选择属性,在赋值框输入值即可。
写代码时赋值方式一般为:
<容器>.<对象名>.<属性名>=<值>
引用对象不能直接写对象名,要从最底层的容器,一层层引用。比如:
Thisform.text1.value
Thisform.commandgroup1.command1.caption
调用方法的命令为:
<容器>.<对象名>.<方法名>
1、常考属性:name(表单名)、caption(标题)
2、添加数据环境
何时添加数据环境:用表单这一操作界面显示表或视图时
3、常考控件与属性
(1)命令按钮
常考内容:设置name、caption属性,命令按钮的click事件中添加代码
常考事件代码:退出或关闭 thisform.release
**命令按钮组
(2)文本框
属性:value,readonly(是否只读),enabled (是否可用),passwordchar(密码显示字符),inputmask(显示掩码,99999(数字、正负号) ######(数字、正负号、空格))
常考内容:
a.用文本框显示某内容,只要将此内容赋值给文本框的value属性即可。(value在=表达式左边)
b.用文本框输入数据,只要将文本框的value属性取值即可。(value在=表达式右边)
(3)标签
常考内容:caption、visible(是否可见)属性设置,用标签显示某内容,只要将此内容赋值给标签的caption属性即可。
常用方法:release refresh show hide
(4)选项按钮组(命令按钮组)
属性:ButtonCount(设置选项数目)、value(保存着当前选中的选项号,N型)、Caption(设置选项的标题)
常考题型:选中某选项再单击某按钮,则做相应操作。
解决方法:先作判断,(程序中,用于判断的语句就是IF或CASE)判断被选中的选项(方法:看选项按钮组OptionGroup1.value等于多少,若等于2,则说明是第2个选项被选中,类推),确定被选中的选项后在相应位置写SQL语句。
(5)复选框:value(其值为0或1,表示该框被选中或未被选中)
常考题型:选中某选项再单击某按钮,则做相应操作。
解决方法:先作判断,(程序中,用于判断的语句就是IF或CASE)判断某个复选框是否被选中(方法:看复选框Ckeck1.value等于多少,若等于0,未选中;等于1选中),再写SQL语句。
(6)组合框(列表框)
属性:RowSourceType(数据源类型)、RowSource(数据源)(这两个属性用于设置显示在组合框中的数据)、Style(设置下拉组合框还是下拉列表框)、value(保存着当前被选中的选项内容,C型)
常考题型:选中某条目后再单击某按钮,则做相应操作,因为value保存着当前被选中的选项内容,所以取出value属性即可。(组合框有时用displayvalue)
(7)计时器
属性:InterVal(设置时间间隔),若为0则计时器失效
常考题型:每隔多长时间做一次某件事情,则将InterVal设好,做某件事情的代码放入计时器的timer事件过程中。
(8)页框
属性:PageCount(设置页数)、ActivePage(设置活动页)thisform.pageframe1.activepage=2、Caption(设置页的标题,注意不是页框PageFrame的标题而是Page1或Page2等各页的标题)
常考题型:在页中添加表格,由于页框是容器控件,注意往容器控件中添加控件的方法。
(9)表格(重点、难点)
属性:RecordSoureType(数据源类型)、RecordSource(数据源) (这两个属性用于设置显示在表格中的数据,这是考的最多的操作)、ColumnCount(表格列数)、Caption(标题,注意是Header1的标题,而不是表格Grid的标题)、ControlSource(注意是Column列的属性,用于指定这一列显示的字段)
常考题型:
a.用表格显示数据表或视图的内容(添加好数据环境后,设好以上属性即可);
b.用表格显示查询的数据结果,如在一文本框中输入数据,再按文本框中的数据查询并将查询结果显示在表格中,这种题关键是将查询的SQL语句赋值给表格的RecordSource属性(字符型)。
c.有两张表格,一张表格显示一数据表内容,另一张表格显示与该数据表内容对应的另一数据表的内容,这种题先添加数据环境,并使数据环境中的这两张表有联线(需先设置表间的永久联系);对两张表格RecordSourceType属性均设为“别名”,RecordSource属性设为数据表文件名。
(10)微调按钮spinner:
属性:value(N型) text(C型) imcrement SpinnerLowValue SpinnerHighValue
菜单操作
设计菜单步骤:
(1)设计菜单结构(扩展名为.mnx 菜单设计文件)
在如图所示的菜单设计器中设计菜单的结构,首先输入菜单的名称,然后选择结果,结果有四种:
命令:执行一条命令语句;
填充名称:设置菜单项的内部名字,此项要求极少出现;
子菜单:设置下一级菜单;
过程:也是编写代码执行操作,与命令不同的是,可以写多条代码完成一系列的操作。
常考代码:
set sysmenu to default(返回VFP系统菜单,特别常用,其常用程度与表单中的thisform.release类似)
常考符号:菜单分组线的符号(\\-)、菜单项的快捷键(\\ 在菜单设计器中设计的菜单文件(扩展名.mnx)并不能执行,若想执行,必须生成菜单程序文件(扩展名.mpr):“菜单”菜单下,点击“生成”命令 (3)运行菜单程序文件 do 菜单文件主名.mpr 运行的目的就是看一下结果是否与要求一样,所有的操作题,尽量看一下操作结果,这是一个比较好的做题习惯。 将菜单放在顶层表单中: 因为涉及菜单和表单两个文件,故需要分两块来做 表单和菜单除了各自做自己部分的内容外,另外为了两者的结合,还须作: (I)表单部分 1.将ShowWindow属性设为2 2.在表单的Init/load事件中添加代码 do 菜单文件名.mpr with this,.t. (II)菜单部分 在“查看”——“常规选项”中钩选“顶层表单” 在菜单中引用到表单不能用thisform,而要用表单的名字。 在表单中调用快捷菜单 (I)菜单部分 1.设计为快捷菜单 (II)表单部分 表单的RightClick事件中添加代码 do 菜单文件名.mpr下载本文