您好,欢迎来到刀刀网。
搜索
您的当前位置:首页VFP中备注型字段拾遗

VFP中备注型字段拾遗

来源:刀刀网


基金来源:安徽科技学院青年基金

VFP 中备注型字段拾遗

王亚军 赵海燕 安徽科技学院理学院 233100

摘 要 本文介绍了Visual FoxPro 6.0中关于备注型 字段输入输出的各种命令,通过实例,说明 其在应用程序开发中常采用的方法:表单和 报表方式,克服了命令批量输入输出备注型 字段内容缺点。 关键词 备注型字段;表单;报表;文本框;编辑框 (3 )用 modify 命令进行编辑 可以直接使用编辑命令对当前记录的 备注型字段进行编辑, 格式如下:

Modify memo <备注型字段名> (4)可以用 @say 行,列 edit <备注 型字段名>命令编辑当前记录的内容。

(5)在表单中用编辑框控件对备注型 字段进行输入。

当前记录的备注型字段内容输出到一 个文本文件中, 命令为:

Copy <文本文件>

(4 )在屏幕的指定行列输出字段的 内容,则命令格式如下:

@ 行,列 say <备注型字段名> ( 5 ) 用?显示

格式: ?<备注型字段名> (6)在表单中用编辑框进行输出;

(7)用报表输出。 3 、用编

memo <备注型字段名>

to

2 、输出方法

引言

备注型字段在Visual

Fo

xPro(以下简称VFP)数据表中是一 个非常重要的字段,它与其它字段的不同在 于:一是存放的字符数量没有,即可 以存放大段文字;二是各条记录中同一个备 注型字段中存放的字符数量可有可无,可多 可少,并没有统一的宽度规定。如果数据 表中存在备注型字段,将会产生一个与该数 据表同名的备注型文件,扩展名为.FPT。

围]

注:用List命令显示备注型字段的内 容,必须在命令后指明备注型字段名

(2 )输出到文本文件

在 VFP 中对数据表进行操作时,数 据表中 Memo 字段的输出有多种方法:

(1)用 List 命令输出指定范围内备 注字段的内容

