文档库 最新最全的文档下载
当前位置:文档库 › VFP中TreeView使用实例

VFP中TreeView使用实例

VFP中TreeView使用实例
VFP中TreeView使用实例

VFP中TreeView使用实例

ActiveX控件早已为大多数程序开发人员作为一重要工具来使用。由于它与开发语言无关,任何支持ActiveX控件的软件平台上,都可以使用ActiveX控件。就像使用WINDOWS控件一样自如。然而,ActiveX控件在具体到某种开发工具中去使用时会遇到很多问题,这一点在许多刊物的文章都经常被提出讨论,但大多数都是针对Vc,Delphi,VB,PB等开发平台下的ActiveX控件。其实,在上述平台中使用ActiveX控件基本上能在其帮助功能中,开发人员依照其示例最终能找到ActiveX控件的属性,方法,事件的使用说明。甚至有些开发工具已将部分ActiveX控件作为其常用表单控件,使开发人员使用起来感到非常方便。

可是在VFP开发平台下,去使用ActiveX控件就不如上述开发工具那样的幸运,因为VFP 对其根本就未涉及到相关语法说明和示例,使VFP开发者感到尴尬与茫然。又因,很少有介绍这方面文章。因此,笔者就以正在开发“楼盘销售软件”为例介绍一下TreeView控件在VFP中的具体使用,以供与笔者同感的VFP同仁参考。

一、首先介绍TreeView 控件

TreeView 控件显示Node 对象的分层列表,每个Node 对象均由一个标签和一个可选的位图组成。TreeView 一般用于显示文档标题、索引入口、磁盘上的文件和目录、或能被有效地分层显示的其它种类信息。

Node 对象是TreeView 控件中的一项,它包含图像和文本。Nodes 集合包含一个或多个Node 对象。语法:treeview.Nodes,treeview.Nodes.Item(index)。可以使用标准的集合方法(例如Add 和Remove 方法)操作Node 对象。可以按其索引或存储在Key 属性中的唯一键来访问集合中的每个元素。为选择指定的Node 对象,必须通过它的Index 属性或Key 属性的值去引用它。

在Treeview 控件的Nodes 集合中添加一个Node 对象:object.Add(relative, relationship, key, text, image, selectedimage) Nodes 集合是一个基于1 的集合。在添加Node 对象时,它被指派一个索引号,该索引号被存储在Node 对象的Index 属性中。这个最新成员的Index 属性值就是Node 集合的Count 属性的值。因为Add 方法返回对新建立的Node 对象的引用,所以使用这个引用来设置新Node 的属性十分方便。下面介绍一下节点几个属性:relative 是可选的。它表示已存在的Node 对象的索引号或键值。而新节点与已存在的节点间的关系,可在下一个参数relationship 中找到。

relationship 是可选的。它表示指定的Node 对象的相对位置,如设置值中所述。relationship 的设置值是:

tvwFirst为常数,0 为值。它表示首的节点。该Node 和在relative 中被命名的节点位于同一层,并位于所有同层节点之前。

TvwLast为常数,1 为值。它表示最后的节点。该Node 和在relative 中被命名的节点位于同一层,并位于所有同层节点之后。任何连续地添加的节点可能位于最后添加的节点之后TvwNext为常数,2 为缺省值。它表示下一个节点。该Node 位于在relative 中被命名的节点之后。

TvwPrevious为常数,3为值。它表示前一个节点。该Node 位于在relative 中被命名的节点之前。

TvwChild为常数,4 为缺省值。它表示子节点。该Node 成为在relative 中被命名的节点的子节点。

注意如果在relative 中没有被命名的Node 对象,则新节点被放在节点顶层的最后位置。key 是可选的。它表示节点中唯一的字符串,可用于用Item 方法检索Node。

text 是必需的。它表示在Node 中出现的字符串,即节点的名称。

index 是整数或字符串,它唯一地标识Nodes 集合的一个成员。整数是Index 属性的值,字符串是Key 属性的值。

FullPath 属性,这个属性返回在TreeView 控件中引用的Node 对象的完整限定路径。当赋予该属性为字符串变量时,该字符串被设为具有指定索引的FullPath 节点。

Indentation 属性返回或设置控件中对象的缩进宽度。

LabelEdit 属性返回或设置一个值,它确定是否可以编辑在TreeView 控件中的Node 对象的标签。

二、源程序示例

在该程序中TreeView控件能够实现项目、楼宇、单元、楼层这样四层逐级包含的关系。用户只要简单地单击每层节点“+”/“-”就能很直观地观察到一个项目中包含几幢楼,一幢楼包含几个单元,一个单元又有多少楼层。通过与页框PAGEFRAME中每一页的表格GRID 联合使用,只要双击每层节点就可在相应的表中增加记录并在GRID中显示相应的详细信息。值得说明的是该程序可以实现多个项目的显示,项目节点与项目节点之间是平行同级的关系,仅仅是第二个项目首节点排在第一个之后。而楼宇节点是项目节点的子节点,单元节点是楼宇节点的子节点,楼层节点是单元节点的子节点。效果如图1所示。

源程序1实现TreeView 控件初始化工作,即表单中的Olecontrol1.init事件填写源程序1中所有代码。源程序2实现与页框配合,显示节点相应的详细内容,即表单中的Olecontrol1.NodeClick事件填写源程序2中所有代码。

图2显示在该程序运行之后楼层子节点所有属性指标。

源程序1代码如下:

LOCAL

M.L_XMCOUNT,I,J,K,L,M.L_NODES,M.L_L YCOUNT,M.L_DYCOUNT,M.L_LCCOUNT THIS.NODES.CLEAR &&清除所有节点

https://www.wendangku.net/doc/9b17628916.html,BELEDIT=1 &&节点标签可以编辑

THIS.Indentation=10 &&缩进宽度为10个象素

SELECT SF_XMXX

set dele on

M.L_XMCOUNT=RECCOUNT()

FOR I=1 TO M.L_XMCOUNT

SELECT SF_XMXX

GO I

if !delete()

M.L_NODES=THIS.NODES.ADD(,,'XM'+XM_BH,XM_MC) &&向节点集合加入第一个节点KEY=XM,TEXT=项目名称

M.L_NODES.EXPANDED=.T. &&所有节点可以折叠

M.L_NODES.FORECOLOR=RGB(0,0,255) &&设置所有节点的前景颜色

M.P_XMBH=XM_BH

=REQUERY('VIEW_XML Y')

M.L_L YCOUNT=RECCOUNT('VIEW_XML Y')

IF M.L_L YCOUNT>0

FOR J=1 TO M.L_L YCOUNT

