图表(长尾)FineReport教程:[9]参数设计

 时间:2024-10-20 16:15:39

下面就通过图表(长尾)FineReport来简单介绍一下。

工具/原料

图表(长尾)FineReport7.1.1

大小:148.2M适用平台:windows/linux

模糊查询

1、模糊溽朽孑臾查询语法模糊查询是利用“_”表示单个字符和“%”表示任意个字符进行匹配的。一些常见的格式如下:Selec墉掠载牿t*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,后面有两位位字符Select*from表名where列名like'%x';//右为x,前面可以有任意位字符Select*from表名where列名like'x%';//左为x,后面可以有任意位字符Select*from表名where列名like'%x%';//中间为x,左右都可以有任意位字符结合参数的模糊查询(用${name}代表上述的x):Select*from表名where列名like'${name}';Select*from表名where列名like'%${name}';以此类推。

2、示例:使用模糊查询实现参数为空选出全部新建工作簿,增加数据集ds1,sql语句为:SELECT*FROM销售WHERE地区like'%${area}'效果查看点击数据集面板中的预览按钮,会弹出参数对话框,如果输入“华东”,只会显示出华东地区产品销售情况:

图表(长尾)FineReport教程:[9]参数设计

3、如果不输入参数值,则会显示出所有地区的产品销售情况

图表(长尾)FineReport教程:[9]参数设计

动态表和动态条件

1、动态数据表若数据库中存在两张表结构相同,只是数据量不同,如何实现不同的人根据需要选择不同的表进行查看,从而提高查询效率呢?

2、实现思路在定义数据集时,通过if函数来判断参数的值从而来实现调用不同的数据表,如直接将SQL语句定义成:SELECT*FROM${if(aa=1,'订单','订单1')},即若参数aa=1时,查询的是订单表,若aa!=1时,查询的是订单1表。

3、动态条件若您对表中的数据进行过滤时,查询条件是不确定的,有时候想用A列进行过滤,有时候想用B列进行过滤,此时要如何实现呢?实现思路在定义数据集时,将条件定义为参数,如SQL语句定义成:SELECT*FROMTableName${Condition}。

4、示例打开模板打开模板:%FR_HOME%\WebRep艺皱麾酪ort\WEB-INF\reportlets\doc\Parameter\肛舀辨乔DynamicSQL\DynamicSQL.cpt。修改数据集将数据集修改为:SELECT*FROM订单${Condition}。修改参数界面将参数界面的控件名称修改为Condition即可。效果查看保存模板点击分页预览,输入动态的查询条件如:where货主地区='西南',便可以获取货主地区为西南的数据了,效果如下图:

图表(长尾)FineReport教程:[9]参数设计

参数引用

1、参数的主要作用是实现用户与数据的实时交互,即进行数据的过滤;除了过滤数据外,我们还能在很多情况下使用参数,比如在单元格中引用参数来实现动态标题、根据参数值的不同显示不同等等。总之,只要可以使用公式的地方,都可以通过“$参数名”来引用参数来实现各种逻辑结果:

图表(长尾)FineReport教程:[9]参数设计

2、示例—引用参数实现动态标题如下图效果,地区选择华北,报表标题就显示华北销售额,选择华东就显示华东销售额,即标题根据地区参数的变化而变化:

图表(长尾)FineReport教程:[9]参数设计

3、打开报表打开报表%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\Parameter\Parameter_2.cpt

4、公式中引用参数我们可以直接在公式中通过$para来引用参数,para为参数名,如下调整模板,合并A1至C1单元格,输入公式=$地区+"销售额":这样公式的值就会根据参数动态的改变了。注:FineReport报表中支持输入公式的地方均可以引用参数,参数引用直接使用$para即可将参数值传递过来。

图表(长尾)FineReport教程:[9]参数设计

参数为空选择全部

1、在使用参数进行过滤时,选择某个参数值后就会根据选择的值进行过滤,但是如何实现如下图效果即不输入参数值时能够查询处数据表中的全部值呢?由于参数的定义有两种方式,因此下面我们分别介绍下参数为空选出全部值的做法。

图表(长尾)FineReport教程:[9]参数设计

2、方法一:通过数据集参数2.1实现思路在定义数据集时,泶颛预鹨通过使用if函数判断参数的值是否为空,若为空就不过滤参数,若不为空就进行参数过滤。2.2示例打开模竣淠仝螃板打开模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Parameter\DynamicSQL\DynamicSQL.cpt。修改数据集将数据集修改为:SELECT*FROM订单where1=1${if(len(area)==0,"","and货主地区='"+area+"'")}${if(len(province)==0,"","and货主省份='"+province+"'")}。注:where1=1表示条件永真,防止没有之后的参数条件时,where多出而导致出错;len(area)==0表示参数area为空;货主地区='"+area+"'表示取参数值。${if(len(area)==0,"","and货主地区='"+area+"'")}表示若参数area为空就不进行过滤,若不为空则货主地区等于参数值。修改参数界面将参数界面修改为如下样式:

图表(长尾)FineReport教程:[9]参数设计

3、参数控件设置设置参数area的控件类型为下拉框,数据字典选择数据库表,数据库为FRDemo,数据表为订单,实际值与显示值的列名都选择货主地区。设置参数province的控件类型也为下拉框,数据字典为数据库表,数据库为FRDemo,数据表为订单,实际值与显示值的列名都选择货主省份。效果查看点击分页预览,不输入参数值后,直接点击查询,效果如上图

4、方法二:通过报表参数3.1实现思路在给数据列设置过滤刳噪受刃条件的时候,同样使用if函数进行判断。3.2示例打开模板打开模板:%FR_HOM呶蓟鹭毵E%\WebReport\WEB-INF\reportlets\doc\Parameter\ParaNull\ParaNull.cpt。修改数据集将数据集修改为查询订单表的数据即:SELECT*FROM订单。报表参数设置点击模板>报表参数,添加两个报表参数,分别为area和province。过滤条件设置点击A2单元格,选择格子上方的过滤按钮,给A2单元格增加如下图所示的过滤条件:注:nofilter表示不过滤,if(len($area)==0,nofilter,$area)表示参数area为空,就不过滤,若不为空则以参数值进行过滤;if(len($province)==0,nofilter,$province)意义相同。

图表(长尾)FineReport教程:[9]参数设计

5、效果查看点击分页预览,不输入参数值后,直接点击查询效果如上图。

图注怎么加 word怎么给图片添加图注 怎么给图片添加图注? Word怎么添加上标? Word2016怎么样插入接点流程图呢?
热门搜索
大主宰漫画 屁股图片 狐妖小红娘漫画 黄鹤楼图片 想念的图片