格式为: List <备注型字段名> [范

辑框对备注型字段进行输 入输出操作

在设计应用程序时,一般情况下,备注 型字段的输入输出多利用表单中编辑框控 件来完成,下面就举例示之:

有一个 student.dbf 表,该表包含下 列字段学号(C,6),姓名(C,8),简历(M,

表 1

1 、备注型字段的格式输入方法

(1 )由 APPEND 命令或在 browse 窗口中编辑输入

输入备注型字段内容的方法是:光 标在 memo 处时按住 CTRL+HOME 或用 鼠标双击,进入 VFP 文本编辑状态,在 这个窗口输入相应的内容, 按下 CTRL+END 或 CTRL+W 保存结果且退出 VFP 文本编辑状态。当备注型字段中有 了内容后,memo 就变成 Memo 。

(2 )用文本文件给备注型字段添加 内容

把一个文本文件中的内容输入到当前 记录的备注型字段中,命令格式如下:

Append

memo

<备注型字段名>

from <文件名> [overwrite]

其中 overwrite表示覆盖原有内容输 入,没有 overwrite 选项使用的是追加方 式 。

信息科技

4),建立表单form1,其数据源为student.dbf, 中国科技信息 2007 年第 14 期 CHINA SCIENCE AND TECHNOLOGY INFORMATION Jul.2007 thisform.cmdgr.cmd2.enabled=.

thisform.cmdgr.cmd3.enabled=.f. 该表单上各主要控件名称及属性如表1。

f.

运行界面如图 1 所示。 部分控endif

件的事件代码如下: Form1 thisform.cmdgr.cmd3.enabled=.t. 的 init 事件代码: thisform.cmdgr.cmd4.enabled=.t. close all thisform.cmdgr.cmd5.enabled=.t. use student

thisform.txtxh.value=学号 thisform.cmdgr.cmd1.enabled=.f. thisform.txtxm.value=姓名 thisform.cmdgr.cmd2.enabled=.f. thisform.edtjl.value= 简历 thisform.cmdgr.cmd3.enabled=.t. thisform.refresh

thisform.cmdgr.cmd4.enabled=.t. cmd3 的 click 事件代码: thisform.cmdgr.cmd5.enabled=.t. sele student thisform.txtxh.enabled=.t. if recno()thisform.edtjl.enabled=.t. thisform.cmdgr.cmd1.enabled=.t. thisform.refresh

thisform.cmdgr.cmd2.enabled=.t. cmd1 的 click 事件代码: thisform.cmdgr.cmd3.enabled=.t. sele student thisform.cmdgr.cmd4.enabled=.t. if not bof() thisform.cmdgr.cmd5.enabled=.t. go top

endif

thisform.txtxh.value=学号 if recno()==reccount()

thisform.txtxm.value=姓名 thisform.cmdgr.cmd3.enabled=.f. thisform.edtjl.value=简历 thisform.cmdgr.cmd4.enabled=.f. thisform.cmdgr.cmd1.enabled=.f. endif thisform.txtxh.value=学号 thisform.cmdgr.cmd2.enabled=.f. thisform.txtxm.value=姓名 endif

thisform.edtjl.value=简历 thisform.cmdgr.cmd3.enabled=.t. thisform.refresh

thisform.cmdgr.cmd4.enabled=.t. cmd4 的 click 事件代码: thisform.cmdgr.cmd5.enabled=.t. sele student thisform.refresh

if not eof() cmd2 的 click 事件代码: go bottom

sele student if not bof() skip -1 endif if bof()

thisform.cmdgr.cmd1.enabled=.

f.

图 1

图 2

thisform.cmdgr.cmd4.enabled=.f. endif thisform.cmdgr.cmd1.enabled=.t. thisform.cmdgr.cmd2.enabled=.t. thisform.cmdgr.cmd5.enabled=.t. thisform.txtxh.value=学号 thisform.txtxm.value=姓名 thisform.edtjl.value= 简历 thisform.refresh

cmd5 的 click 事件代码:

thisform.release 通过运行表单,把光标定位在编辑

框edtjl中就可以完成对表student简历字 段的修改工作,要想让表 student 中学 号、姓名、简历各字段内容变成只读输 出,只需让 Form1 的 init事件代码做如下 改动即可 :

close all use student

thisform.cmdgr.cmd1.enabled=.f. thisform.cmdgr.cmd2.enabled=.f. thisform.cmdgr.cmd3.enabled=.t. thisform.cmdgr.cmd4.enabled=.t. thisform.cmdgr.cmd5.enabled=.t. thisform.txtxh.readonly=.t. thisform.txtxm.readonly=.t. thisform.edtjl.readonly=.t. thisform.refresh

4 、用报表对备注型字段进行输出 操作

在打印输出时,可以在报表设计器里将 备注型字段作为一个普通字段来处理, 为了分别打印输出每位同学的简历信息,

下转第 116 页 图 3

信息科技

Point(int a,int b){

setPoint(a,b);

}

public void setPoint(int a,int b){ x=a; y=b; } }

class Circle extends Point{ int radius; Circle(int a,int b,int

r){ super(a,b); setRadius(r);

}

public void setRadius(int r){ radius=r; }

public double area(){

return 3.14159*radius*radius; } }

以上代码定义了一个 Point (点) 类,包含两个属性 x、y,分别代表点的 横坐标和纵坐标;包含一个构造方法和 一个设置点的坐标的方法setPoint。定义 了一个 Circle(圆形)类,该类从 Point 类继承,添加了 radius 属性,表示圆的 半径;包含了一个返回圆的半径和返回 圆的面积的方法。因为 Circle 类从 Point 类继承,所以 Circle还包含从 Point类继 承得到的 x、y 属性,它们代表了圆心的 横坐标和纵坐标。