SELECT VIEW_XML Y

GO J

if !delete()

&&向'项目'父节点加入子节点'楼宇'KEY=L Y,TEXT=楼宇实际编号

THIS.NODES.ADD('XM'+SF_XMXX.XM_BH,4,'L Y'+VIEW_XML Y.L Y_BH,VIEW_XML Y.L Y _SJBH)

M.P_L YBH=VIEW_XML Y.L Y_BH

=REQUERY('VIEW_XMDY')

M.L_DYCOUNT=RECCOUNT('VIEW_XMDY')

IF M.L_DYCOUNT>0

FOR K=1 TO M.L_DYCOUNT

SELECT VIEW_XMDY

GO K

if !delete()

&&向'楼宇'父节点加入子节点'单元'KEY=DY,TEXT=单元实际编号

THIS.NODES.ADD('LY'+VIEW_XML Y.L Y_BH,4,'DY'+VIEW_XMDY.DY_BH,ALLTRIM(ST R(VIEW_XMDY.DY_SJBH))+'单元')

M.P_DYBH=VIEW_XMDY.DY_BH

=REQUERY('VIEW_XMLC')

M.L_LCCOUNT=RECCOUNT('VIEW_XMLC')

IF M.L_LCCOUNT>0

FOR L=1 TO M.L_LCCOUNT

SELECT VIEW_XMLC

GO L

if !delete()

&&向'单元'父节点加入子节点'楼层'KEY=LC,TEXT=楼层实际编号

THIS.NODES.ADD('DY'+VIEW_XMDY.DY_BH,4,'LC'+VIEW_XMLC.LC_BH,ALLTRIM(ST R(VIEW_XMLC.LC_SJCH))+'层')

endif

ENDFOR

ENDIF

endif

ENDFOR

ENDIF

endif

ENDFOR

ENDIF

endif

ENDFOR

源程序2如下:

*** ActiveX 控件事件***

LPARAMETERS node

*** ActiveX Contro1l Event ***

LOCAL M.L_NODES,M.L_SELECTED,L_INDEX

M.L_SELECTED=THISform.Olecontrol1.SELECTEDITEM.INDEX

M.L_NODES=THISFORM.OLECONTROL1.NODES(M.L_SELECTED)

THISFORM.PAGEFRAME1.PAGE1.CAPTION='项目信息'

THISFORM.PAGEFRAME1.PAGE2.CAPTION='楼宇信息'

THISFORM.PAGEFRAME1.PAGE3.ENABLED=.F.

THISFORM.PAGEFRAME1.PAGE3.CAPTION='单元信息'

THISFORM.PAGEFRAME1.PAGE4.ENABLED=.F.

THISFORM.PAGEFRAME1.PAGE4.CAPTION='楼层信息'

DO CASE

CASE M.L_NODES.KEY='XM'

THISFORM.PAGEFRAME1.ACTIVEPAGE=1

CASE M.L_NODES.KEY='L Y'

THISFORM.PAGEFRAME1.ACTIVEPAGE=2

CASE M.L_NODES.KEY='DY'

THISFORM.PAGEFRAME1.PAGE3.ENABLED=.T.

THISFORM.PAGEFRAME1.ACTIVEPAGE=3

CASE M.L_NODES.KEY='LC'

THISFORM.PAGEFRAME1.PAGE4.ENABLED=.T.

THISFORM.PAGEFRAME1.ACTIVEPAGE=4

ENDCASE

if M.L_NODES.KEY<>'XM'

DO CASE

CASE M.L_NODES.KEY='L Y'

M.P_XMBH=substr(M.L_NODES.KEY,3,2)

M.P_L YBH=RIGHT(M.L_NODES.KEY,LEN(M.L_NODES.KEY)-2)

=REQUERY('VIEW_XMDY')

IF RECCOUNT('VIEW_XMDY')=0

SELE SF_L YXX

SET ORDER TO L YBH

SEEK M.P_L YBH

IF FOUND()

DYZS=SF_L YXX.L Y_DYZS

ENDIF

FOR I=1 TO DYZS

SELECT VIEW_XMDY

APPEND BLANK

THISFORM.PAGEFRAME1.PAGE3.GRID1.afterROWCOLCHANGE

ENDFOR

GO TOP

THISFORM.PAGEFRAME1.PAGE3.GRID1.refresh

ENDIF

THISFORM.PAGEFRAME1.PAGE2.CAPTION=ALLTRIM(M.L_NODES.TEXT) THISFORM.PAGEFRAME1.PAGE3.ENABLED=.T.

