FineReport之参数设计示例

1.  模糊查询

模糊查询是利用sql关键字加上通配符“_”“%”等组合进行查询的。支持Oracle、MySql、SqlServer。

1)"%":表示任意0个或多个字符,支持Oracle、MySql、SqlServer。

Select * from 表名 where 列名 like '%' //查询出全部   

Select * from 表名 where 列名 like 'x' //完全匹配查询  

Select * from 表名 where 列名 like '%x' //右为x,前面可以有任意位字符  

Select * from 表名 where 列名 like 'x%' //左为x,后面可以有任意位字符  

Select * from 表名 where 列名 like '%x%' //中间为x,左右都可以有任意位字符 

2) "_":表示单个字符,支持Oracle、MySql、SqlServer。

Select * from 表名 where 列名 like '_x' //右为x,前面有一位字符 

Select * from 表名 where 列名 like '__x'  //右为x,前面有两位位字符  

Select * from 表名 where 列名 like 'x__'  //左为x,后面有两位位字符 

3)"[]":表示括号内所列字符中的一个

指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。

注:如 [ ] 内有一系列字符(01234、abcde之类的)则可略写为“0-4”、“a-e”

sqlserver

Select * from 表名 where 列名 like '[张李王]三' //将找出“张三”,“李三”,“王三”(而不是“张李王三”);  

Select * from 表名 where 列名 like  '老[1-9]' //将找出“老1”,“老2”,……,“老9”;

oracle
select * from 表名 where regexp_like(列名,'[张李王]三') 

mysql

select * from 表名 where 列名 rlike '[张李王]三' 

select * from 表名 where 列名 regexp '[张李王]三'  

4)特殊字符模糊查询

sqlserver

用[ ]将特殊字符包含:select * from 表名 where 列名 like '_[%]_'  

mysql

用\将特殊字符转义:select * from 表名 where 列名 like '_\%_' 

oracle

用escape关键字将特殊字符转义:select * from 表名 where 列名 like '_\%_'  escape '\'  

5)ACCESS的模糊查询比较特殊是'?','*' 。 如 Select * from 表名 where 列名 like '*b*'

2.  动态表和动态条件

1)动态表:SELECT * FROM ${if(table='订单','订单','销量')}

FineReport之参数设计示例_第1张图片

FineReport之参数设计示例_第2张图片 

 2)动态条件

SELECT * FROM 销量 where 1=1 ${if(len(name)==0||len(value)==0,"","and "+name+"='"+value+"'")} 

FineReport之参数设计示例_第3张图片

3.  参数引用

总结: 参数的作用是过滤数据、实现动态标题、根据参数值的不同显示不同值等

1)实现动态标题

输入公式=$地区 + "销售额"

4.  参数为空选择全部

两种方式:

1) 设置参数面板属性

点击参数面板空白处,在右侧的属性中,设置不勾选点击查询前不显示报表内容

FineReport之参数设计示例_第4张图片

2)设置参数为空选择全部 

设置数据集参数:SELECT * FROM 订单 where 1=1  ${if(len(area) == 0,"","and 货主地区 = '" + area + "'")}

设置报表参数:if(len($area)==0,nofilter,$area)

FineReport之参数设计示例_第5张图片

 5.  文件数据集参数过滤

FineReport之参数设计示例_第6张图片

必须遵循的命名规则

1)不能以数字、$符号开头。

2)变量名只能是字母(a-z A-Z)、数字(0-9)、下划线(_)、(@)或中文的组合,并且之间不能包含空格。

3)变量名中不能含有? * . - 等字符和空格。

4)变量名不能使用编程语言的保留字。比如小写的true、false等保留字。但大写的TRUE、FALSE可以。

经典命名规则

1)匈牙利命名法

该命名法是在每个变量名的前面加上若干表示数据类型的字符。基本原则是:变量名=属性+类型+对象描述。如i表示int,所有i开头的变量命都表示int类型。s表示String,所有变量命以s开头的都表示String类型变量。

2)骆驼命名法

正如它的名称所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。驼峰命名法跟帕斯卡命名法相似,只是首字母为小写,如userName。因为看上去像驼峰,因此而得名。

3)帕斯卡命名法,即pascal命名法

做法是首字母大写,如UserName。

注意事项

1)字符参数有英文单引号'${adce}',数字参数没有英文单引号${adce}。其中adce为参数。

2)参数值的引用格式为参数前面加$符号,如$adce。

3)模板参数与全局参数重名时,采用模板参数。

你可能感兴趣的:(FineReport)