润乾集算报表实现动态层次钻取报表(一)

合集下载

如何实现报表分析动态取数

如何实现报表分析动态取数

如何实现报表分析动态取数
今天学习一个EXCEL案例,非常方便大家在分析报表时动态取数。

原创作者是queyue (会计视野),写的很好,可以学习一下。

OFFSET(引用的基点,偏移的行数,偏移的列数,结果的高度,结果的宽度)
=OFFSET(A1,1,,3,2)——表示从A1单元格偏移1行0列,返回一个高度为3,宽度为2的单元格区域。

即,A2:B4区域。

其中,1后面2个逗号,实际上相当于:
=OFFSET(A1,1,0,3,2)——也就是有一个0简写了。

同理,你问的后面为什么有2个逗号也是如此,表示结果的高度和宽度都为1(稍有不同,不是0),其实都可以省略,比如:
OFFSET($F4,,MATCH(TODAY(),$G$2:$IV$2,)+1)——表示从F4单元格偏移0行,match列。

至于Match为啥加1,则可以通过计算弄明白,这只是一个修正的数值而已。

上年累计SUM(OFFSET('2011利润表'!$D$3,1,1,1,MATCH(分析表!$C$1,'2012利润表'!$E$3:$P$3,0))),
本年累计SUM(OFFSET('2012利润表'!$D$3,1,1,1,MATCH(分析表!$C$1,'2012利润表'!$E$3:$P$3,0)))
表格下载:
1、开通黄钻的,直接点击下面附件,直接下载。

2、未开通黄钻的,请到/zxView.asp?id=647下载。

润乾集算报表呈现输出之分栏显示

润乾集算报表呈现输出之分栏显示

润乾集算报表呈现输出之分栏显示
报表应用中常常会遇到一些列数很少行数很多的报表,这种报表窄而长,显示和打印时,横向会留出大片空白,不但浪费张纸而且不美观,不方便用户查阅。

在集算报表中我们可以通过设置报表的分栏属性对报表进行纵向分栏,即在打印纸上横向布局多列报表,这样既美观又节约纸张,还方便浏览报表。

集算报表中设置报表分栏很简单,可以参考如下步骤:
新建报表
使用集算报表设计器新建一个只有两列的报表如下:
注意:如果想分栏后的报表标题居中,需要将标题行整行合并成一个格子,如上面的第一行。

如果报表不设置分栏,预览或打印报表的效果如下:
未分栏页面显示效果
未设置分栏打印预览效果
可以看到不设置分栏报表的显示效果非常不美观,下面设置分栏。

设置分栏
选择【属性】-【报表属性】菜单,在“分页”选项下,设置分栏数,如下:
预览并打印报表
报表在页面上预览可以看到设置分栏后的显示效果:
设置分栏后的打印效果:。

润乾集算报表开发多源分片报表

润乾集算报表开发多源分片报表

润乾集算报表开发多源分片报表使用润乾集算报表可以开发多源分片报表,在同一报表中的不同部分可以包含不同数据来源。

集算报表提供的扩展模型和主格模型让这类报表开发非常简单。

下面通过具体实例来来看一下多源分片报表的开发过程。

业务系统中的某类订单统计表中统计了多个维度订单情况,如下图示:该报表由多个独立的片区组成,且每个片区内的数据来源不尽相同。

这就是一个典型的多源分片报表。

使用集算报表制作步骤如下:连接数据源使用集算报表设计器,连接自带数据源DEMO。

设置数据集新建报表并设置数据集,由于数据来源不同,需要设置多个数据集。

各数据集SQL如下:ds1: SELECT 客户.地区,客户.城市,订单明细.数量,订单明细.折扣,订单明细.单价,订单.雇员ID,订单.订购日期,订单明细.产品ID FROM 订单明细,订单,客户WHERE 客户.客户ID = 订单.客户ID AND 订单.订单ID = 订单明细.订单ID and 订单.订购日期is not null and 客户.地区in ('华南','西南') and year(订单.订购日期)>=1998ds2: SELECT 类别.类别ID,类别.类别名称FROM 类别ds3:SELECT 雇员.雇员ID,订单明细.产品ID,雇员.职务,雇员.姓氏||雇员.名字as 姓名FROM 雇员,订单,订单明细WHERE 雇员.雇员ID = 订单.雇员ID AND 订单.订单ID = 订单明细.订单ID ORDER BY 订单.订购日期ASCds4: SELECT 产品.类别ID,产品.产品ID FROM 产品编辑报表表达式根据目标报表样式,分别设置每片区报表表达式。

其中:A1-E4按日期维度汇总了每个地区的销售额;A5-E6按销售人员维度汇总了每个地区的销售额;F1-G4按日期维度汇总了每类产品的销售额;F5-G6按销售人员维度汇总了每类产品的销售额。

润乾报表基本介绍[技巧]

润乾报表基本介绍[技巧]

润乾报表3.0介绍润乾报表3.0是用于统计报表制作及报表及数据填报的大型企业级工具软件。