THISFORM.PAGEFRAME1.PAGE1.CAPTION=ALLTRIM(LEFT(this.nodes(M.L_SELECTED)

.FULLPATH,AT('\',this.nodes(M.L_SELECTED).FULLPATH)))

=REQUERY('VIEW_XML Y')

sele view_xmly

CASE M.L_NODES.KEY='DY'

M.P_XMBH=substr(M.L_NODES.KEY,3,2)

M.P_lyBH=substr(M.L_NODES.KEY,3,4)

M.P_DYBH=RIGHT(M.L_NODES.KEY,LEN(M.L_NODES.KEY)-2)

=REQUERY('VIEW_XMLC')

IF RECCOUNT('VIEW_XMLC')=0

SELE SF_DYXX

SET ORDER TO DYBH

SEEK M.P_DYBH

IF FOUND()

LCZS=SF_DYXX.DY_LCS

ENDIF

FOR I=1 TO LCZS

SELECT VIEW_XMLC

APPEND BLANK

THISFORM.PAGEFRAME1.PAGE4.GRID1.afterROWCOLCHANGE

ENDFOR

GO TOP

ENDIF

THISFORM.PAGEFRAME1.PAGE3.CAPTION=ALLTRIM(M.L_NODES.TEXT) THISFORM.PAGEFRAME1.PAGE4.ENABLED=.T.

THISFORM.PAGEFRAME1.PAGE1.CAPTION=ALLTRIM(LEFT(this.nodes(M.L_SELECTED) .FULLPATH,AT('\',this.nodes(M.L_SELECTED).FULLPATH)))

=REQUERY('VIEW_XMdy')

sele view_xmdy

CASE M.L_NODES.KEY='LC'

M.P_XMBH=substr(M.L_NODES.KEY,3,2)

M.P_lyBH=substr(M.L_NODES.KEY,3,4)

M.P_dyBH=substr(M.L_NODES.KEY,3,6)

M.P_LCBH=RIGHT(M.L_NODES.KEY,LEN(M.L_NODES.KEY)-2)

THISFORM.PAGEFRAME1.PAGE4.CAPTION=ALLTRIM(M.L_NODES.TEXT) THISFORM.PAGEFRAME1.PAGE1.CAPTION=ALLTRIM(LEFT(this.nodes(M.L_SELECTED) .FULLPATH,AT('\',this.nodes(M.L_SELECTED).FULLPATH)))

=REQUERY('VIEW_XMlc')

sele view_xmlc

ENDCASE

ELSE

THISFORM.PAGEFRAME1.PAGE1.CAPTION=ALLTRIM(this.nodes(M.L_SELECTED).TEX T)

L_INDEX=M.L_SELECTED

M.P_XMBH=RIGHT(this.NODES(M.L_SELECTED).KEY,LEN(this.NODES(M.L_SELECTED ).KEY)-2)

=REQUERY('VIEW_XML Y')

IF RECCOUNT('VIEW_XML Y')=0

SELE SF_XMXX

SET ORDER TO XMBH

SEEK M.P_XMBH

IF FOUND()

ZLS=SF_XMXX.XM_ZLS

ENDIF

FOR I=1 TO ZLS

SELECT VIEW_XML Y

APPEND BLANK

THISFORM.PAGEFRAME1.PAGE2.GRID1.AFTERROWCOLCHANGE

ENDFOR

GO TOP

ENDIF

ENDIF

THISFORM.REFRESH

Access Treeview 应用实例

《Access Treeview 应用实例》 使用说明: 本程序可在各种支持VBA语言的软件上直接使用,其中MS Access已成功测试具体步骤为: 1、在Access里创建一个tblTreeview的数据表如下图: 2、在Access里创建一个frmTreeview的窗体,在窗体里创建一个Treeview1的Treeview控件和一个 ImageList1的ImageList控件如下图:

3、然后把程序复制到frmTreeview窗体的加载事件当中如下图: 4、最终效果如下图:

程序: Private Sub Form_Load() On Error Resume Next Dim strParent As String, strChild As String, MyNode As Node Me.Treeview1.Nodes.Clear '清除Treeview的所有旧节点 Me.Treeview1.ImageList =Me.ImageList1.Object '把图标加载到每个节点前面 Set rst = CurrentDb.OpenRecordset("SELECT * FROM tblTreeview", dbOpenSnapshot, dbReadOnly) 'Treeview 节点数据来源 While Not rst.EOF strChild = rst!ChildID If rst!ChildID <> rst!ParentID Then strParent = Mid(rst!ParentID, 1, Len(rst!ParentID) - Len(rst!ChildID) - 1) Set MyNode = Me.Treeview1.Nodes.Add(strParent, tvwChild, rst!ParentID, rst!ChildID, "A1", "A3") '加载子节点 Else strParent = rst!ChildID Set MyNode = Me.Treeview1.Nodes.Add(, , strChild, rst!ChildID, "A1", "A3") '加载父节点End If rst.MoveNext Wend rst.Close '关闭数据集 Me.Treeview1.HideSelection = False '离开焦点后有阴影 End Sub

VFP常见编程实例(免费下载)

VFP常见编程实例 1、1-100的累加 ** 求1到100的累加值 CLEAR s=0 i=1 DO WHILE i<=100 s=s+i i=i+1 &&一定记住先累加后循环ENDDO ?s RETURN 2、阶乘 ** 求5的阶乘 CLEAR j=1 i=1 DO WHILE i<=5 j=j*i

i=i+1 ENDDO ?j RETURN 3、求阶乘和 ** 求1至5的阶乘和CLEAR s=0 i=1 j=1 DO WHILE i<=5 j=j*i s=s+j i=i+1 ENDDO ?s RETURN 4、条件定位

** 查询定位记录指针在赵伟上 CLEAR USE 学生 LOCATE FOR 姓名="赵伟" IF FOUND() DISPLAY ELSE CANCEL ENDIF CONTINUE 5、用scan语句查询定位 ** 用scan语句查询定位记录在赵伟上 CLEAR SCAN FOR 姓名="赵伟" DISPLAY ENDSCAN RETURN 6、用scan语句扫描符合条件的记录,并显示出来** 把年龄小于30岁的人显示出来

SCAN FOR 年龄<30 DISPLAY ENDSCAN RETURN 7、查找男性职工 ** 查找男性职工CLEAR LOCATE FOR 性别="男" DO WHILE FOUND() DISPLAY CONTINUE ENDDO RETURN ** 查找男性职工CLEAR LOCATE FOR 性别="男" DO WHILE NOT EOF() DISPLAY CONTINUE

VB控件 treeview用法详解

VB TreeView控件使用详解 (2012-06-16 15:08:16) 标签:分类: 第一小时:学习直接用代码将数据填充到树控件中。 为什么要先学习直接用代码将数据填充到树控件中因为这种方法是最简单的,代码也最容易理解,学习树控件,先将这个学会,已经掌握了一半,所以先不要急着想怎么将表中的数据填充到树控件中,在第一小时里,树控件和表完全没有关系。 目的:我们要在树控件中建立如下的一个3层级关系 水果 | |__苹果 | |__红富士 | |__国光 | |__葡萄 |__红提子 |__青提子 解释:水果包含2种,一种是苹果,一种是葡萄,苹果又包含2种,一种是红富士,一种是国光,葡萄也如此。 在这里:“爷”是水果,“父”是苹果,葡萄,“子”是红富士,国光,红提子,青提子。概括如下: 爷(只能有一个):水果 父(这里有2个):父1:苹果;父2:葡萄

子(这里有4个):子1:红富士(父1苹果的子);子2:国光(父1苹果的子);子3:红提子(父2葡萄的子);子4:青提子(父2葡萄的子) 1、新建一个窗体,在窗体上放置两个控件,一个是Treeview,一个是Imagelist 如何找到这两个控件 Treeview控件在“工具箱”的榔头加扳手图标(其他控件)中选“Microsoft Treeview Control,Version " Imagelist控件在“工具箱”的榔头加扳手图标(其他控件)中选“Microsoft Imagelist Control,Version " Treeview控件大家都明白干什么用的,Imagelist控件是干什么用呢原来这个控件是放图标用的,如果你想在树控件中显示图标的,这个图标都将储存在ImageList控件中。 2、设置这两个控件的属性 首先要讲清楚控件的属性设置有2种,一种是设置这个控件在ACCESS中的属性,比如名称等。一种是设置这个控件本身的属性。要设置这个控件在ACCESS中的属性,选中控件后按鼠标右键选“属性”就可以了。跟我们平时设置文本框什么的一样。要设置这个控件本身的属性,只要双击这个控件就可以了。 1)设置Treeview控件在ACCESS中的名称属性,将名称设置为“Treeview" 2)设置Imagelist控件在ACCESS中的名称属性,将名称设置为“Image" 2)设置Imagelist控件本身的属性,双击控件后,在弹出来的设置框中选“Images",单击“Insert Picture"按钮,在你电脑中选择你需要的图标。在“Key:”栏中填入“K1”。其他默认设置不用改。3)设置Treeview控件本身的属性,双击控件后,在弹出来的设置框中选“General”,在这个选项面版中有很多项设置,大多数是设置树控件的显示格式,你自己慢慢研究。这里我们将第一项“Style"选7,在第五项“Imagelist"选项中将我们放置的Imagelist控件“Image"选上。这项设置就将图标和树控件联系了起来。 3、写代码将数据填充到树控件中

VFP函数大全

VFP函数大全 %运算符用于计算并返回两个数值表达式相除之后的余数 $(包含)运算符用于进行字符表达式之间的包含关系运算,如果一个字符表达式包含在另一个字符表达式之中,则函数返回真 ABS() 计算并返回指定数值表达式的绝对值 ACLASS() 用于将一个对象的父类名放置于一个内存数组中 ACOPY() 把一个数组的元素拷贝到另一个数组中 ACOS() 计算并返回一个指定数值表达式的余弦值 ADATABASES() 用于将所有打开的数据库名和它的路径存入一个内在变量数组中 ADB OBJECT S() 用于把当前数据库中的连接、表或SQL视图的名存入内存变量数组中 ADEL() 用于从一维数据中删除一个元素,或从二维数组中删除一行或者一列元素 ADIR() 将文件的有关信息存入指定的数组中,然后返回文件数 AELEMENT() 通过元素的下标,返回元素号 AFIELDS 将当前的结构信息存入数组中,然后返回表中的字段数 AFONT() 将可用字体的信息存入数组中 AERROR() 用于创建包含VFP或ODBC错误信息的内存变量 AINS() 在一维数组中插入一个元素或在二维数组中插入一行或一列元素 AINSTANCE() 用于将类的所有实例存入内存变量数组中,然后返回数组中存放的实例数 ALEN() 返回数组中元素、行或者列数 ALIAS() 返回当前工作区或指定工作区内表的别名 ALLTRIM() 从指定字符表达式的首尾两端删除前导和尾随的空格字符,然后返回截去空格后的字符串 AMEMBERS() 用于将对象的属性、过程和成员对象存入内存变量数组中

ANSITOOEM() 将指定字符表达式中的每个字符转换为MS-DOS(OEM)字符集中对应字符 APRINTERS() 将Print Manager中安装的当前打印机名存入内存变量数组中 ASC() 用于返回指定字符表达式中最左字符的ASCII码值 ASCAN() 搜索一个指定的数组,寻找一个与表达式中数据和数据类型相同的数组元素 ASELOBJ() 将活动的Form设计器当前控件的对象引用存储到内存变量数组中 ASIN() 计算并返回指定数值表达式反正弦值 ASORT() 按升序或降序排列数组中的元素 ASUBSCRIPT() 计算并返回指定元素号的行或者列坐标 AT() 寻找字符串或备注字段在另一字符串或备注字段中的第一次出现,并返回位置 ATAN() 计算并返回指定数值表达式的反正切值 ATC() 寻找字符串或备注字段中的第一次出现,并返回位置,将不考虑表达式中字母的大小写 ATCLINE() 寻找并返回一个字符串表达式或备注字段在另一字符表达式或备注字段中第一次出现的行号。不区分字符大小写 ATLINE() 寻找并返回一个字符表达式或备注字段在另一字符表达式或备注字段中第一次出现的行号ATN2() 根据指定的值返回所有4个像限内的反正切值 AUSED() 用于将一次会话期间的所有表别名和工作区存入变量数组之中 BAR() 从用DEFINE POPUP命令定义的菜单中返回最近所选择的菜单项的编号,或返回一个从VFP菜单所选择的一个菜单命令 BARCOUNT() 返回DEFINE POPUP命令所定义的菜单中的菜单项数,或返回VFP系统菜单上的菜单项数 BARPROMPT() 返回一个菜单项的有关正文 BETWEEN() 确定指定的表达式是否介于两个相同类型的表达式之间 BITAND() 返回两个数值表达式之间执行逐位与(AND)运算的结果 BITCLEAR() 清除数值表达式中的指定位,然后再返回结果值 BITLSHIFT() 返回将数值表达式左移若干位后的结果值

vfp中api函数调用实例

vfp中api函数调用实例 我们在vfp编程时,为了弥补vfp本身功能的不足,常常会用到win32api函数来对vfp 的功能进行扩展,例如取得系统信息、对注册表进行操作等,但由于win32api函数是c++的数据结构形式,在调用时与vfp的数据格式有所不同,因此在调用时往往会产生问题。下面,笔者就在vfp如何调用win32api函数,并就一些常用的win32api函数调用实例作一具体介绍。 一、vfp中调用win32api函数的格式 vfp中调用win32api函数的命令主要是declare-dll和clear dlls两个。 1.declare-dll 它用于注册外部windows 32位动态链接库(.dll)中的一个函数。 语法: declare [cfunctiontype] functionname in libraryname [as aliasname] [cparamtype1 [@] paramname1, cparamtype2 [@] paramname2, ...] 说明: cfunctiontype 指定该函数返回值的类型,其类型代码如下: short16位整数 integer32位整数 single32位浮点数 double64位浮点数 string字符串 functionname指定在要注册使用的32位函数名。注意functionname区分大小写。 如果该函数名与visual foxpro的保留字相同,应使用as参数另起别名。 in libraryname 指定该函数所在的外部动态链接库文件名,如果libraryname为win32api时,vfp将依次查找:kernel32.dll、gdi32.dll、user32.dll、mpr.dll及advapi32.dll 等动态链接库文件名。 as aliasname 为当api函数的名称与visual foxpro的保留字相同时,另取aliasname别名,另取的别名是不区分大小写的。 cparametertype1 [@] paramname1, cparametertype2 [@] paramname2, ... 指定传递给被调用的32位.dll函数的参数类型及参数名称。其类型代码如cfunctiontype,如果要以传址方法传递参数则应在参数名前加上@。 2. clear dlls 释放所有利用declare-dll命令所装入的动态链接库。 一旦申明win32api函数成功,就可以和一般函数一样用?xxx()、=xxx() 来使用。 二、vfp中常用win32api函数调用实例 1.利用win32api函数获取指定磁盘的卷标: stor 0 to c—var,c—cd,c—qf c—disk=′c:\′ &&指定磁盘 declare integer getvolumeinformation in win32api string @,string @,integer,; integer @, integer @, integer @, string @, integer xx=getvolumeinformation(c—disk,″ ″,20,@c—var,@c—cd,@c—qf,0,0) clear dlls 返回值: xx〈〉0 获取指定磁盘的卷标成功,反之则未成功。

treeview控件应用

树形结构控件TreeView TreeView是一种 能以树形目录结构形式 显示数据的高级控件, 显示方式类似于 Windows的资源管理 器,能分层展开各结点 的子目录,也能收缩各 结点的子目录。本节将 先介绍TreeView控件 的一些基本概念、属性 与方法,再举例说明 TreeView控件的应用。 TreeView控件概述、属性与方法 1、作用:用于显示Node结点的分层列表。 2、添加到控件箱 菜单命令:工程 | 部件,在部件对话框中选择:Microsoft Windows Common Controls 6.0 3、TreeView控件的属性 (1)属性对话框 用鼠标右键单击TreeView 控件,在弹出式菜单中选择属 性,进入属性设置对话框,该 对话框分为通用、字体、图片 三个选项卡,如图8.6所示。

①样式(Style):返回或设置在Node结点之间显示的线样式,如表8.6所示。 ②鼠标指针(MousePoint):可选择不同鼠标样式,如表8.1所示。 ③线条样式(LineStyle):0-tvwTreeLine 无根结点的树形结构,1-tvwRootLines有根结点的树形结构。 ④标签编辑(LabelEdit):0-tvwAutomatic 自动,1-tvwManual 手工; ⑤图像列表(ImageList):结点图标所用ImageList控件; ⑥边框样式(BorderStyle):0-ccNone无边框,1-ccFixedSingle单边框; ⑦外观(Appearence):0-ccFlat平面效果,1-cc3D 3D效果; ⑧缩进:父子结点的水平间距。 (2)其它属性 ①SelectedItem.Text属性:用于返回或设置当前Node结点的内容。 ②CheckBoxes属性:该属性只能取逻辑值,若取True值,则每个Node结点前出现一个复选框,否则不出现复选框。 4、TreeView控件的方法 (1)Node结点 ①Node结点:是TreeView控件中的一项,它包含图像与文本。 ②Nodes结点集合:包含一个或多个Node结点。 (2)Add方法 ①作用:为TreeView控件添加节点和子节点。 ②定义格式 TreeView1.nodes.Add(Relative,Relationship,Key,Text, Image,SelectedImage) 其中: ◆Relative参数:添加新结点时,其父结点键值Key。添加根结点时,此项为空。 ◆Relationship参数:新结点的相对位置: tvwlast—1:新节点位于同级别所有节点之后; tvwNext—2:新节点位于当前节点之后; tvwPrevious—3:新节点位于当前节点之前; tvwChild—4:新节点成为当前节点的子节点。 ◆Key:Node结点关键字(唯一标识符),用于检索Node结点。同时也作为其新建子结点的Relative值,即新建子结点的Relative=父结点Key。 ◆Text:Node结点文本。 ◆Image:Node结点位图,是关联ImageList控件中位图的索引。

vfP 函数练习题

第二章练习题 一、选择题。 1. 就关系数据描述语言来说,Visual FoxPro属于______数据库管理系统。 A)问答式B)语言描述式 C)域描述语句式D)关系描述语句式 2. 下列______符号不能作为Visual FoxPro中的变量名。 A)ABCDEFG B)K1234 C)12ASDFG D)xyz 3. 日期型数据长度固定为______个字符。 A)10B)12 C)8 D)6 4. 在Visual FoxPro数据库文件中,逻辑型、日期型、备注型数据的宽度分别是______。 A)1,8,128 B)2,8,10 C)1,8,10 D)1,8,任意 5. 以下4个符号中,______是Visual FoxPro中的一个常量。 A)T B)TOP C).T. D)TO 6. Visual FoxPro中,表达式: 2*3^2+2*8/4+3^2的值为______。 A)64 B)31 C)49 D)22 7. 下列4个式子中,______不是Visual FoxPro中的表达式。 A)05/23/88 B)"2002" C)X+Y D)XYZ='5' AND ABC=5 8. 将逻辑值赋给内存变量X的正确方法是______。 A)X="T" B)STORE "T" TO X C)X=TRUE D)STORE .T. TO X 9. 设M="324.2",?43+&M的结果是______。 A)43 B)324.2 C)43324.2 D)367.2 10. 设A=123,B=456,K="A+B",则表达式l+&K的值是______。 A)1123456 B)580 C)1+A+B D)579 11. 顺序键入以下命令,显示结果为______。 STORE "14.31" TO X Y=INT(&X+5) ?Y A)20 B)14.315 C)14.31 D)19 12. Visual FoxPro中的索引文件分为单索引文件和复合索引文件,其中复合索引文件的扩展名为______。A)IDX B)EDX C)CDX D)NDX 13. 用于存储内存变量的文件扩展名为______。 A)FPT B)PRG C)FMT D)MEM 14. Visual FoxPro函数INT(RAND()*10)的值是在______范围内的整数。 A)(0,1)B)(1,10)C)(0,10)D)(1,9) 15. 数学式子sin25°写成Visual FoxPro表达式是______。 A)SIN25 B)SIN(25)C)SIN(25°)D)SIN(25*PI/180) 16. 设某数据库有100条记录。用函数EOF ( ) 测试结果为.T.,此时,当前记录号为______。 A)100 B)101 C)99D)1 17. 在下列表达式中,结果为日期类型的正确表达式是______。 A)DATE() + 25 B)DA TE() + TIME() C)DATE() – CTOD("06/11/2002") D)365 – DATE() 18. 执行如下命令: ?LEN(TRIM("北京市□□□")) 结果是______(其中□表示一个空格)。 A)6 B)3 C)9 D)10 19. 执行下列命令: M="ABCDabcd" ?SUBSTR(M,INT(LEN(M)/2+1),2) 输出结果是______。 A)AB B)ab C)bc D)abcd 20. Visual FoxPro数据库文件中,函数ROUND(1234.567,2)的值是______。 A)1234.57 B)1234.56 C)1235 D)1234 21. 执行下列命令后显示的结果是______。 A=CTOD("05/23/89") B=CTOD("05/03/89") ?B-A A)20 B)-20 C)“05/20/89” D)“05/-20/89” 22. 执行下列命令后显示的结果是______。 STR="VFoxPr数据库" ?SUBSTR(STR,LEN(STR)/2+1,6) A)VFoxPrB)数据库C)数据D)Pr数据 23. 执行下列命令后显示的结果是______。 X="Visual FoxPro is OK" ?AT("Fox",X) A)8B)6 C)FoxPro D)Visual 24. 函数STUFF("数据库",5,6,"管理系统")的结果是______。 A)数据库管理系统B)数据管理系统C)管理系统D)库系统 25. FoxPro数据库管理系统的数据模型是______。 A)概念型B)网状型C)关系型D)层次型 26. 下面4条叙述中,正确的叙述是______。 A)在命令窗口中被赋值的变量都是全局变量 B)在上级程序定义的变量在被调用的下级程序中无效 C)在程序中,用DECLARE定义的数组为全局变量 D)在程序中,用DIMENSION定义的数组为全局变量 27. 下面4条叙述中,正确的叙述是______。 A)在命令窗口中被赋值的变量均为局部变量 B)在命令窗口中用PRIV ATE命令说明的变量均为局部变量 C)在被调用的下级程序中用PUBLIC命令说明的变量都是全局变量 D)在程序中用PRIVA TE命令说明的变量均为全局变量 28. 下面4条叙述中,正确的叙述是______。 A)局部变量不可以与全局变量同名,但可以与上级程序中的局部变量同名 1

