需求等功能等描述:

     数据由表A转移到表B的过程。根目标表B的相关设置映射规则(比如说目标表字段长度、数据类型、常量等操作)完成数据的转移、迁入、引用等操作。

     当将一个分类(源分类)中的数据“复制”到另一个分类(目标分类)的时候,如果这两个分类不拥有相同的根分类,即表结构有所不同,这时则需要定义“复制”的规则——即映射。这里的映射是指表字段与表字段之间的映射,映射是单向的,映射需支持一些常用的表达式、SQL查询计算,及环境变量系统变量等,例:可以把A 表的 A字段 乘以 B字段 的结果,映射到 B表的 A字段。

     由于不管,先画完图再说,由于半路出家,画图的功夫不是很到家也知道什么是什么图,管他3721乱画一把了。首先ipo图:

    

 

     流程图:

 

实体图:

 

 

界面效果图:

 

接着定义配置文件等相关的规则:

 

Fieldname:表示目标分类的字段名称

Sqltype:表示目标分类字段的数据类型

Length:表示目标分类字段的数据长度

Getvaluetype:取值类型:主要三种方式 1、源字段值 2、常量 3、系统变量

Value:主要内容,如果是源字段值则输入是其表达式,表达式支持常用的相关操作类型XSLT的相关操作,常量为固定值,系统变量为相关参数

分析得出具体实现的相关操作:

整体处理数据方面分为单一处理,以及多条处理(集合处理),单一处理主要应用于分类内容操作,比如(迁入、引用等操作)即时操作。集合处理。对于集合量较为大时(主要应用为分类复制、分类合并等相关操作),采用后台线程队列处理操作。缩短前台用户操作影响界面。

定义出具体的操作类流程:

 

//初始化规则引擎

MapEnginer me = new MapEnginer("mapping.xml");

//取得源分类表数据

me.GetSourceData(row);

//取得目标实体

PersonEntity pe = me.GetEntity<PersonEntity>();

//取得序列化的XML字符串

string xmlString = me.GetSerializer();

//直接将转换数据写向目标分类表

me.WirteDataBase();

 

最后还差代码的实现,最为难题,实现完了再把代码补上了。。。。

posted on 2009-03-17 12:13  撒旦之吻  阅读(2948)  评论(7编辑  收藏  举报