- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
全定制报表模型的研究
全定制报表模型的研究
摘 要:本文提出了报表的全新模型,该模型实现了报表数据定义、模板定义,数据填充定义的完全解耦,根据该模型实现的报表工具可以在不修改程序代码的情况下,完成数据源的修改、模板的修改和数据填充规则的修改。
关键词:报表模型 全定制 解耦
中图分类号: TP311.52文献标识码: A 文章编号:1673-1875(2009)09-014-03
报表是应用系统中必不可少的部分,也是让程序设计人员比较头疼的部分,一方面是因为报表工具本身的弱点导致报表的制作非常的繁琐;另一方面是因为报表是业务逻辑的末端,经常会发生变化。由于国内企业的管理形式和中国人的思维习惯,管理人员希望一个报表包含尽可能多的信息,因此国内报表往往都是综合性很强的报表,并且出现了一个专有名词――中国式报表。中国式报表包含以下几层含义:1、信息来源多。一个报表需要包含多个表的数据。2、格式复杂。一个报表被分成多个不同的区域,展示有关联的但业务性质不同的数据。3、统计繁琐:经常出现交叉表,而且交叉表中多分层次。4、格式经常调整:由于设计数据来源较多,因此变化的可能性也较大。
每种开发工具一般都提供有专门的报表的开发工具,然而这些开发工具比较符合西方管理的模式,在格式处理上比较简单,多为分栏(band)报表,每个报表涉及数据源较少,且对交叉表的支持很弱。为更好的解决中国式的复杂报表,必须设计全新的报表模型,彻底解决前面提到的各种问题。
目前的报表工具存在的最大问题是格式和数据绑定,程序设计人员在专业的报表工具上定义数据源,并根据数据源在专用的报表模板上设定格式,报表要经过编译。这导致报表的修改必须修改和重新部署程序,并且数据统计的复杂性也被糅入报表当中,导致报表更加复杂。要解决报表复杂性的问题,必须实现数据和格式的解耦。
一、标准的模板接口
首先要将模板从整个报表定义工具中分离处理,使其可以单独创建、修改和保存。目前各类报表工具的模板主要分为两类:像素类和网格类。所谓像素类是指报表模板的最小显示单位是像素点,这样的模板中,报表控件可以在任意的位置摆放,确定是调整对齐比较麻烦,Delphi中的QuickReport就属于此类模板。网格类模板的最小显示单位是单元格,横平竖直,比较容易定制表格,Crystal Reports属于此类模板。对于报表来说,数据绝大部分按表格形式填充,因此使用网格类模板最为合适。
public interface IReportTemplate {
public setCellData(int tCol, int tRow, int iCol, int iRow,Object o);//将对象数据o填写到第iCol列,第iRow行的单元格,格式使用模板中第tCol、第tRow列的单元格的格式。
public void copyFormatFromTemplate(int beginCol, int beginRow,int endCol, int endRow, int targetCol, int targetRow);
//从模板复制一个区域的单元格的格式。模板的区域列范围beginCol至endCol,行范围beginRow至endRow。格式复制到报表实例的从targetCol列、targeRow行起始的同样大小的区域。复制的格式包括模板提供的各类格式:如字体、边线、行高、列宽、单元格合并等。
public int getTemplateRowHeight(int row) throws Exception;
//获得模板中某行的行高
public void forceNewPageAtRow(int row);
//从某行强制分页
public void deleteRow(int row);
//删除报表实例当前行
}
二、数据源的层次解耦
目前大部分报表工具都提供数据加工的功能,并且将其作为报表工具的优势不断强化。这种方式的确给报表制作带来了方便,但同时也带来了隐患。报表中数据的统计,有很大一部分属于业务逻辑,将这部分的实现嵌入到报表代码中是非常不合适的。事实上所有对业务数据的加工功能应该作为工具箱的一部分,任何业务代码都可调用,而不是绑定在报表工具中。
报表数据的处理应该分为三个层次:原始数据的提取、数据的加工、数据的再运算。
1、原始数据提取
报表的数据来源多种多样,将原始数据直接进行报表的填充显然是不合适的。为屏蔽不同数据来源,本模型提供三个数据模型:数据域,数据记录,数据集。一个数据集包含多条数据记录,一条数据记录有多个数据域
您可能关注的文档
- 党委新闻发言人制度的研究述评.doc
- 党委纪委“双的责任制”视角下高职院校党建工作重要性的研究.doc
- 党委组织管理文化建设的研究.doc
- 党对政府领导的研究述评.doc
- 党媒移动端话语主导有效性的研究.doc
- 党建+合作社+新的模式 强基固本促党建.doc
- 党建+新的模式初见成效.doc
- 党建+开启党建富民新的模式.doc
- 党建专题片可视性的策略探析.doc
- 党建在政治文明建设中所起的作用.doc
- 2025年郑州高新区公开招聘100名社区工作人员备考题库必考题.docx
- 2026年招商银行长沙分行秋季校园招聘备考题库附答案.docx
- “梦想靠岸”招商银行石家庄分行2026校园招聘备考题库附答案.docx
- 2025年滁州定远县招聘社区工作者20人备考题库最新.docx
- 2026年中级社会工作者法规与政策真题推荐.docx
- 2025广东汕尾市政协办公室面向全市选调公务员面试备考题库附答案.docx
- 2025广东广州越秀区华乐街招聘辅助人员2人备考题库及答案1套.docx
- 2025年西安铁路局招聘429人,报名即将结束!模拟试卷最新.docx
- 2025年温州市生态环境局瑞安分局关于公开招聘环保协管员2人备考题库附答案.docx
- 北京市社区工作者考试题库最新.docx
最近下载
- 山东吕剧教学课件.ppt
- 第5章蛋白质结构解析课件.ppt VIP
- 团队配合与沟通通用版.ppt VIP
- 2025凉山州继续教育公需科目满分答案-AI+职场:AI公文写作高效进阶实战.docx
- 执业药师继续教育《哮证(哮喘)的中药治疗》习题答案.docx VIP
- 2025年山西大地环境投资控股有限公司所属企业社会招聘笔试上岸历年真考点题库附带答案详解.doc
- 石油天然气站内工艺管道工程施工规范GB 50540 - 2009.docx VIP
- 人教版高中英语必修二词汇表(默写版).pdf VIP
- 南京2·23火灾事故调查报告.docx VIP
- 三年级 第5课 我们都是好伙伴 教案.doc VIP
原创力文档


文档评论(0)