delphi中TreeView控件使用

DELPHI中利用TreeView控件建立目录树2000-06-26 00:00:00·-·中国计算机报社 p>Rainbow的话:关于TreeView的使用,还可以参看:联合使用TreeView 组件 TreeView是一个显示树型结构的控件,通过它能够方便地管理和显示具有层次结构的信息,是Windows应用程序的基本控件之一。DELPHI虽然具有比较强大的文件管理功能,提供了多个用于文件管理的标准控件,如DriveComboBox、DirectoryListBox、FileListBox等,通过设置它们的属性,使其建立起联系,甚至不用编写一行程序,我们就可以实现在不同的目录之间进行切换,然而这样的目录切换只适用于进行文件的查找定位,而不能方便地进行目录的浏览,例如我们要从c:\windows目录转到c:\program files目录,就必须返回到根目录才能进行切换,而不能象Windows资源管理器那样任意地在不同的目录之间进行浏览与切换。 要实现在不同目录之间任意切换和浏览,还是需要使用TreeView控件,以下程序就利用DELPHI的TreeView控件来建立目录树。 在该程序中采用的各部件以及界面设计如下图所示: 各部件的主要属性设置如下: 部件属性属性值form name caption form1 ‘目录浏览’ drivecommbobox name visible drivecommbobox1 false filelistbox name visible filetype filelistbox1 false fddirectory imagelist name imagelist1 treeview name images 该程序利用DriveCommboBox控件来获得系统具有的驱动器,并以此作为目录树的最上层,利用FileListBox控件,通过设置其Filetype属性为fdDirectory,可以获得所需的子目录,在TreeView控件的OnExpanding事件中将得到的子目录加到该控件的某一节点下。

