Chinaunix首页 | 论坛 | 博客
  • 博客访问: 752035
  • 博文数量: 803
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 5015
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-28 10:29
文章分类

全部博文(803)

文章存档

2011年(1)

2008年(802)

我的朋友

分类:

2008-10-29 11:37:55


  1 前言
  这是一个看似复杂,实现起来也复杂的课题。
  在给用户的系统中,用户往往需要查看数据的历史记录,体现历史记录的方式也是多种多样的,最常见的是将数据表每次改动保存起来,用户需要查看时,将该数据表直接显示给用户,这一方式而需要用户的较高的使用水平。
  本文将要实现的是,在用户的业务界面上,显示每一次的改变。
  若各位同仁实在是看不懂下面的描述文字,烦参见实例。
  注:非常感谢c兄就历史表查询结果的算法。
  
  ◇此为正常状态下的业务数据
  
 

  ◇此为查询历史数据状态下的业务数据列表中显示每一次修改的时间,用户点击后,数据切换到修改之前的状态。
  

  2 技术要点
  2.0 需求实例
  出库单明细有5笔记录,用户修改出库单的明细中的2笔,保存于历史数据表仅保存修改的2笔记录,但是查看“出库单修改记录”时,需要显示所有5笔数据,包括没有修改的3笔数据和修改前的2笔数据。
  
  2.1 数据表的
  创建历史数据表,在历史数据表中设定“数据操作方式”字段和“数据操作时间”字段,保存用户对数据的操作方式,如“Insert”“Delete”“Update”
  对需要保存历史记录的数据表,创建触发器,将每一次的改动保存在历史数据表中,并赋值“数据操作方式”字段和“数据操作时间”字段
  
  2.2 历史数据表的解析
  2.2.1 对于每一次的数据变化,可根据“数据操作时间”字段进行查询
  2.2.2 对于每一次数据变化过程中,没有变化的数据,则根据“数据操作方式”进行查询。根据“数据操作时间”逆序,查找最近一次“Insert”或“Update”的数据;若遇到“Delete”该记录不再查询。
  此部份数据通常位于从表。<哎...连描述都是比较复杂的>
  
  2.3 前台实现
  前台通过更新数据块的数据源,即可实现对历史数据的查询(最好更换CANVAS的颜色,如变为“红色”,以示区别)
  
  3 实例参考
  由于涉及程序对象过多,烦各同仁直接参考实例文件
  armok01111662.rar
  
  4 实例还需要进一步优化的要点
  4.1 若主表删除,则该笔记录将不出现在“操作历史列表”中,即用户看不到其主表删除的历史数据。
  
  4.2 目前以“操作历史列表”显示用户操作过程中的修改次数和修改时间,应追加一组按纽“首页”“上页”“下页”“尾页”,用户可以点击该按纽即可实现历史记录的查看。
  <该按纽已放于画布上,但代码还没有写>
  
  4.3 目前被修改的历史数据没有设定不同的颜色以示区别
  
【责编:admin】

--------------------next---------------------

阅读(291) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~