欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    FoxProforWindows程序设计第8章课件.ppt

    • 资源ID:1284792       资源大小:269.45KB        全文页数:65页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    FoxProforWindows程序设计第8章课件.ppt

    8.1 常用的系统函数8.2 数据库的统计和计算,第 8 章 系统函数和数据库的计算,返回主目录,8.1 常用的系统函数第 8 章 系统函数和数据库的计,第8章系统函数和数据库的计算,8.1常用的系统函数 8.1.1数学运算函数 1. 取绝对值函数() (说明: 表示函数的参数为数值型, 函数返回值是数值型, 下同。) (1) 函数格式: ABS(数值表达式) (2) 函数功能: 取数值表达式计算结果的绝对值。 (3) 举例:,第8章系统函数和数据库的计算8.1常用的系统函数,?EXP(1.0000)&返回值是 e (近似2.7183) X=EXP(-12.000) &返回值是 e 的-12次方的计算结果 (4) 说明: 该函数返回值的精度, 与给出的自变量的精度有关, 例如: ?EXP(-12) &参数给出小数部分是位, 所以函数返回值是0 ?EXP(-12.000000) &参数给出为小数, 所以函数返回值是0.000006 5. 自然对数函数() (1) 函数格式: LOG(数值表达式) (2) 函数功能: 求数值表达式结果值的自然对数(即以e为底的对数)。,?EXP(1.0000)&返回值是 e (近似2.7183,(3) 举例: ?LOG(2.7183) &显示函数返回值是近似1的数 0.9999 ?LOG(EXP(2.00) &函数返回值是 2, 因为LOG()和EXP()互为反函数 (4) 说明: 另有常用对数LOG10(数值表达式), 是计算以10为底的对数。 6. 四舍五入函数() (1) 函数格式:ROUND(数值表达式1,数值表达式2) (2) 函数功能: 对数值表达式1的值, 用数值表达式2指定保留小数的位数。,(3) 举例: ,(3) 举例: ?ROUND(1/3,2*3) &显示函数返回值 0.333333 ?ROUND(LOG10(123),4) &显示函数返回值 2.0899 7. 求模函数() (1) 函数格式: MOD(数值表达式1,数值表达式2) (2) 函数功能: 返回数值表达式1除以数值表达式2的整余数。 (3) 举例: ?MOD(123,10) &显示函数返回值 3 ?MOD(100,10) &显示函数返回值 0,(3) 举例: ,(4) 说明:数值表达式1和数值表达式2的值必须是同为正数或负数,若不同号,则返回值不能解释为余数。 例如: ?MOD(7,-3) &函数返回值是 -2 ?MOD(-7,3) &函数返回值是 2 ?MOD(-7,-3) &函数返回值是 -1HT5SS 函数MOD()和运算符的计算功能完全相同。 8. 产生随机数函数() (1) 函数格式: RAND(数值表达式) (2) 函数功能: 返回一个(0,1)区间的随机数, 所返回随机数的精度为系统的默认设置。 如果给出一个数值表达式作为本函数的参数, 每当该表达式的值变化一次,,(4) 说明:数值表达式1和数值表达式2,才能产生一个新的随机数。 (3) 举例: ?RAND() &显示(0,1)区间的随机数, 按默认精度为2位小数 SET DECIMALE TO 4 &设置精度为位小数 ?RAND(1) &返回 (0,1) 区间的随机数, 按设置应为4位小数 ?RAND(1) &因为参数为常量1, 所以产生和上面相同的的随机数,才能产生一个新的随机数。 ,例 8.1 产生(10,100)区间的个随机整数。 程序如下: CLEAR STOR 0 TO x DO WHIL x10 &为摈弃小于等于的那些整数? m &输出一个符合要求的整数 x=x+1 &只有输出一个满足要求的数后计数器x才加 ENDIF ENDDO,例 8.1 产生(10,100)区间的个随机,8.1.2三角函数 1. 返回值的函数() (1) 函数格式: PI() (2) 函数功能: 按当前设置的精度, 返回值(3.141 592 6)。 (3) 举例: SET DECIMALE TO 3&设置显示位小数 ?PI() &按当前设置的精度, 显示的值为3.141 ?ROUND(PI(),10) &按四舍五入函数指定的精度显示3.1415926536,8.1.2三角函数,2. 正弦函数() (1) 函数格式: SIN(数值表达式) (2) 函数功能: 返回数值表达式值的正弦值, 规定角的单位为弧度。 (3) 举例: ?SIN(1.23) &函数返回1.23弧度的正弦值0.94 ?ROUND(SIN(1.23),6) &按四舍五入函数指定的精度返回正弦值 仿此, 可以得知余弦函数COS()、 正切函数TAN()、 反正弦函数ASIN()、 反正切函数ATAN()的用法。 ,2. 正弦函数(),3. 度转弧度函数() (1) 函数格式: DTOR(数值表达式) (2) 函数功能: 数值表达式值是以度为单位的, 函数返回其弧度数。 (3) 举例: ?DTOR(1.23) &显示1.23度的弧度数0.02 另有弧度转换为度的函数为RTOD()。 ,3. 度转弧度函数(),8.1.3 字符串处理函数 1. 替换函数 (1) 函数格式: &字符型变量 (2) 函数功能: 取出字符型变量中存储的数据。 (3) 说明: 只能对字符型变量使用替换函数。 替换函数是经常使用的函数, 但是初学者经常出现使用不当的情况。 所以, 我们对替换函数使用的场合及其使用效果作如下说明: 当字符型变量出现在应当使用字符型常量的位置上时, 必须用替换函数对字符型变量进行替换。例如,下面的程序段:,8.1.3 字符串处理函数,USE D:rsh INDEX ON 姓名 TO D:inxm ACCEPT 请输入需要查找的职工的姓名: TO aa &例如输入李磊 FIND &aa 在上面的程序段中,变量AA存储了字符串“李磊”, 如果用FIND命令查找当前数据库中姓名为“李磊”的职工, 根据FIND命令的使用规则, 被查找的应当是一个字符型常量, 不能直接使用变量名,所以这里必须对变量AA使用替换函数。 可见, 使用字符型变量的替换函数值,等同于使用变量中存储的字符串。 ,USE D:rsh,字符型变量使用替换函数后, 可以作为字符型常量的一个组成部分。 这种情况下,有时需要在变量名和字符串中的其它字符之间加一个圆点分隔符“.”。 例如: AA=李磊 ? &AA.已经找到&显示: 李磊已经找到 ? 已经找到&AA &显示: 已经找到李磊 可见, 如果替换函数出现在字符型常量的后面, 就没有必要使用圆点分隔符了,因为此时的函数符号(&)起了分隔符的作用。 在显示或打印固定格式的表格时,如果表格的标题中有部分内容是不断变化的,则可在标题字符串中使用替换函数。 请看下面的程序段: ,字符型变量使用替换函数后, 可以作为字符型常量,ACCEPT 请输入单位名称: TO mc&输入表格标题中的可变部分 ? &mc.的人员名单 &输出表格标题 当把字符型变量中存储的字符串作为一个标识符或一个标识符的一部分时,需要对字符型变量使用替换函数。 例如, 下面都是正确打开数据库文件RSH.DBF的命令: AA=r BB=s CC=h USE D:&AA.sh&等同于 USE D:rsh,ACCEPT 请输入单位名称: TO,USE D:r&BB.h &等同于 USE D:rsh USE D:&AA&BB&CC &等同于 USE D:rsh 把存储数字字符的字符型变量作为数值变量使用时, 需要对这样的字符型变量使用替换函数。 例如: AA=2&变量AA是存有数字字符的字符型变量 BB=3 &变量BB是存有数字字符的字符型变量 ?SIN(&AA+&BB) &因&AA+&BB=5, 故输出弧度的正弦值: -0.96,USE D:r&BB.h &等同于 USE,注意, 如果字符型变量AA、 BB存储的不是数字字符, 则计算机把替换函数的返回值视为变量名, 除非事先对变量中存储的字符串作为变量定义并赋值, 否则系统显示“变量没有找到”的出错信息。例如: AA=abc BB=xyz ?&aa+&bb&屏幕显示出错信息(变量abc没有找到) abc=11 xyz=22 ?&aa+&bb &但是定义变量abc、 xyz并赋值后不再出错, 屏幕显示33,注意, 如果字符型变量AA、 BB存储的不是, 当字符型变量中存储的是一个符合语法规则的表达式, 在命令中把该变量作为表达式使用时, 应当对该变量使用替换函数。 例如下面的程序段: USE D:rsh AA=.T. AA=AA+.and. 工资500 AA=AA+.and. 性别=男 DISPLAY FOR &aa AA=.T. AND 性别=女 AND 工资500 OR 技术等级8 LOCATE FOR &AA, 当字符型变量中存储的是一个符合语法规则的,这里, FOR短语中的条件表达式, 如果直接使用变量AA, 因为系统认为AA是一个逻辑型变量名, 所以会出现错误。如果对变量AA使用替换函数, 就等同于使用变量AA存储的那个逻辑表达式,就不会出错了。 在应用程序开发中, 经常用这种向字符型变量追加查询条件的方法, 随机构成查询用的复合条件表达式。 2. 子串检索函数(、 ) (1) 函数格式: AT(字符型表达式1,字符型表达式2,数值型表达式3) (2) 函数功能: 当字符型表达式1是字符型表达式2的子串时, 返回字符型表达式1在字符型表达式2中的起始位置。 ,这里, FOR短语中的条件表达式, 如果直接,(3) 举例: 例 8.2 USE D:rsh m=AT(李, 姓名) &如果当前记录的姓名字段值中包含“李”, 则返回, 否则返回 IF m=1 ?当前记录中的职工姓李 ELSE ?当前记录中的职工不姓李 ENDIF,(3) 举例: 例 8.2,(4) 说明: 字符型表达式1和字符型表达式2可以有一个或两个都是型的字段; AT函数的参数中, 如果选择数值型表达式3, 设数值型表达式3的值为, 则函数只返回子串在母串第次出现时, 在母串中的起始位置数。 例如: AA=RR BB=AB RR CD RR EF RR ?AT(AA,BB,3) &子串RR在母串中第次出现的起始位置是16 3. 取子串函数(),(4) 说明: ,(1) 函数格式: SUBSTR(字符型表达式,子串起始位置,所取子串的字符个数) (2) 函数功能: 在字符型表达式(母串)中, 从指定的起始位置开始, 截取子串。 如果选择了所取子串的字符个数, 则按指定的长度返回子串; 如果不选择所取子串的字符个数, 则返回从指定位置开始到母串结尾的字符串。 (3) 举例: AA=ABCDEFGHIJK,(1) 函数格式: ,BB=SUBSTR(AA,4) CC=SUBSTR(AA,4,2) ? BB,CC& BB输出DEFGHIJK, CC输出DE DD=SUBSTR(AA,4,20) &指定的子串长度比可截取的长度长时,只能取到串尾 SUBSTR函数是经常使用、 非常重要的一个字符串处理函数, 请看下例。 例 8.3在某单位人事管理系统中, 职工代码设计时规定: 前两位是处级单位的识别码,中间两位是科级单位的识别码, 后两位是职工在该科的顺序号。设职工代码在数据库中的字段名为DM, 则: ,BB=SUBSTR(AA,4),AA=SUBSTR(DM,1,2)&取出该职工所在处的代码 BB=SUBSTR(DM,3,2) &取出该职工所在科的代码 INDEX ON SUBSTR(DM,1,2) TO DWPL &按处代码索引, 使记录按处排列 仿此, 在销售管理中的商品代码、 在库房管理中的物资代码在其代码设计时, 一般都应遵循下列两点: 代码字段的类型要用字符型, 以便能截取其中若干个字符。 代码应分为若干个码段, 各个码段应有见码识意的作用。 ,AA=SUBSTR(DM,1,2),4. 删除串尾空格函数() (1) 函数格式: TRIM(字符型表达式) (2) 函数功能: 删除字符型表达式中尾部空格。 (3) 举例: AA=ABC BB=XYZ ? AA,BB&输出的ABC和XYZ之间有个空格 AA=TRIM(AA) &删除变量AA中存储的字符串的尾空格后, 再存入AA ? AA,BB &输出为ABCXYZ, 中间再无空格了,4. 删除串尾空格函数(),另外还有, 删除字符串右空格的函数和删除字符串左空格的函数: RTRIM (字符型表达式) LTRIM (字符串表达式) 显然, RTRIM()函数和TRIM()函数的功能完全相同。 因为数值型常量是右对齐输出的, 有时为了使数值型常量输出的格式紧凑、 整齐, 要把数值变字符串后, 再删除串中的左空格, 请看下例。 例 8.4请在一行内输出15个(0,10区间中的随机整数。 分析: 一个数值输出时总是占个字符的栏位, 屏幕一行仅有个字符的栏位。 如果我们不设法将每个数的输出栏位减少, 就达不到一行内输出个数的要求。,另外还有, 删除字符串右空格的函数和删除字符,CLEAR n=0 DO WHIL n15 ?LTRIM(STR(INT(RAND()*11)+ &请读懂这个字符型表达式 n=n+1 ENDDO 5. 计算字符串长度的函数() (1) 函数格式: LEN(字符型表达式) (2) 函数功能: 返回字符型表达式的字符串中字符的个数(长度)。 注意, 一个全角字符的长度是。 ,CLEAR,(3) 举例: AA=中国ABC ?LEN(AA)&因为一个汉字按两个半角字符计算, 所以输出 6. 重复给定的字符串的函数() (1) 函数格式: REPLICATE(字符型表达式,数值型表达式) (2) 函数功能: 返回一个字符串, 该字符串的构成是: 对字符型表达式给出的字符串, 重复数值型表达式给出的次数。此函数常用于屏幕显示格式或打印格式的设计。,(3) 举例: ,(3) 举例: ABC=REPLICATE(-,15*2) &把由30个减号组成的字符串赋给变量ABC ?ABC &屏幕显示一条横线(由30个减号构成) ?REPLICATE(*,15) &屏幕显示一条由30个星号组成的横线 7. 生成空格字符串的函数() (1) 函数格式: SPACE(数值型表达式 (2) 函数功能: 返回一个字符串, 该字符串由空格字符组成, 所包含的空格字符数由数值型表达式指定。 ,(3) 举例: ,(3) 举例: USE D:rsh abc=SPACE(LEN(姓名)&字符串中的空格数同字段姓名的宽度 mXM=abc &定义并初始化变量mXM为一空字符串 xyz=REPLICATE(SPACE(5),10) &变量xyz存储了50个空格字符,(3) 举例: ,8.1.4 日期、 时间函数 1. 返回系统时间函数(TIME() 表示时间的数据格式是 时:分:秒。 2. 返回系统日期函数(DATE() 按设置的格式显示系统日期, 年、 月、 日的分隔符是“-”。,8.1.4 日期、 时间函数,8.1.5 类型转换函数 1. 英文字母小写转换为大写的函数() (1) 函数格式: UPPER(字符型表达式) (2) 函数功能: 将字符串中的小写字母一律改成大写字母。 (3) 举例: 例 8.4在程序设计中, 有时需要询问用户是否修改、是否继续输入等问题, 一般是请用户回答Yes或No的第一个字母, 然后程序判断用户的回答并转入相应的处理。 但是, 用户回答的可能是小写字母, 也可能是大写字母。 这样, 程序判断起来就比较麻烦。 因此, 最好使用UPPER函数将用户的回答统一转换成大写字母。例如: WAIT 请回答(Y/N) TO yn,8.1.5 类型转换函数,IF UPPER(yn)=Y 程序段 ELSE 程序段 ENDIF 还有一个大写字母转换成小写字母的函数: LOWER(字符型表达式)。 2. 字符串转换成日期型数据的函数() (1) 函数格式: CTOD(字符型表达式) (2) 函数功能: 将形如yy/rr/nn格式的字符串转换成日期型数据。 ,IF UPPER(yn)=Y,(3) 举例: AA=01/01/99&变量AA是字符型 BB=CTOD(AA) &变量BB是日期型 DISP MEMO &验证内存变量AA、 BB的类型 对日期型表达式可以用 DTOC(日期型常量或变量)转换成字符串。 3. 数值型数据转换成字符型数据的函数() (1) 函数格式: STR(数值型表达式,长度,小数位数) (2) 函数功能: 将数值型表达式中的数字转换成字符型常量。 如果不选择长度, 系统缺省值是; 如果不选择小数位数,系统把原来小数部分按四舍五入取整。,(3) 举例: ,(3) 举例: AA=1234.5678 ?STR(AA)&显示1235, 因为小数部分四舍五入 ?STR(AA,3) &显示*, 因为长度指定了位, 容纳不下整数部分 ?STR(AA,5,2) &显示1235, 因为长度包括小数点, 指定小数位无效 ?STR(AA,15,2) &显示1234.56, 长度足够, 但是只指定了两位小数, &按多余的长度在输出数据前面补空格,(3) 举例: ,4. 字符型转换成数值型函数() (1) 函数格式: VAL(字符型表达式) (2) 函数功能: 将字符型表达式中的数字转换成数值型常量。 如果字符串的前面或中间有非数字符号,因为无法转换, 返回。 如果字符串后面有非数字符号,则只返回前面的数字符号转换成的数值。 (3) 举例: AA=1234.5678 ?VAL(AA)&输出数值1234.5678,4. 字符型转换成数值型函数(),AA=1234abc ?VAL(AA) &输出数值1234 AA=12abc34 ?VAL(AA) &输出0,AA=1234abc,8.1.6 测试函数 1. 测试数据库记录指针是否指向文件尾标记的函数() (1) 函数格式: EOF(工作区号 | 别名) (2) 函数功能: 测试数据库指针是否指向了数据库文件的尾标记。 如果指向了文件的尾标记,则函数返回的逻辑值为.T., 否则返回的逻辑值为.F.。 对非当前工作区中的数据库进行测试时, 使用非当前工作区的别名或工作区号。 (3) 举例: USE D:jydj LIST&执行LIST命令后,记录指针指向了数据库的尾标记 ?EOF() &显示 .T.,8.1.6 测试函数,如果测试非当前工作区中数据库文件的尾标记, 则EOF()函数指定所测工作区号或工作区的别名。 例如: SELE 1 USE D:dzxx SELE 2 USE D:jydj LIST&执行LIST命令后, 记录指针指向了数据库文件的尾标记 ?EOF() &显示.T. ?EOF(2) &显示.F.,测试号工作区中的数据库指针,如果测试非当前工作区中数据库文件的尾标记,,在对数据库进行查询时,往往利用EOF()函数测试要查找的记录是否找到。 因为所有的数据库查询命令, 都是驱动数据库记录指针指向所找到的记录,如果没有找到要查找的记录, 则在记录指针历遍所有记录后,必然停留在数据库文件的尾标记上。 例如, 假设数据库RSH.DBF中没有姓名为“常树忠”职工, 现在要从该数据库中查找这名职工, 其程序段如下: USE D:rsh INDEX ON 姓名 TO D:inxm LOCATE FOR 姓名=常树忠&也可以用FIND、 SEEK命令查询 IF EOF() &如果函数EOF()的返回值是.T., 则没找到,在对数据库进行查询时,往往利用EOF()函数,? 没有找到! ENDIF 如前所述, 当对数据库中的记录作逐条处理时, 常以逻辑表达式: NOT EOF()作为循环条件, 它直观的表示: 如果没有依次把所有的记录处理一遍, 就继续循环。 例如, 在数据库RSH.DBF中,凡是工资小于500元的职工, 增加50元, 其程序段如下: USE D:rsh DO WHIL NOT EOF()&没有依次对数据库记录处理完就执行循环体 IF 工资500 REPLACE 工资 WITH 工资+50,? 没有找到!,ENDIF SKIP &记录指针下移, 最终能使NOT EOF()达到假值 ENDDO 2. 测试数据库记录指针是否指向文件首标记的函数() (1) 函数格式: BOF(工作区号 | 别名) (2) 函数功能: 测试数据库记录指针是否指向了文件首标记。如果是首标记, 则返回逻辑值为.T.; 如果没有指向首标记,返回逻辑值.F.。 对非当前工作区中的数据库进行测试时, 使用非当前工作区的别名或工作区号。 (3) 举例: USE D:jydj GO TOP&记录指针指向了数据库的第一条记录,ENDIF,?BOF() &第一条记录并不是数据库文件的首标记, 返回 .F. SKIP -1 &从数据库第一条记录再往前移动记录指针 ?BOF() &返回 .T. 如果测试非当前工作区中数据库文件的首标记, 则EOF函数指定所测工作区号或工作区的别名。 另外,读者应当了解EOF()、 BOF()函数在一些特殊情况下的返回值,以免发生误操作。例如,下面的程序段中, 揭示出一个空数据库文件EOF()、 BOF()函数返回值的变化: USE D:rsh COPY TO D:rsh3 STRU &生成和当前数据库结构相同的新数据库文件,?BOF() &第一条记录并不是数据库文件的首标,USE D:rsh3 &打开刚生成的数据库, 注意它是一个空数 据库 ?EOF() &EOF()返回值是.T. ?BOF() &BOF()返回值是.T. BROW &对空数据库进行浏览操作 ?EOF() &EOF()返回值仍然是.T. ?BOF() &而BOF()返回值却是.F. 3. 获取数据库当前记录号的函数() (1) 函数格式: RECNO(工作区号 | 别名),USE D:rsh3 &打开刚生成的数,(2) 函数功能: 返回数据库的记录指针指向的记录号。 对非当前工作区中的数据库进行测试时, 使用非当前工作区的别名或工作区号。 (3) 举例: USE D:jydj ?RECNO()&数据库刚打开时记录指针指向第一条, 故返回 GO 3 &将记录指针指向第三条记录 ?RECNO() &返回 注意: 当记录指针指向数据库的首标记时, 该函数的返回值仍然是 ; 当记录指针指向尾标记时,该函数返回的值是数据库最后的一条记录的记录号加 。,(2) 函数功能: 返回数据库的记录指针指向,USE D:dzxx GO TOP&记录指针指向第一条记录 ?RECNO() &显示 SKIP -1 &记录指针从第一条记录再上移 ?BOF() &显示 .T. ?RECNO() &所获取的记录号仍然是 LIST &执行LIST命令, 使记录指针指向数据库文件的尾标记 ?EOF() &显示 .T. ?RECNO() &可见, 所获取的记录号比数据库实际存储的记录数多,USE D:dzxx,4. 查找命令是否找到数据库记录的测试函数() (1) 函数格式: FOUND(工作区号 | 别名) (2) 函数功能: 测试一些数据库查找命令(FIND、 SEEK、 LOCATE及CONTINUE)是否查找成功。 如果找到符合条件的记录, 则返回 .T., 否则返回 .F.。 (3) 举例: USE D:dzxx INDEX ON 姓名 TO D:inxm FIND 克林顿 ?FOUND() &没有找到, 返回 .F. 显然, 从数据库中按指定的条件查找记录时, 用EOF()函数测试和用FOUND()函数测试查找效果是一样的。 ,4. 查找命令是否找到数据库记录的测试函数(,5. 测试当前记录是否是逻辑删除记录() (1) 函数格式: DELETED(工作区号 | 别名) (2) 函数功能: 测试数据库的当前记录是否有逻辑删除标记。 如果有, 则返回逻辑值.T.;如果没有,则返回逻辑值 .F.。 对非当前工作区中的数据库进行测试时, 使用非当前工作区的别名或工作区号。 (3) 举例: USE D:jydj DELE&逻辑删除当前记录 ?DELETED() &显示.T., 表明当前记录是被逻辑删除的记录,5. 测试当前记录是否是逻辑删除记录(),6. 获取屏幕上当前光标所在行的函数() (1) 函数格式: ROW() (2) 函数功能: 返回屏幕上当前光标所在行的行数。 (3) 举例: USE D:jydj LIST ?ROW() 如果要获取当前打印机的打印头所在的行数, 则使用函数PROW()。 7. 获取屏幕上当前光标所在列的函数() (1) 函数格式: COL(),6. 获取屏幕上当前光标所在行的函数(),(2) 函数功能: 返回屏幕上当前光标所在列的列数。 (3) 举例: USE D:jydj DISP ?COL() 如果要获取当前打印机的打印头所在的列数, 则使用函数PCOL()。 获取屏幕上当前光标的位置或获取打印机当前打印头的位置的函数, 是设计格式输入或格式输出时经常使用的函数(格式输入和输出将在第章介绍)。 ,(2) 函数功能: 返回屏幕上当前光标所在列的列数。 ,8. 获取当前按键键值的函数() (1) 函数格式: INKEY(数值表达式,字符型常量) (2) 函数功能: 当程序执行中遇到此函数, 在数值表达式指定的时间(秒)内,等待用户按键,并返回用户打入的首键所对应的键值。 打入的首键除了数字、字符键外,还包括复合键、功能键和鼠标的左键,各种按键返回的键值见附录B。 (3) 说明: 数值表达式用于指定等待用户按键的秒数。如果在指定的时间内没有按任何键, 则返回的键值为 ;如果表达式的值为 ,则无时限地等待用户按键; 如果缺省数值表达式, 则立即返回键值 。 ,8. 获取当前按键键值的函数(), 字符型常量的指定方式有: h返回首键的键值(默认值) m返回首键或鼠标左键键值(鼠标操作在先时, 返回鼠标左键键值151) 例如: aa=INKEY(10)&返回值视用户在 秒内有无按键及所按键的键值 bb=INKEY(0) &无时限等待, 直到用户按键后返回所按键的键值 ?INKEY(2,m) &返回 秒钟之内按下的首键键值或鼠标的左键键值, 字符型常量的指定方式有: ,例 8.5设计一个屏幕保护程序: 当用户在 60 秒钟内没有动键盘或鼠标时,清除当前屏幕,进入屏幕保护的显示状态。 在屏幕保护状态下, 如果用户触动键盘或鼠标, 则恢复原来的屏幕, 继续进行有关操作。 CLEAR SET COLOR TO BR+/W CLEAR FOR I=0 TO 24 I , 0 SAY repli(,20) &为举例, 作一个当前屏幕的画面,例 8.5设计一个屏幕保护程序: 当用户在,ENDFOR SAVE SCREEN TO S1 &当前屏幕保存到变量S1 R=0 C=1 M=0 IF INKEY(60)=0 &如果 60 秒内没有按键 SET COLO TO &恢复系统设置的屏幕颜色 CLEAR &用系统设置的颜色清除当前屏幕,ENDFOR,DO WHIL .T. &为了循环显示字符 M,C SAY &显示为屏幕保护设置的符号 R=R+1 C=MOD(R+2,79) IF INKEY(1)=0 &1 秒钟内没有按键,继续显示 M=MOD(R,24) CLEAR ELSE &如果有按键 RESTORE SCREEN FROM S1 &恢复进入屏幕保护前的屏幕,DO WHIL .T.,EXIT &退出屏幕保护的显示状态 ENDIF ENDDO ENDIF 程序中的语句“M,C SAY ”的功能是在屏幕的第M行、 第C列显示字符, 该语句将在第 11 章作详细介绍。,EXIT &退出屏幕,8.2 数据库的统计和计算,8.2.1 统计数据库的记录数 (1) 命令格式: COUNT TO 内存变量名 范围 FOR 条件 (2) 命令功能: 统计当前数据库中,在指定的范围内符合指定条件的记录个数。 (3) 说明: 如果不选择TO 内存变量名表, 则计算结果不被保存, 后面不能引用其计算结果。 ,8.2 数据库的统计和计算 8.2.1 统计数, 如果任何参数都不选择,则统计当前数据库中的所有记录数,且计算结果不被保存。 例 8.6统计数据库RSH.DBF中的记录数。 USE D:rsh COUNT TO abc1&统计数据库中的所有记录的个数 ?abc1 &显示统计结果 COUNT TO abc2 FOR 性别=男 &统计数据库中所有性别为男的记录 ?abc2 &显示统计结果, 如果任何参数都不选择,则统计当前数据库中,8.2.2对数值型字段值的计算 1. 计算数值型字段的代数和 (1) 命令格式: SUM 数值型字段名表 TO 内存变量名表 范围FOR 条件 (2) 命令功能: 当前数据库中, 凡是在指定的范围内符合指定条件的记录, 可计算指定的数值型字段的代数和, 并分别将计算结果依次存入指定的内存变量。 ,8.2.2对数值型字段值的计算,(3) 说明: 如果不选择TO 内存变量名表, 则计算结果不被保存, 后面不能引用其计算结果; 如果任何参数都不选择, 则当前数据库的所有数值型字段都能分别计算代数和, 且计算结果不被保存。 (4) 举例: USE D:rsh SUM 工资 TO gz1&计算全数据库中工资的总和 ?gz1 &显示计算结果 SUM 工资 TO gz2 FOR 性别=男 &计算性别为男的工资总和 ?gz2 &显示计算结果,(3) 说明: ,2. 计算数值型字段的平均值 (1) 命令格式: AVERAGE 数值型字段名表 TO 内存变量名表 范围 FOR 条件 (2) 命令功能: 对当前数据库, 可按指定的范围和条件分别计算出指定的数值型字段的平均值, 依次分别存入指定的内存变量。 (3) 说明: 如果不选择TO 内存变量名表, 则计算结果不被保存, 后面不能引用其计算结果; ,2. 计算数值型字段的平均值, 如果任何参数都不选择, 则当前数据库的所有数值型字段都能分别计算平均值,且计算结果不被保存。 (4) 举例: USE D:rsh AVERAGE 工资 TO gz ? gz 显然, 用SUM、 COUNT命令结合起来也能求出平均值, 即 AVERVAG=SUM/COUNT。 , 如果任何参数都不选择, 则当前数据库的所,8.2.3 分类统计 (1) 命令格式: TOTAL TO 生成的数据库名 ON 分类关键字 FIELDS 生成库的字段名表 范围 FOR 条件 (2) 命令功能: 可生成一个分类统计数据库。 凡是当前数据库中分类关键值相同的记录, 都合并成一条记录存入生成的分类统计库中, 这条记录中的数值型字段的值是所合并记录中数值型字段值的代数和,而其它类型字段的字段值,取用合并记录中第一条记录中的字段值。 ,8.2.3 分类统计,(3) 说明: 执行此命令前, 当前库必须是已按 分类关键字 排序或索引过的。 如果命令中不选择 生成库的字段名表 , 则生成库的结构同当前库。 如果不选择 范围 或 条件 , 则当前库中所有的记录都是统计对象。 例 8.7对于数据库RSH.DBF, 按技术等级分类统计工资额。 CLEAR USE D:rsh&打开操作对象库 SORT TO D:rshFL ON 技术等级 &为了TOTAL操作, 先按分类关键字排序,(3) 说明: ,USE D:rshFL &使用排序库作分类统计 TOTAL TO D:rshTJ ON 技术等级 &按技术等级生成一个分类统计数据库 USE D:rshTJ &打开TOTAL命令生成的分类统计库 BROW &观察生成的分类统计库中的记录 分类统计常用于商店销售管理、库房出入库管理、 财务经费管理等业务处理程序中,用本命令很容易对同类商品、 同类物资、 同一帐号进行分类汇总。,USE D:rshFL,

    注意事项

    本文(FoxProforWindows程序设计第8章课件.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开