vfp调用word OR excel

vfp调用word OR excel(二) 10.从VFP中导出数据的几种方法! 答:当VFP处理好数据后,这时你可以用多种方法将这些数据导出,以便被其它应用程序(如Excel等)所用。下面向你简单介绍几种导出数据的方法: 1.用“导出数据”对话框。你可以从VFP主菜单中选择“文件/导出…”打开 “导出”对话框,在该对话框中的“来源”框中输入表名(c:\vfp\students.dbf ),在“类型”中指定要导出数据的类型(Microsoft Excel),在“到”框中输入 导出的路径和文件名(C:\excel\aa.xls),然后按“确定”即可。这时你如果查看command窗口,可发现以下代码: COPY TO C:\excel\aa.XLS TYPE XL5 2.用COPY TO命令。COPY TO命令的工作对象是VFP中的表,它要依据“TYPE”项才知道要产生哪一类导出文件。对于上面的导出过程,可用以下方法实现:USE students COPY TO C:\excel\aa.XLS TYPE XL5 12.在VFP6中,如何调用已经存在的WORD文件? oW = CREATEOBJECT([word.basic]) with oW .Apprestore() .Appmaximize() .fileopen("路径+文件名.扩展名") ENDWITH 13.打开word文件的控件? 用RUN /N3 C:\WORD.EXE 文档路径 C:\WORD.EXE是我自己写的,你用时换成WORD的真正路径就行了!