产品首次成功解决了报表单元格与关系数据库之间的关联规律性,特别适合于中国式报表的填报和统计。

一、产品优势1.绘制方便润乾报表采用类EXCEL的绘制方式,真正做到所见即所得,把程序员从繁重且无聊的报表格式设置工作中解脱出来,极大的提高的表格绘制的方便度和效率,产品特有的EXCEL导入功能(包括格式)可充分利用业务人员原有积累。

2.数据模型先进润乾报表独创的数据模型首次成功地解决了中国报表中单元格与数据字段之间的弱关联性,彻底打破传统行式报表方案,报表行列完全对称,特有的层次扩展机制使多层分组及交叉报表制作非常简单,提供针对关联格的跨行跨组运算,很容易计算小计、同期比等数据。

同一报表中支持多个异构的数据源,允许报表各片之间无关,可用多个简单的数据集成组合出复杂报表,程序员无须再为每张报表编程(脚本或存储过程)或写复杂SQL准备数据。

3.输出能力丰富润乾报表每个单元格属性均提供条件控制,如颜色、行高、是否可见等均可与格内数据相关;支持代码显示值对应、多种数据格式、图片文件和图片字段的处理。

产品提供十几种各类统计图,支持PNG/GIF/JPG三种格式。

每张报表均可生成HTML、EXCEL、PDF三种输出格式(输出结果完全不失真,包括其内的统计图)。

单元格与统计图例均可加带参数的链接从而实现数据钻取功能,多层报表可在线收缩展开。

4.打印控制强大润乾报表提供强大的打印控制功能,按行数和纸张大小分页分栏或强制分页,表头自动重复(包括左表头),允许一张纸上打多个报表,提供末页补足空行。

可采用像素和毫米两种计量单位,独创的底图描绘功能以支持套打;5.集成性好润乾报表采用纯JAVA开发,利用服务器端提供丰富的API调用和标记可完全无缝地嵌入到基于J2EE的应用程序中(可看作应用程序员自己写的代码),程序员可更换报表的数据库连接和数据源、采用应用服务器的连接池管理;设计器也提供外置的数据源和数据字典定义,可由应用程序员提供这些信息。

润乾报表4.0高级设计(一)