这段代码的设计意图是:在平面直 角坐标系中,点可以由横坐标和纵坐标 确定,因此 Point 类定义了两个属性 x、 y,分别表示点的横坐标和纵坐标。而圆 可以由圆心的位置和圆的半径确定,所 以Circle类应该包含圆心的位置、圆的半 径两个属性。又因为已经定义了 Point 类,用于表示点,所以让 Circle 类从 Point 类继承,便可以从 Point 类得到 x、 y 属性,用于保存圆心位置的横坐标和纵 坐标。

这段代码可以正确地编译运行。可 以减少代码编写量,因为 Circle 类从 Point 类继承,就省去了声明两个变量用 于保存圆心的横坐标和纵坐标。

} }

在上述代码中,Point 类的定义保持 不变。而 Circle 不再是继承自 Point 类, Circle类包含一个Point类型的成员变量 center和一个int型属性raidus,center用 于表示圆形的圆心,radius依然用于表示 圆形的半径。Circle类的构造方法相应的 也作了修改,使得我们可以用圆心和半 径初始化圆形对象。

上述代码与我们的思维方式吻合,显 得非常自然。

}

public double area(){

return 3.14159*radius*radius;

参考文献 [1]谢赝白,等.Visual FoxPro 6.0 程序设 计教程.北京:人民邮电出版社.2003 [2]郑尚志,等.Visual FoxPro 6.0 程序设 计教程 .合肥:安徽大学出版社.2002 [3]韩中孝,等.Visual FoxPro数据库系统 项目开发实践.北京:科学出版社.2005 作者简介 王亚军(1978 —)男,安徽涡阳县人,安徽 科技学院计算机系讲师,主要研究数据库及网 络 赵海燕(1977 —)女,安徽砀山县人,安徽科 技学院计算机系助教,主要研究程序设计及计 算机教学 }

public void setRadius(int r){ radius=r; } } class

Circle{ Point center; int radius;

Circle(Point c,int

r){ center=c; setRadius(r);

}

public void setPoint(int a,int b){ x=a; y=b;

但是这段代码并没有正确地使用继 承。在上述代码中,使用Cricle继承Point 类,不太妥当。因为圆形并不是点,所以

参考文献 [1] 张德惠,周元哲.C++面向对象程序设 计[M].第1版.北京:科学出版社.2005. 中国科技信息 2007 年第 14 期 CHINA SCIENCE AND TECHNOLOGY INFORMATION Jul.2007 邵丽萍,邵光亚,张后扬.Java语言程序 它们之间不是“是一个”的关系,不应该 [2] 让Circle类继承自Point类。 设计[M].第2版.北京:清华大学出版正确的做法应该是使用组合。Circle 社. 2004. 崔永红.C++面向对象程序设计[M].第 类包含的属性包括:圆心和半径。因为 [3] 已经定义了 Point 类,我们可以让 Circle 1版.北京:北京出版社.2005. 类包含一个 Point类型的对象用来表示 [4] 刘玉英 主编.程序设计基础—C++[M]. 圆 心 。

使用组合,该将上述代码改写为:

class Point{

int x,y;

Point(int a,int b){

setPoint(a,b);

第 1版.北京:人民邮电出版社.2006. 作者简介 曾煌存, 男, 硕士, 助教。 研究方向 : 信息技术基础教育。 上接第 114 页 在设计报表时我们按学号进行分组,且将组 属性设置为 “每组从新的一页上开 始”,设计的报表如图 2 所示。预览上面 报表可以将备注型字段内容显示出来,也可 将其打印出来,只要联上打印机即可,打 印预览窗口如图 3 所示。 5 、结束语 通过对数据表中备注型字段的介绍,了 解了备注型字段内容的正确输入输出方法。 运用这些方法能有效处理数据表中备注型 字段的输入输出,特别是在表单中使用编辑 框控件输入输出更是可以做到所见即所得。 报表的使用为备注字段内容的打印输出提 供了便捷的手段。对备注型字段内容的有 效处理对管理信息系统的开发具有十分重 要的意义。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务