BIRT 交叉表中自由格间运算怎么做
比如要处理这么个场景:1、根据明细记录完成交叉表。2、在交叉表上统计每行的小计(中间过程)。3、计算交叉表中每个值占小计的百分比。计算流程如下图所示: BIRT等工具都会提供一些计算列的功能,可以在原始数据基础上再计算出一些别的列值或统计值,所以很容易实现前面2步。但由于传统工具(包含BIRT)没有很好的运算后报表数据项命名机制(一般用列名命名设计阶段的数据单元),很难精确描
哪个报表工具能抵挡 SQL 注入攻击
首先,要知道报表为啥会出现 SQL 注入攻击。所有的报表工具都会提供参数功能,主要用于用户输入条件后的数据筛选,固定条件不够,还要求更灵活,因此通用查询又出现,允许动态拼 SQL,随之而来的就是 SQL 注入的风险了。那么如何避免?简单来讲,安全第一,只要不支持拼 SQL 做灵活条件就行了,但这样牺牲了产品能力,开源产品就是这样,想做也只能自己硬编码拼 SQL 来做灵活查询。另外,有些报表工具只提
如何拆出字串中的数值并排序
通常情形下,一列数据都是整体参与排序,但如果数据是由字母跟序号组合在一起,比如名字加序号的一列数据:Mike105Rose11Rose1Rose5Mike6现在需要先按名字排序,再按序号排序。比如Mike6要排在Mike105前面,期望的结果如下:Mike6Mike105Rose1Rose5Rose11这个需求看似简单,但真要考虑实现它的步骤时,就会发现还真不是那么容易。就算是文件不够大的情形,也
如何从字符串文本中拆解出多个数值并计算
对于字母符号数值混排的文本文件,可以拷入Excel再拆解,但公式过于复杂,普通人难以掌握。用VBA\JAVA\Python等开发语言也可以解决这个问题,但代码冗长繁琐,还要使用难懂的正则表达式,实现起来更加困难。如果用esProc就会简单很多。比如文本文件的其中一行是"Jeff spent 13.5$ for cola, 5.2$ for coat,and 21$ for toys&qu
如何使用 SQL 查询文本
数据查询场景,用SQL写起来很简单,比如:SELECT ... FROM ... WHERE ...,但是文件上没法直接用SQL,一般常规做法:在数据库创建临时表,解析文本入库,再使用SQL对其查询、过滤、分组等。但实现过程太麻烦了。主要不方便体现在:1、解析入库代码写起来很长,还有开发环境配置等因素,一般对人员要求较高。2、安装数据库、创建临时表,虽然不难,却很繁琐。3、一些临时性、突发性需求,
怎样减少报表开发中对存储过程的依赖
存储过程在报表开发中非常常见,其支持多步计算从而能实现更复杂的计算逻辑,但存储过程对数据库的影响过大,除了会造成管理和安全等问题外,对数据库性能影响也很大;此外,存储过程难以调试,更无法扩展和移植,现在大家更多是不得不用存储过程。本文将介绍一种“库外存储过程”的新方式,既能延续原 DB 存储过程的优势,又能改正诸多原缺点。参考 1: 有效减少数据库中间表的报表开发方法参考 2: 
如何选择合适的填报表工具
用户在页面端填写数据时往往需要填报表工具,那么填报表都有什么常见的格式?又有什么常见的功能需求?不懂技术的业务人员是否能自己设计填报页面,点击如何选择合适的填报表工具查看具体详情。详情链接:http://c.raqsoft.com.cn/article/1575526599175?r=gxy
那些特殊边框效果在报表中要怎样实现?
斜线表头单斜线表头1. 点击选中要设置斜线边框的单元格;2. 点击“报表”菜单——边框设置选项;点击斜线的边框按钮单元格中输入内容为纵向维度名称,横向维度名称,例如:样品信息, 项目信息;单元格失去焦点后,我们就可以看到下面的效果:双斜线表头设置的方法步骤和但斜线表头一样,不同的是在单元格中输入纵向维度,横向维度,统计指标名称,例如: 样品信息, 项目信息, 统计值。注意:斜线表头中输入的内容中间
怎样开发 T+0 实时报表
数据分库后报表只能做 T+1 或 T+n 查询,业务需要的 T+0 实时查询往往无法满足。原因是分库(异构库)后的 SQL 没法写,通过硬编码实现的复杂度又太高。本文将介绍一种简单的方式:使用润乾报表快速实现冷热数据分离后的全量 T+0 实时查询。详情链接:http://c.raqsoft.com.cn/article/1577979759753?r=gxy
一劳永逸地“解决”没完没了的报表开发
报表的业务稳定性天生很差,业务开展过程中会催生出许多新的查询统计需求,这就造成了没完没了的报表。传统的报表工具只能完成数据呈现环节的工作,数据准备仍然要用复杂 SQL/JAVA 硬编码,除了实现困难,还极易造成与应用系统的紧耦合,同时需要专业程序员参与才能完成,造成报表变化应对不及时、开发成本高的现象。 本文将探讨并试图解决报表没完没了的问题。详情链接
谈谈报表工具支持的数据源
报表工具早期基本都是基于关系型数据库作为数据来源,但现在文件类、newsql、nosql,服务类来源应用越来越广泛。报表工具也应与时俱进!目前都搞不搞的定?靠 Api 还是有更好的方式?本篇将介绍报表工具支持的那些数据源,怎么连,有啥更好的方案解决取数及数据处理问题。 详情链接:http://c.raqsoft.com.cn/article/1577321880226?r=gxy
如何降低报表应用的耦合度
传统报表开发的两个阶段,数据准备和数据呈现往往使用不同方式实现(前者使用 SQL 或 JAVA,后者使用报表工具),物理上的分离导致报表修改维护要保证两处的一致,这样势必引起报表应用和数据库 /JAVA 程序的高耦合。如何降低报表应用的耦合度?让报表不再依赖 SQL/JAVA,仅用报表工具就可以实现。 详情链接:http://c.raqsoft.com.cn/article/157663
如何应对报表开发中的复杂逻辑
报表开发中经常遇到非常复杂的数据处理逻辑,实现时要写很多层嵌套的 SQL,实现困难且难以维护;使用 JAVA 硬编码是另外一种选择,JAVA 具备良好的分步支持,但缺乏通用的结构化计算类库,使得硬编码难度也不低;此外借助 JAVA 实现的报表数据准备还极易造成报表模块和应用其他业务模块的高耦合。如何应对报表开发中的复杂逻辑? 详情链接:http://c.raqsoft.com.cn/ar
填报之动态扩展列
在填报开发中,常见的填报表样式有很多,其中就包含了网格式填报、交叉填报等,如下图这种大多都是单一数据来源,进行取数回填的,基本不涉及在报表中处理数据表间的关联分组等复杂情况。下面我们通过一个具体的实例来看一下如何制作这种复杂的填报表 – 动态列。需求说明如下图表格中左右用不同颜色划分出了两块:分别是 A-D(蓝色部分)、E-V(黄色部分)其中:A-D 为固定列,数据来源于数据库表 report_m
自由格式填报的制作
在数据采集阶段,对于每个用户的信息采集,往往是给出一张空白表单供用户填写信息使用,随着网络化线上平台的不断发展,一些原本需要在纸质页面填写的信息,都转移到了线上。比如:用户信息采集报表这种报表大多都不像网格式那样整齐的排成一行,而是将一个人或一条数据的信息,自由的分布在多行,样式自由,美观(如下图)。那么,这种自由格式的填报表该怎么制作呢?下面我们通过一个具体的实例来看一下。需求说明进入信息录入系
复杂报表设计之动态报表
需求说明如上图所示,可以需选择不同的分组维度进行数据分析,例如类别、供应商维度;可以通过用户输入的参数值进行数据动态过滤,例如传入不同供应商、类别的值进行数据查询过滤;可以选择要显示的附加字段数据;同时要求显示有排名(每个分组内的数据从大到小显示)、占比(产品占该分组维度总订购量的百分比)。制作过程:1. 数据准备此示例使用脚本数据集完成数据的准备工作,此处使用脚本数据集是处于对组内排名需求的考虑
如何通过动态参数实现周报制作
需求描述在货品交易系统里,用户不仅要看当天的交易情况,还需要查看一周 / 一个月 / 一年的情况,也叫做周报 / 月报 / 年报。下图所示就是其中订货信息周报的效果。它是如何根据用户输入的一个日期查询出该日期所在周的订货信息表的呢?实现步骤1、 参数配置其中,arg1 是用户输入的日期,对应普通参数;arg2 是基于 arg1 计算得到的一周的起始日期,对应动态参数,表达式为:pdate@w(ar
报表如何实现行列互换效果?
通常我们设计的二维的交叉报表,横向的维度和纵向的维度是固定的,而用户希望更希望能根据自己的需要快速转换横向纵向维度来查看报表。如上图所示,我们通过点击一个按钮或文字,就可将报表的行列维度互相转换,这样的动态转换效果要怎么设置实现呢?这里我介绍两种方法实现方法:1. 两张报表超链接2. 单张报表动态判断两张报表超链接实现思路:二维的交叉报表行列维度有两种情况,我们只需对应两种情况做两张报表,切换的按
大数据集报表点击表头排序
在润乾官方在线 demo的 "交互报表" 中,有介绍 "点击表头排序" 的报表案例,该报表针对普通统计类报表。对于使用大数据集的报表,当按照此方式改造时发现排序没起作用或仅对第一页或前几页排序,后面的都没成功。要想了解啥原因导致?就需要分析该报表的做法及知道大数据集的取数原理。首先,来分析下在线 demo“点击报表排序”的做法。润乾报表中实现排序的方式有两种
如何将重复数据突出显示?
将表格中一列数据中重复的,使用特殊颜色突出显示或者使用一些符号标记出来。例如:一个供应商,可以邀请别的供应商加入成为联合体,报表要显示所有供应商,然后供应商最后一列显示所有联合体,当联合体供应商跟别的供应商重复时要突出显示,并且加星号。特殊颜色突出显示用设计器自带 demo 数据源中的订单明细数据表,使用向导创建一张分组报表,如下图所示。针对所有订单中的产品 ID 进行判断,如果产品 ID 有重复