比如用WORD 打开SD.DOC 就写 RUN /N3 C:\WORD.EXE C:\SD.DOC 另:TXLS_EOLE = CREATEOBJECT('word.application') TXLS_EOLE.Documents.Open('文件名.doc') TXLS_EOLE.Visible=.t. 注意:别忘了关闭哦 TXLS_EOLE.Documents.close &&关闭文档 TXLS_EOLE.quit &&关闭word RELEASE TXLS_EOLE &&释放对象 再者: fw=alltrim(this.value) if file('&fw') *documents.open filename('&fw') wrdapp = createobject("word.application") wrdapp.visible=.t. *wrdapp.documents.add wrdapp.documents.open(alltrim(this.value)) else messagebox(fw+chr(13)+'文件不存在,请确认',0+16,'文件路径出错') RETURN(.F.) ENDIF 14.在表单中创建一个编辑框,用来显示WORD文档! 做一个按扭,在CLICK中写:THISFORM.EDIT1.value=FILETOSTR(GETFILE('DOC')) 这个不也行,而且还简单 15.强烈建议:直接使用ole可以在表单中打开word,建议不使用这种办法,改为利用api 用windows默认的程序打开word,数据库只存储word文档所在的位置和名字。

C_-TreeView控件使用方法

TreeView 控件显示Node 对象的分层列表,每个Node 对象均由一个标签和一个可选的位图组成。 本文主要介绍C# treeView控件中,添加,修改、删除节点等c# treeview控件的使用方法。 其代码如下: 1.private void Form1_Load(object sender, EventArgs e) 2.{ 3. https://www.wendangku.net/doc/9b17628916.html,belEdit = true;//可编辑状态。 4. 5.,这个结点是根节点。 6. TreeNode node = new TreeNode(); 7. node.Text = "hope"; 8. treeView1.Nodes.Add(node); 9. TreeNode node1 = new TreeNode(); 10. node1.Text = "hopeone"; 11. TreeNode node11 = new TreeNode(); 12. node11.Text = "hopeoneone"; 13. TreeNode node2 = new TreeNode(); 14. node2.Text = "hopetwo"; 15. node1.Nodes.Add(node11);//在node1下面在添加一个结点。 16. node.Nodes.Add(node1);//node下的两个子节点。 17. node.Nodes.Add(node2); 18. 19. TreeNode t = new TreeNode("basil");//作为根节点。 20. treeView1.Nodes.Add(t); 21. TreeNode t1 = new TreeNode("basilone"); 22. t.Nodes.Add(t1);

