工具软件   办公软件   操作系统   网络安全   设计在线   程序开发   教程宝典   软件下载   软件论坛
您的位置:软件 > 开发者网络 > 开发工具 > 开发专栏 > VFP > 正文
VFP6.0中实现记录删除后自动调整编号
[文章信息]
作者:万玉行
时间:2004-11-26
出处:天极网
责任编辑:方舟
[文章导读]
下面就来看看笔者是怎么样实现记录删除后自动调整记录编号这一功能的
advertisement
热点推荐
· 真没想到VB也可以这样用之指针技术
· 禁止QQ登录的方法
· 给你的XML文件做个数字签名
· ImageReady制作“焰火”小动画
· Java加密和数字签名编程快速入门
[正文]
  好,言归正传,下面就来看看笔者是怎么样实现记录删除后自动调整记录编号这一功能的。

  首先大家来看一下我的这个人事管理系统的删除表单:见图1,这里面的各个控件我想大家一看就知道是干什么用的了,在此我就不再介绍,有一点要说明的是,数据库(或表)打开的时候是不能带除了编号以外的索引的,也就是说必须要以编号排序的方式。

     

  在图1的表单中,“取消”,“确定”这两个按钮的代码笔者就不详细介绍了,根据程序作用的不同这两个按钮的代码可能会有一些出入。“上一个”和“下一个”按钮的代码也很简单,主要是一些判断记录有没有到头或到尾的代码和跳转记录时刷新的代码,在此也不多做介绍。下面我们主要来看看“删除”这个按钮的代码,整个“删除”按钮的代码如图2所示:下面我来介绍一下各段代码的作用:

    

===========================================
scyesno=messagebox("真的要删除吗?",4+32,"确认") &&这一句不用我多说吧?产生一个“确认”对话框。
if scyesno=6 &&如果用户按下“确定”按钮。
 b=recno() &&首先把要删除的记录号储存下来,以下要用到。
 delete &&把选定的记录作删除标记。
 pack &&把选定的记录从数据库中彻底删除。
 messagebox("已经搞定!",0+64,"删除完毕") &&产生一个“删除完毕”的对话框。
 go bottom &&数据库的记录指针移到尾部。
if reccount()>0 &&判断表中的记录个数是不是大于0,即还有没有记录。如果刚才删除的是数据库中最后  一条记录,不加这条判断语句截止的话 再向下执行会出错!所以这是一条相当重要的判断代码。
 if b<recno() .or. b=recno() &&如果刚才删除的记录号小于或等于最后一条记录的记录号。(在此注意   一下上面“go bottom”这句代码的作用。)
  go b &&跳转到刚才删除的记录的记录号上,从这一条记录开始修改记录的编号。
  do whil .not. eof() &&如里不到数据库结尾则重复执行以下修改编号的代码:
   replace 编号 with 编号-1 &&把当前记录的编号减1并保存。
   skip &&跳转到下一条记录。
  enddo &&结束假设和循环。
  go b &&这句要不要都行,主要是为了方便在表单里显示删除的那条记录的下一条记录的内容的。
 endif &&结束判断。
endif &&结束判断。
endif &&结束判断。

  &&以下的代码是为了删除后刷新用的,大家一看就明白的,不用我说了。

thisform.text1.refresh
thisform.text2.refresh
thisform.combo1.refresh
thisform.text4.refresh
thisform.text5.refresh
thisform.text6.refresh
thisform.text7.refresh
thisform.edit1.refresh
ThisForm.Oleboundcontrol1.refresh
===============================================


  好了,代码向大家看完了,在此笔者再向大家介绍个建议:就是在图1的表单中,如果这是个修改记录的表单的话,有相当一部分书或资料上都介绍把各个控件的controlsource的值直接指向数据库中相对应的字段名,笔者认为这样做不是很好,因为这样的话如果不小心动了表单中各个文本框的值的话,程序是没有一点提示就直接修改数据库中相对应的字段的值的。笔者的做法是:把各个控件的controlsource的值指向一个变量,比如说“姓名”文本框的controlsource值指向xgxm,然后在“确定修改”按钮的代码里再用“replace 姓名 with alltrim(xgxm)”来真正修改数据库中的记录,而用户不按下“确定修改”这个按钮是不会修改记录的内容的,这样就避免了误操作而修改记录的可能性。当然在“确定修改”按钮的开头你还可以加上个“警告框”来作为提醒。

  如果大家有什么更好的建议欢迎来信交流:email:xingyuwan@21cn.com。

天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 
发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容焦点新闻
  • Visual FoxPro 9.0更强大了
  • Visual FoxPro 9.0 的报表设计器
  • Visual FoxPro 9 集成开发环境新特性
  • Visual FoxPro 9中新的数据处理方式
  • VFP中状态栏控件的使用说明
  • 民营家电商排队造手机 设备商全面杀入
  • 英特尔澄清杨旭任职传闻 官方没宣布此消息
  • 国资委河北密制联通拆分方案
  • 垃圾邮件害人害企害国 清除垃圾邮件不手软
  • 中兴携手阿尔卡特 全球逐鹿CDMA
  • 用友总裁王文京:誓将ERP变成“大众消费”
  • 香港消费者委员会:数码相机最贵未必最好
  • 外电称中兴正评估西门子手机业务 或能并购
  • Advertisement

    天极无线


    奇妙科幻|美好风光|清风车影|漫画卡通|星座生肖|明星写真|动物世界
    老鼠爱大米
    挥着翅膀的女孩
    女人味
    栀子花开
    白月光
    刚刚好
    江南
    快乐崇拜
    亲爱的你怎么不在我身边
    小薇
    2002年的第一场雪
    有多少爱可以重来
    我的地盘
    七里香
    情人
     
    老鼠爱大米 老板电话
    冲动的惩罚 七里香
    我不是黄蓉 女生撒娇
    盛夏的果实 坚持到底
    孤单北半球 眉飞色舞
    挪威的森林 可爱女人
    最浪漫的事 老板电话

    CSEEK搜索