dedecms织梦内容管理系统      
首页 | IT信息 | 网页制作 | 编程开发 | 软件办公 | 数 据 库 | 图形图象 | 网络安装 | 软件下载 | 专题 | 会员中心 | 支持论坛
  当前位置:首页>编程开发>VFP>类和函数的应用>文章内容
在VFP中用伪代码开发数据表维护屏幕
来源: 作者: 发布时间:1970-01-01  
在VFP中用伪代码开发数据表维护屏幕

上海市交警总队科研所 徐萍

  为了保证数据表中存储数据的准确与及时,并提供正确和及时的查询,必须对数据表进行人工维护(包括数据录入),因此必须开发数据表维护屏幕作为人机对话的界面。而数据表维护屏幕要求有新增(增加新记录)、编辑(记录修改)、删除(记录删除)以及漫游(指记录指针上移、下移、到顶、到底和各种查找记录定位)功能。同时必须对用户输入的数据进行合法性检查,特别是对输入关键字的合法性检查。这些需求给开发数据表维护屏幕增加了复杂性,为此笔者使用伪代码来解决上述问题。数据表维护屏幕的代码虽然比较复杂,但它们都有很强的共性,可以预先编写一套可被各种不同的数据表维护屏幕套用的伪代码,以后编写数据表维护屏幕代码时就不必从零开始,而是从伪代码开始。伪代码虽然不能被直接编译运行,但大部分开发人员都能把伪代码改写成正式代码。

  下面介绍在VisualFoxpro中使用伪代码开发数据表维护屏幕的方法。伪代码由一个Custom类和一些Procdure构成。为了方便套用伪代码,尽可能地把Form中的嵌入代码外移,在嵌入代码中使用do...下面的伪代码在使用时绝大部分无需修改,仅是需修改一小部分,而这一小部分又非常简单。下面是使用伪代码设计数据表维护屏幕的具体步骤。

  准备工作

  1.先建立如下一个工作面表格

编号 工作面名称 主索引名称 注释
1      
2      
3      
4      
.
.
.      
16      

  这个表格适用于整个应用程序。这里所说的工作面与平时所说的有些不一样,它把处于同一工作面但不同主索引的情况也作为不同的工作面,使用不同的编号。2.根据工作面表格改写以下伪代码,使之成为可以编译与运行的正式代码。

{伪代码开始}

 

public theWorkStat

theWorkStat=CreateObject(“WorkStat”)



* *== 以下是工作状态类== * *

define class WorkStat as custom

curWS=1

declare Ai[16],Or[16]

**以下是工作状态定义

* *1

{

Ai[1]=“A1” & & 工作面

Or[1]=“O1” & &ORDER 序

Ai[2]=“A2” & & 工作面

Or[2]=“” & & 自然序,无主索引

...

* *16

Ai[16〗=“A16”

Or[16〗=“O16”

}



func Get

retu curWS

endfunc



proc Set

para p

sele (Ai[p])

set order to (Or[p])

curWS=p

endproc



func KeyExist

para pws,pk

local n,y,rec

set exact on

n=this.Get();

this.Set(pws)

if eof().or.bof()

rec= -1

else

rec=recno()

endif

seek pk

if found()

y=.t.

else

y=.f.

endif

if rec!= -1

go rec

endif

this.Set(n)

retu y

endfunc



func Find

para pws,pk,IsExact

local n,y,rec



if IsExact

set Exact on

else

set Exact off

endif



n=this.Get();

this.Set(pws)

if eof().or.bof()

rec= -1

else

rec=recno()

endif

seek pk

if found()

y=.t.

else

y=.f.

if rec!= -1

go rec

endif

this.Set(n)

endif

retu y

endfunc

endfine

{ 伪代码结束}

  在程序的适当入口处运行这段代码,运行之后,当要用的数据表被打开时就可以调用以下对象:
  x=theWorkStat.Get()取得当前工作面号;
  theWorkStat.Set(n)把当前工作面设置成n号;
  x=theWorkStat.KeyExist(n,key)测试在n号工作面中是否存在关键字key,存在回送T;不存在回送F,此函数不改变现状;
  x=theWorkStat.Find(n,key,IsExact)在n号工作面中查找关键字key。查到则定位之并回送T;查不到则不改变现状并回送F;IsExact为T或F决定是否按精确匹配方式查找。
  以上这些对象方法在以后的伪代码中也可以由用户根据需要使用。
  判定数据表维护屏幕模式
  笔者把数据表维护屏幕分为以下三种模式:
  1.新增模式
  在该模式下只有新增(增加新记录)功能,主要用于数据录入(也有不少数据录入要求对已录入的内容有返回修改的功能,这就必须使用新增+编辑模式)。
  2.编辑模式
  在该模式下只有编辑、删除与漫游功能而无新增功能。
  3.新增+编辑模式
  在该模式下有新增、编辑、删除与漫游功能,可以说是全功能的。这种模式使用面最广,占所有数据表维护屏幕的一半以上。
  改写伪代码
  根据选定的模式改写伪代码,使之成为可以编译与运行的正式代码。
  经过上述步骤,一个数据表维护屏幕设计的有关代码就基本完成。
  编者注:伪代码的程序发表在本报WWW站点上,地址是:http://www.computerworld.com.cn/98/skill/default.htm。欢迎访问。


TAG: 维护 屏幕 数据 开发 代码 工作 模式 使用 新增 endif
上一篇:LQL.NET收集整理和发现的[注意集 1]……VFP探索积累篇……   下一篇:windows中Activx控件注册方法
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·揭开 Winsock 的神秘面纱
·windows中Activx控件注册方法
·VFP函数之文件函数(一)
·VFP函数之文件函数(三)
·VFP函数之文件函数(二)
·TreeView 控件的介绍
·在 VFP 中使用 Windows Crypt AP
·如何改变文件的最后修改日期和
·译文:使用Shell.Application对
·[转贴]程序定义类的运用
·在VFP中调用其他应用程序的实用
·用VC 给vfp数据库文件加密
  相关文章
·LQL.NET收集整理和发现的[注意集
·windows中Activx控件注册方法
·VFP中实现背景音乐的几种方法
·用VFP为可视类增添绘图功能
·VFP行缓存技术的应用
·共享软件Internet营销随笔
·用VC 给vfp数据库文件加密
·[转贴]程序定义类的运用
·vfp重新启动Windows
·VFP数据库的备份与恢复
·实现BROWSE语句左右翻屏的方法
·译文:使用Shell.Application对
Power by Anxi35