vfp中地常用函数与命令

VFP常用的命令和函数 1.数据库操作语言 使用可以CLOSE 命令关闭各种类型的文件。 DBC( ) 函数返回当前数据库的名称和路径。SQLCANCEL( ) 函数请求取消一条正在执行的 SQL 语句。SQLCOMMIT( ) 函数提交一个事务处理。SQLCONNECT( ) 函数建立一个对数据源的连接。SQLDISCONNECT( ) 函数结束一个对数据源的连接。SQLEXEC( ) 函数发送一条 SQL 语句到数据源中处理。SQLGETPROP( ) 函数获取一个活动连接的当前设置。 SQLMORERESULTS( ) 函数如果存在多个可用的结果集,则将另一个结果集复制到Visual FoxPro 临时表(cursor)中。 SQLROLLBACK( ) 函数取消当前事务处理期间所做的任何更改。SQLSETPROP( ) 函数指定一个活动连接的设置。SQLSTRINGCONNECT( ) 函数使用一个连接字符串建立与数据源的连接。TABLEREVERT( ) 函数放弃对缓冲行、缓冲表或临时表(cursor)的修改。 TABLEUPDATE( ) 函数提交对缓冲行、缓冲表或临时表(cursor)适配器的修改。 字段操作语言 使用可以BLANK 命令清除字段中的数据。 DELETED( ) 函数指出一个记录是否被标记为删除。FCOUNT( ) 函数返回一个表中的字段数量。 FIELD( ) 函数根据编号返回表中的字段名。 GATHER 命令用来自指定源的数据替换记录中的数据。SCATTER 命令从当前记录中复制数据到指定的目标。SET EXACT 命令指定比较不同长度两个串时的规则。

C# TreeView介绍与使用

C# TreeView中的使用-wwj TreeView组件是由多个类来定义的,TreeView组件是由命名空间"System.Windows.Forms"中的"TreeView"类来定义的,而其中的节点(即Node),是由命名空间"System.Windows.Forms"中的"TreeNode"来定义的。所以当在程序中创建一个TreeView对象,其实只是创建了一个可以放置节点的"容器"。而在这个容器中加入一个节点,其实就是加入了从"TreeNode"类中创建的一个节点对象;同样删除一个节点,也就是删除一个"TreeNode"节点对象。 一. C#操作TreeView组件中的一些常用方法以及具体实现: TreeView组件虽然是一个操作起来比较麻烦的组件,但归根到底,可以总结为三种基本操作:加入子节点、加入兄弟节点和删除节点。掌握了这三种常用操作,对于在编程中灵活运用TreeView组件是十分必要的。下面就分别来加以介绍。 (1).加入根节点、子节点: 所谓根节点是指没有父节点、但具有一个或多个子节点的节点。初始创建根节点的代码如下: TreeNode rootnode = new TreeNode("根节点"); treeView1.Nodes.Add(rootnode); 如果要加入多个根节点。则每个根节点要对应一个TreeNode,然后再创建。 所谓子节点,就是处于选定节点的下一级节点。加入子节点的具体过程是:首先要在TreeView组件中定位要加入的子节点的位置,然后创建一个节点对象,然后利用TreeVeiw类中对节点的加入方法(即:Add ( )方法),加入此节点对象。下面就是在treeView1组件中加入一个子节点的具体代码: //首先判断是否选定组件中的位置 if ( treeView1.SelectedNode == null ) { MessageBox.Show ( "请选择一个节点" , "提示信息" , MessageBoxButtons.OK , https://www.wendangku.net/doc/9b17628916.html,rmation ) ; } else { //创建一个节点对象,并初始化 TreeNode tmp ; tmp = new TreeNode ( "节点名称" ) ; //在TreeView组件中加入子节点 treeView1.SelectedNode.Nodes.Add ( tmp ) ; treeView1.SelectedNode = tmp ; treeView1.ExpandAll ( ) ; }

VFP中调用其他应用程序的方法

VFP中调用其他应用程序的方法 在用VFP进行应用程序设计中,经常需要调用其他的应用程序。这时候我们立即会想到RUN命令。使用RUN命令只需知道应用程序的文件名及其路径即可。 下面的示例是以最大化方式启动Windows目录下的图画板程序并同时打开c:\windows\Bubbles.bmp文件: RUN/n3 C:\Windows\Pbrush.exe c:\windows\Bubbles.bmp RUN命令的参数用法可以参考Visual FoxPro的帮助文件。 但是令人失望的是,在实际开发时我们常常无法确定所需要启动的应用程序的文件名及其安装的路径。比如我们需要启动用户机器上的浏览器并连接到某一个网址,该机器可能安装的是IE,也可能是NetScape,还有可能是其他的浏览器软件,安装的路径更是无从确定。下面给出我在工作中找到的两种解决方法,这两种方法都是通过Win32 API函数来解决问题,因此其解决思路也可以用到其他编程语言中去。 (一)从注册表中获取被调用软件的名称及路径。 我们只需要提供被调用的软件所处理的文件类型(由文件扩展名来确定),即可通过查找注册表中该软件注册的可以处理的文件类型的数据项来得到该软件的文件名及安装路径。 *主函数 PROCEDURE lookreg

Parameter filetype && 文件类型 * 申明要用到的API 函数 DECLARE Integer RegOpenKey IN Win32API ; Integer nHKey, String @cSubKey, Integer @nResult DECLARE Integer RegCloseKey IN Win32API ; Integer nHKey DECLARE Integer RegQueryvalueEx IN Win32API ; Integer nHKey, String lpszvalueName, Integer dwReserved,; Integer @lpdwType, String @lpbData, Integer @lpcbData #DEFINE HKEY_CLASSES_ROOT -2147483648 #DEFINE C_EXTNOFOUND_LOC "查找失败!" LOCAL cExtn,cAppKey,cAppName,nErrNum LOCAL oReg,regfile cAppKey = "" cAppName = "" nCurrentKey = 0 nErrNum =GetAppPath (filetype,@cAppKey,@cAppName)

VFP命令、函数及程序语句大全

