第四讲vfp自由表(续)课件_第1页
第四讲vfp自由表(续)课件_第2页
第四讲vfp自由表(续)课件_第3页
第四讲vfp自由表(续)课件_第4页
第四讲vfp自由表(续)课件_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四讲自由表(续)主要内容表的排序、索引和查寻表的计算、汇总多表间的基本操作1.排序与索引的概念文件的物理顺序:数据在VFP表文件中存储的顺序。SORT(排序):重排表文件的物理顺序,以便以希望的顺序相继访问数据。INDEX(索引):建立一个包括一个或多个索引的分开文件,而表文件的物理顺序保持不变。其中,只有一个单个索引(主索引)决定记录访问的主要顺序。排序是改变表物理顺序的过程,索引是排列其逻辑顺序的过程。3.表的索引3.1索引的类型与建立索引文件的类型:.IDX的文件,即各索引文件只包含一个单个索引.CDX的文件,即复合索引文件,是在单个文件中包含多个索引。在一个复合索引文件中的各个索引叫做索引标识。结构复合索引文件,是一种为与活动表文件同名的文件,建立时只要设定Structural(选项)即可。独立复合索引文件,是一种与打开的表文件不同名的.CDX文件,建立是只要不设定Structural选项即可。使用索引文件,建议选择.CDX文件并设定Structural,不但查索速度加快,而且便于维护。若建立暂时索引文件,可选.IDX文件。INDEX命令建立索引文件的命令:格式1(建立.IDX索引文件):INDEXON<关键字表达式>TO<文件名>[UNIQUE|CANDIDATE][COMPACT][ADDITIVE]格式2(建立.CDX索引文件):INDEXON<关键字表达式>TAG<标识名>[OF<文件名>][UNIQUE][DESCENDING][ADDITIVE][FOR<条件>]功能:对当前表根据关键字表达式的值从小到大排列,并存入TO后指定的索引文件名的文件或复合索引文件的一个标识中。说明:关键字表达式中不能混淆其他类型的项。一般将非字符型字段转换成字符型字段,然后用”+“或”-“进行连接。例如:INDEXON姓名+STR(ACCNO)+DTOS(TDate)TOSKEY例4.18使用INDEX命令建立不同的文件

USEFfileEXCLUSIVE&&独占状态打开表

INDEXON姓名TAGSKEYOFX&&索引标识加到指定的.CDX文件

INDEXON姓名TOSKEY&&.IDX文件被建立

INDEXON姓名TAGSKEY&&索引标识加到结构.CDX文件VFP可以使用表设计器生成索引或者显示窗口中的属性按钮,显示工作区属性生成索引。主要内容表的排序、索引和查寻表的计算、汇总多表间的基本操作1.表的计算命令1.1计数命令CONUT格式:COUNT[<范围>][FOR<条件>][WHILE<条件>][TO<内存变量名>][NOOPTIMIZE]功能:统计当前表文件中符合条件的记录数。例4.24在Rfile表文件中,统计处工资大于12000的讲师的记录数,存M1中。

USERfileCOUNTFOR职称=“讲师”.AND.工资>12000.00TOM1?M121.2求和命令SUM格式:SUM[<范围>][数值<表达式>][TO<内存变量名表>|TOARRAY<数组名>][FOR<条件>][WHILE<条件>][NOOPTIMIZE]功能:对当前表中选中记录的全部或指定的数值字段或由指定字段组成的数值表达式累加求和。例4.25求Ffile表文件中讲师的平均工资

USEFfileSUMALL工资TOG1FOR职称=“讲师”

COUNTALLFOR职称=“讲师”TON?G1/N1.3求平均值命令AVERAGE格式:AVERAGE[<范围>][<数值表达式>][TO<内存变量名表>|TOARRAY<数组名>][FOR<条件>][WHILE<条件>][NOOPTIMIZE]功能:对当前表中选中记录的全部或部分数值型字段及其组成的表达式求平均值并显示,且可存入内存变量名表或一维数组中。例4.26求Rfile表中讲师的平均工资。

USERfileAVERAGEALL工资TON1FOR职称=“讲师”2.表的汇总命令实际运用中,常常需要将表的数值字段进行分类统计,比如宾馆的收银表管理中需要按楼层对房费、其他应收费和实际金额等字段汇总,且将汇总结果放到汇总表中。VFP提供了专门的汇总命令。格式:TOTALTO<文件名>ON<关键字>[FIELDS<字段名表>][<范围>][FOR<条件>][WHILE<条件>][NOOPTIMIZE]功能:对当前表中选中记录的全部或部分数值型字段按关键字值相同的记录进行汇总,并将其结果放入<文件名>指定的表文件中。说明:使用TOTAL命令前必须对当前表按<关键字>进行排序或者索引。例4.27对宾馆收银表SY,按楼层对其数值字段进行汇总。

USESYINDEXON楼层TOSY1SETINDEXTOSY1LISTTOTALON楼层TONSUMUSENSUMLIST主要内容表的排序、索引和查寻表的计算、汇总多表间的基本操作对数据的组织和处理不是简单地将所有数据放在一个大的表中即可,而是为了避免数据的冗余,把大的表分为几个相互间具有联系的小的表。存在多对多关系、多对一关系及其他关系实现两个表之间的数据操作,需要在两个表之间建立关联(两个表的指针的逻辑关系)。在实际的表系统中常常要管理多个表,所以在对多重表的操作中使用关联、连接、更新,设置和存储表之间的临时关系十分重要。1.关联格式1:SETRELATION[TO<关键字表达式>|<数字表达式>INTO<别名>[ADDITIVE]]格式2:SETRELATION[TO<关键字表达式>|<数字表达式>INTO<别名>][,TO<关键字表达式>|<数字表达式>INTO<别名>]…ADDITIVE功能:把当前工作区(主工作区)中的表文件与<别名>所指定的辅工作区中的表文件通过<表达式>建立关联。说明:命令中的<关键字表达式>其值必须是两个表文件共有的字段,它是两个表文件建立关系的条件。命令中若使用关键字表达式,则<别名>表文件必须在该关键字表达式上建立索引文件并打开;若使用数值表达式,则两个表文件时按照记录号相关联的,这时<别名>表文件不用索引。例题4.29以记录号建立关联

SELE1USESTU1SELE2USESTU2SELE1SETRELATIONTORECNO()INTOBCHANGFIELDSB->出生日期FOR体育=90.00&&出生日期改76/06/06SELE2DISPLAY例题4.30以数值表达式建立关联

SELE1USESTU1SELE2USESTU2INDEXON平均分TOPJSETINDEXTOPJSELE1SETRELATIONTO平均分INTOSTU2LIST姓名,B->姓名注意:如果STU2表中有两条及以上的记录的平均分相同,则两个工作区中显示的姓名内容有可能不一致。谢谢

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论