51CTO博客开发星矢
交互分析过程中报表多层钻取的情况很常见,如从一级汇总数据钻取到二级汇总数据,从二级汇总数据钻取到三级汇总数据….,钻取时可以从表格到表格,也可以从统计图到统计图。开发这类报表时如果每个层级都需要制作不同的报表,在层数较多时,无论对于开发还是维护都是很麻烦的事,如果能制作一个通用的模板完成所有层级报表的展现则事半功倍。 润乾集算报表通过内置的集算引擎可
交互分析过程中不仅会对报表进行钻取,经常还需要需要统计图也具有钻取功能,统计图与统计图之间,统计图与报表之间进行多层级钻取。这需要报表工具具备相应功能,润乾集算报表中可以设置统计图超链接实现钻取需求。这里通过一个示例来说明使用过程。 编制汇总报表 这里以某年度按地区销售情况汇总报表为例,点击柱形图中的柱子钻取到指定地区下的二级汇总图表。设置报表年份参数
报表开发者总会遇到一些较为复杂的报表,这类报表的数目通常很少,但花费的开发时间却很多,有时候还会变成疑难问题。本文将讨论这些复杂报表到底复杂在哪方面,以及该用什么方法去解决,希望对提高报表的开发效率有所帮助。 以前的复杂报表主要复杂在前端:n 单元格合并,斜线表头。n 字体风格根据数据大小发生变化。n 任意单元格之间的计算。比
润乾集算报表作为纯JAVA报表可以很方便嵌入到J2EE页面中使用,目前集算报表提供了多种发布方式供用用户将报表嵌入到JSP页面时使用。集算报表中报表有参数报表和数据报表两种,下面来看一下这两类报表的页面嵌入方式。参数报表 由于参数报表大多数都和数据报表联合发布查询数据,所以这里只介绍联合使用方式(单独发布与数据报表一样)。参数报表嵌入页面时使用的标签为<report:p
参数对于报表的重要性不言自明,润乾集算报表支持两种参数输入方案,可以使用集算报表设计参数模板联合报表一同发布,还可以自定义参数输入后与报表结合。二者并没有显著的差异,前者在开发使用上更加方便快捷,而后者则在灵活性上更胜一筹,用户在使用集算报表参数输入时可以根据实际需要进行选择。 下面就上述两种参数输入方式的使用分别来看一下。使用参数输入模板 
报表应用中有时报表只需生成指定文件,而无需在页面展现,生成的文件常见于Excel、PDF等。由于报表不展现,也就无需使用报表提供的tag,可以直接通过程序导出。集算报表提供了丰富的API,允许开发人员编写代码实现自己的业务逻辑。这里通过在servlet中导出Excel为例来看一下报表不展现而直接导出的实现方式。 定义导出Excel的servlet(ExportT
实际应用中通过程序动态修改报表模板的情况很常见,其中动态修改数据源SQL就是一种典型场景。常见于系统中有一些结构相同而数据源不同的报表,为减少报表开发工作量,只开发一套报表模板,使用时通过程序动态修改数据源来满足实际需要。 下面通过一个使用JAVA程序修改集算报表数据源SQL的例子说明使用过程。编辑报表模板:由于不同数据源的字段不同,因此这里使用动态表达式ds1
有时需要在程序中动态修改已做好报表的单元格属性,包括边框、字号、颜色、对齐方式等。润乾集算报表提供了丰富的API,开发人员可以通过提供的接口快速修改报表单元格属性。 修改单元格属性主要修改报表定义ReportDefine,比如下面已经做好的订单信息表如下: 预览效果: 我们通过代码修改该报表单元格属性://设定边框  
Mongodb脚本解决复杂问题的计算能力有限,直接使用时较为吃力。很多情况下需要将数据读出后在主程序中进一步完成运算,而在Java等高级语言中编写这类集合式运算也比较麻烦。这时可以用集算器esProc来辅助,这里通过一个例子来说明。Mongodb中有一个test集合如下:>db.test.find({},{"_id":0}){"value" : NumberLong(11293
MongoDB不支持子查询,碰到这些复杂的运算就只能先将数据读出后再计算,而用Java等语言编写这类计算也不是很简单,这时可以考虑用集算器esProc辅助实现。下面我们通过一个例子来看一下具体做法。MongoDB中的文档orders保存了订单数据,employee保存了员工数据。如下:> db.orders.find();{ "_id" :ObjectId("5434f88dd00ab527
MongoDB实现交叉汇总比较困难,如果将数据取出,用Java等高级语言来汇总的话,也相当复杂。因此,可以考虑用集算器esProc辅助MongoDB完成交叉汇总。下面我们通过一个例子来看一下具体做法。 Student集合如下:db.student.insert ( {school:'school1', sname : 'Sean' , sub1:4, sub2 :5 })d
在报表项目中,常常会碰到数据库压力很大影响整个系统性能的问题。由下面的传统方案的结构示意图可以看出,全部数据存储和源数据计算都放在数据库完成。当并发访问量较大的时候,虽然每个报表的数据量不大,还是会造成数据库压力过大,成为性能的瓶颈。多数数据库厂商提供的jdbc接口传输数据比较缓慢,在并发量较大的情况,对报表系统性能的影响也非常明显。 这种情况时可
Mongodb可以按照下标查出内嵌数组的元素,但是不能通过元素的值来查询下标。例如:数组中的元素是按照排名的先后顺序存放的人员姓名,mongodb可以根据排名(数组下标)来找姓名,但是不能通过姓名查找排名(数组下标)数值。esProc可以协助mongodb实现这个需求,下面通过例子来看一下具体做法。 Mongodb的集合b中,保存了姓名和朋友(数组)。朋友数组
润乾集算报表提供了将多个报表组合到一起显示的报表组功能。使用报表组可以很方便地将同类报表组合到一起展现、导出及打印。下面来看下报表组的使用。报表组制作新建报表组 首先准备要加入报表组中的报表,这里使用订单表和订单明细表,两表均带有订单ID范围参数bid和eid。新建报表组,编辑报表源: 报表来源URL可以是绝对路径,也可以是相对路径(相对
报表应用中常常会遇到一些列数很少行数很多的报表,这种报表窄而长,显示和打印时,横向会留出大片空白,不但浪费张纸而且不美观,不方便用户查阅。在集算报表中我们可以通过设置报表的分栏属性对报表进行纵向分栏,即在打印纸上横向布局多列报表,这样既美观又节约纸张,还方便浏览报表。 集算报表中设置报表分栏很简单,可以参考如下步骤:新建报表 使用集算报表设计器新建一
实际项目开发中,很多情况会用到票据的打印。即在一张印刷好的空白票据上,准确无误地打印上票据的内容。用传统的报表工具,我们通常会用尺子量每一个数据区域的位置,然后在屏幕上根据尺子量出的尺寸设计每个格子的位置,反复调试。这样制作一张票据打印的报表费时费力,而且一旦票据格式发生变化,报表制作人员又要重新制作报表。集算报表采用底图描绘的方案解决套打时的报表绘制问题。将需要套打的票据扫描成图片,插入到报表设
润乾集算报表提供的分页后计算函数可以方便地帮助用户完成页内数据统计,完成每页的数据汇总并显示。集算报表中的分页后计算函数包括:pcount()(计算总页数)、pno()(取得当前页的页码)、pccount()(计算分页后的当前页中所有的单元格的个数)和pcsum()(计算分页后的当前页中所有的单元格的和),其中后两个用于完成报表的页内统计。下面来看一下集算报表业内统计的实
报表分页展现或打印时为了便于查看往往需要显示页码,常见地显示当前页、共几页、记录条数等信息,有时还要求首页不显示页码等。润乾集算报表提供了分页后函数可以很容易实现各类页码显示效果,下面通过示例来看一下使用方法。 在订单明细表中需要显示当前页码、总页数、记录数与总记录数等信息,并要求首页不显示页码,效果如下:报表模板设置如下: 其中: 1、
在报表展现或打印时为了便于查看数据,往往希望报表头在每页中重复出现。润乾集算报表除了可以实现每页均重复同样的表头外,还可以实现分组表头重复,即当分组出现在多页时显示同一分组表头。下面分别来看一下在集算报表中上述两种表头重复如何实现。一般表头重复 使用集算报表开发时,如果希望分页报表的表头重复显示,只需要将表头的行类型设置为“报表头”即可。如下图: &
润乾集算报表提供了丰富的分页控制方式,以满足报表用户在不同情况下的需求,包括:按纸分页、按行分页、不分页、行后分页、列后分页等。下面就集算报表的分页控制详细加以介绍。按纸分页 按纸分页主要用于打印,也是集算报表默认的分页方式,报表在打印时按照报表设定的纸张(默认是A4)大小进行自动分页,超出纸张的部分会在下一页打印,这种分页方式适用于用户对一页纸上打印
对于高度和宽度较大的报表,用户往往希望能将表头固定以方便数据查看。润乾集算报表提供表头固定的功能,通过简单几步就可以实现。这里通过一个示例来看一下使用过程。 新建报表 实现固定表头首先要制作包含表头的报表,在集算报表中,可以为报表同时设置上表头和左表头,以方便报表横向和纵向滚动查看。这里以订单数据为例,制作报表如下:分别设置第2行和A B C三列为报表
在报表项目中,有些报表的数据计算方法会经常改变。例如:某企业员工的实际工资是通过绩效得分计算出的,算法经常变动,需要在不改动其他代码的情况下用新算法替换旧算法。如果用Java来实现计算的话,虽然可以实现动态可挂接计算模块,但是存在缺乏基础类库、占用多余内存等问题。 采用润乾集算报表可以很好的解决这些问题,实现低耦合、热部署的动态挂接算法。集算报表挂接
报表项目中,可能会出现报表源数据来自于不同数据库的情况。这是因为同一张报表可能会从多个业务系统取数据。例如:员工信息从人力资源系统中取出,销售数据从销售系统中取出。还有一种可能是,同一应用系统的数据库负载太大,不得已分成多个数据库的情况。例如:销售系统数据分成当前库和历史库。报表工具需要连接的可能是同样类型的数据库,比如都是oracle或者db2;也可能是不同类型的数据库。报表应用中
在报表项目中,客户越来越关注源数据的实时性,希望看到最新发生的数据在报表中体现出来。但是,传统的报表工具+数据仓库+ETL方式很难做到这一点,往往是只能看到昨天、上周甚至是上个月的情况,也就是T+1、T+7、T+30统称T+n报表。很难实现T+0报表,也就是能体现实时信息的报表。分析其原因在于:1、如果报表的历史数据和最新数据都从客户的生产系统读取,虽然可以实现T+0报表,但是会对生
在报表项目中,常常有些复杂数据计算是为一个报表专用的,其它报表用不到。可以用SQL实现写进报表数据源中,但由于SQL无法分步计算,经常会写出非常复杂难懂的长语句,不利于调试和维护。如果用Java或者存储过程来实现,计算程序会和报表模板又会分开,不利于管理。使用润乾集算报表的脚本数据集来实现报表专用计算,既可以写出简单易懂的分步骤计算脚本,又可以将脚本存放在报表模板中利于管
在报表项目中,经常有多个报表的数据源计算方法有共同的部分。使用润乾集算报表,采用可挂接算法的方案时(可参考【润乾集算报表优化应用结构之可挂接算法】),可以更方便地将这些共同部分用同一个脚本来完成,从而实现算法复用。算法复用的好处是:一个算法只实现一次,不会出现同一个算法多处实现导致不一致的情况。同时也避免一个算法实现很多次的重复劳动,减轻工作量。
绝大多数报表项目的数据库中,除了支撑系统运行的业务数据表之外,还有很多中间表。业务数据表是报表系统必须的基础数据表,是支持报表系统运行的持久化数据层,例如:销售报表系统中的订单、客户、产品等等。报表中间表则是计算和生成报表的中间计算过程,中间表的名字经常是五花八门。按道理说,业务数据表应该是大部分,报表中间表只是小部分。但是,实际情况却恰恰相反。有些运行了较长时间的报表系统中,报表中间表达到几千个
润乾集算报表提供了将图形、图像、报表、文字等内容按照指定顺序插入到word的功能,用户可以在word模板中设置多个书签、在配置文件中填入书签对应的插入内容,然后使用简单API就可以完成代码编写。目前该功能不仅支持书签插入,还可以替换word中的文本内容,可用于包括SmartArt图形中文字的替换。下面通过示例介绍一下该功能的使用方法。1、准备word模板首先准备要插入内容
报表应用有时需要将一个报表的不同部分导出到Excel的多个sheet页中,常见于将分组报表的每个分组内容输出到不同sheet;汇总明细报表将汇总数据和各部分明细数据输出到不同sheet。 润乾集算报表可以通过使用分页导出Excel与自定义纸张、行后分页组合来实现。报表导出Excel时可以选择分页导出,即页面上的每页
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号