VFP命令、函数及程序语句大全.txt16生活,就是面对现实微笑,就是越过障碍注视未来;生活,就是用心灵之剪,在人生之路上裁出叶绿的枝头;生活,就是面对困惑或黑暗时,灵魂深处燃起豆大却明亮且微笑的灯展。17过去与未来,都离自己很遥远,关键是抓住现在,抓住当前。VFP命令、函数及程序语句大全(1) 学过VFP(Microsoft Visual FoxPro)的朋友都知道它是微软公司开发的数据库管理系统。它 经历了从dBASE、FoxBASE、FoxPro直到VFP的发展过程。本文便以VFP 6.0为例介绍它的命令、函数 及程序语句,为学习VFP的朋友提供必要的学习参考,也为已经精通VFP的朋友提供复习的好机会。 一、主要命令: 1、CREATE 作用:建立一个新的表。 格式:CREATE [<文件>|?](注意,命令字符可取前面四个字符,后面可省略不写,即CREA,下 同;中括号表示其中的参数是可选的;|管道符号表示两个参数只能选择一个,不能同时选择,下 同。) 说明:文件指建立以.dbf为扩展名的VFP数据库文件,在命令后面加上一个问号表示系统会弹出 对话框,要求用户输入想要建立的表名。在命令中不加文件名或问号系统也会弹出对话框,要求用 户输入想要建立的表名。 2、MODIFY STRUCTURE 作用:显示表文件结构,并允许修改此表的结构。 格式:MODIFY STRUCTURE 说明:只有在用USE命令打开表文件以后,才能显示或修改表文件的结构。 3、APPEND 作用:在当前表的尾部(无论表中有无记录)追加记录(在当前表指当前正使用的表)。 格式:APPEND [BLANK] 说明:在APPEND命令后面加上BLANK参数表示在当前表的尾部添加一条空白记录。无BLANK 参数 时,表示在当前表的尾部添加一条记录并要求用户输入相应的字段内容。 4、INSERT 作用:在表文件中间插入一个新记录。 格式:INSERT [BEFORE] [BLANK] 说明:INSERT 在当前记录后插入一记录; INSERT BEFORE 在当前记录前插入一记录; INSERT BEFORE BLANK 在当前记录前插入一空记录。 INSERT - SQL命令追加记录 INSERT INTO 表名[(字段1[,字段2…])];

Treeview 控件的简单应用

Treeview 控件的简单应用: 在VB中Treeview 控件的添加: 通过VB菜单,[工程] -- [部件],然后勾选Microsoft Windows Common Controls 6.0 (SP6),[确定]。 在工具箱里就有了Treeview 控件的图标。 Treeview 控件具有显示类似目录层次结构的格式,在具体应用中很有实际意义。下面简单介绍。 一.在Treeview 控件中添加1个新节点: 在Treeview 控件中添加1个新节点,是通过Treeview 控件的Nodes 集合的Add方法添加一个Node 对象来实现的。 使用方法: Dim nodX As Node Set nodX = Treeview1.Nodes.Add(relative, relationship, key, text, image, selectedimage) 其中参数说明: Relative:可选的。已存在的Node 对象的索引号或键值。新节点与已存在的节点间的关系,可在下一个参数relationship 中找到。可以这样理解relative的作用,是新节点的位置的参照对象。 Relationship:可选的。指定的Node 对象的相对位置,如设置值中所述。本参数是相对参数relative而言。 Key:可选的。唯一的字符串,可用于用Item 方法检索Node。 Text:必需的。在Node 中出现的字符串。 Image:可选的。在关联的ImageList 控件中的图像的索引。 Selectedimage:可选的。在关联的ImageList 控件中的图像的索引,在Node 被选中时显示。 以上参数image和selectedimage,是设置节点文字左边的图形,以后详细举例说明。 例1: Set nodX = TreeView1.Nodes.Add(, , "R", "Root") 这是缺省了relative, relationship, image, selectedimage参数的实例,而key值用“R”,text 值用“Root”。 通常,缺省了relative, relationship的节点,是第1层节点。本例,生成了一个第1层节点,显示的文字为“Root”。 例2: Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C1", "Child 1") nodX.EnsureVisible '这个方法EnsureVisible,使得新添加的子节点后,展开多层显示。 本例:relative为“R”,relationship为tvwChild,key为“C1”,text为“Child 1” 其功能是:建立1个新节点;该新节点是节点key值为“R”的子节点(tvwChild),而该新节点的key值用“C1”,text值用“Child 1”。 我们现在要为TreeView1控件添加新节点,可能有三种情况; 1)添加1个新的第1层节点。 Set nodX = TreeView1.Nodes.Add(, , "R1", "Root1")

VFP常用命令详解

VFP常用命令详解 VFP命令、函数及程序语句大全(1) VFP命令是一种实现对数据库系统进行操作的动词或短语。VFP命令可在VFP命令窗口中单独运行,也可编制成程序成批运行,由命令和函数编制的程序可对数据库系统进行自动、复杂的操作,使数据库系统应用起来更加友好、方便。 ?VFP常用命令分类表 类别命令 建立文件类CREATE,MODIFY,COPY,SAVE等 数据库操作类USE,CLOSE,COPY,MODIFY STRUCTURE等 数据编辑类BROWSE,EDIT,CHANG,REPLACE,UPDATE等 记录指针操作类GOTO,LOCATE,SEEK,FIND,SKIP等 记录操作类APPEND,DELETE,INSERT等 数据显示类BROWSE,LIST,DISPLAY等 数据统计类SUM,COUNT,AVERAGE,TOTAL等 存变量操作类ACCEPT,INPUT,READ,SAVE等 程序控制类DO,DO WHILE…ENDDO,IF…ENDIF等 系统设置类SET TALK,SET DEFAULT TO等 ?命令格式 VFP命令一般由命令动词和控制短语构成。 一般格式: 命令动词[FROM<源文件>][TO<目标文件>][记录范围][FOR/WHILE<条件>] [FIELDS<字段名表>] [ ]表示可选,<>表示必选, / 表示或选

例如: (1)APPEND FROM C:\RSDA.DBF FOR 基本工资>100 FIELDS 编号,姓名,职称,基本工资。 从C:\RSDA.DBF 表中把基本工资大于100元的记录添加到当前表添加字段为:编号,姓名,职称,基本工资。 (2)COUNT FOR 职称="高工"TO GG 统计高工的记录数到内存变量GG。 控制短语规定了对数据库操作的限制条件: 1.指向输入输出目标 FROM/TO APPEND FROM,COPY FILE TO <目标文件> 2.限制记录范围(SCOPE) ALL 所有记录 NEXT 本记录后的第几个记录 RECORD<1> 第1个记录 REST 当前记录之后所有记录 3.选择字段 FIELDS<字段表>选择输入/输出的字段。 4.限制条件 FOR/WHILE<条件> FOR 基本工资>100 .AND.基本工资<200 命令格式规则 命令的行为单位,一行书写不完,在未尾加上“;”第二行接着写。

相关文档