润乾报表4.0高级设计(一)
基本概念 扩展模型 主格模型 层次坐标 格集 线性坐标 平面坐标
第10页
1.2.1 运算模型基本概念
集合函数
运算结果为集合的函数,我们称为集合函数。
集合函数包括:group(),select(),list(), query(),call(),to()等。
集合表达式/单值表达式
计算结果为集合的表达式称为集合表达式; 计算结果为单值的表达式称为单值表达式。
第11页
集合表达式与单值表达式
集合表达式 单值表达式
第12页
集合函数
Select Group Call/Call2 query/query2 List …
第13页
Select()
语法:
datasetName.select( <select_exp>{, desc_exp{, filter_exp{, sort_exp{,rootGroupExp}}}} )
第14页
练习
网格式报表
第15页
group()
语法:
datasetName.group(selectExp{,descExp{,filterExp{,sortExp {,groupSortExp{,groupDescExp{,rootGroupExp}}}}}})
=ds1.sum(# 5,#4==A1)
一组数据的集合,数据类型由sql语句的第一个选出字段决定
第22页
query2()
函数说明:
执行sql语句,返回结果数据集合,只能返回单列数据,如果sql语 句中有多个字段,则返回第一个字段的结果值。和query()函数的差别 在于多了第一个参数,第一个参数用于制定数据源名称,通过他可以 实现不同单元格从不同数据源获取数据 语法: query2(dbname, sqlStatement{,arg1{,arg2{,arg3{,……}}}} 参数说明: dbname 数据库逻辑名,为null表示缺省数据库 sqlStatement 合法的sql语句 arg(n) sql语句的参数,可以是常数也可以是表达式 返回值: 一组数据的集合,数据类型由sql语句的第一个选出字段决定

润乾报表使用手册

润乾报表使用手册

润乾报表使用手册(总25页) -CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除报表使用手册XX股份有限公司中国济南目录1 概述..................................................错误!未定义书签。

2 安装..................................................错误!未定义书签。

准备好安装程序................................错误!未定义书签。

安装中的选项..................................错误!未定义书签。

授权文件配置..................................错误!未定义书签。

3 报表制作..............................................错误!未定义书签。

报表制作要求..................................错误!未定义书签。

制作一张报表的步骤............................错误!未定义书签。

启动报表设计器................................错误!未定义书签。

连接数据源....................................错误!未定义书签。

数据源对话框...............................错误!未定义书签。

编辑数据源.................................错误!未定义书签。

注意事项...................................错误!未定义书签。

设计报表格式..................................错误!未定义书签。

格式设计...................................错误!未定义书签。

润乾报表实现组内排序报表及改进

润乾报表实现组内排序报表及改进

润乾报表实现组内排序报表及改进报表开发中经常会遇到需要进行组内排序的报表,如按月份的分组汇总值排序显示,并显示每月销售额前十名的记录。

使用报表工具一般通过隐藏行列辅助可以实现,下面通过实例说明润乾报表的实现过程,以及改进方案。

报表需求根据销售管理系统数据统计客户所在地区的订单总额,地区并按订单总额降序排列,要求每个地区中显示销售额在前五名的销售人员及其订单数量和订单金额,其他人员归入“其他”项中。

报表样式如下:这里应该注意的是地区分组中如果销售人数少于5个则不显示“其他”项(如上图中的西北地区)。

润乾报表实现润乾报表实现主要依靠条件隐藏行实现,根据分组成员数量是否显示“其他”项,报表模板及表达式如下:在润乾报表中,使用ds.group()的多个参数,结合条件判断隐藏行,多种使用方法结合完成了报表开发,可见润乾报表的强大之处。

但是由于要按照分组后汇总的订单金额排序,所以在B3的分组表达式中应用ds1.sum(订单金额)表达式作为ds.group()的参数,对于原始数据量较大的情况下,该表达式效率较低;而且,由于只显示前5名销售,在C3(排名)和D3(其他)中设置了隐藏行表达式,对于分组较多的情况仍然会存在性能问题;另外需要在E3和F3中使用格集过滤表达式计算其他销售人员合计,计算时要带着单元格属性计算,效率仍然不高。

上述提到的问题在传统报表工具中皆是存在的,原因在于数据计算(报表数据源准备)与报表呈现混在一起导致,开发人员不得不再报表中编写较复杂的计算逻辑以完成报表开发,造成报表开发和运行效率都不高。

如果能将两部分分开,势必能提升开发和运行效率。

润乾公司在润乾报表的基础上,推出了可以完全满足复杂报表开发的集算报表,其内置了用于完成报表数据计算(数据源准备)的集算器,从而将数据计算和报表呈现剥离开,进一步梳理了报表开发流程,使得报表开发变得更加清晰。

上述报表需求使用集算报表可以这样完成:集算报表实现编写集算脚本使用集算脚本编辑工具完成计算脚本,并为报表输出计算后结果集:A1:执行sql得到初步汇总订单数据A2:按照地区分组后组内成员按订单金额排序A3-C7:循环A3,取前五名记录,并将超过第五的记录都归入“其他”项,结果写回A3A8:结果按地区总额降序排列后返回给报表报表调用使用集算报表设计器,新建报表,使用“集算器”数据集类型,选择上面编辑好的集算脚本(sort.dfx)报表模板及表达式报表模板中根据集算脚本返回的结果集,分别取得地区分组和销售列表等数据,无需复杂表达式即完成报表开发。

润乾报表调用参数

润乾报表调用参数

润乾报表调用参数润乾报表是一种常用的财务报表分析工具,可以帮助企业对财务状况进行全面的分析和评估。

在使用润乾报表时,我们需要了解如何正确调用参数,以获取准确的报表数据。

本文将介绍润乾报表的调用参数及其使用方法,帮助读者更好地使用润乾报表进行财务分析。

一、调用参数的作用和分类润乾报表的调用参数是指在生成报表时需要提供的信息,包括报表类型、时间范围、公司代码等。

不同的调用参数可以实现不同的报表功能。

根据调用参数的不同,润乾报表的调用参数可以分为以下几类:1. 报表类型参数:用于指定要生成的报表类型,比如资产负债表、利润表、现金流量表等。

通过设置不同的报表类型参数,可以获取不同类型的财务报表数据。

2. 时间范围参数:用于指定报表的时间范围,比如年度报表、季度报表、月度报表等。

根据业务需要,可以灵活调整时间范围参数,以获取特定时间段内的财务数据。

3. 公司代码参数:用于指定要查询的公司代码,适用于多公司集团财务分析的场景。

通过设置不同的公司代码参数,可以获取不同公司的财务报表数据。

4. 其他参数:润乾报表还提供了一些其他的调用参数,用于实现更复杂的报表功能。

比如币种参数、科目代码参数、部门代码参数等,可以根据具体需求进行设置。

二、调用参数的使用方法使用润乾报表进行财务分析时,正确设置调用参数是非常重要的。

下面以资产负债表为例,介绍润乾报表调用参数的使用方法。

1. 首先,打开润乾报表软件,在报表模块中选择要生成的报表类型,比如资产负债表。

2. 然后,在报表设置中找到调用参数选项,点击进入参数设置界面。

3. 在参数设置界面中,根据需要设置报表的时间范围参数。

比如如果要生成年度报表,可以选择起始日期和结束日期为一年的时间范围。

4. 接下来,设置公司代码参数。

如果润乾报表支持多公司查询,可以选择要查询的公司代码,以获取相应公司的财务报表数据。

5. 如果需要对报表数据进行进一步筛选,可以设置其他参数,比如币种参数、科目代码参数等。

从天山上来的润乾,从一阳指到六脉神剑,实现报表到计算的转身(上)

从天山上来的润乾,从一阳指到六脉神剑,实现报表到计算的转身(上)

从天山上来的润乾,从一阳指到六脉神剑,实现报表到计算的转身(上)关键词:润乾、集算器、报表笔者最近访问了报表工具圈的老牌企业-润乾信息,作为访谈的记录,笔者感到了振奋人心的颤动。

老贼作为江湖大哥,是数据人的宝贵财富。

在笔者的眼里,老贼和润乾就像一座高山,无论我们走多久走多远,一回头,就能看见他在那里,心里就很踏实!笔者突然觉得,作为技术型公司,别停下脚步,你只需盯着眼前的路,朝你心中的山头勇往直前,渐渐的,那些追逐你的人们被你抛在身后,当你再次从高处俯视他们时,那些鄙视过你的眼神成为了仰望!远古,神灵为了阻止人类窥伺神国,用语言分割族群,巴比伦塔就此荒颓。

而今,“集算器”正在重建数据计算的巴比伦塔,重建的速度,或许已快过神明。

呵呵,什么是“集算器”,不知道?不知道没关系,读完此文就知道了,他就是计算领域的巴比伦塔,而修建这座塔的主角就是老贼!钱塘江大潮时,有段视频网上走红。

视频中的人们,江边观潮,前一秒还在拍照嬉闹,下一秒就遇浊浪如山,只得尖叫逃跑。

这和我们将要面临的数据计算的浪潮何其相似。

我们极有可能低估了新时代的力量,以及新时代到来的速度。

过去,数据计算封存在科幻电影中的未来。

“集算器”亮相后,数据等候在“不久的将来”。

直到生活中的大数据的痕迹越来越多,我们才明白大数据计算已在“明天”,甚至“今天”。

我们只知大势将至,却不知未来已来。

NBA比赛开场之际,万人体育馆内低语喧嚣,科比、姚明等尚未出场,体育馆内爆米花的声音作响,炎热的夏夜,漫天的红云蓄势了整个黄昏。

我们正处于一个躁动的数据调试时刻,而“集算器”正在调试自己的神魂和硬件,以待全面登场。

在老贼和他领导的润乾内,无数工程师正在从不同维度,完善着“集算器”的神魂。

脱胎于报表工具的润乾,集算器的诞生,其实和传说中苗疆养蛊相似。

养蛊人寻多种毒虫,投入陶罐,择日深埋土下,最后罐中胜者成圣。

对集算器而言,它最初所需打败的对手,便是各类报表工具遭遇的瓶颈。

润乾报表设计基础

润乾报表设计基础

润乾软件

提供最好的报表工具
第5页
合并单元格命名规则
合并单元格是以左上角的单元格编号作为合并格的编号的, 例如上图中,合并格的编号为"B2"
润乾软件

提供最好的报表工具
第6页
属性和表达式
属性值 表达式
润乾软件

提供最好的报表工具
第7页
属性和表达式的解析
哪些属性仅仅解析从左到右的顺序为:表头列——〉常规列 区域顺序从左到右不可颠倒 表头列可以不存在 合并格不能跨越区域,否则分页时会出现混乱
表头列
表头列一般用来放置报表数据行的行名称。当报表宽度比纸张显 示区域宽时才需要设置表头列,这种情况下分页时表头列就会在 每页中重复显示。
常规列
常规列一般放置报表从数据集中取到的数据。常规列的单元格可 以进行扩展和复制
请看实际例子演示
第48页
润乾软件

提供最好的报表工具
左表头报表举例
润乾软件

提供最好的报表工具
第49页
纵向分区
规则说明
纵向分区从上到下的顺序为:页眉区——〉标题区— —〉表头区——〉数据区——〉表尾区——〉页脚区 区域顺序从上到下不可颠倒 除了数据区,其它区域可以不存在 合并格不可跨越区域,否则分页时会出现混乱 只有表头区和数据区才适用前面讲解的单元格的扩展 模型、主格附属格模型、单元格的层次坐标等数学模 型,其它区域全部适用定位和拉伸规则
可扩展单元格
数据值表达式包含集合函数、to操作符、: (link)操 作符、数组时,单元格默认为可扩展单元格。此 时单元格的扩展方向属性可为默认、横向扩展或 者纵向扩展。 如果数据值表达式不包含上述元素,则单元格默 认为不可扩展。 集 合 函 数 包 括 : group(), rgroup(), select(), rselect(), list(), query(), sql(), query2()

润乾报表实现动态数据源报表及改进

润乾报表实现动态数据源报表及改进

润乾报表实现动态数据源报表及改进经常会遇到一些报表需要根据不同的情况(参数)连接不同的数据源从而完成相应的数据的展现,也就是经常说的动态数据源报表。

报表工具通常的做法有两种,一是不同的情况加载不同的数据源连接参数,如:url、driver、username、password等;二是利用已配置的多个连接池,根据不同情况选择。

这里通过一个实例,说明润乾报表的实现过程及改进方案。

报表说明应用中需要通过参数控制报表连接的数据源,当参数flag为1时连接数据源一(db1),否则连接数据源二(db2)。

润乾报表实现首先根据flag参数为context设置不同数据源(这里以两个hsql数据库为例):String flag=request.getParameter("flag");Connection con1 = null;Connection con2 = null;try{Driver driver = (Driver)Class.forName("org.hsqldb.jdbcDriver").newInstance();DriverManager.registerDriver(driver);con1=DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/runqianDB","sa"," ");con2=DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/demo","sa","");}catch (Exception e){e.printStackTrace();}Context cxt= new Context();String defDsName = cxt.getDefDataSourceName ();if ("1".equals(flag) || "1"==flag){cxt.setConnection(defDsName, con1);}else{cxt.setConnection(defDsName, con2);}将cxt存入request:request.setAttribute("myContext", cxt );以context方式发布报表:<report:html name="report1"contextName=”myContext”/>通过使用润乾报表的API可以完成动态数据源报表,详尽的API的确为应用开发人员提供了诸多便利。

润乾报表4.0高级设计一

润乾报表4.0高级设计一

1.3 行列对称
横向扩展---纵向扩展 横向分片---纵向分片 左表头固定---上表头固定
发布报表时在tag标签中将needScroll属性设为:“yes”
1.4 多片扩展
主格认定规则 举例
主格认定规则
缺省主格认定 人为改变主格规则
缺省主格认定
单元格横向扩展时,上方横向扩展单元格缺省为 它的上主格,下方单元格缺省为它的附属格;如 果上方没有横向扩展格,则上主格缺省为 `0 格
练习
做一张重叠分组报表
2.4 按段分组
这种按值段进行分组的分组报表被称为按段分组报表
Plot()函数
语法:datasetName.plot( valueExp, listExp{, filterExp{, eqExp{,
ascExp{,rootGroupExp}}}} )
参数说明:
valueExp 用于分组的值表达式 ListExp 数据值段列表,同valueExp数据类型相同的数组,要求其 中元素从小到大排列 filterExp 过滤表达式 eqExp 返回布尔值的表达式,缺省为false,表示与元素比较时不包 含等于 ascExp 返回布尔值的表达式,缺省为true,表示listExp返回的数组 按从小到大排,否则为从大到小排 rootGroupExp 是否root数据集表达式
根据订购日期将订单数量和订单金额分成四组,分别统计“1996年圣诞前”、 “1996年圣诞--1997年国庆”、“1997年国庆--1998年五一”、“1998年五 一以后”四个时间段的订单
不规则分组概念与特征总结
不规则分组是复杂报表中的典型特征之一。 不规则分组是相对于传统报表工具中的规则分组而言的, 传统工具中的数据分组延用了关系数据库中的相应概念, 为完全规则分组,即分组标准一致且有规则(一般都按某 个字段或表达式),所有事实都必须出现且只出现一次, 分组值次序与原数据记录次序一致。 不规则分组的分组标准看不出规律(常常只能穷举,或者 写复杂的条件表达式,每一组的条件表达式均不相同), 所有事实不一定全部出现在分组结果中、个别事实还可能 重复出现,次序也与原数据记录无关。

润乾集算报表呈现一组多个报表

润乾集算报表呈现一组多个报表

报表组打印
与导出类似,在<report:group>标签中加入 needPrint="yes"属性即可加入报表打印按钮, 报表组打印时会提示打印组内某个或某些报表,如下图示:
用户可以通过“预览”查看报表打印预览效果,通过“打印”完成报表组的打印操作。
设置后的报表组(group.rpg)如下:
到这里报表组的设置已经完成,报表组中的订单表和订单明细表制作可参考集算报表相 关文档。
由于报表组中带有参数,发布到页面需要参数输入界面,所以这里再制作一个参数模板 (group_arg.rpx),联合报表组发布:
报表组展现
编辑报表组展现的 JSP(showReportGroup.jsp): <%@ page contentType="text/html;charset=GBK" %> <%@ taglib uri="/WEB-INF/raqsoftReport.tld" prefix="report" %> <%@ page import="java.io.*"%> <%@ page import="java.util.*"%> <%@ page import="ermodel.Context"%> <%@ page import="com.raqsoft.report.util.ReportUtils"%> <%@ page import="com.raqsoft.report.model.ReportDefine"%> <%@ page import="ermodel.ReportGroup"%> <%@ page import="ermodel.SubReportConfig"%> <html> <link type="text/css" href="css/style.css" rel="stylesheet"/> <body topmargin=0 leftmargin=0 rightmargin=0 bottomMargin=0> <%

润乾报表的使用技巧

润乾报表的使用技巧

润乾报表的使用技巧
润乾报表软件是一个常用的Java报表工具,使用较为简单,可以轻松制作出各种各样的报表,是一个不错的Web报表工具,下面是我分享的一些使用润乾报表工具所总结的经验和技巧,供其他润乾报表的使用者参考。

1、按照千元单位显示
点单元格属性-显示值-表达式,将数值修改为if(value()!=0,value()/1000,0),这样,可以在数据数值不变的情况下将数值按照千元方式显示。

2、单行颜色改变
如果某几行数值为“小计”、“合计”等数值,需要将其背景颜色改变,假设第一列是A5,则点单元格属性-字体-背景色,将其数值修改为if (A5 like '*计*',-592192,-1),这样“小计”、“合计”行的颜色就会变化,而其他行颜色不变。

3、按参数隐藏列
在报表参数中,传入某个数值后,将某一列或几列隐藏,例如当报表日期大于2009年1月1日,则隐藏几列,可以选择该列,在右边的属性中,找到“是否可见”,在表达式中填写if(@reportdate>"20090101",false,true),即可按照输入参数隐藏列。

4、报表固定表头
报表在WEB页面输出的时候,需要设置横向、纵向滚动条来固定报表表头,选中需要固定的行或者列,点属性,将其所属区域设置为“表头区”,就可以固定表头。

以上是我使用过程中总结的一些技巧,另外,润乾报表中提供了很多详细的帮助文档和实例,也很方便简单,易于学习。

润乾报表介绍

润乾报表介绍
报表优化引擎集算器
润乾BI要实现的目标
灵活
针对数据结构一次性 建模,解决CUBE方 式下模型频繁更改的 难题,实现真正的灵 活自助
方便
除了RDB,可以直接 针对Excel/TXT等文 件查询分析,无需将 数据导入,随查随用, 简单方便
高效
支持海量数据查询, 提供异步查询机制, 百万级数据查询秒级 响应,查询高效
HTML5报表呈现
报表输出
报表导出Excel/PDF/Word Flash/PDF/Applet打印
中国式复杂报表不是事儿
与Excel无缝交互
设计阶段导入Excel模板确定格式 查看阶段导出Excel易于使用
多源分片
数据来源多个数据表或数据库 在报表中以多分片形式呈现
行列对称
行列属性一致 纵向和横向同时扩展
数据填报-专利
填报样例与编辑风格
多种编辑风格 编辑框/复选框/上下载文件/ 下拉列表/下拉数据集/下拉日 历/下拉树
两种填报表类型 技术人员定制填报表 业务人员自定义填报表
中国式报表鼻祖,诞生18年 类Excel报表设计,与Excel无缝交互 多源分片/行列对称/冻结表头 APPLET/PDF/FLASH打印 WORD/PDF/EXCEL导出 集成Echarts/D3等第三方图库 大屏/DashBoard/手机呈现 填报录入/业务自定义填报 tag-lib嵌入,易于集成
润乾报表
非CUBE方式,一次性建模查询灵活 拖拽查询/计算列/同比环比/统计图 旋转/切片/切块/下钻/上卷 直接基于SQL/Excel/文本分析 报表中心/平台管理/资源/权限 手机端登录/设置/查看 报表中心开源免费
润18年 类Excel报表设计,与Excel无缝交互 多源分片/行列对称/冻结表头 APPLET/PDF/FLASH打印 WORD/PDF/EXCEL导出 集成Echarts/D3等第三方图库 大屏/DashBoard/手机呈现 填报录入/业务自定义填报 tag-lib嵌入,易于集成

润乾集算报表交互分析之可钻取统计图

润乾集算报表交互分析之可钻取统计图

润乾集算交互分析之可钻取统计图交互分析过程中不仅会对报表进行钻取,经常还需要需要统计图也具有钻取功能,统计图与统计图之间,统计图与报表之间进行多层级钻取。

这需要报表工具具备相应功能,润乾集算报表中可以设置统计图超链接实现钻取需求。

这里通过一个示例来说明使用过程。

编制汇总报表这里以某年度按地区销售情况汇总报表为例,点击柱形图中的柱子钻取到指定地区下的二级汇总图表。

设置报表年份参数year,并编辑报表表达式如下:由于只显示统计图,第1、2行设置隐藏。

其中,A4中统计图定义如下:设置统计图超链接在统计图设置窗口切换到“显示外观”选项下,在图形超链接中设置目标URL:="{APPMAP}/reportJsp/showReport.jsp?rpx=/detail.rpx&year="+@year+"&area=@category" 。

在超链接属性中可能会用到@legend、@category 和{APPMAP}。

@legend:指代当前图例的显示值。

在超链接中引用@legend,报表引擎运算时会将其替换成当前图例的显示值。

@category:指代当前图例的分类值。

在超链接中引用@category,报表引擎运算时会将其替换成当前图例的分类值。

{APPMAP}:指代web应用的相对路径,在超链接中引用{APPMAP},报表引擎运算时会将其替换成web应用的相对路径。

报表引擎运算时会把@category、@legend 等当成宏,进行宏替换,所以需要注意上图中的超链接中{APPMAP}和@category均写在“”(双引号)内,使用时要尤其注意。

此外,从上图中可以看到,除了可以设置图形超链接,还可以设置图例超链接,用户可以根据实际需要进行选择。

编制目标报表统计图钻取的目标报表为指定地区下的二级汇总图表,设置报表参数year和地区参数area,用于接收超链接传递的参数。

润乾集算报表交互分析之多层自动钻取

润乾集算报表交互分析之多层自动钻取

润乾集算报表交互分析之多层自动钻取交互分析过程中报表多层钻取的情况很常见,如从一级汇总数据钻取到二级汇总数据,从二级汇总数据钻取到三级汇总数据….,钻取时可以从表格到表格,也可以从统计图到统计图。

开发这类报表时如果每个层级都需要制作不同的报表,在层数较多时,无论对于开发还是维护都是很麻烦的事,如果能制作一个通用的模板完成所有层级报表的展现则事半功倍。

润乾集算报表通过内置的集算引擎可以快速完成多层钻取通用报表模板的开发。

下面通过一个示例说明使用过程。

多层钻取往往在一个维度上逐级细化,如这里我们以订单表中5个地区层级为例(可以扩展到N层),每个层级对应订单表中的一个字段,分别是:大洲、国家、地区、省、市。

要求:统计某年份下不同层级的订单金额,若未指定层级则默认统计各大洲情况。

以下为实现过程:编写集算脚本首先使用集算脚本编辑器,新建集算脚本,设置脚本参数年份和统计层级其中,level参数为报表传递过来的层级参数,其值是以逗号分隔的字符串,计算时是以其为过滤条件,统计下一层级数据,举例来说:当level为空,代表汇总大洲数据;当level为”亚洲”,则汇总亚洲下的各国家数据;level为”亚洲,中国”,则汇总亚洲中国的各地区数据,依次类推。

编写脚本,通过集算脚本的强计算能力,拼接动态分组汇总的SQL,完成上述计算,为报表返回目标结果集:A1:连接数据源A2:将逗号分隔的层级参数level转为序列,如:B2:序列长度A3:列举将所有层级相关字段,其顺序与level值一致A4:拼接level值对应的SQL中过滤条件,如:A5:分组字段,如果level为空,则按大洲分组,否则按下一级地区分组A6:拼接完整SQL,包括处理A4生成结果中的逗号,如:A7:执行SQL完成汇总计算,得到如下结果:B7:关闭数据库连接A8:为报表返回结果集编辑报表模板结果集已经通过集算脚本计算出来了,接下来使用集算报表编辑器,编辑报表模板,完成通用模板开发,首先设置报表参数:其中,flag为动态参数,用于标识当前钻取的层级,便于钻取到最末层时停止钻取,其值表达式为:count(split(level,","))设置集算器数据集,调用上述编辑好的脚本文件其中,dfx文件路径既可以是绝对路径,也可以是相对路径,相对路径是相对选项中配置的dfx主目录的。

润乾报表如何实现查询参数和查询结果在一个表里

润乾报表如何实现查询参数和查询结果在一个表里

如何把查询参数和查询结果做在同一张报表里需求说明快逸报表提供的参数模板例子通常都是分两张报表做的(如reportFiles\基础报表:参数报表.raq和参数报表_arg.raq),参数输入模板为一张报表,查询展现结果为另一张报表,然后通过showreport.Jsp文件把两个报表在一个页面中展现。

但是有些报表用户想在一个报表模板里就实现这两张报表的功能,快逸报表支持这样的方式吗?本文就来介绍一下快逸报表是如何解决这个需求的。

大致思路:在报表中创建一个超链接按钮,点击按钮触发onClick()事件,然后onClick()事件中定义页面跳转的url,并且把参数和参数值添加到url中,通过onClick()事件实现页面的调转。

1.下面是具体的实现步骤:首先连接demo数据源,制作一张空白填报表2.创建一个数据集ds2,用于查询表单中的下拉数据集,数据集中的内容将被选择作为参数传递。

sql语句:SELECT 订单.订单ID FROM 订单在A2单元格中输入“选择订单ID”,创建一个查询连接,把C2单元格的数据类型设为html,输入“<a href='#'>查询</a>”。

如下图3.设置B2单元格可写,并且为它设置的下拉数据集。

勾选B2单元格填报属性中的“是否可写”,并且设置它的下拉数据集为刚才新建的数据集ds2,显示列为“订单ID”,数据列也为“订单ID”,如下图4.新建一个参数用于接收B2单元格选择的订单ID。

新建参数“dingdan”,如下图5.新建一个数据集ds1,用于根据订单ID查询订单详细信息,sql语句:SELECT 订单.订单ID,订单.货主名称,订单.运货商,订单.货主地区FROM 订单WHERE 订单.订单ID =?在SQL编辑器中增加一个参数“dingdan”,表格中填写如下6.到现在报表已经做完了,下面给单元格C2增加onClick()事件,在onClick事件中先取B2单元格的显示值,然后定义页面跳转的url。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

润乾集算报表实现动态层次钻取报表(一)
在报表项目中有时会有动态层次报表,而且还需要层次钻取的场景,开发难度较大。

这里记录了使润乾集算报表开发《各级部门KPI报表》的过程。

《各级部门KPI报表》初始状态如下图:
当前节点是根节点“河北省”,要求报表显示当前节点的下一级节点“地市”汇总的KPI 数值。

Kpi又分为普通指标和VIP指标两类,共四项。

如果点击“石家庄”来钻取的时候,要求能够将石家庄下一级的KPI汇总指标显示出来,如下图:
点击“中心区”钻取,要求能够将下一级的KPI汇总指标显示出来,以此类推,直到显示到最后一级。

如下图:
前四级固定是“省、地市、区县、营业部”,后边则是动态的“架构4、架构5、架构6. . . 架构13”(根节点“省”对应“架构0”)。

这个报表对应的oracle数据库表有两个,tree(树形结构维表)和kpi(指标事实表),如下图:
Tree表
Kpi表
Tree表的叶子节点,通过id字段与kpi表关联。

这个报表的难点在于1、动态的多层数据、标题;2、树形结构数据与事实表关联。

采用润乾集算报表实现的第一步:编写集算脚本tree.dfx,完成源数据计算。

集算脚本
A1:连接预先配置好的oracle数据库。

A2:新建一个序列,内容是“省、地市、区县、营业部、架构4、架构5、架构6. . . 架构13”。

A3:使用oracle数据库提供的connect by语句编写sql,从数据库中取出指定id(节点编号)
的所有父节点id、name。

id是预先定义的网格参数,如果传进来的值是104020,那么A3的计算结果是:
A4:为A3增加一个字段title,按照顺序,对应A2中的层级。

结果是:
A5:计算变量level,是A3序表的长度,也就是输入节点“104020”的层级号“4”(“省”为第一级)。

A6:计算输入节点“104020”的下一级对应的层级名称“架构4”,赋值给变量xtitle。

A7:编写sql,从tree表中取出输入节点“104020”的所有叶子节点,并拆分sys_connect_by_path字符串,得到这些叶子节点对应的输入节点“104020”的下一级节点。

形成临时表leaf与kpi表关联分组汇总。

为了能够得到输入节点“104020”的下一级节点的name,leaf还需要与tree关联一次。

需要注意的是,如果输入节点号本身就是叶子节点,结果中的name将为空。

完整的sql如下:
with leaf as(
SELECT tree.id id,REGEXP_SUBSTR(SYS_CONNECT_BY_PATH(id, ';'),'[^;]+',1,2) x FROM tree where connect_by_isleaf=1
START WITH ID = ?
CONNECT BY NOCYCLE PRIOR id = pid
)
select nvl(leaf.x,max(leaf.id)) id,'"+xtitle+"' title,max() name, sum(kpi.kpi1) kpi1,sum(kpi.kpi2) kpi2,sum(kpi.vipkpi1) vipkpi1,sum(kpi.vipkpi2) vipkpi2
from leaf left join kpi on leaf.id = kpi.id left join tree on leaf.x=tree.id
group by leaf.x order by leaf.x
计算的结果是:
A8:关闭数据库连接。

A9:向报表返回A4、A7两个结果集。

第二步:在报表设计器中定义报表参数和集算数据集,调用tree.dfx。

如下图:
定义报表参数“id”
定义集算数据集(其中的参数名“id”是集算脚本的输出参数名,参数值“id”是报表参数。

第三步,设计报表如下图:
A列是报表的左半部分,是输入节点(例如:“104020”)的所有父节点和它本身,横向扩展,A1的值是id,显示的是title。

A3显示的是name。

B列是报表的中间部分,是输入节点(例如:“104020”)的下一级子节点,纵向扩展。

在B3格中设置隐藏列的条件是value()==null,如果输入节点本省就是叶子节点,那么name==null,
B列就会隐藏不显示了。

C列到F列是报表的右半部分,显示的是对应的kpi统计值。

为了实现报表的格式需要,A3单元格需要将左主格设置为B3。

为了实现钻取功能,需要:
1、将A3单元格的超链接属性定义为表达式:
"/reportJsp/showReport.jsp?rpx=r4.rpx&id="+ds1.ID。

超链接指向本报表自身,报表参数是当前列对应的ds1.ID。

2、将B3单元格的超链接属性定义为表达式:
"/reportJsp/showReport.jsp?rpx=r4.rpx&id="+ds2.ID。

超链接指向本报表自身,报表参数是当前行对应的ds2.ID。

第四步:发布报表并运行。

实际的超链值如下图:
从上述实现步骤可以看到,难度最大的是tree.dfx中的A7单元格的复杂SQL。

应该说,oracle数据库的树形递归查询还是比较丰富的,用其他数据库(比如MySQL,PostgreSQL及Greenplum等)可能就很难实现A7中的SQL。

那么有什么其他方案,可以让这些数据库也能实现上述复杂的树形结构计算呢?
集算报表内置的集算引擎具备强大的计算能力,可以解决这个困难。

具体方案可参见《润乾集算报表实现动态层次钻取报表(二)》。

相关文档
最新文档