java报表工具FineReport的SQL编辑框的语法简介
感谢大家捧场,这里继续分享关于SQL编辑框的一些语法心得总结,因为数据集定义的面板,也是FineReport报表中最常用的模块之一。
1.我理解的执行过程。
这里其实是生成一个字符串,FineReport将这个字符串通过设置的数据连接传递到报表中执行。在这个过程中报表应该是先把报表规则的东西,替换成大家都认得的字符串后,对应的数据库执行完,会反馈值,有可能返回报错信息,也有可能返回数据集。这个报错信息应该是对应的数据库给的。所以说同样的sql语句,不同的数据库用不同的sql语法来执行有可能是不同的结果。比如select 'sdf'在access和sqlserver正常显示,在oracle就抛错。用select version()或者show status或者show tables能在mysql的数据集定义里正常执行,其他则不行。
sql中的and和or要和公式区别开,有人可能在公式里面把&&用成and。还有公式里面的或||在oracle中是字符串的连接符。
2.sql中调用公式
报表通过公式和参数实现与sql语句的交互。
公式放在框架${}中。于是${"select* from t1"}其实就等价于select *from t1。
数据集中用公式的难点在于拼接起来比较繁琐。
我想很多人接触到的第一个例子应该是帮助文档上参数为空返回全部的sql语句:SELECT *FROM 订单 where 1=1${if(len(area) == 0,"","and 货主地区 = '" + area + "'")} ${if(len(province) ==0,"","and 货主省份 = '" + province + "'")}
下面举个调用FR中format的例子:
select${"'"+format(p1,"yyyy-MM-dd")+"'"} from aa
如果漏掉format函数前后的单引号,就会得到错误的结果。其实有的时候可以通过一些方法简化处理的,比如再声明一个变量p2,引用这个变量的定义是format(p1,"yyyy-MM-dd"),这时候上面的sql就变成了select '${p2}' from aa 【当然如果没有加引号的话那p2就被解析为一个字段名了,这是动态字段的实现方法了】
对于存储过程,数据集定义这地方其实是支持call和exec的调用方法的。
3.sql中调用sql函数
前面说到,sql语句其实是字符串。其实是可以从数据库调用字符串作为一个sql语句进行操作的。这个要用到sql函数了,说例子:
=sql("FRDemo",sql("FRDemo","selecttesttext from test where id=2",1,1),1,1)
test这个表里面的第二条数据的testtext字段就是字符串 select top 1 地区 from 销量
可以把这个字符串用在sql公式中作为sql语句执行
数据集定义那边这么写是可以的 ${sql("FRDemo","select testtext from test where id =2",1,1)}
java报表工具FineReport的SQL编辑框的语法简介的更多相关文章
- web报表工具FineReport的SQL编辑框的语法简介
感谢大家捧场,这里继续分享关于SQL编辑框的一些语法心得总结,因为数据集定义的面板,也是FineReport报表中最常用的模块之一. 1.我理解的执行过程. 这里其实是生成一个字符串,FineRepo ...
- java报表工具FineReport的公式编辑框的语法简介
FINEREPORT用到公式的地方非常多,单元格(以=开头的便被解析为公式),条件显示,数据字典,报表填报属性值定义,图表标题,轴定义,页眉页脚,甚至单元格的其他属性中的鼠标悬浮提示内容都可以写公式, ...
- web报表工具FineReport的公式编辑框的语法简介
FINEREPORT用到公式的地方非常多,单元格(以=开头的便被解析为公式),条件显示,数据字典,报表填报属性值定义,图表标题,轴定义,页眉页脚,甚至单元格的其他属性中的鼠标悬浮提示内容都可以写公式, ...
- java报表工具FineReport的JS编辑框和URL地址栏语法简介
JS编辑框: 1.FineReport的js. 作为一款BS产品,browser端的JavaScript是必不可少的. FineReport中的js是已经调用了finereport.js的. 大家知道 ...
- web报表工具FineReport的JS编辑框和URL地址栏语法简介
JS编辑框: 1.FineReport的js. 作为一款BS产品,browser端的JavaScript是必不可少的. FineReport中的js是已经调用了finereport.js的. 大家知道 ...
- java报表工具FineReport常用函数的用法总结(数学和三角函数)
ABS ABS(number):返回指定数字的绝对值.绝对值是指没有正负符号的数值. Number:需要求出绝对值的任意实数. 示例: ABS(-1.5)等于1.5. ABS(0)等于0. ABS(2 ...
- java报表工具FineReport使用中遇到的常见报错及解决办法(三)
这里写点抛砖引玉,希望大家能把自己整理的问题及解决方法晾出来,Mark一下,利人利己. 出现问题先搜一下文档上有没有,再看看度娘有没有,再看看论坛有没有.有报错要看日志.下面简单罗列下常见的问题,大多 ...
- Java报表工具FineReport导出EXCEL的四种API
在实际的应用中会经常需要将数据导出成excel,导出的方式除原样导出还有分页导出.分页分sheet导出和大数据量导出.对于excel 2003版,由于限制了每个sheet的最大行数和列数,大数据量导出 ...
- Java报表工具FineReport常见的数据集报错错误代码和解释
在使用finereport制作报表,若预览发生错误,很多朋友便手忙脚乱不知所措了,其实没什么,只要看懂报错代码和含义,可以很快的排除错误,这里我就分享一下finereport的数据集报错错误代码和解释 ...
随机推荐
- 七个结构模式之装饰者模式(Decorator Pattern)
定义: 使用组合的方法,动态给一个类增加一些额外的功能,避免因为使用子类继承而导致类继承结构复杂.并且可以保持和被装饰者同一个抽象接口,从而使客户端透明. 结构图: Component:抽象构件类,定 ...
- Muzli – 所有你需要的设计灵感都在这
曾几何时,三个家伙一起工作,他们分享各种令人振奋的资源链接.然后,其中一个人有一个想法.一个绝妙的主意,是否可以有一种方式来与他人分享这些链接?因此, Muzli 诞生了.所有你需要的设计灵感这里都有 ...
- HTML中tr标签设置边框不显示的解决办法
今天在操作表格的时候发现设置表格中行的边框没有显示,然后自己新建了一个表格发现确实不显示 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr ...
- 关于window.onload
window.onload是当文档加载完成后执行. <script>之间的代码会在代码加载到此处执行.function内的代码是调用时才执行. 但window.onload有个坏处,它非要 ...
- 精通 CSS 选择器(二)
补充了一些之前遗漏掉的选择器以及一些在 Selectors Level 4 中新定义的选择器. 属性选择器不区分大小写 [attribute="value" i],在 Select ...
- .Net框架2.0和4.0版本对比
.Net版本 2.0 SP2 4.0 操作系统 Windows 2000 SP4以上 Windows XP SP3以上 安装包大小 NetFx20SP2_x86.exe 23.8 MBNetFx20S ...
- HTML <b>、 <strong> 、<big>、<small>、<em>、<i>、<sub>和<sup> 标签
HTML <b> 标签 所有浏览器都支持 <b> 标签. 定义和用法 <b> 标签规定粗体文本. 注释:根据 HTML5 规范,在没有其他合适标签更合适时,才应该把 ...
- ABAP中的同步和异步调用
ABAP 的 CALL FUNCTION 类似于 Java/.NET 中的本地或远程方法调用.CALL FUNCTION 可以分为四种:1. Synchronous RFC (sRFC) - 同步调用 ...
- RMS问题整理
1. 客户端提示"102错误"或者"意外错误,请与管理员联系" 解决方法:在确定Office2003已经安装SP3补丁以后请安装KB978551补丁 下载地址: ...
- Office 365 - SharePoint 2013 Online 在应用商店中添加应用
1.在使用应用程序商店的时候,先点击配置应用商店设置,如下图: 2.发现SharePoint要求我们创建应用程序目录,用来分发SharePoint App的一个网站,不过不创建的话,依然可以在应用商店 ...