全国计算机二级VFP学习知识重点情况总结.doc
!-全国计算机二级Visual FoxPro数据库程序设计知识点整理资料文件扩展名及备注文件扩展名文件扩展名备注扩展名文件扩展名备注扩展名项目.pjx.pjt数据库.dbc.dbt表.dbf.fpt表单.scx.sct程序.prg报表.frx单索引.id .idx结构化复合索引.cdx菜单定义格式.mnx菜单程序.mpr查询.qpr视图.vcx第一章数据库基础知识1、数据库管理系统DBMS;数据库应用系统DBAS;数据库系统DBS;数据DB数据库管理员DBA;DBS包括DBMS和DB2、实体间的联系:一对一,一对多,多对多3、数据库中的数据模型:网状模型、层次模型、关系模型4、关系:一个关系就是一张二维表,每个关系有一个关系名5、元组:二维表中的行称作元组6、属性:二维表中的列称作属性7、域:属性的取值范围8、关系:表关系名:表名属性:字段元组:记录行:记录,元组列:字段,属性9、传统的集合运算:并、差、交10、专门的关系运算:选择(水平方向)for, while, where投影(垂直方向)fields ,select联接(一对一,一对多,多对多)11、定义数组:dimension/declare数组名(3,4)VF基础知识1、创建项目:通过菜单创建命令:Create Project项目名2、打开项目管理器:通过“文件”-“打开”菜单项命令:Modify Project项目名3、各类文件选项卡:“全部”选项卡(以下五项的全部内容)“数据”选项卡(数据库、自由表、查询、视图)“文档”选项卡(表单、报表、标签)“类”选项卡“代码”选项卡“其他”选项卡第二章数据与数据运算1、字段数据类型(11种)*N包括Y、F、B、I2、变量:变量值能够随时改变的。变量名以字母、汉字和下划线开头,后接字母、数字、汉字和下划线构成3、变量的分类:字段变量和内存变量(简单内存变量和数组)当内存变量与字段变量同名时,通过前缀M.或M-访问内存变量4、子串包含测试:$5、字符串精确比较“=”两个字符完全相同.T.“=”set exact on | off6、常用的函数数值函数:1ABS()函数2SIGN()函数3SQRT()函数4PI()函数5INT()函数6CELING()函数7FLOOR()函数8ROUND()函数9MOD()函数10MAX()函数11MIN()函数字符函数:1LEN()函数2LOWER()函数3UPPER()函数4SPACE()函数5TRIM()函数6LTRIM()函数7ALLTRIM()函数8LEFT()函数9RIGHT()函数10SUBSTR()函数11OCCURS()函数12AT()函数13STUFF()函数14CHRTRAN()函数15Like(,)日期时间函数:1DATE()函数2TIME()函数3DATETIME()函数4YEAR()函数5MONTH()函数6DAY()函数7HOUR()函数8MINUTE()函数9SEC()函数数据类型转换函数:1STR()函数2VAL()函数3CTOD()函数4DTOC()函数5宏替换函数测试函数:1BETWEEN()函数2ISNULL()函数3EMPTY()函数4VARTYPE()函数5EOF()函数6BOF()函数7RECNO()函数8RECCOUNT()函数9DELETED()函数10IIF()函数程序设计基础1、概念:是命令的集合,分行存储在磁盘上,按照人为的顺序依次输出的过程。2、建立、修改程序文件(.prg):modify command程序名3、远行:do程序文件名4、基本的输入语句:(以求圆的面积为例)input“请输入圆的半径” to r可接受的数据类型:C、N、L、D、T;从键盘上接受输入,但不能不输入任何内容;输入字符常量必须加定界符accept “请输入圆的半径” to r只能接受字符串,输入是不需要加定界符wait “请等候” windowwait to 5、程序的结构:顺序结构选择结构(分支、判断)循环结构(条件、步长)6、程序的控制语、注释语exit终止,跳出,至enddo后面loop中止,跳至do while判断条件quit退出系统*换行注释&同行注释注释语句【格式1】NOTE 【格式2】* 【格式3】& 7、程序的模块,形参、实参形式参数定义:PARAMETERS 参数传递:格式一:do文件名或过程名with实参格式二:文件名或过程名(实参)8、变量的作用域:全局变量(又称公共变量)(public):可在任何模块和程序中使用,而且在VF运行环境内都一直可见(命令窗口输入的也是)私有变量(private):在建立该变量的模块及其下属各层模块中使用,在其上层模块中不可用;在程序中直接使用没有特别声明的变量都是私有变量;用private声明上层模块中已经存在的变量,使得上层模块定义的变量在当前暂时无效局部变量(local):只能在建立它的模块中使用,不能在上层或下层模块中使用第三章 数据库及其操作1、创建数据库:在项目管理器中建立在菜单中建立命令:Create database数据库名2、打开数据库:Open Database数据库名3、删除数据库:Delete Database数据库名4、修改数据库:Modify Database数据库名5、关闭数据库:Close Database6、打开表设计器:Modify Structure7、显示全部表记录:List(显示完全部记录)8、显示当前表记录:Display(分页显示记录)9、记录的绝对定位:Go n10、浏览、修改表:Browse11、编辑、修改表:Edit/Change12、批量修改:Replace all字段with字段表达式13、逻辑删除:Delete(只在记录前加*,不删除)14、恢复逻辑删除:Recall15、物理删除:Pack:只删除带*的记录Zap:物理删除表中全部记录16、关闭表:Use17、打开表:Use表名18、复制表记录:Use表名;Copy to新表名19、复制表结构:Use表名;Copy Structure to新表名20、追加表记录:将另一表中的记录添加到该表中:Use要追加记录的表名Append from有记录的表名在尾部追加记录:Append在尾部增加一条空记录:Append blank21、插入表记录:在当前记录的后面插入一条记录:insert after在当前记录的后面插入一条空记录:insert blank在当前记录的前面插入一条记录:insert before22、显示所有含有条件的记录:list for23、显示满足条件的记录:list while24、显示字段:list fields25、指针记录的定位:bof() 为.T.时指向文件头go top定位在第一条记录go bottom定位在最后一条记录eof() 为.T.时指向文件尾skip向下移动一个指针,指向下一条记录(不含当前记录)all全部记录locate for满足条件的第一条记录continue继续查找满足条件的下一条记录用locate命令定位:Locate for条件查找满足条件的第一条记录Continue继续查找满足条件的第一条记录?found测试是否有返回值,如有.T.,如无.F.Display显示26、记录的范围:next n向下n条记录rest从指针指向位置开始的所有记录27、在数据库关闭/删除的情况下建立的表为自由表,自由表字段名最长为10个字符。28、在数据库打开/修改的情况下建立的表为数据库表,数据库表字段名最长为128个字符,可以为数据库表建立主索引、字段有效性和参照完整性,这也是自由表没有的。29、创建数据库表:open database数据库名;creat表名30、创建自由表:确定当前没有打开数据库,使用命令:creat表名31、将自由表添加到数据库中:open database数据库名;add table表名32、将数据库表移出数据库:open database数据库名;remove table表名*小结:1、用use打开表时,记录号位于第一条记录2、执行带all的命令,记录指针指向eof()=.T.3、当为.T.时,bof的记录号总是为1,eof的记录号是记录数+14、空表的总记录是0,bof的记录号是1,eof的记录号是1*33、排序:建立排序:sort on字段名/a/d/c to新表名/a(asc):升序;/d(desc):降序;/c:不区分字母大小写34、索引:索引的种类:主索引,候选索引,唯一索引,普通索引建立索引:index on关键字tag索引文件名打开索引:set index to索引文件名关闭索引:set index to查找索引:find / seek删除索引:delete tag all索引标识主控索引:set order to索引名建立永久链接的条件:父表必须建立主索引,子表必须建立普通索引建立临时链接:窗口-数据工作区命令:set relation to父表字段名into子表名(父动子动)举例:open database成绩管理Use student in 1 order学号Use score in 2 order学号Set relation t, o学号into 2/score, Select 1 / go 3 / display / select 2 / display35、互换表中记录:先打开表go 1;scatter to aa(数组名);go 3;scatter to bb(数组名);go 1;gather from bb;go 3;gather from bb*小结:排序与索引的区别1、排序要执行两次,按关键字和记录号,要打开表;而索引只执行一次,按关键字,不需要打开表;2、排序生成一个新表,索引是针对原表生成一个指针文件3、升降序的表示与书写方式不同:排序/a升序/d降序/c不区分大小写,索引ascending和descending。4、排序与索引的to的含义不同,排序的to表示到一个新表,索引的to表示建立单索引文件。5、表达式的方式不同,排序用(,)逗号,索引用(+加号)自由表与数据库表的不同:1、自由表有三个索引:候选索引、唯一索引、普通索引;2、数据库表有四个索引:主索引、候选索引、唯一索引、普通索引;3、一个数据库表只能有一个主索引,可以有多个候选索引、唯一索引、普通索引;4、一个表只属于一个数据库;5、主索引和候选索引表示表记录的唯一性;6、数据库表的字段允许长度是0128个字符,而自由表只允许10个字符;7、数据库表可以设置字段的有效性规则和参照完整性,而自由表不能;8、可以将自由表添加到数据库中,也可将数据库表从数据库中移去成为自由表。*36、数据的完整性:实体完整性:主索引和候选索引,保证记录的唯一性域完整性:表示字段的有效性和取值范围参照完整性:描述表与表之间的关系参照完整性的规则:更新规则(级联、限制、忽略)删除规则(级联、限制、忽略)插入规则(限制、忽略)参照完整性是数据库文件的产物,要有联接,先打开数据,在父表建立主索引,子表建立普通索引,建立连线后先清理数据库,再编辑参照完整性。37、工作区:工作区的选择:select |范围:132767默认0号工作区,也是最小工作区select 0表示选定当前还未使用的编号最小工作区第四章SQL语言1、SQL:structure query language2、定义:是结构化查询语言,是关系数据库的标准语言,是一种高度非过程化的语言,是数据库后台的操作语言,具有非常强大的查询功能,查询是它的核心。3、基本构成:select查询什么字段/from数据源/where查询条件4、三大功能:数据查询格式:select字段名/* from表1 inner join表2 on表1主关键字=表2主关键字where筛选条件group by分组having分组条件order by排序函数字符型C双精度型B数值型N整型I(4)逻辑型L(1)货币型Y(8)日期型D(8)备注型M(4)时间型T(8)通用型G(4)浮点(动)型FMax()Min()Avg()Count()Sum()最大值最小值平均值计数求和值域查询:betweenand空值查询:is null/is not null模糊查询:like(like后所指定的字段值一定是个字符型数据;通配符%表示0个或多个字符,”_”只表示一个字符)使用量词和谓词的查询:any/some/all(some和any是同义词)not exists*some、any只有子查询中有一行能使结果为真,则结果为真*all子查询中所有记录都使结果为真,则结果为真*not exists用来检查是否有结果返回,即存在/不存在元组集合的并运算:union字段相同,值域相同虚字段:as新字段名操作功能:插入:insert into表名(字段名)values(字段值)更新:update表名set字段名=表达式where条件式删除:delete from表名where条件定义功能:表的定义:create tabledbf (字段名 类型(宽度) )删除表:drop table表文件名删除视图:drop view视图文件名表结构的修改:添加字段:alter table表名add字段名 类型(宽度)修改字段:alter table表名alter字段名 新类型(宽度)删除字段:alter table表名drop字段名重新命名字段:alter table表名rename column原字段名to新字段名建立有效性规则:alter table表名alter字段名set check字段条件建立默认值:alter table表名alter字段名set default条件删除默认值/有效性规则:alter table表名alter字段名drop default/drop check建立候选索引:alter table表名add unique字段tag索引名建立主索引:alter table表名add primary key字段tag索引名建立普通索引:alter table表名add foreign key字段tag索引名删除候选索引:alter table表名drop unique tag索引名删除主索引:alter table表名drop primary key字段tag索引名删除普通索引:alter table表名drop foreign key字段tag索引名5、SQL查询的六种去向:将查询结果存放到数组中into array数组名将查询结果存放在临时文件中into cursor临时表文件名将查询结果存放到永久表中into dbf/table自由表文件名将查询结果存放到文本文件中to file文本文件名将查询结果直接输出到打印机to printer将查询结果显示在屏幕上to screen第五章查询与视图1、定义:查询是预先定义好的一个select语句2、数据源:数据库表、自由表或视图3、建立查询的方法项目管理器文件新建命令:create query4、查询设计器中各选项卡与select语句的对应关系:选项卡:字段、联接、筛选、排序依据、分组依据、杂项选择了创建查询的表或视图from短语字段选项卡select短语联接选项卡join on短语筛选选项卡where短语排序依据选项卡order by短语分组依据选项卡group by短语和having短语杂项选项卡可以指定是否要重复记录(对应于distinct短语)还可指定列在前面的记录(对应于top短语)5、查询去向:浏览、临时表、表、图形、屏幕、报表、标签6、运行查询:do查询文件名.qpr7、查询保存在查询文件中,查询文件是一个文本文件。8、查询文件(.qpr)视图文件(.vue)9、定义:视图是一个定制的虚拟表,依赖于数据库,是从一个或多个数据库中导出的表;在视图中只存放视图的定义,不存放视图的内容;视图分为本地视图和远程视图10、数据源:数据库表、自由表或其他视图等11、建立视图命令:create view12、根据表的查询定义视图:create view视图文件名as 13、删除视图文件:drop view视图文件名14、视图和查询的比较相同点:可以从数据源中查找满足一定筛选条件的记录和选定部分字段;自身不保存数据,它们的查询结果随数据源内容的变化而变化;都可以生成SQL语言;不同点:视图有更新条件,查询无;查询有查询去向(7个去向),视图无;视图可以更新,查询只能只读;视图可以更新数据源表,而查询不能;视图可以访问远程数据,而查询不能直接访问,需借助于远程视图方可;视图只能数据库中存在,而查询是一个独立的文件;视图的基表只能是数据库表,而查询可以是自由表,一个或多个数据库表;建立视图必须是数据库表及存在的视图,而查询只要是表都可以。第六章 表单设计与运用1、对象:客观事物的抽象(属性:对象的状态;方法:对象行为)2、类:具有相同属性和方法的对象的集合3、类的特征:层次性继承性:子类不但可以继承父类的属性和方法还可以有自己的属性和方法封装性4、对象与类的关系:类是对象的一般化;对象是类的具体化、实例化5、创建类:create class类名例:创建一个名为employee的新类,保存新类的类库是myclasslib,新类的父类是customCreate class employee of myclasslib as custom新建类: 新类名存储于派生于6、类的使用:表单控件“查看类”-添加-点开类-拖入表单7、创建表单:create form表单名运行表单:do form表单名8、表单属性:Caption:表单标题Name:表单名称Backcolor:背景色Borderstyle:边框样式Height:表单高度Width:表单宽度Showwindow:是否作为顶层表单9、标签属性:caption:指定标签的显示文本AutoSize:确定是否根据标题的长度来自动调整大小Alignment:指定标题控件中显示的对齐方式name:标签对象的名称,是程序中访问标签对象的标识(label1)backstyle:设置标签的背景是否透明10、文本框属性:Alignment:文本框内容的对齐方式Control Source:设置文本框的数据来源Value:保存文本框的当前内容PassWordChar:设置输入口令时显示的字符,通常用*Readonly:确定文本框是否为只读,为“.T.”时,文本框的值不可修改。Inputmask:指定在一个文本框中如何输入和显示数据。表6.13书P19511、编辑框属性:ControlSource:设置编辑框的数据源,一般为数据表的备注字段。Value:保存编辑框中的内容,可以通过该属性来访问编辑框中的内容。Hideselection:失去焦点时,编辑框中选定的文本是否仍显示为选定状态。默认值为.T.不显示为选定状态Readonly:确定用户是否能修改编辑框中的内容。.f.可改Scroolbars:指定编辑框是否具有滚动条,0无滚动条2(默认值)时,编辑框包含垂直滚动条。SelStart: 返回用户在编辑框中所选文本的起始点位置或插入点位置SelLength:返回用户在文本输入区中所选定字符的数目。0SelText:返回用户在编辑区内选定的文本12、复选框属性:Caption:用于指定复选框旁边的标题Alignment:指定复选框是显示在该标题的左(右)边Value:用来指明复选框的当前状态,如下表0或.F.-(默认值),未被选中(灰色)1或.T.-被选中=2或.null.-不确定,只在代码中有效ControlSource:用于指定复选框的数据源(字段或内存变量)其类型可以是N或L13、列表框属性:ColumnCount:列表框的列数ControlSource:绑定列表框的数据源。ADDItem:向Rowsourcetype属性为0的列表添加一项RowSourceType:指定与组合框建立联系的数据源的类型Value:返回列表框中被选中的条目 (C或N)MultiSelect:指定用户能否在列表框控件内进行多重选定Rowsource:列表中显示值的来源Rowsourcetype:确定rowsource的类型一个值、表、SQL、查询、数组、文件列表或字段列表List属性:用以存取列表框中数据条目的字符串数组。例如,LIST1代表列表框中的第一行(第一个数据项)。ListCount属性:列表框中数据条目的数目Selected属性:该属性是一个逻辑型数组,第N个数组元素代表第N个数据项是否为选定状态14、组合框属性:ControlSource用户从列表框中选择的值保存在何处Style指定控件的样式。0下拉组合框(默认值);2下拉列表框15、命令按钮属性:Default:.F.如果设置为.T.,在该按钮成为默认按钮Cancel:.F.如果设置为.T.,按Esc键引发该按钮的Click事件Caption:设置按钮的标题Enable:确定按钮是否有效,为.F.时,失效Visible:指定对象是可见还是隐藏,为.F.时,隐藏16、命令组属性:Buttoncount:命令按钮组中命令按钮的数目。2Buttons:用于存取命令按钮组中每个命令按钮的数组例:Thisform.commandgroup1.buttons(2).visible=.f.Value:返回表单运行时被单击按钮的顺序号或按钮Caption的值17、选项组属性:Name: optiongroup1 选项按钮组对象的名称ButtonCount: 2 指定选项组中选项按钮的数目。Buttons: 0 用于存取选项组中每个选项的数组。例:thisform.optiongroup1.buttons(3).caption=“三号”ControlSource无:指定选项组数据源。C/NValue 1 :用于指定选项组中哪个选项按钮被选中。若为N,返回被选中按钮的顺序号若为C,返回被选择按钮的Caption属性值18、表格属性:RecordSourceType指明表格数据源的类型,RecordSource属性指定数据的来源0表1别名3查询ColumnCount: -1 指定表格的列数19、页框属性:Pagecount: 2 页框的页面数。Pages:用于存取页框对象中各个页的数组Activepage:返回页框中活动页的页号20、新建属性、方法:表单-新建-属性/方法21、常用事件:事件是一种由系统预先定义而由用户或系统发出的动作;事件集是固定的,用户不能定义新的事件Load:在表单对象建立之前引发。Unload:在表单对象释放时引发。最小的事件集Init:在用户建立对象时引发。Destroy:在对象释放时引发。Error:在发生错误时引发Click:在单击鼠标左键时引发。Rightclick:在单击鼠标右键时引发。DBclick:在双击鼠标左键时引发。GotFocus:在对象获得焦点时引发。LostFocus:在对象失去焦点时引发。InteractiveChange:在通过鼠标和键盘交互操作改变一个控件值时引发。注意:load先于init(先控件再表单);destroy先于unload如果一个表单建立一个命令按钮,先引发表单的load事件,再引发命令按钮的load事件,再引发控件的init,再引发表单的init事件。如果关闭一个含有命令按钮的表单,先引发表单的destroy事件,再引发控件的destroy事件,最后一个引发的是表单的unload事件。方法包含在事件之中。(方法和属性均包含在实践之中)同一个事件中,load先大后小,表单最大22、方法:定义:动作常用方法:thisform.release关闭(释放)表单Thisform.refresh刷新表单This.show显示当前表单This.hide隐藏当前表单Thisform.text1.setfocus让文本框1获得焦点,使其成为活动对象23、对象的引用:thisform:当前对象所在的表单This:当前对象Thisformset:当前对象所在的表单集Parent:当前对象的直接容器对象24、将修改表单及控件名的四种方法(以OK为例)thisformset.form1.command1.caption=”OK”thisform.command1.caption=”OK”this.caption=”OK”this.parent.caption=”OK”25、表单集:定义:由多个表单组成的表单集合,即在一个设计器中出现多个表单创建:表单-表单集-新建表单26、数据环境:表单空白处右击-数据环境27、表单向导:表单向导一对多表单向导第七章菜单设计与应用1、菜单的分类:条形菜单、弹出菜单典型的菜单系统由这两种组成;快捷菜单由弹出式菜单组成2、下拉式菜单的创建:文件-新建-菜单命令:create menu菜单名modify menu菜单名3、系统菜单:SET SYSMENU ON|OFF|AUTOMATIC|TO |TO |TO DEFAULT|SAVE|NOSAVE各项参数及选项的说明:ON:允许程序执行时访问系统菜单OFF:禁止程序执行时访问系统菜单AUTOMATIC:可使系统菜单显示出来,可以访问系统菜单TO :重新配置系统菜单,以内部名字列出可用的弹出式菜单TO :重新配置系统菜单,以条形菜单内部名表列出可用的子菜单TO DEFAULT:系统菜单恢复为缺省设置SAVE:系统菜单恢复为缺省设置NOSAVE:将缺省配置恢复成VISUAL FOXPRO系统菜单的标准配置*不带参数的set sysmenu to命令将屏蔽系统菜单,使系统菜单不可用。4、菜单设计器的组成:菜单名称结果(子菜单、命令、菜单项、过程)选项:为一个无符号按钮(快捷键)菜单级:菜单栏、子菜单“菜单项”命令按钮插入可在当前菜单项行之前插入一个新的菜单项行插入栏在当前菜单项行之前插入一个vf系统菜单命令删除可删除当前菜单项行预览可预览菜单效果5、在菜单设计器环境下,系统的“显示”菜单会出现两条命令:常规选项:设置和清理、顶层表单的复选框菜单选项:可设置子菜单的内部名称6、SET SYSMENU NO SAVE&将缺省配置恢复成VF系统菜单的标准配置SET SYSMENU TO DEFAULT&恢复系统菜单7、为顶层表单添加菜单的方法和过程:表单对象的showwindow:28、定义的菜单文件包括两个文件:*.mnx和*.mnt8、生成菜单程序:菜单-生成(生成.mpr的菜单程序文件)9、运行菜单程序:do菜单名.mpr(注:扩展名不可省)10、快捷菜单:在选定对象的rightclick事件:do快捷菜单程序文件名.mpr第八章报表设计1、报表向导:工具-报表向导一对多报表向导2、内容:数据源:数据库表、自由表、视图、查询或临时表布局:定义了报表的打印格式,有列报表、行报表、一对多报表和多栏报表3、列报表:一条记录一行,应用于财务报表、销售总结行报表:一个字段一行,应用于列表、清单一对多报表: 应用于发票、会计报表多栏报表:应用于电话本、名片4、建立报表:CREATE REPORT 创建新的报表MODIFYREPORT 打开一个已有的报表5、快速报表:新建-报表报表-快速报表6、报表控件:选定对象按钮标签按钮域按钮线条按钮、矩形按钮和圆角矩形按钮图片/activex绑定控件按钮按钮锁定7、报表设计器默认包括3个带区:页标头、细节和页脚(也可增加报表-总结/标题带区)8、添加报表的数据环境9、添加分组:组标头和组注脚(建立索引,数据环境-属性-cursor1对象,选定order属性选择多重索引)10、多栏报表:文件-页面设置(列标头和列注脚)11、报表预览:report form报表文件名preview
收藏
编号:2585075
类型:共享资源
大小:134.52KB
格式:DOC
上传时间:2020-04-22
8
金币
关 键 词:
全国计算机
二级
vfp
学习
知识
重点
情况
总结
资源描述:
!-
全国计算机二级Visual FoxPro数据库程序设计
——知识点整理资料
文件扩展名及备注文件扩展名
文件
扩展名
备注扩展名
文件
扩展名
备注扩展名
项目
.pjx
.pjt
数据库
.dbc
.dbt
表
.dbf
.fpt
表单
.scx
.sct
程序
.prg
报表
.frx
单索引
.id .idx
结构化复合索引
.cdx
菜单定义格式
.mnx
菜单程序
.mpr
查询
.qpr
视图
.vcx
第一章数据库基础知识
1、数据库管理系统DBMS;数据库应用系统DBAS;数据库系统DBS;数据DB数据库管理员DBA;DBS包括DBMS和DB
2、实体间的联系:一对一,一对多,多对多
3、数据库中的数据模型:网状模型、层次模型、关系模型
4、关系:一个关系就是一张二维表,每个关系有一个关系名
5、元组:二维表中的行称作元组
6、属性:二维表中的列称作属性
7、域:属性的取值范围
8、关系:表关系名:表名属性:字段元组:记录
行:记录,元组列:字段,属性
9、传统的集合运算:并、差、交
10、专门的关系运算:选择(水平方向)for, while, where
投影(垂直方向)fields ,select
联接(一对一,一对多,多对多)
11、定义数组:dimension/declare数组名(3,4)
VF基础知识
1、创建项目:①通过菜单创建
②命令:Create Project项目名
2、打开项目管理器:①通过“文件”->“打开”菜单项
②命令:Modify Project项目名
3、各类文件选项卡:①“全部”选项卡(以下五项的全部内容)
②“数据”选项卡(数据库、自由表、查询、视图)
③“文档”选项卡(表单、报表、标签)
④“类”选项卡
⑤“代码”选项卡
⑥“其他”选项卡
第二章数据与数据运算
1、字段数据类型(11种)
*N包括Y、F、B、I
2、变量:变量值能够随时改变的。变量名以字母、汉字和下划线开头,后接字母、数字、汉字和下划线构成
3、变量的分类:字段变量和内存变量(简单内存变量和数组)
当内存变量与字段变量同名时,通过前缀M.或M->访问内存变量
4、子串包含测试:$
5、字符串精确比较
“==”两个字符完全相同.T.
“=”set exact on | off
6、常用的函数
数值函数:1.ABS()函数
2.SIGN()函数
3.SQRT()函数
4.PI()函数
5.INT()函数
6.CELING()函数
7.FLOOR()函数
8.ROUND()函数
9.MOD()函数
10.MAX()函数
11.MIN()函数
字符函数:1.LEN()函数
2.LOWER()函数
3.UPPER()函数
4.SPACE()函数
5.TRIM()函数
6.LTRIM()函数
7.ALLTRIM()函数
8.LEFT()函数
9.RIGHT()函数
10.SUBSTR()函数
11.OCCURS()函数
12.AT()函数
13.STUFF()函数
14.CHRTRAN()函数
15.Like(*>,<>)
日期时间函数:1.DATE()函数
2.TIME()函数
3.DATETIME()函数
4.YEAR()函数
5.MONTH()函数
6.DAY()函数
7.HOUR()函数
8.MINUTE()函数
9.SEC()函数
数据类型转换函数:1.STR()函数
2.VAL()函数
3.CTOD()函数
4.DTOC()函数
5.宏替换函数
测试函数:1.BETWEEN()函数
2.ISNULL()函数
3.EMPTY()函数
4.VARTYPE()函数
5.EOF()函数
6.BOF()函数
7.RECNO()函数
8.RECCOUNT()函数
9.DELETED()函数
10.IIF()函数
程序设计基础
1、概念:是命令的集合,分行存储在磁盘上,按照人为的顺序依次输出的过程。
2、建立、修改程序文件(.prg):modify command程序名
3、远行:do程序文件名
4、基本的输入语句:(以求圆的面积为例)
①input“请输入圆的半径” to r
可接受的数据类型:C、N、L、D、T;从键盘上接受输入,但不能不输入任何内容;输入字符常量必须加定界符
②accept “请输入圆的半径” to r
只能接受字符串,输入是不需要加定界符
③wait “请等候…” window
wait <提示信息> to <内存变量>
5、程序的结构:顺序结构
选择结构(分支、判断)
循环结构(条件、步长)
6、程序的控制语、注释语
①exit终止,跳出,至enddo后面
②loop中止,跳至do while判断条件
③quit退出系统
④*换行注释
⑤&&同行注释
注释语句
【格式1】NOTE <注释内容>
【格式2】* <注释内容>
【格式3】&& <注释内容>
7、程序的模块,形参、实参
形式参数定义:PARAMETERS <形参>
参数传递:格式一:do文件名或过程名with实参
格式二:文件名或过程名(实参)
8、变量的作用域:
①全局变量(又称公共变量)(public):可在任何模块和程序中使用,而且在VF运行环境内都一直可见(命令窗口输入的也是)
②私有变量(private):在建立该变量的模块及其下属各层模块中使用,在其上层模块中不可用;在程序中直接使用没有特别声明的变量都是私有变量;用private声明上层模块中已经存在的变量,使得上层模块定义的变量在当前暂时无效
③局部变量(local):只能在建立它的模块中使用,不能在上层或下层模块中使用
第三章 数据库及其操作
1、创建数据库:①在项目管理器中建立
②在菜单中建立
③命令:Create database数据库名
2、打开数据库:Open Database数据库名
3、删除数据库:Delete Database数据库名
4、修改数据库:Modify Database数据库名
5、关闭数据库:Close Database
6、打开表设计器:Modify Structure
7、显示全部表记录:List(显示完全部记录)
8、显示当前表记录:Display(分页显示记录)
9、记录的绝对定位:Go n
10、浏览、修改表:Browse
11、编辑、修改表:Edit/Change
12、批量修改:Replace all字段with字段表达式
13、逻辑删除:Delete(只在记录前加*,不删除)
14、恢复逻辑删除:Recall
15、物理删除:①Pack:只删除带*的记录
②Zap:物理删除表中全部记录
16、关闭表:Use
17、打开表:Use表名
18、复制表记录:Use表名;Copy to新表名
19、复制表结构:Use表名;Copy Structure to新表名
20、追加表记录:①将另一表中的记录添加到该表中:
Use要追加记录的表名
Append from有记录的表名
②在尾部追加记录:Append
③在尾部增加一条空记录:Append blank
21、插入表记录:①在当前记录的后面插入一条记录:insert after
②在当前记录的后面插入一条空记录:insert blank
③在当前记录的前面插入一条记录:insert before
22、显示所有含有条件的记录:list for
23、显示满足条件的记录:list while
24、显示字段:list fields
25、指针记录的定位:
①bof() 为.T.时指向文件头
②go top定位在第一条记录
③go bottom定位在最后一条记录
④eof() 为.T.时指向文件尾
⑤skip向下移动一个指针,指向下一条记录(不含当前记录)
⑥all全部记录
⑦locate for满足条件的第一条记录
⑧continue继续查找满足条件的下一条记录
用locate命令定位:
Locate for条件查找满足条件的第一条记录
Continue继续查找满足条件的第一条记录
?found测试是否有返回值,如有.T.,如无.F.
Display显示
26、记录的范围:①next n向下n条记录
②rest从指针指向位置开始的所有记录
27、在数据库关闭/删除的情况下建立的表为自由表,自由表字段名最长为10个字符。
28、在数据库打开/修改的情况下建立的表为数据库表,数据库表字段名最长为128个字符,可以为数据库表建立主索引、字段有效性和参照完整性,这也是自由表没有的。
29、创建数据库表:open database数据库名;creat表名
30、创建自由表:确定当前没有打开数据库,使用命令:creat表名
31、将自由表添加到数据库中:open database数据库名;add table表名
32、将数据库表移出数据库:open database数据库名;remove table表名
******************************************************************
小结:
1、用use打开表时,记录号位于第一条记录
2、执行带all的命令,记录指针指向eof()=.T.
3、当为.T.时,bof的记录号总是为1,eof的记录号是记录数+1
4、空表的总记录是0,bof的记录号是1,eof的记录号是1
******************************************************************
33、排序:①建立排序:sort on字段名/a/d/c to新表名
②/a(asc):升序;/d(desc):降序;/c:不区分字母大小写
34、索引:①索引的种类:主索引,候选索引,唯一索引,普通索引
②建立索引:index on关键字tag索引文件名
③打开索引:set index to索引文件名
④关闭索引:set index to
⑤查找索引:find / seek
⑥删除索引:delete tag all索引标识
⑦主控索引:set order to索引名
⑧建立永久链接的条件:父表必须建立主索引,子表必须建立普通索引
⑨建立临时链接:窗口->数据工作区
命令:set relation to父表字段名into子表名(父动子动)
举例:open database成绩管理
Use student in 1 order学号
Use score in 2 order学号
Set relation t, o学号into 2/score
, Select 1 / go 3 / display / select 2 / display
35、互换表中记录:先打开表
go 1;scatter to aa(数组名);go 3;scatter to bb(数组名);
go 1;gather from bb;go 3;gather from bb
*********************************************************************
小结:排序与索引的区别
1、排序要执行两次,按关键字和记录号,要打开表;而索引只执行一次,按关键字,不需要打开表;
2、排序生成一个新表,索引是针对原表生成一个指针文件
3、升降序的表示与书写方式不同:排序/a升序/d降序/c不区分大小写,索引ascending和descending。
4、排序与索引的to的含义不同,排序的to表示到一个新表,索引的to表示建立单索引文件。
5、表达式的方式不同,排序用(,)逗号,索引用(+加号)
自由表与数据库表的不同:
1、自由表有三个索引:候选索引、唯一索引、普通索引;
2、数据库表有四个索引:主索引、候选索引、唯一索引、普通索引;
3、一个数据库表只能有一个主索引,可以有多个候选索引、唯一索引、普通索引;
4、一个表只属于一个数据库;
5、主索引和候选索引表示表记录的唯一性;
6、数据库表的字段允许长度是0~128个字符,而自由表只允许10个字符;
7、数据库表可以设置字段的有效性规则和参照完整性,而自由表不能;
8、可以将自由表添加到数据库中,也可将数据库表从数据库中移去成为自由表。
*********************************************************************
36、数据的完整性:①实体完整性:主索引和候选索引,保证记录的唯一性
②域完整性:表示字段的有效性和取值范围
③参照完整性:描述表与表之间的关系
参照完整性的规则:更新规则(级联、限制、忽略)
删除规则(级联、限制、忽略)
插入规则(限制、忽略)
参照完整性是数据库文件的产物,要有联接,先打开数据,在父表建立主索引,子表建立普通索引,建立连线后先清理数据库,再编辑参照完整性。
37、工作区:①工作区的选择:select <工作区号>|<别名>
②范围:1~32767默认0号工作区,也是最小工作区
③select 0表示选定当前还未使用的编号最小工作区
第四章SQL语言
1、SQL:structure query language
2、定义:是结构化查询语言,是关系数据库的标准语言,是一种高度非过程化的语言,是数据库后台的操作语言,具有非常强大的查询功能,查询是它的核心。
3、基本构成:select查询什么字段/from数据源/where查询条件
4、三大功能:
数据查询
①格式:select字段名/* from表1 inner join表2 on表1主关键字=表2主关键字where筛选条件[group by分组having分组条件]order by排序
②函数
字符型
C
双精度型
B
数值型
N
整型
I(4)
逻辑型
L(1)
货币型
Y(8)
日期型
D(8)
备注型
M(4)
时间型
T(8)
通用型
G(4)
浮点(动)型
F
Max()
Min()
Avg()
Count()
Sum()
最大值
最小值
平均值
计数
求和
③值域查询:between…and…
④空值查询:is null/is not null
⑤模糊查询:like(like后所指定的字段值一定是个字符型数据;通配符%表示0个或多个字符,”_”只表示一个字符)
⑥使用量词和谓词的查询:any/some/all
(some和any是同义词)
[not] exists
*some、any只有子查询中有一行能使结果为真,则结果为真
*all子查询中所有记录都使结果为真,则结果为真
*[not] exists用来检查是否有结果返回,即存在/不存在元组
⑦集合的并运算:union字段相同,值域相同
⑧虚字段:as新字段名
操作功能:
①插入:insert into表名(字段名)values(字段值)
②更新:update表名set字段名=表达式where条件式
③删除:delete from表名where条件
定义功能:
①表的定义:create table|dbf (字段名 类型(宽度) )
②删除表:drop table表文件名
删除视图:drop view视图文件名
③表结构的修改:
⑴添加字段:alter table表名add字段名 类型(宽度)
⑵修改字段:alter table表名alter字段名 新类型(宽度)
⑶删除字段:alter table表名drop字段名
⑷重新命名字段:alter table表名rename column原字段名to新字段名
⑸建立有效性规则:alter table表名alter字段名set check字段条件
建立默认值:alter table表名alter字段名set default条件
⑹删除默认值/有效性规则:alter table表名alter字段名[drop default/drop check]
⑺建立候选索引:alter table表名add unique字段tag索引名
建立主索引:alter table表名add primary key字段tag索引名
建立普通索引:alter table表名add foreign key字段tag索引名
⑻删除候选索引:alter table表名drop unique tag索引名
删除主索引:alter table表名drop primary key字段tag索引名
删除普通索引:alter table表名drop foreign key字段tag索引名
5、SQL查询的六种去向:
⑴将查询结果存放到数组中——into array数组名
⑵将查询结果存放在临时文件中——into cursor临时表文件名
⑶将查询结果存放到永久表中——into dbf/table自由表文件名
⑷将查询结果存放到文本文件中——to file文本文件名
⑸将查询结果直接输出到打印机——to printer
⑹将查询结果显示在屏幕上——to screen
第五章查询与视图
1、定义:查询是预先定义好的一个select语句
2、数据源:数据库表、自由表或视图
3、建立查询的方法①项目管理器
②文件新建
③命令:create query
4、查询设计器中各选项卡与select语句的对应关系:
选项卡:字段、联接、筛选、排序依据、分组依据、杂项
选择了创建查询的表或视图——from短语
①字段选项卡——select短语
②联接选项卡——join on短语
③筛选选项卡——where短语
④排序依据选项卡——order by短语
⑤分组依据选项卡——group by短语和having短语
⑥杂项选项卡——可以指定是否要重复记录(对应于distinct短语)
还可指定列在前面的记录(对应于top短语)
5、查询去向:浏览、临时表、表、图形、屏幕、报表、标签
6、运行查询:do查询文件名.qpr
7、查询保存在查询文件中,查询文件是一个文本文件。
8、查询文件(.qpr)
视图文件(.vue)
9、定义:视图是一个定制的虚拟表,依赖于数据库,是从一个或多个数据库中导出的表;在视图中只存放视图的定义,不存放视图的内容;视图分为本地视图和远程视图
10、数据源:数据库表、自由表或其他视图等
11、建立视图命令:create view
12、根据表的查询定义视图:create view视图文件名as
13、删除视图文件:drop view视图文件名
14、视图和查询的比较
相同点:可以从数据源中查找满足一定筛选条件的记录和选定部分字段;
自身不保存数据,它们的查询结果随数据源内容的变化而变化;
都可以生成SQL语言;
不同点:视图有更新条件,查询无;
查询有查询去向(7个去向),视图无;
视图可以更新,查询只能只读;
视图可以更新数据源表,而查询不能;
视图可以访问远程数据,而查询不能直接访问,需借助于远程视图方可;
视图只能数据库中存在,而查询是一个独立的文件;
视图的基表只能是数据库表,而查询可以是自由表,一个或多个数据库表;
建立视图必须是数据库表及存在的视图,而查询只要是表都可以。
第六章 表单设计与运用
1、对象:客观事物的抽象
(属性:对象的状态;方法:对象行为)
2、类:具有相同属性和方法的对象的集合
3、类的特征:层次性
继承性:子类不但可以继承父类的属性和方法还可以有自己的属性和方法
封装性
4、对象与类的关系:类是对象的一般化;对象是类的具体化、实例化
5、创建类:create class类名
例:创建一个名为employee的新类,保存新类的类库是myclasslib,新类的父类是custom
Create class employee of myclasslib as custom
新建类: 新类名存储于派生于
6、类的使用:表单控件“查看类”->添加->点开类->拖入表单
7、创建表单:create form表单名
运行表单:do form表单名
8、表单属性:
Caption:表单标题Name:表单名称
Backcolor:背景色Borderstyle:边框样式
Height:表单高度Width:表单宽度
Showwindow:是否作为顶层表单
9、标签属性:
caption:指定标签的显示文本
AutoSize:确定是否根据标题的长度来自动调整大小
Alignment:指定标题控件中显示的对齐方式
name:标签对象的名称,是程序中访问标签对象的标识(label1)
backstyle:设置标签的背景是否透明
10、文本框属性:
Alignment:文本框内容的对齐方式
Control Source:设置文本框的数据来源
Value:保存文本框的当前内容
PassWordChar:设置输入口令时显示的字符,通常用*
Readonly:确定文本框是否为只读,为“.T.”时,文本框的值不可修改。
Inputmask:指定在一个文本框中如何输入和显示数据。表6.13书P195
11、编辑框属性:
ControlSource:设置编辑框的数据源,一般为数据表的备注字段。
Value:保存编辑框中的内容,可以通过该属性来访问编辑框中的内容。
Hideselection:失去焦点时,编辑框中选定的文本是否仍显示为选定状态。默认值为.T.不显示为选定状态
Readonly:确定用户是否能修改编辑框中的内容。.f.可改
Scroolbars:指定编辑框是否具有滚动条,[0]无滚动条
[2](默认值)时,编辑框包含垂直滚动条。
SelStart: 返回用户在编辑框中所选文本的起始点位置或插入点位置SelLength:返回用户在文本输入区中所选定字符的数目。>0
SelText:返回用户在编辑区内选定的文本
12、复选框属性:
Caption:用于指定复选框旁边的标题
Alignment:指定复选框是显示在该标题的左(右)边
Value:用来指明复选框的当前状态,如下表
0或.F.->(默认值),未被选中(灰色)
1或.T.->被选中
>=2或.null.->不确定,只在代码中有效
ControlSource:用于指定复选框的数据源
(字段或内存变量)其类型可以是N或L
13、列表框属性:
ColumnCount:列表框的列数
ControlSource:绑定列表框的数据源。
ADDItem:向Rowsourcetype属性为0的列表添加一项
RowSourceType:指定与组合框建立联系的数据源的类型
Value:返回列表框中被选中的条目 (C或N)
MultiSelect:指定用户能否在列表框控件内进行多重选定
Rowsource:列表中显示值的来源
Rowsourcetype:确定rowsource的类型一个值、表、SQL、查询、数组、文件列表或字段列表
List属性:用以存取列表框中数据条目的字符串数组。例如,LIST[1]代表列表框中的第一行(第一个数据项)。
ListCount属性:列表框中数据条目的数目
Selected属性:该属性是一个逻辑型数组,第N个数组元素代表第N个数据项是否为选定状态
14、组合框属性:
ControlSource用户从列表框中选择的值保存在何处
Style指定控件的样式。0—下拉组合框(默认值);
2—下拉列表框
15、命令按钮属性:
Default:[.F.]如果设置为.T.,在该按钮成为默认按钮
Cancel:[.F.]如果设置为.T.,按Esc键引发该按钮的Click事件
Caption:设置按钮的标题
Enable:确定按钮是否有效,为.F.时,失效
Visible:指定对象是可见还是隐藏,为.F.时,隐藏
16、命令组属性:
Buttoncount:命令按钮组中命令按钮的数目。[2]
Buttons:用于存取命令按钮组中每个命令按钮的数组
例:Thisform.commandgroup1.buttons(2).visible=.f.
Value:返回表单运行时被单击按钮的顺序号或按钮Caption的值
17、选项组属性:
Name:[ optiongroup1 ]选项按钮组对象的名称
ButtonCount:[ 2 ]指定选项组中选项按钮的数目。
Buttons:[ 0 ]用于存取选项组中每个选项的数组。
例:thisform.optiongroup1.buttons(3).caption=“三号”
ControlSource[无]:指定选项组数据源。C/N
Value[ 1 ]:用于指定选项组中哪个选项按钮被选中。
若为N,返回被选中按钮的顺序号
若为C,返回被选择按钮的Caption属性值
18、表格属性:
RecordSourceType指明表格数据源的类型,
RecordSource属性指定数据的来源0表1别名3查询…
ColumnCount:[ -1 ]指定表格的列数
19、页框属性:
Pagecount:[ 2 ]页框的页面数。
Pages:用于存取页框对象中各个页的数组
Activepage:返回页框中活动页的页号
20、新建属性、方法:表单->新建->属性/方法
21、常用事件:事件是一种由系统预先定义而由用户或系统发出的动作;事件集是固定的,用户不能定义新的事件
Load:在表单对象建立之前引发。
Unload:在表单对象释放时引发。
最小的事件集
Init:在用户建立对象时引发。
Destroy:在对象释放时引发。
Error:在发生错误时引发
Click:在单击鼠标左键时引发。
Rightclick:在单击鼠标右键时引发。
DBclick:在双击鼠标左键时引发。
GotFocus:在对象获得焦点时引发。
LostFocus:在对象失去焦点时引发。
InteractiveChange:在通过鼠标和键盘交互操作改变一个控件值时引发。
注意:①load先于init(先控件再表单);destroy先于unload
②如果一个表单建立一个命令按钮,先引发表单的load事件,再引发命令按钮的load事件,再引发控件的init,再引发表单的init事件。
③如果关闭一个含有命令按钮的表单,先引发表单的destroy事件,再引发控件的destroy事件,最后一个引发的是表单的unload事件。
④方法包含在事件之中。(方法和属性均包含在实践之中)
⑤同一个事件中,load先大后小,表单最大
22、方法:①定义:动作
②常用方法:thisform.release关闭(释放)表单
Thisform.refresh刷新表单
This.show显示当前表单
This.hide隐藏当前表单
Thisform.text1.setfocus让文本框1获得焦点,使其成为活动对象
23、对象的引用:thisform:当前对象所在的表单
This:当前对象
Thisformset:当前对象所在的表单集
Parent:当前对象的直接容器对象
24、将修改表单及控件名的四种方法(以OK为例)
①thisformset.form1.command1.caption=”OK”
②thisform.command1.caption=”OK”
③this.caption=”OK”
④this.parent.caption=”OK”
25、表单集:①定义:由多个表单组成的表单集合,即在一个设计器中出现多个表单
②创建:表单->表单集->新建表单
26、数据环境:表单空白处右击->数据环境
27、表单向导:①表单向导
②一对多表单向导
第七章菜单设计与应用
1、菜单的分类:条形菜单、弹出菜单
[典型的菜单系统由这两种组成;快捷菜单由弹出式菜单组成]
2、下拉式菜单的创建:①文件->新建->菜单
②命令:create menu菜单名
modify menu菜单名
3、系统菜单:SET SYSMENU ON|OFF|AUTOMATIC|TO [<弹出式菜单名表>]
|TO [<条形菜单项名表>]|TO [DEFAULT]|SAVE|NOSAVE
各项参数及选项的说明:
ON:允许程序执行时访问系统菜单
OFF:禁止程序执行时访问系统菜单
AUTOMATIC:可使系统菜单显示出来,可以访问系统菜单
TO [<弹出式菜单名表>]:重新配置系统菜单,以内部名字列出可用的弹出式菜单
TO [<条形菜单项名表>]:重新配置系统菜单,以条形菜单内部名表列出可用的子菜单
TO DEFAULT:系统菜单恢复为缺省设置
SAVE:系统菜单恢复为缺省设置
NOSAVE:将缺省配置恢复成VISUAL FOXPRO系统菜单的标准配置
*不带参数的set sysmenu to命令将屏蔽系统菜单,使系统菜单不可用。
4、菜单设计器的组成:
①菜单名称
②结果(子菜单、命令、菜单项、过程)
③选项:为一个无符号按钮(快捷键)
④菜单级:菜单栏、子菜单
“菜单项”命令按钮
⑤插入—可在当前菜单项行之前插入一个新的菜单项行
⑥插入栏—在当前菜单项行之前插入一个vf系统菜单命令
⑦删除—可删除当前菜单项行
⑧预览—可预览菜单效果
5、在菜单设计器环境下,系统的“显示”菜单会出现两条命令:
常规选项:设置和清理、顶层表单的复选框
菜单选项:可设置子菜单的内部名称
6、SET SYSMENU NO SAVE&&将缺省配置恢复成VF系统菜单的标准配置
SET SYSMENU TO DEFAULT&&恢复系统菜单
7、为顶层表单添加菜单的方法和过程:表单对象的showwindow:2
8、定义的菜单文件包括两个文件:*.mnx和*.mnt
8、生成菜单程序:菜单->生成(生成.mpr的菜单程序文件)
9、运行菜单程序:do菜单名.mpr(注:扩展名不可省)
10、快捷菜单:在选定对象的rightclick事件:do快捷菜单程序文件名.mpr
第八章报表设计
1、报表向导:工具->①报表向导
②一对多报表向导
2、内容:
①数据源:数据库表、自由表、视图、查询或临时表
②布局:定义了报表的打印格式,有列报表、行报表、一对多报表和多栏报表
3、①列报表:一条记录一行,应用于财务报表、销售总结
②行报表:一个字段一行,应用于列表、清单
③一对多报表: 应用于发票、会计报表
④多栏报表:应用于电话本、名片
4、建立报表:CREATE REPORT <文件名>创建新的报表
MODIFYREPORT <文件名>打开一个已有的报表
5、快速报表:新建->报表报表->快速报表
6、报表控件:①选定对象按钮
②标签按钮
③域按钮
④线条按钮、矩形按钮和圆角矩形按钮
⑤图片/activex绑定控件按钮
⑥按钮锁定
7、报表设计器默认包括3个带区:页标头、细节和页脚
(也可增加报表->总结/标题带区)
8、添加报表的数据环境
9、添加分组:组标头和组注脚
(建立索引,数据环境->属性->cursor1对象,选定order属性选择多重索引)
10、多栏报表:文件->页面设置(列标头和列注脚)
11、报表预览:report form报表文件名preview
展开 阅读全文
淘文阁 - 分享文档赚钱的网站所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。