数据表历史数据的显示

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

    ◇此为正常状态下的业务数据

    ◇此为查询历史数据状态下的业务数据列表中显示每一次修改的时间,用户点击后,数据切换到修改之前的状态。
    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 目前被修改的历史数据没有设定不同的颜色以示区别


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多