CN104572049A - 一种基于web报表定义模板计算的方法 - Google Patents
一种基于web报表定义模板计算的方法 Download PDFInfo
- Publication number
- CN104572049A CN104572049A CN201310489866.9A CN201310489866A CN104572049A CN 104572049 A CN104572049 A CN 104572049A CN 201310489866 A CN201310489866 A CN 201310489866A CN 104572049 A CN104572049 A CN 104572049A
- Authority
- CN
- China
- Prior art keywords
- report
- lattice
- definition
- method based
- report definition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
一种基于WEB报表定义模板计算的方法是基于语义层设计报表,只需简单地拖拽语义层元素即可,不需要编写复杂表达式和复杂SQL.语义层的加入不仅给用户的操作带来了极大的方便,而且增强了企业数据的安全性。
Description
技术领域
一种基于WEB报表定义模板计算的方法主要是用于计算程序报表定义领域。
背景技术
报表作为一种信息组织和分析的有利手段,是企业信息系统的重要组成部分之一.据不完全统计,系统实际应用的6o% 以上与报表有关[1].但是一般的软件开发语言都不带报表制作工具,要开发报表模块需要程序员编写大量的代码,这些代码可重用性差、后期维护复杂.所以,企业一般都借助于第三方的专业报表工具来制作报表.但是,目前的报表工具存在专业性不强 3、安全性不高、用户操作复杂和设计复杂报表时效率低下等问题.针对目前专业报表工具中存在的问题,我们介绍了一种语义层报表模型,在报表设计器和企业数据源之间建立语义层,来解决这些问题。
利用传统的报表工具设计报表时,用户直接操作数据源,一方面用户需要学习数据源的专业知识,编写复杂的表达式,书写复杂的SQL语句;另一方面直接操作企业数据,给企业的数据信息带来了安全隐患.本文介绍了一种语义层报表模型,在报表设计器和企业数据源之间建立语义层,在语义层中定义数据模型,用户在报表设计器中基于语义层设计报表,直接拖拽语义层元素即可,极大的减少了用户制作报表时的工作量;虽然增加了语义层,但并没有降低整个报表模型的计算效率,因为用户在拖拽语义层元素设计报表时,系统自动的把语义元素解析成报表引擎可以识别的标签,所以报表计算时不需要访问语义层数据模型XML文件;通过在数据模型上定义过滤条件,对企业数据进行权限控制,增强了企业信息的安全性;语义层数据模型可以在视图上定义视图间的关联关系,也可以在视图字段上定义视图间的关联关系,后者在计算报表时,一个单元格上绑定多个指针,指向关联视图,不需要视图间的连接,不需要多次重复检索关联视图就可以设计出多源报表,极大的提高了复杂报表的计算速度。
发明内容
我们通过国家专利检索没有发现关于此系统方面的资料。一种基于WEB报表定义模板计算的方法是方法如下:
1.首先定义一个函数其语法为:public IReport calcReport(ReportDefine r,Context con)
定义过程序:
public IReport calcReport(ReportDefine r,Context con)
{获取r中定义的数据集列表;
根据报表运行上下文con到数据源中检索出
每一个数据集对应的数据;
获取r的一个未计算格,令P一这个未计算
格;
while(P不为空){
if(P不是扩展格){
计算P表达式的值;
把计算的结果赋给P.value;
把P的状态置为已计算;
}else{
调用扩展格计算算法cellExp;
获取r的一个未计算格,令P一这个未计算格;
}}}
2.定义扩展格计算函数,其语法:public void cellExp(IReport ir,M ap dateM ap,Cell c)。
定义过程:
public void cellExp(IReport ir,M ap dateM ap,Cell c)
{计算c的取值表达式,设计算结果为( 。, ,? ,
); for(int 一1; < 一 ; + +){
令 value=Vi;
把c的状态置为已计算;
把指向 所在记录的行集指针保存到c中;
获取C的后跟格,令 一c的后跟格;
while(m 不为空){
if(m为扩展格){
递归调用扩展格计算算法cellExp;
}else{
if(m与c来自同一个数据集){
从c保存的行集指针指向的记录中取
出/7"/表达式的值赋给 .value;
把 的状态置为已计算;
}else{以报表中定义的两个数据集的关联关系为过滤条件到m来自的数据
集中检索m 表达式的值赋给 value;把 的状态置为已计算;}
if(m有后跟格){
获取m的后跟格,令m= m 的后跟格;
}else{
break;
}}}
对c所在的行执行1次行复制算法;令c—c对应的复制格;}}
假设每个数据集中有 条记录,报表定义模板中有 列,对类似于表1所示的报表定义模板进
行计算的时间复杂度为O(n * )。 表1中B2和D2单元格表达式中的字段都来自于student数据集,而利用以上算法进行计算时我们发现在cellExp函数中两次重复的以关联规则为过滤条件去检索name和grade字段的值。
现实现如下:
如果把学生(student)和成绩(score)之间的关联关系定义在成绩视图的学生ID字段上,那么报
表进行运算public void cellExp(IReport ir,Map dateM ap,Cell c)
{
计算C的取值表达式,设计算结果为(v1 ,v2 ,…vn);
for(int i一1; < 一 ;i+ +){
令C.value=vi ;
把c的状态置为已计算;
把指向 所在记录的行集指针保存到c中;
if(f包含关联规则){ 以数据集间的关联关系为过滤条件到关联数据集中检索与C值对应的记录,把指向该
记录的行集指针保存到C中,C中可能包含多个关联规则,行集指针采用Map结构进行保存;}
获取C的后跟格,令m—C的后跟格;
while(m不为空){
if(m为扩展格){ 递归调用扩展格计算算法cellExp;
}else{
从C保存的行集指针指向的记录中取出m 表达式的值赋给m.value;把m 的状态置为已计算;
if(m 有后跟格){ 获取m的后跟格,令m=m 的后跟格;
}else{ break;}}}
对C所在的行执行1次行复制算法;
令c=c对应的复制格;}}
定义在字段上的关联关系在主扩展格中保留多个行集指针,分别指向相关联的数据集,不需要重复遍历关联数据集就可以获得需要的数据.假设每个数据集中有 条记录,报表定义模板中有m列,通常情况下民n >m,对类似于表1所示的报表定义模板进行计算的时间复杂度为O(n2).对比以上两种建立视图问关联关系的方法,如果m 比较大或报表定义模板中包含嵌套的扩展格,那么定义在字段上的关联关系在计算效率上的优势就非常明显了。模型中对以上两种方法都提供了支持。建在字段上的关联关系只对该字段起作用,建在视图上的关联关系对视图中所有字段都起作用,在我们无法确定把关系建在哪个字段上时,就把它建在视图上.字段上的关联关系优先级高于视图上的关联关系。
Claims (4)
1.一种基于WEB报表定义模板计算的方法其特征是报表定义模板类对象,假设其对象模块定义为R。
2.根据权利要求1的定义,其必须要定义报表运行上下文,为报表提供数据来源,其定义为con。
3.根据权利要求2的定义,其必须要返回计算后的报表,IReport是报
表接口,ReportDefine实现了这个接口,其返回值定义为Return。
4.根据权利要求3的定义其需要进行扩展格计算其必须定义中间计算报表ir,报表定义数据集列表dateMap,要计算的单元格c。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310489866.9A CN104572049A (zh) | 2013-10-18 | 2013-10-18 | 一种基于web报表定义模板计算的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310489866.9A CN104572049A (zh) | 2013-10-18 | 2013-10-18 | 一种基于web报表定义模板计算的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104572049A true CN104572049A (zh) | 2015-04-29 |
Family
ID=53088224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310489866.9A Pending CN104572049A (zh) | 2013-10-18 | 2013-10-18 | 一种基于web报表定义模板计算的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104572049A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108037909A (zh) * | 2017-09-25 | 2018-05-15 | 广联达科技股份有限公司 | 关联数据集计算方法及系统和计算机设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1588369A (zh) * | 2004-09-06 | 2005-03-02 | 杭州恒生电子股份有限公司 | 一种关系型数据库系统及其查询和报表方法 |
CN102841938A (zh) * | 2012-08-14 | 2012-12-26 | 北京久其软件股份有限公司 | 一种参数化报表的生成方法及系统 |
-
2013
- 2013-10-18 CN CN201310489866.9A patent/CN104572049A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1588369A (zh) * | 2004-09-06 | 2005-03-02 | 杭州恒生电子股份有限公司 | 一种关系型数据库系统及其查询和报表方法 |
CN102841938A (zh) * | 2012-08-14 | 2012-12-26 | 北京久其软件股份有限公司 | 一种参数化报表的生成方法及系统 |
Non-Patent Citations (1)
Title |
---|
林碧英 等: "基于XML的语义层报表模型的研究与实现", 《四川大学学报(自然科学版)》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108037909A (zh) * | 2017-09-25 | 2018-05-15 | 广联达科技股份有限公司 | 关联数据集计算方法及系统和计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105912381B (zh) | 一种基于规则库的编译期代码安全检测方法 | |
CN102542027B (zh) | 一种基于关系模式学习本体的数据集成系统的构建方法 | |
US9098630B2 (en) | Data selection | |
CN102982168B (zh) | 一种基于xml文档的元数据模式匹配方法 | |
CN101996271A (zh) | 实现pscad电力系统仿真计算模型自动生成的软件接口 | |
CN103793432A (zh) | 一种数据库读写分离方法及装置 | |
CN102880468A (zh) | 一种用于ecu程序开发的代码智能提示方法及其系统 | |
CN109359112A (zh) | 一种代码的自动生成方法及代码生成器 | |
CN110162297A (zh) | 一种源代码段自然语言描述自动生成方法及系统 | |
CN103488738A (zh) | 一种自动实现java对象及数据表sql文件的方法及系统 | |
CN105930325A (zh) | 一种文件报表比对差异的逆向分析方法及装置 | |
CN110020834A (zh) | 一种建模和调试融合的在线智能大数据开发方法 | |
CN103778524A (zh) | 一种基于xml的语义层报表模型的方法 | |
CN102915476A (zh) | 一种可视化的业务流程设计方法 | |
CN104572049A (zh) | 一种基于web报表定义模板计算的方法 | |
Schek et al. | From extensible databases to interoperability between multiple databases and GIS applications | |
CN102214092A (zh) | 一种软件开发辅助工具包 | |
CN103778106A (zh) | 一种报表定义模板运算的方法 | |
CN103399746B (zh) | 一种便于二次开发的信息管理系统及开发方法 | |
CN105786787A (zh) | 基于Java的高效PDF报表测试方法 | |
De Francesco et al. | Modeling concurrent accesses to shared data via Petri nets | |
CN113076421B (zh) | 一种社交噪音文本实体关系抽取优化方法及系统 | |
CN101246473B (zh) | 一种分词系统的评测方法和一种分词评测系统 | |
Zhao et al. | STOC: extending oracle to support spatiotemporal data management | |
Yan et al. | XML modeling of fuzzy data with relational databases |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150429 |