这个vfp有效vfp 字段排序怎么做,第三题,错误信息怎么做?

VFP是非题_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩13页未读,继续阅读
你可能喜欢君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
VFP错误信息编号
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口VFP第三章_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
上传于||暂无简介
大小:1.15MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢当前位置: >>
VFP上机题中问的最多的题目解析
第一题:项目、数据库和表操作 1)添加文件 首先分清楚文件的类型,然后将其添加到相应的条目下面(注意:选择不同类型的文件,则出现的文件不同) 2)设置项目信息 给项目管理器加上作者信息、单位、附加图标等具体操作:在项目管理器上单击鼠标右键――&选择“项目信息…” 【例题】 修改项目 TEST 的项目信息: 附加图标 NET.I
CO 3)删除文件 (注意不是删除记录) 利用项目管理器中的“移去”按钮 操作,选择要操作的文件,点击“移去”按钮,出现一对话框(如图 1 所 示) :选择“移去”按钮,表示将文件从项目中移去,选择“删除”按钮, 表示将文件从磁盘中删除。 图注:以下 4(4~7)个操作是:选择某要操作的文件后――&单击鼠标右键― ―&选择具体操作 4)设置包含、排除 将某个文件(比如某个表)的属性改为“包含”或“排 除” 5)设置编辑说明 6)重命名 7)设置“主文件” 在一个项目中,只能有一个主文件(即:第二次设置 时前一次设置自动作废) ,显示时该项用粗体表示,并不是所有文件都可以 设置成主文件,可以设置成主文件的文件类型:程序、表单、查询和菜单。第 1 页共 20 页 二、数据库表、自由表(自由表) 表结构的修改(1~11) 1)设置标题 1) 2) 标题含义:该字段的字段名在浏览窗口中显示为设置的标题设置长表名 字段宽度 字段所容纳的最大的字符数。 【例题】 修改 jg 字段的宽度, ① 使之能容纳 4 位整数和 2 位小数 (宽度为:7) ② 添加一个字符型字段,字段名为 zzmm,其宽度以最多能存储字符串 “中共党员”为准(宽度为:8) 3) 字段注释 【例题】设置 grsds 字段的注释:基本工资 1000 元以上征税; 4) 字段有效性规则 控制输入到字段中的数据的取值范围,该规则是一个逻辑表达式,且当前字段包含在该表达式中。如果结果为.F.,则拒 绝所输入的字段值,并显示提示信息. (只要看题目中出现“字段”两个 字,或出现具体某个字段名,就在“字段选项卡” ,选择要操作的字段。 ) 【例题】① 设置 kc 表的 xf 字段有效性(验证)规则:大于等于 0 且小于 等于 6(答案:xf&=0 and xf&=6) ② 设置 rkrq 字段的有效性规则,要求不超过当前系统日期。 (答案: rkrq&date( )) ③ 设置 xb 字段的有效性 (验证) 规则, 要求性别必须为 “男” “女” 或 ; (答案:xb$”男女” ) ④ 设置 kss 字段的有效性(验证)信息:课时数范围为 2~8(答案:第 2 页共 20 页 kss&=2 and kss&=8) 字段有效性信息: 【例题】设置 将 kc 表的 xf 字段有效性(验证)信息: 某一门课的学分不能大于 6 【答案】”某一门课的学分不能大于 6” 5) 记录有效性(验证)规则 【记得要加英文引号】可以校验多个字段之间的关系是否满足某种规则,该规则也是一个逻辑表达式.(看题目中出现“表”或“记录” 的字,就在“表选项卡”操作。) 【例题】① 为 js 表设置有效性(验证)规则:工作日期(gzrq)与出生日 期(csrq)之间至少相差 20 年 【答案】Year(gzrq)-Year(csrq)&=20 ② 设置表的记录有效性规则,要求 kss 值比 xf 值大(注:对 现有数据不验证此规则) 。 【答案】kss&xf ③ 设置 GZ 表的记录有效性 (验证) 规则:如果 jbgz 小于 1000 元, grsds 的值为 0,否则 grsds 的 值为 jbgz 的 5%(该规则对表中 已有数据不作验证) : 【答案】grsds=iif(jbgz&1000,0,jbgz*0.05) “该规则对表中已有数据不作验证”的操作:在设置完规则和信息后,点 击“确定”按钮,则出现如右图,只需将复选框的“√”去掉。 记录有效性(验证)信息:第 3 页共 20 页 【例题】教师参加工作时至少 20 岁; 岁”【记得要加英文引号】 5)默认值【答案】”教师参加工作时至少 20【例题】① 为性别(xb)字段设置默认值为“男” 【答案】‘男’ 【记得要加英文引号】 ② 设置必修课(bxk)字段的默认值为逻辑真(.T.) ③ 将 xb 的默认值设置为空值 (Null) 答案】 。 【 .NULL. 解说:很多同学为默认值的写法犯愁,到底要不要加引号或其它符号 呢?其实默认值就是给这个字段赋值,赋值类型不同,写法当然不同, 如.T.、 ‘男’ 、{^}等 6) 格式 用于指定字段显示时的格式,是整个字段的格式。常考点:要求去掉前后空格:输入大写字母 T, 将字母转成大写显示(仅显示的时大写,实际上数据表里面仍然是 小写) :输入! 7) 输入掩码 用于指定字段中输入数据的格式,是每个字符的格式。要求会计格式: 999,999.99[表示六位整数位, 用逗号做千分位, 两位小数] 【例题】①设置 kcdh 字段的 InputMask 属性,使该字段的值只能是数字 字符。 【答案】9999(kcdh 字段的宽度为 4,所以是 4 个 9) 8) 显示类 其作用是指定在使用“表单向导”生成表单或数据环境中将字段拖放到表单上时,与该字段相应的控件类。注意:要记住各个控 件的英文名字。 【例题】① 设置 bxk 字段的有关属性,使得将该字段从表单的数据环境中 拖放到表单上时,生成的相应控件为文本框控件。第 4 页共 20 页 ② 设置册数(cs)字段的有关属性,使得将该字段从表单的数据环境中拖 放到表单上时,生成的相应控件为微调框控件。 9) 添加字段,修改字段,删除字段等(略) 绑定在表上的逻辑表达式,是在插入、更新、删除记录时10) 10) 触发器进行的检验规则。返回值为.T.时,允许执行相应操作,.F.时不允许执行 相应操作。触发器文本框中写入“允许”执行该操作时候的条件 【判断年份】为 js 表设置更新触发器:仅允许修改 2001 年(含)以后 参加工作的教师记录 Year(gzrq)&=2001 【字符型判断】为 RK 表设置插入触发器:工号为“A0001 的记录允许插 入,否则不允许插入 gh=’A0001’ 【限制开头字母,告之不允许条件】为 RK 表设置插入触发器:工号以 t 或 s 开头的记录不允许插入 NOT(left(gh,1)=’t’ OR left(gh,1) =’s’) 题干中给出的是不允许条件,因此要在总的结果前面加上 NOT,注意工号小写 【不允许删除】为 KC 表设置删除触发器:不允许删除 .F. (允许删除的条件永远不为真)【数字开头】 已知数字 0 的 ASCII 码为 48,9 为 57,为 xs 表设置插入 触发器:学号必须以数字开头,否则不允许插入 Between(ASC(xh),1),48,57)第 5 页共 20 页或ASC(xh)&=48And ASC(xh)&=57(只写允许时候的条件) 【判断为空】工号为空允许删除 【判断长度】学号长度为 6 位 【其它条件】教师表打开时候允许更新 Empty(gh) Len(xh)=6 Used(“js”)11) 11) 索引表达式 注意各种不同情况下的书写方法,分清楚索引名称(标 识)和索引表达式 【单个字段】按 ylbx(养老保险)创建一个普通索引,标识名为 ylbx, 要求按 ylbx 降序排序 【字符+数字】为 gz 表创建一个候选索引 ghsfgz,要求按 gh 字段排序, gh 相同再按 sfgz 排序 索引标识为:ghsfgz 表达式为 gh +Str(sfgz) 数值型 【字符+字符】为 xs 表创建普通索引 xdhzydh,要求按 xdh 排序,xdh 相同再按 zydh 排序 索引标识为:xdhzydh 表达式为 xdh + zydh 要加 STR? 【字符+日期】为 xs 表创建普通索引 xdhcsrq,要求按 xdh 排序,xdh 相同再按 csrq 排序 索引标识为:xdhcsrq 表达式为 xdh + Dtoc(csrq,1) 为 什么要用 ,1 【首字母+数值】为 gz 表创建普通索引 ghsfgz,要求按 gh 排序,gh 相 同再按 sfgz 排序第 6 页共 20 页sfgz 为为什么不 索引标识为:ghsfgz 表达式为 Left(gh,1)+STR(sfgz) 【数值+数值】已知 cj 表中有两门课程成绩 cj1 和 cj2,创建索引先按 cj1 排序,再按 cj2 排序 表达式为 STR(cj1)+ STR(cj2) 【数值+数值型】已知 cj 表中有两门课程成绩 cj1 和 cj2,创建索引按 总成绩排序 表达式为 cj1 + cj2 【其他】创建一个普通索引 recsort,按物理记录顺序的倒序排序,即记 录号为 1 的记录排最后。 表达式为 recno( ) 排序:降序12) ,每年必考 12) 替换字段 替换字段是最头疼的题,分值高(2 分) (当题目中出现“修改”“计算”“调整”“替换”或“填写ww字段的 、 、 、 值”等,就为该题型) 1、 修改 gzb 表中所有记录的 zfbt (住房补贴) 字段的值, 规则为: 1998年(含 1998 年)以后参加工作的教师(注:gzrq 字段为工作日期)其 住房补贴为基本工资(jbgz)的 19%,而其他教师没有住房补贴。第 7 页共 20 页 打开 gzc 表,并浏览,选择“表”菜单里面的“替换字段” 字段: 替换为: jbgz zfbt*0.19 (这里只写字段的新值,千万不要写成jbgz=zfbt*0.19 带等号形式) 作用范围:All For: 2、 Year(gzrq)&=1998 修改 gzc 表中所有教授的记录,计算(医疗保险)ylbx,算法为:医疗保险为基本工资的 19% 答案 字段: ylbx替换为: zfbt*0.19 作用范围:All For: 3、 zc = ‘教授’ 根据 jg 字段的值来填写 jiguan 字段的值:如果 jg 值为两个汉字,则加“市” ,否则在前两个汉字后加“省” 、最后加“市” 。例如 jg 为“上第 8 页共 20 页 海” ,则 jiguan 为“上海市” ;jg 为“江苏南京” ,则 jiguan 为“江苏 省南京市” ;jg 为“江苏张家港” ,则 jiguan 为“江苏省张家港市” ,等 等。 答案 字段: jiguan替换为: iif(len(allt(jg))=4, jg-”市”, left(jg, 4)+”省”+substr(jg, 5)-”市”) 作用范围:All 4、 将 GZ 表中基本工资(jbgz)在 1000 元以上(包括 1000 元)记录的其他(qt 字段清为零) 。 5、 在 JS 表中更改所有教师记录的简历(jl) ,修改方法为:将 gzrq 转化为字符串,然后在字符串的前面加上“工作日期:,且不管原来日期 ” 是哪一种显示格式,转化后的字符串格式都为 yyyymmdd。如 gzrq 字段 值 为 08/09/70 , 则 更 改 以 后 该 记 录 简 历 字 段 的 值 为 “ 工 作 日 期 : ” 。 注意:很多限制条件隐含在题干中,请仔细看题 说明:以上操作可以用命令(UPDATE―SQL 或 REPLACE)实现 13) 13) 插入记录 14) 14) 删除记录 浏览表, “显示”―“追加新记录” 删除记录分逻辑删除(作删除标记)和物理删除(彻底删除) ,具体操作为:打开要操作的表,并浏览,选择“表”菜单里面的 “删除记录” 【例题】将 xs 表中籍贯(jg)不属于“江苏”的记录作逻辑删除第 9 页共 20 页 打开要 xs 表, 并浏览, “表” 选择 菜单里面的“删除记录”作用范围:All For:jg!=”江苏” 说明:若是彻底删除,要再选择“表”菜单里面的“彻底删除”或在命令 窗口中输入:PACK。 逻辑删除也可以用命令(DELETE―SQL 或 DELETE―FOR)实现。 15) 15) 永久关系 普通索引上去 16) 16) 参照完整性 在数据库设计器窗口打开情况下,选中连线,点右键, 在数据库设计器中,拖动主表的主索引,拖到从表的“编辑参照完整性” 如有错误窗口,请参考窗口中的提示,进行“数据库” 菜单中的“清理数据库” 更新规则:级联、限制、忽略(对主表而言) 更新级联:当修改主表的关键字的值时,若子表有相应的记录,则同步修 改子表的记录。 更新限制:当修改主表的关键字的值时,若子表有相应的记录,则禁止对 主表记录的修改。 更新忽略:当修改主表的关键字的值时,不管子表有无相应的记录,只更 新主表。 删除规则:级联、限制、忽略(对主表而言)同更新规则第 10 页共 20 页 插入规则:限制、忽略(对子表而言) 插入限制:当向子表中插入一个新记录或更新一个已经存在的记录时,若 主表中不存在匹配的关键字值,禁止插入。 插入忽略:当向子表中插入一个新记录或更新一个已经存在的记录时,不 管主表,允许插入。 三、保存问题 在这一大题中,保存是不需要点击常用工具栏上的“保存按钮”的,具体 保存方法为: 1. 对项目管理器操作的题目,只要在有“确定”按钮的窗口中点击“确定”即可,如没有“确定”按钮,例如把文件改为“排除”等,只要按 指定的操作即可,并且可以查看到结果。 2. 对于修改表结构的题目,在做完题目后,点击“确定”按钮,出现如下图 1 所示对话框,点击“是” ,就保存好了。切记不要点击“取消” 按钮或窗口右上角的“关闭”按钮,否则将会出现如下图 2 所示,就会 放弃结构的修改,这样就没有保存做过的题目。 图1 3. 图2对于修改表记录的题目,包括插入、更新、删除记录,操作完就自动保存,无须再保存了。 4. 对于数据库修改的题目,永久关系的保存,自动的,参照完整性的第 11 页共 20 页 保存,只要在出现的对话框中点击“确定”或“是”按钮就保存好了。 第二章、设计查询1、考试时不用新建查询,软盘中项目 test 中“查询”下面有一个“chaxun” ,双击打开查询设计器 2、 数据源的添加:添加表和视图,注意如果是多个表(或查询)的话,按给定的顺序添加表和视图,要留意联接的类型,默认的联接类型为内 联接。联接类型:内联接、左联接、右联接和外联接。 内联接:以两张表相同字段的交集为输出结果; 左联接:以两张表相同字段中左边表字段的集合为输出结果; 右联接:以两张表相同字段中右边表字段的集合为输出结果; 完全联接:以两张表相同字段的并集为输出结果; 3、 字段:(1) 对于字段列表中有的字段,直接双击即可添加到右侧,反之需要使第 12 页共 20 页 用下列函数编辑 (2) 合计函数表达式:count( )、sum( )、avg( )、max( )、min( ) Count( ):学生人数,教师人数,课程门数等这些是将表中的行进行数 数,用 Count(*) 没有条件限制; Sum( ):对某个数值型字段求和,如对 cj 求和得到总成绩,对 xsl 求和 得到总销售量,对 xf 求和得到总学分,对 jbgz 求和得到工资总额; Avg( ) :对某个数值型字段求平均,如对 cj 求和得到平均成绩; Max( )、Min( ):对某个字段求最大值,最小值(一般指数值型的字段) 说明:一般要给这些函数指定列标题,用 AS 短语实现,例如:sum(cj.cj) as 总分 (3) 其 它 函 数 表 达 式 : 例 如 : left(xh,2) year(date( ))-year(csrq) as 年龄等 (4) 字符串常量:在输出结果中该列将以字符串的内容为结果 as 年 级 ,说明:AS 短语可以用在上面 4 种情况。 4、 筛选:对表(数据源)中某个或某几个原始字段(不是计算出来的字段)进行限制,如 xb =”男”,也可以是 SELECT―SQL 命令 5、 排序:记得同时有几个排序条件时候,每个字段可以有不同的升序/降序选择 6、 分组:指定把那些字段中相同的记录值放在一起运算(如求平均、求和,计数等) 说明:在一般情况下,只要在前面用到了合计函数中的任何一种,就要 分组。分组的依据要看用到合计函数的字段的定语,例如:基于 XSST第 13 页共 20 页 视图和专业(ZY)表查询每个系各专业男、女生的人数。 其中人数要用到合计函数 count( ),人数的定语为:系、专业、男女生, 所以分组依据就为:xdh、zydh、xb。 满足条件:对计算出来的字段(查询结果) ,如“总成绩”“课时酬金” 、 进行条件限制 7、 杂项:指定只显示前多少项或前多少百分比的记录显示、是否显示重复记录等 【例题 1】 在 SJK 中包含一个名为 RKVIEW 的视图,该视图中包含教师的 任课情况,其中有教师上的每一门课的课时数(kss) 。假定教师的上课酬 金为每学时 20 元,按如下要求修改查询: 基于 RKVIEW 视图和教师(JS)表,查询每个教师的上课总学时及上课 酬金,要求输出字段为:gh、xm、xb、总学时、上课酬金,查询结果按 gh 的升序排序。 解答: 字段: js.gh 、 js.xm 、 js.xb 、 Count(rkview.kss) as 总 学 时 、Count(rkview.kss)*20 as 上课酬金 筛选: 无 排序: js.gh 分组: js.gh 【为什么要用工号分组?】 杂项: 无 【例题 2】 在 SJK 中包含一个名为 XSST 的视图,该视图中包含学生的性 别(xb) ,所在的系代号(xdh) 、系名称(ximing) 、专业代号(zydh) ,另第 14 页共 20 页 外在 SJK 的专业(zy)表中包含有专业名称(zymc)字段。按如下要求修 改查询: 基于 XSST 视图和专业(ZY)表查询每个系各专业男、女生的人数。要 求输出字段为:xdh、ximing、zydh、zymc、xb、学生人数,查询结果按 xdh 的升序排序,如果 xdh 相同,则按 zydh 的升序排序。 解答: 字段: xsst.xdh、xsst.ximing、xsst.zydh、zy.zymc、xsst.xb、Count(*) as 学生人数 筛选: 无 排序: xsst.xdh、xsst.zydh 分组: xsst.xdh、xsst.zydh、xsst.xb 【本题目是理解“分组”的最好 例题】 杂项: 无 【例题 3】 TEST 项目中已经存在查询 chaxun,且在 SJK 中学生(XS)表包含学号(xh) 、姓名(xm) 、性别(xb) 、班级编号(bjbh) 、系代号(xdh) 和专业代号(zydh)字段,专业(ZY)表含有专业代号(zydh)和专业名 称(zymc)字段。按如下要求修改查询: 基于 XS 表和 ZY 表查询“01”年级每个专业女生所占比例。要求输出 字段包括:zydh、zymc、年级、女生人数、总人数和女生所占比例,查询 结果按女生所占比例从高到低排序(bjbh 字段值的前二位表示年级) 。 解答: 字段: xs.zydh、 zy.zymc、 Left(bjbh,2) As 年级、 Sum(iif(xb=’女’,1,0))第 15 页共 20 页 as 女生人数、Count(*) as 总人数 Sum(iif(xb=’女’,1,0))/Count(*) as 女生所占比例 [本题是理解条件计数的最好题目,注意这里有一处用 Sum 来数记 录条数] 由于同时要求计算全体人数和女生人数, 而分组是根据 zydh (分组之 后每组有男有女) ,显然不能再一概用 Count(*)计算,Count(*)计算 总人数,而用 Sum 来进行“条件计数”来计算女生数。 筛选: 无 排序: 女生所占比例 降序 分组: xs.zydh 杂项: 无 【例题 4】 在 TEST 项目中已经存在查询 chaxun,已知在 SJK 的学生(XS) 表中含有系代号(xdh) 、学号(xh) 、姓名(xm)等字段;成绩(CJ)表中 含有学号(xh) 、课程代号(kcdh) 、成绩(cj)等字段。按如下要求修改 查询: 基于 XS 表和 CJ 表查询“刘玉敏”同学所在系的每位同学的平均成绩, 输出 xdh、xh、xm、平均成绩,查询结果按姓名排序。 (提示:筛选条件中 使用 SELECT xdh FROM xs WHERE xm=’刘玉敏’;查询保存并关闭设计器后, 可能无法再次在设计器中打开,只能在编辑窗口中修该查询的 SELECT-SQL 语句。 ) 解答: 字段: xs.xdh、xs.xh、xs,xm、avg(cj) as 平均成绩第 16 页共 20 页 筛选: 字段:xs.xdh,条件:IN,实例:SELECT xdh FROM xs WHERE xm=’ 刘玉敏’ [本题是子查询的题目,注意筛选的设置] 排序: xs,xm 分组: xs.xh 杂项: 无 【例题 5】 按如下要求修改 TEST 项目中的查询的 chaxun:为了检查课程(KC)表中是否有学生没有选的课程,可以基于 KC 表和 成绩(CJ)查询出在课程表中存在而在成绩表中不存在的那些课程记录。 要求:输出课程表的所有字段和成绩表的课程代号(kcdh)字段。查询结 果中相同的记录 (行) 只需出现一次, 并按 KC 表的 kcdh 字段升序排序。 (提 示:使用“左连接”联接 KC 和 CJ 表,然后在结果中选出 Cj.kcdh 字段为 Null 值的记录) 。 解答: 字段: kc.*、cj.kcdh (kc.*表示 kc 的所有字段) 联接: 左联接 筛选: 无 排序: kc.kcdh 分组: 无 满足条件:字段:cj.kcdh,条件:IS 杂项: 无重复记录 【例题 6】 已知图书(TS)表中含有分类号(flh) 、入库日期(rkrq) 、价第 17 页共 20 页[本题是左联接的题目,注意满足条件的设置]NULL 格(jg)和册数(cs)等字段。在 TEST 项目中已存在查询 chaxun,按如下 要求修改查询: 基于图书(TS)表统计各大类图书上半年和下半年入库的馆藏册数、 金额。要求输出字段为:大类、入库时间、馆藏册数、金额,查询结果首 先按大类降序排序,同一大类中再按入库日期排序。注: ● 分类号(flh)的第一个字符表示大类; ● 如果入库月份在 1 至 6 月, 则入库时间为 “上半年” 否则入库时间为 , “下 半年” ; ● 金额为 jg×cs 解答: 字段: left(flh, 1) as 大类、iif(month(rkrq)&=1 and month(rkrq)&=6, “上半年”, “下半年”) as 入库时间、count(*) as 馆藏册数、sum(jg*cs) as 金额 筛选: 无 排序: 1,2 分组:1,2 说明:这里的 1,2 代表着查询结果中输出的第 1 列和第 2 列。当排序和分 组依据是表达式时,可以用数字代替。 其他情况: 1、 2、 不显示重复,显示前多少名,前多少百分比等,在“杂项”页面中 提示“不能访问选定表” ,表明当前的数据库没有打开,请展开数据库 sjk 前面的“+”号第 18 页共 20 页 3、 4、查询去向:在查询设计器的任意地方点右键,选择“输出设置” 两张表都有同一个字段,则根据题目要求选择字段,如题目没有要求,则选择其中之一即可,但要保证以后使用到的也是该字段。第三章、设计菜单 1. 创建菜单栏以及访问键(Alt+字母) 、快捷键(Ctrl+字母) 访问键:访问菜单,但不执行菜单。表示为:(字母),在菜单名后加上 (\&字母), 例如:文件(F),则菜单名称为:文件(\&F) 快捷键:执行该菜单的功能。表示 为:Ctrl+字母,在菜单设计器中 的“提示选项”对话框(如下图) 中设置,在快捷方式中,光标移到 键标签, 同时按下 Ctrl 和字母键。 2. 创建子菜单,只要在“结果”中选 择“子菜单” ,就可创建子菜单了。 3. 使某菜单项无条件废止或有条件废 止,在“提示选项”对话框中的跳过中设置,输入逻辑表达式,当逻辑 表达式为.T.,表示废止,为.F.,表示可用。 无条件废止:.T. 有条件废止:DBUSED(”sjk”)、USED(“js”) 永远可用:.F.第 19 页共 20 页 4. 插入分组线,在菜单名称中输入:\-。 5. 菜单项的状态(提示)信息(状态 栏的显示内容) ,在“提示选项”对 话框中的“信息”中设置,在输入 信息时,要加英文半角的引号。 6. 插入系统菜单条,在子菜单中,选 择“插入栏”按钮。 7. 菜单的“清理”段和“初始化”代 码的设置,在菜单设计器中,选择“显示”菜单(VFP 的主菜单,不是 菜单设计的菜单) ,选择“常规选项” 菜单,在“常规选项”中设置。 “初始化”代码: “清理”代码:表示当退出该菜单时,最后执行的代码。 表示当执行该菜单时,首先执行的代码。 8. 设置菜单运行后与 VFP 原先的系统菜单的位置关系, “替换”“追加” 、 、 “在…之前”和“在…之后” 。 9. 菜 单 命 令 BROWSE 、 DO FORM 表 单 名 、 SELECT-SQL 、 UPDATE-SQL 、 DELETE-SQL、APPEND 等 10. 菜单过程 (操作表或数据库命令, 首先要判断表或数据库是否打开。 ) 常考的过程代码: IF USED(”js”) SELECT js ELSE USE js第 20 页共 20 页 ENDIF 第四章、设计表单 首先第一点要有会“取舍” ,表单设计的最后编程部分,不是一天两天 的工夫,因此如果对编程本身就不感冒,那就根据自己的实力,做个取舍, 不如全力去做自己能做的部分。 其实要有“定力” ,表单设计其实就是一个完善的过程,很多代码实际 已经写好,因此你只要做题目中的 1、2、3、..那几条具体要求即可。前面 一大段文字其实是对整个程序的描述,大可不必理会。要你写代码的一般 只有最后一个小题目,前面的只是在属性窗口中改改属性即可。 常见特有属性知识点:(按照使用概率编排) 属性 PageCount ButtonCount 含义 页面个数 按钮个数 控件 页框 备注 经常要在按钮组中按钮组、选项按 添加一个按钮,在页 钮组 框中添加一个页面,ColumnCount列数表格、列表框、 在 表 格 中 添 加 移 个 组合框 表格列BorderStyle边框类型按钮组、选项按 就是外边的白线 钮组RowSourceType RowSource RecordSourceType RecordSource行源类型 行源 记录类型 记录列表框、组合框 列表框、组合框 表格 表格第 21 页共 20 页 Interval时间间隔Timer(计时器)SpinnerHightValue 通过微调框按钮 Spinner ( 微 调 输入的最大、最 框) SpinnerLowValue 小值 Spinner ( 微 调 框) KeyboardHightValue 通过键盘输入的 Spinner ( 微 调 最大值 KeyboardLowValue 框)通过键盘输入的 Spinner ( 微 调 最小值 框)Increment点 上 下 箭 头 每 次 Spinner ( 微 调 默认值是 1 改变的值 框) 文本、编辑、按 按钮组、选项按钮组 钮组、选项按钮 中 值 指 的 是 选 中 的 组、微调框等 第几个Value值ControlSource文本、编辑、选 用 于 指 定 与 其 绑 定 项按钮组、列表 的数据源 框、组合框等一些通用属性: 属性 Caption 含义 标题 控件 备注表单、按钮、标签、选 注意按钮组、选项按钮组、页 项按钮、页面等第 22 页共 20 页框等“成组”的控件的改法 Name对象名每个控件都有在设计器中有些控件内显示 的就是控件的 Name 值。例如: 文本框、列表框等。Value控件的值文本框、 列表框、 组合 在运行时有些控件内显示的 框、 微调框、 命令按钮 就是控件的 Value 值。例如文 组、页框等 本框、列表框等。Enabled Visible可用 可见每个控件 每个控件 显示文字的控件 字 体 ( FontName )、 字 号 ( FontSize ) 、 粗 体 ( FontBold ) 、 斜 体 (FontItalic)等都 Font 开 头FontSize 字体等 等ForeColo 前 景 色 / 背 显示文字的控件 r/ BackColo r Width/He 宽度、高度 每个可见控件 ight Left/Top 距表单 Default/ 默认/取消 Cancel第 23 页共 20 页显示文字的颜色/文字后面的 颜色景色按钮等与“ENTER”键/与“取消”对 应 Alignmen 文本对齐方 文本框、 编辑框、 微调 t 式 框等一些常用方法: 属性 AddItem 含义 添加条目 控件 列表、组合 列表、组合 备注 向其中添加一行 从其中移去一行RemoveItem 移除条目 SetFocus 设置焦点文本、 编辑、 表 使其获得焦点 格等Refresh刷新表单、 表格、 页 使其刷新, 从新获取数 面等 据 关闭表单Release Hide/Show Clear Cls释放 隐藏/显示表单 清除内容 清除内容表单 表单 列表框、 组合框 表单清除表单上绘制的图 形、文字SetAll为 容 器 对 象 中 所 有 页框、 表格、 命 控 件 指 定 一 个 属 性 令按钮组、 选项 设置 按钮组等一些常用事件 事件 触发时机 控件第 24 页共 20 页备注 Click/DbClick Init Activate GotFocus LostFocus Valid Unload Error Timer单击、双击 对象创建 对象激活 得到焦点 失去焦点 即将失去焦点 释放时候 出错误时候 计时器到时点常用控件 每个控件表单、表单集计时器InterActiveChange 当列表框或文本 文本框、列表框、组 框等中的内容发 合框等 生改变的时候 常见题型分析: 1、 添加控件解答:要分清楚到底是从“表单设计器”上拖一个过来(如文本框、按钮 等) ,还是修改属性。有些组合形控件只要修改属性即可增减个数,比如: 列表框、组合框、表格的列数(ColumnCount) 、 命令按钮组、选项按钮组中按钮的个数(ButtonCount) 页框中的页数(PageCount) 注意: (1)添加控件 XXX,这里的 XXX 指的是控件的名称,就是 Name 属性 要改为 XXX。 (2)修改容器型控件中的对象,要先使容器控件处于编辑状态(选择容器第 25 页共 20 页 控件,单击右键,选择“编辑”,才能选择其中的对象。 ) (3)如在页面中添加控件,则需要先使页框处于编辑状态,选择页面,在 使页面处于编辑状态,再把要添加的控件拖到页面上。 2、 修改标题解答:修改单个控件(如文本框)上的标题只需要改相应对象的 Caption 属性即可。而修改一个命令按钮组中的某个按钮的标题时候,需要先将使 其处于编辑状态,选中其中的某一个,再去修改它的 Caption 属性。 3、 修改边框类型、样式解答:表单、选项按钮组、命令按钮组都有个边框属性。 4、数据环境中添加表、建立临时关系 解答:在表单的“空白”地方,点右键,在弹出的菜单中选择“数据环境” 。 在数据环境的空白地方点右键,在弹出的菜单中选择“添加表” 。建立临时 关系就是将主表中的字段拖到子表的字段或索引上去。 数据环境中的表设置为“只读” :在数据环境中,选中该表,在属性窗口中, 将 ReadOnly 属性改为.T. 数据环境中的表按一定的顺序排序:在数据环境中,选中该表,在属性窗 口中,将 Order 属性改为某一字段。 5、 表格的相关属性 ReadOnly 属性改为:.T.表格只读,同时能够获得焦点: 表格只读,不能获得焦点: 不显示删除标记:Enabled 属性改为:.F.DeleteMark 属性改为:.F.删除表格中的列: 使表格处于编辑状态, 点击一下要删除列下方空白处 (注第 26 页共 20 页 意不要点到列标题了) ,然后按键盘“Delete” ,或者通 过生成器删除列。 修改列标题: 使表格处于编辑状态,点击一下该列的标头,然后在属 性窗口中修改 Caption 属性 表格加记录源: 修改表格的 RowSource 和 RecordSourceType 属性 给列加数据源: 使表格处于编辑状态,选中此列,修改其 ControlSource 属性 表格滚动条: ScrollBars 0-无,1-水平,2-垂直,3-两者都有列中数据格式: 修改表格列中的 Text 控件的 Format 属性,具体设置参 见课本 P98 修改列中控件: 选中该列,将要修改的控件添加到列中,再修改列的CurrentControl 属性为指定控件 无记录选择器列:RecordMark 属性改为:.F. 无表格线: 6、 GridLines 属性改为:.F.给按钮加上访问键解答:修改其 Caption 属性形如: “打开(\&O) ” 7、 使 XXX 对象自动获得焦点解答:命令:对象名.SetFocus 8、 表单常见考题 最大化按钮(MaxButton) 最小化按钮标题(Caption) (MinButton)不显示右上角几个按钮和左上角的图标第 27 页共 20 页ControlBox边 框样式 (BorderStyle) 始终在上(AlwaysOnTop) 顶层表单(DeskTop=.T.、ShowWindow=2) 自动居中(AutoCenter) 10.为表单新建属性、方法 解答:在表单设计器中,选择“表单”菜单,选择“新建属性”或“新建 方法程序” ,输入名称即可。 11.创建表单集,并在表单中创建新表单 解答:在表单设计器中,选择“表单”菜单,选择“创建表单集” ,则表单 集就建好了,在选择“表单”菜单,选择“添加新表单” ,就创建了新表单 了。 1.表单(Form): 默认对象名:Form1 等 属性 Caption Borderstyl e Width AlwaysOnTo p DeskTop 表单是否包含在 VFP 主 窗口中 ShowWindow 表单窗口的显示 0-在屏幕中,1-在顶层表单中,2作为顶层表单第 28 页共 20 页含义 标题 边框类型备注 在代码中其值为字符型 0-无边框,1-单线边框,2-固定对 话框,3-可调边框宽度 是否位于其他窗口之上 MinButton MaxBbutton CtrolBox WindowType Icon是否有最小化按钮 是否有最大化按钮 左上角是否有图标 表单是否为模式表单 修改表单标题栏上的图 标当两项同时为 F.时,则两个按钮都 不出现 同时右上角是否有按钮 0-无模式,1-模式MinHeight MinWidth表单的最小高度 表单的最小宽度2.列表框(ListBox):默认对象名:List1 等 属性 RowSourceT ype RowSource 数据源 含义 数据源类型 备注 常考的: 1-值, 2-别名, 3-SQL 语句, 6-字段 考点:RowSourceType:6-字段,列 表框要求显示 kcdh,kcm 两列信息, 则 RowSource:kc.kcdh, kcm ListCount Value BoundColum n 列表数据项的数目 列表框的值 包含多列的列表框中, 哪一列绑定到该控件的 Value 属性上 ColumnCoun t第 29 页共 20 页运行时,列表框中的内容。列表框包含列的个数常考 ColumnLine s ControlSou rce显示或隐藏多列间的分 隔线 字段源 列表框绑定到某一字段3.组合框(ComboBox):默认对象名:Combo1 等 属性 Style 含义 备注控制组合框是否允许用户 0-下拉组合框(运行后可以输入数 输入数据 据,即具有文本框功能) ,1-下拉列 表框(运行后不能输入数据)……其余与列表框相同4.命令按钮(CommandButton):默认对象名:Command1 等 属性 Caption Name Default Cancel Enabled Picture 含义 标题 对象名 默认按钮 取消按钮 是否能用 按钮上显示的图片 运行后是否响应“回车键” 运行后是否响应“ESC”键 备注 命令按钮上显示的内容5.页框(PageFrame) :默认对象名:Pageframe1 等 属性 PageCount 含义 页面个数 备注 增加一个页面,就是通过增加该属 性的值第 30 页共 20 页 Caption ActivePage Pages Value每个页面的标题 页框中活动的页码 页框中各个页 值(其值为数值型) 页框的值表示,选定的是第几个页 面6.命令按钮组(CommandGroup) :默认对象名:Commandgroup1 等 属性 BorderStyl e ButtonCoun t Caption Value 每个按钮的标题 具体选定的第几个命令 其值为数值型 按钮 ButtonCoun t ControlSou rce 7.选项按钮组(OptionGroup) :默认对象名:Optiongroup1 等 属性 BorderStyle ButtonCount 含义 边框类型 命令按钮个数第 31 页共 20 页含义 边框类型备注命令按钮个数选项按钮个数增加按钮,就是通过增加该属性的 值数据源绑定到某一字段备注 Caption Value每个按钮的标题 具体选定的第几个命 其值为数值型 令按钮ButtonCount选项按钮个数增加按钮,就是通过增加该属性 的值每个选项按钮的 按钮是否被选种 Value 8.表格(Grid) :默认对象名:Grid 1 等 属性 含义0-未选种,1-选种备注 常考的:0-表,1-别名,3-SQL 说明ReacordSource 记录源类型 Type ReacordSource 记录源 ReadOnly DeleteMark 只读 是否显示删除标记 列 ColumnCount 列的个数同时可以获得焦点增加一列,就是通过增加该属性的 值RecordMark是否显示记录选择 器列GridLines ScrollBars有无表格线 表格滚动条 0-无,1-水平,2-垂直,3-两者都 有第 32 页共 20 页 9.计时器(Timer) :默认对象名:Timer1 等 属性 Enabled Interval 含义 是否废止 时间间隔(毫秒) 备注10.微调控件(Spinner) :默认对象名:Spinner1 等 属性 含义 备注SpinnerHight 允许鼠标输入的最大 Value 值SpinnerLowVa 允许鼠标输入的最小 lue 值KeybordHighV 允许键盘输入的最大 alue 值KeybordLowVa 允许键盘输入的最大 lue Value 值 值 运行时,控件中的内容。考点:默 认值的设置, 在设计器中, Value 为 输入的值。 Increment 步长 点击上下箭头每次改变的值,默认 值为 1 Alignment 文本对齐方式 0-左,1-右,2-中间,3-自动(默 认) 11.复选框(CheckBox) :默认对象名:Check1 等第 33 页共 20 页 属性 Value Caption含义 值 复选框显示的内容备注 .F.、.T.、.NULL.(0、1、2)12.文本框(TextBox) :默认对象名:Text1 等 属性 Value 含义 值 备注 运行时,列表框中的内容。考点:默认 值的设置,在设计器中,为 Value 输入 的值。 PassWord 输入字符显示的 常考的: “#”“*” , ,在代码中其值为字 内容 ReadOnly Enabled Alignment 只读 是否废止 文本对齐方式 符型 同时可以获得焦点 不能获得焦点,数据不可修改 0-左,1-右,2-中间,3-自动(默认)13.编辑框(EditBox) :默认对象名:Edit1 等 Value 值 运行时,列表框中的内容。考点:默认 值的设置,在设计器中,为 Value 输入 的值。 Alignment ScrollBars 文本对齐方式 表格滚动条 0-左,1-右,2-中间,3-自动(默认) 0-无, 2-垂直14.标签(Label) :默认对象名:Label1 等 属性 Caption 含义 显示的内容第 34 页共 20 页备注 BackStyle AutoSize背景类型 是否可以自动调整大 小0-透明,1-不透明WordWrap是否可以自动换行15.线条控件(Line) :默认对象名:Line1 等 属性 含义 备注BorderWidth: 线宽 BorderStyle: 线型 LineSlant: 线倾斜方向16.形状控件(Shape) :默认对象名:Shape1 等 属性 Curvature FillStyle 含义 显示的图形样式 填充形状的图案 三维或平面 备注 0-矩形,1~98 圆角,99-椭圆SpecialEffec 控件的不同样式选项 t 13. 编程部分 (一)几个概念(1)属性:定义对象的特征或某一方面行为,是由类所决定的(可以定义 新属性) 。属性的值可在设计阶段或运行阶段进行设置(只读属性例外,部 分属性只能在执行阶段设置) 。 (2)事件:是由对象识别的一个动作,用户可为其编写处理代码,每当事 件产生,便执行相应的事件代码。用户不能新建事件。第 35 页共 20 页 (3)方法:是由对象所执行的一个动作,是与对象相关联的过程,通常在 事件代码中被调用,用户可新建新方法。 (二)属性、事件、方法的调用 (1) 设置对象属性 &引用对象&.&属性&=&值& 例: thisformset.form1.text1.value=date() thisformset.form1.text1.backcolor=rgb(192,192,192) thisformset.form1.text1.fontname=”黑体” 可简化为: With thisformset.form1.text1 .value=date() .backcolor=rgb(192,192,192) .fontname=”黑体” Endwith (2) 调用方法 &引用对象&.&方法& 例: thisform.release (或 release thisform 特例) thisform.text1.mandgroup1.setall(“enabled”,.f.) 方法第 36 页共 20 页&& 带参数的 (3) 对象引用 this thisform parent activeform activecontrol _screen _vfp (三)事件代码 根据题目要求编写,其中包括对象引用、设置对象属性、调用对象事 件方法、程序结构、常用系统函数等。 (四)其他 1. 控件分类 1)根据控件与数据的关系划分:绑定型控件和非绑定型控件 ReacordSource 属性:用于指定与表格控件相绑定的数据源。 RowSource 属性:用于指定与列表框控件香绑定的数据源 ControlSource 属性:用于指定与其他控件(除表格和列表框外)相绑 定的数据源。 2)根据能否包含其他控件划分:容器类控件和非容器类控件 在容器类控件中添加、设置其他控件,要首先编辑容器类控件。 第五章、程序改错 程序改错题,一般有 1~3 个错误,个别的可能有多个错误,最常见的第 37 页共 20 页DDDD当前对象 DDDD当前表单(当前对象所在地表单) DDDD当前对象的直接容器对象 DDDD当前活动表单 DDDD当前活动控件 DDDD屏幕对象 ――――VFP 应用程序对象 是 2 个错。在做这类型的时候,一般分为两种方法:一是:可以通过在电 脑上的调试,找出简单的错误,例如:程序结构错误、函数错、变量名错、 数据类型不匹配等。二是:对于一些复杂错误,要读懂程序,再结合运行 结果找出错误。 做题步骤: 1) 软盘中项目 test 中 “代码” 选项卡中的 “程序” 下面有一个 “pcode” , 首先点击“修改”按钮,打开这个文件的编辑窗口。不需要新建程序 文件。 2) 将程序正确无误的输入到编辑窗口,要保证和试卷上的一样,否则 将会出现更多的错误。录入时要一边录入,一边读,也可以找出一些 简单错误。下面介绍一点程序录入的注意事项:① 在程序录入中, 一般情况下:程序结构的关键字、函数名、变量名的第一个字母为大 写,其它为小写字母。② 为防止比较长的变量名的前后不一致,可 以采用复制粘贴的方法,这样可以减少不必要的错误。③ 程序结构 的格式(结构入口和出口在同一列)一定要按试卷上的,这样用利于 以后的改错。 VFP 程序中的标点符号要求一定是英文半角, ④ 所以要 注意中英文的切换,否则标点符号会出错。 3) 保存程序,运行调试,找出简单错误,对于复杂错误,要耐心读程 序,结合运行结果找出错误。当然对于那些程序底子弱的同学,要学 会“取舍” ,找出简单错误,就可以了,要把精力放在稳拿分的题目 上,不要把时间都耗在复杂的错误中。 在程序改错题中,不向前面的题目,考点基本上不会超出范围,只要第 38 页共 20 页 练习熟练就会了,程序改错题不仅要多练,还要有对程序的悟性,即对程 序的理解能力。下面就简单介绍几种常见的错误。1.程序结构错误 首先要熟练掌握程序结构:分支(选择)结构:IF…ELSE…ENDIF、DO CASE…ENDCASE, 循环结构: FOR…ENDFOR、 WHILE…ENDDO、 DO SCAN…ENDSCAN。 函数定义:FUNCTION…ENDFUNC,过程定义:PROCEDURE…ENDPROC。程序结 构的搭配是固定的,不能随便配,并且程序结构有入口,就会有出口,而 且它们在同一列,就根据这些,对于掌握熟练的同学,在程序录入的时候 就可以找出结构错误。而对于不熟的同学,也不要紧,可以读程序找错, 这里的“读” ,不是读懂程序,而是读程序结构,看结构的搭配。也可以通 过运行找错。 例如: 下列程序的功能是找出 1000 之内所有的完数,并统计它们的个数。完 数是指:数的各因子之和正好等于该数本身(例如 6 的因子是 1、2、3,而 1+2+3=6,所以 6 是完数) 。 CLEAR nCount=0 FOR n1=1 TO 1000 m=0 FOR n2=1 TO n1-1 IF n1/n2=MOD(n1, n2)第 39 页共 20 页 m=m+n2 ENDIF ENDIF IF n1=m ?n1 nCount=nCount+1 ENDIF ENDFOR WAIT WINDOWS&完数的个数为&+STR(nCount) 解答: 录入程序后,运行调试出现如下错误:如出现“嵌套错误” ,就说明程序结构有错,仔细 查看, 发现内循环 FOR 的出口出错, 应该改成 “ENDFOR” 。 修改后,在运行如右图所示,则没有简单的错误,只能通过读懂程序, 再结合运行结果找错误。第 40 页共 20 页 2.函数错 函数错可以有很多种情况,因为对于一个函数来说要掌握的是:函数 功能、函数名、函数参数个数、函数每个参数的类型、那些参数是可以省 略的、函数返回结果的类型。因此函数出现的错误可以总结如下:函数用 错、函数名错、函数参数太少、函数参数太多、函数参数类型错误。 【例 1】 :下列程序的功能是:根据给定出生日期,打印出 60 岁前有哪个生 日是在星期六或星期日,并分别统计在星期六和星期日过生日的次数。这里出现“函数参数的值、类型或数目无效” ,由于变量 cEBirth 是字 符型,而函数 dtoc( )参数的类型是日期型,所以变量 cEBirth 类型错误, 再看变量 dEBirth, “nWeek=dow(dEBirth)” ,dow( )函数是要计算某个日期 在一星期中的第几天。说明变量 dEBirth 是日期型,所以错误行是要将字 符型转换成日期型,那么 dtoc( )就改为 ctod( )即可。第 41 页共 20 页 下面的错误要读懂程序来找错。【例 2】 下列程序的功能是:计算当前日期是哪一学年哪一学期。学年是 : 从下半年 9 月开始算起的,每年的 9 月到下一年的 1 月为第 1 学期,下一 年的 2 月到 8 月为第 2 学期。例如,2004 年 9 月至 2005 年 1 月称为“2004 ―2005 学年第 1 学期” ,2005 年 2 月至 2006 年 8 月称为“ 学年 第 2 学期”函数 month( )的值的类型是数值型,所以变量 nCuMonth 的类型为数值型, 而 between( )函数的三个参数类型应相同,后两个类型为字符型,第一个 为数值型,因此参数类型不匹配,应该为:between(nCuMonth, 2 ,8) 【例 3】 :第 42 页共 20 页 同样是函数错误,函数 LTRIM( )是删除字符串的首部空格,参数为字符型, 而变量 I 是数值型的,所以要将变量 i 转换成字符型,即用函数 STR( )。 3.数据类型不匹配 数据类型不匹配主要是由于表达式的错误,在一个表达式中,运算符 前后的操作数的数据类型一定要匹配,否则将出错。 【例】 :第 43 页共 20 页 由出错行知,变量 nSum 和变量 c1 的类型不相同,由程序第一行知,变量 nSum 的类型为数值型,由程序第三行知,变量 c1 为字符型,因此就要将变 量类型统一,即将 c1 转换为数值型,用 VAL( )函数。 说明:第二题~~第五题的保存问题:点击常用工具栏上的“保存”按钮, 或在运行前系统的提示: “是否保存?”点“是”按钮。第 44 页共 20 页
更多搜索:
All rights reserved Powered by
copyright &copyright 。文档资料库内容来自网络,如有侵犯请联系客服。

我要回帖

更多关于 vfp 字段排序 的文章

 

随机推荐