一种数据模板的动态生成方法和装置
技术领域
本发明涉及一种数据模板的动态生成方法和装置,属于计算机信息处理技术领域。
背景技术
数据模板的数据来源一般有两种类型。一种是静态数据,由于数据是静态的,决定着模板布局方式也是静态的,在利用生成工具设计数据模板时,直接将数据填入数据模板,得到的就是最终的结果;另一种是动态数据,由于数据是动态的,决定了模板的布局样式也是动态的,在利用生成工具设计数据模板时,填入的是数据引用,得到的是中间结果,运行时需要动态地从数据库等不同类型数据源中获取数据,并将组织好的数据自动填入数据模板,得到最终结果。
在动态数据模板生成方法中,主要基于两种方式:一种为静态生成方式,这种模板生成特点是:模板模型和展示模型是一一对应的,对展示模型的操作既是对模板模型的操作;另一种为动态生成方式,这种模板生成方式的特点是:展示模型已经是数据引用的最终结果,模板模型和展示模型并不一定是一一对应。
本发明主要针对网格模型的动态数据模板的生成方法。
发明内容
本发明的目的就是针对上述的不足,提供了一种在动态数据模板的最终展示结果上进行数据模板的定制的、能达到“所见即所得”的新型的数据模板的动态生成方法及装置。
本发明提供一种数据模板的动态处理方法,提供“所见即所得”的设计效果,使用户在设计过程中能实时看到最终设计的报表展现效果。“所见即所得”的效果减少了数据模板设计的出错率。
本发明抽象出业务模型,业务模型是针对数据的业务描述,使数据具有业务意义。业务模型中的信息和数据中的信息有一一映射的关系。数据模板的最终展示时是依靠业务模型来获取数据的。
本发明提供的数据模板的包括动态处理方法包括如下步骤:
1)确定数据模板模型,数据模板模型来自于数据模板或从展示模型转化而成;创建数据模板的时候模板模型是创建出来的,还有一种方式就是从展示模型转化而来,这种方式一般是已经有最终展示,再将展示模型转化成数据模板模型;即指将数据模板文件解析成数据模板模型,或是将展示结果反解析成模板模型,本步骤的产物是模板模型;
2)解析业务模型,将数据模板中的业务模型定义解析成业务模型,并查找对应的数据;即从步骤1)中的模板模型中获取出定义业务信息的模型部分,进行解析,解析后就可以定位其对应的元数据信息;
3)获取数据,依据上述解析出的业务模型,查找数据信息,并获取;即找到其对应的数据的元数据描述后,就可以解析数据,从而确定业务对应的数据;
4)解析布局/样式,即从步骤1)中获取与样式/格式相关的模型部分,进行解析,从而确定数据的格式;
5)解析数据绑定,即从步骤1)中的模板模型中获取与数据定位相关的模型部分,进行解析,从而定位数据的位置;
6)渲染展示模型,依据上述步骤2)、3)、4)、5)中解析出的数据、布局和样式,进行渲染,然后运算出展示模型,最终的输出为展示模型,即将数据以一定的格式放置到合适的位置上;
7)当对展示模型进行操作(修改)时(一般是指对数据的展示界面进行操作),便进一步将展示模型转换成模板模型,即转入步骤1)继续进行循环处理。
这样就实现了数据模板的动态定制,提供“所见即所得”的设计效果,使用户在设计过程中能实时看到最终设计的报表展现效果。
上述第5)步中数据绑定是指模板中指定模板中该位置的数据来源,解析数据绑定即为去定位模板中该位置的数据信息。
上述第6)步中的格式为:数字格式、日期格式,等等;样式为字体样式、背景样式、边框样式等等。
上述各个处理过程都离不开数据模板处理装置,数据模板处理装置完成对数据模板样式/格式解析,数据获取,展示结果渲染等功能;实现上述方法的装置,包括:
一数据处理单元,用于根据数据模板的不同对数据处理链进行动态组装;
一数据处理监听单元,由数据处理单元触发已注册的监听单元执行,在不同的时机触发不同的监听单元对象;
一函数处理单元,用于根据输入参数进行运算,输出结果。
本发明提供的数据模板的动态处理方法,引入动态定制的理念,提供“所见即所得”的设计效果,使用户在设计过程中能实时看到最终设计的报表展现效果。“所见即所得”的效果减少了数据模板设计的出错率。抽象出了业务模型,业务模型对数据赋予了业务意义,使数据模板的定制过程具有针对性和可读性。数据模板定制时只关注业务数据,而不考虑原始数据。
附图说明
图1为本发明实施例的流程图。
具体实施方式
一种数据模板的动态处理方法,报表是数据模板的一种实例,下面以报表为例对本发明的实施方式做进一步解释、说明。
一种报表的动态处理方法,达到“所见即所得”的动态效果,具体来说是这样的:
本技术方案开始于步骤101:定义数据,就是定义数据的来源,一般可以为数据库,文件等;
然后进入步骤102:抽象业务模型,给数据赋予业务意义;
然后再进入步骤103:特性化业务模型:抽取出具有特定特征的业务模型;
然后再进入步骤104:定制报表:在最终的展示结果中设计报表,设计完立即返回设计效果,既设计期看到的报表就是运行期的报表,整个设计过程是“所见即所得”的;
最后进入步骤105:持久化报表,将报表保存成文件或数据库等。
比如要生成一张“学生信息”的报表,其实施步骤如下:
1)创建一张新的报表,对应于上述步骤101,确定数据模板模型,创建的报表就是某种类型的数据模板,比如主从类型的报表;
2)解析报表中定义的业务模型,比如报表模板中定义了模型“学生”,此模型对应数据库中的“student”这张表,而“学生”模型中描述了“student”表的元数据信息,即“student”表中的“xm”字段会对应到“学生”模型中的“姓名”属性;
3)获取报表模板中定义的数据,并将数据对应到步骤2中的业务模型;
4)报表模板中定义了很多个类似excel的单元格,每个格子都有自己的样式定义,比如某格子样式是这样定义的:style=“font-size:12px;color:red”,表示这个单元格字体12像素,字体颜色为红色;
5)解析报表模板中定义了哪些数据绑定,即确定某单元格显示是那个业务模型的哪个属性,比如某单元格要求显示“学生”模型中“姓名”属性的信息;
6)渲染报表,当前面5个步骤完成后,便开始刻画报表的样子,在这个过程中会用到前五个步骤的处理结果,综合起来确定某单元格中的数据是什么,样式是怎样的;
7)当进一步在最终显示的报表中进行修改某单元格的数据绑定、样式等信息后,继续循环到步骤1进行处理。