Web报表工具FineReport参数设计演示模板全集

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

参数默认值
基本概述 参数默认值指:一个参数在被定义之后,预览时如果不给它赋值,则在筛选时采用它的
固有值,这个固有值就是参数默认值。 参数默认值定义 报表中用来过滤数据的参数值可以设置默认值, 这样当用户不输入参数值时将使用参数 默认值进行数据筛选查询。 1. 数据源参数默认值定义 在SQL编辑对话框中输入查询语句并定义参数如下 SELECT * FROM StScore WHERE ClassNo = '${ClassNo}' ${}是FineReport规定的参数的格式,括号中的ClassNo为参数名。 可以在下方参数面板中设置参数默认值。
Web 报表工具 FineReport 参数设计演示模板
很多使用过熟悉 web 报表工具的人都会发现,国内主流的报表工具 FineReport6.2 升级 到 6.5 后,增加了参数设计界面,预览时参数界面有所差别。笔者收集整理了参数设计的一 系列报表模板制作演示。
不延迟报表展示
不延迟报表展示是指: 在有自定义参数的情况下, 报表的结果展示不需要用户手动点击 查询按钮,自动使用参数的默认值进行第一次查询并输出结果。 打开之前所做的模 板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Tutorial\Parameter\paratype1.cpt 1. 参数设计界面 不选中延迟报表展示复选框,如下图
="财务报表( " + $type + ")" 不扩展,居中,其余默认
2.5 参数设计 2.5.1 打开参数设计界面,参数界面布局如下
2.5.2 控件设置 type控件设置
右击type控件,选择控件设置,打开控件设置面板,控件类型为下拉框,控件 名选择type,自定义数据,如下图所示

date控件设置

month控件设置 右击month的控件,选择控件设置,打开控件设置面板,控件类型为下拉框,
控件名选择month,自定义数据,并设为不可见,如下图所示
2. 事件编辑 右击type控件,选择控件设置,打开控件设置面板,添加编辑后事件,如下图所示:
在function fun(){}中添加如下代码: var form = this.options.form; var var var var DateWidget = form.getWidgetByName("date"); YearWidget = form.getWidgetByName("year"); MonthWidget = form.getWidgetByName("month"); value = this.getValue();
2. 设置参数默认值 打开报表 | 报表参数,将参数classno默认值设为Class1,如下图
将参数classno拖入相应控件单元格,参数界面上也将显示出默认值。
3. 点击分页预览 可以看到,预览结果为
此时用户没有选择classno的值, 也没有点击查询按钮, 自动使用参数classno的默认值 Class1进行了第一次查询,这就是不延迟报表展示。 将此模板保存为: %FR_HOME%\WebReport\WEB-INF\reportlets\doc\Tutorial\Parameter\paratype6.cpt
选中参数,点击编辑,打开参数编辑器,可以定义该参数的默认值类型及值。参数默认 值的类型包含字符串,整型,布尔型,日期型,公式等等。 2. 报表参数默认值定义 在设计器中,打开报表 | 报表参数,新增加一个参数p1。
其中可以填写默认值,点击红圈处下拉框可以选择更多形式的默认值,如下图
全局参数的打开方式,是在设计器中,打开服务器 |全局参数,该对话框与报表参数的 界面类似。 3. 公式型参数默认值 说明: 我们用报表参数定义参数的方法来设计报表, 介绍参数默认值当中“公式”类型 的使用方法。 公式=TODAY()返回的是以日期形式表示的今日的确切时间,如“2006/05/05",公式 =YEAR()返回一个日期的年份,为介于1900-9999之间的一个数。 =YEAR(TODAY())返回值为目前的年份。
实例: 该实例实现效果:当选择日报时,右侧出现一个日期查询控件,选择月报时,则让用 户选择年月,例如2008年3月,选择年报时,即让用户选择年份。 1. 模板设计 1.1 新建报表 1.2 添加数据源 新建一个名为ds1的数据库查询,SQL语句:
SELECT equipment,amount,costs,updatetime,equipmentId FROM EquipmentDetail where 1=1 ${if(type='日报'," and format(updatetime,'yyyy-mm-dd') = '" + date + "'","")} ${if(type='月报'," and month(updatetime) = "+ month + " and year(updatetime) = " + year,"")} ${if(type='年报'," and year(updatetime) = " + year,"")}
参数控件动态显示
由于业务的需要,很多情况下需要当满足某个条件时,某些查询条件才显示出来,此时 参数控件就需要动态的控制其是否可见。
// 通过控件的visible()、invisible()属性控制其可视、不可视 var [Widget] = form.getWidgetByName("[ParaName]"); // 通过控件名获取控件 [Widget].visible(); // 设置该控件可见 [Widget].invisible(); // 设置该控件不可见
此时,参数 p1 的默认值就会随着时间变动,实现了参数默认值动态改变的效果。用户 可以根据自己的具体需要设置参数默认值的公式形式。
参数为空选出全部
选择特定的参数后,会返回我们要查询的数据,然而假如没有输入参数值,我们却仍需 要返回数据时该怎样处理呢?以下就用一个例子实现这种参数为空时返回所有数据的效果。 介绍数据源参数与报表参数的实现方法。 1. 数据源参数实现参数为空选出全部 1.1 定义数据源 新建名为 ds1 的数据库查询,SQL 语句 SELECT * FROM StScore WHERE 1=1 ${if(len(classno) == 0,""," and ClassNo = '" + classno + "'")} ${if(len(studentno)==0,""," and StudentNo = " + studentno )} 说明: where 1=1 表示条件永真,防止没有之后的参数条件时,where 多出而导致出错; len(classno) == 0 表示参数为空; ${if(len(classno) == 0,""," and CLASSNO = '" + classno + "'")}表示当参数 classno 为空时,就返回空字符串,否则返回查询条件 and CLASSNO = ' classno' 。 1.2 模板设计 模板定义如下
7. __pi__ __pi__是判断是否显示参数界面的参数 8. __isdebug__ __isdebug__是判断是否启用 debug 模式的参数,使用 jar 包的时候该参数不起作用 9. $totalPage_number $totalPage_number 是报表的总页数 10. $page_number $page_number 是报表当前的访问的页码 11. _fr_authentication_key _fr_authentication_key 是当前角色的认证信息, 简单的讲就是这个参数在 session 中保存 了角色-用户名-密码 12. fr_username fr_username 是在使用权限时保存用户名的参数 13. fr_authority fr_authority 是在使用权限时保存角色的参数 14. cluster_redirect 15. redirect_from 16. __isjmeter__ 17. __filename__ 18. form_value 19. format 20. __rtype__ 在定义参数的时候,注意不要使用上述 FineReport 的内部保留字段。 附:op 参数常用的值如下(在浏览器中路径后面跟上&op=常用值,便能起作用) op=write 以填报方式查看报表 op=form 以表单的方式查看报表 op=appserver 查看当前服务器的基本情况(注册、内存、MAC 地址等等) op=console_reg 进入注册页面 op=fs 进入 FineReport 管理平台(暂定)
右击date的控件,选择控件设置,打开控件设置面板,控件类型为日期,控件 名选择date,自定义数据,如下图所示
ቤተ መጻሕፍቲ ባይዱ

year控件设置 右击year的控件,选择控件设置,打开控件设置面板,控件类型为下拉框,控
件名选择year,使用公式,dyear控件是由type的类型来决定他是否需要显示的, 且我们默认的类型为日报,因此默认设置它为不可见,如下图所示
3. 保存并预览 默认为日报,只显示出日期控件,预览效果如图
当选择月报时,右边弹出月份和年份下拉框,预览效果如图
当选择年报时,右边弹出年份下拉框,预览效果如图
参数名的内部保留字段
对程序有所了解的都知道, 各种程序开发语言中都有一些关键字, 编程的时候定义变量 名时是无法使用这些关键字的。FineReport 出于特定的需求,FineReport 在设计的时候也设 定了一部分特定的关键词,在设计参数的时候,确保不要使用这些保留词,否则可能出现意 想不到的错误。 FineReport 中的内部保留字段有哪些呢?下面将把所有的关键词的名字以及意义列出 来。 1. op op 是 FineReport 中是用来确定不同的访问方式以及不同操作的参数 例:op=write,是填报的访问方式 2. reportlet reportlet 是 FineReport 中确定访问模板的路径的参数 例:reportlet=/com/fr/demo/test.cpt 访问服务器中/com/fr/demo 文件夹下的 test.cpt 报表 3. reportlets reportlets 是在访问多张模板是使用的参数 4. sessionID sessionID 是当前访问的报表的 id 参数 5. reportXML reportXML 是用来传递修改过的报表模板的参数,使用在填报中 6. __cache__ __cache__是判断是否启用缓存的参数
if(value == "日报"){ DateWidget.visible(); YearWidget.invisible(); MonthWidget.invisible(); }else if(value == "月报"){ DateWidget.invisible(); YearWidget.visible(); MonthWidget.visible(); }else if(value == "年报"){ DateWidget.invisible(); YearWidget.visible(); MonthWidget.invisible(); }else{ DateWidget.invisible(); YearWidget.invisible(); MonthWidget.invisible(); } 说明:此段代码的作用是选择日报,那么在其下方出现一个日期选择框;选择月报时, 即让用户选择年月,例如2008年3月;年报与月报同理,即让用户选择年份。
其中设置参数type的默认值日报,data的默认值是字符串2009-01-13 1.3 模板设计
模板样式如下
2.4 绑定数据列 按照下表进行数据列绑定 单元格 C2 C4 D4 数据集 ds1 ds1 ds1 数据列 =$type =if(type=="日报 ",$date,if(type=="月报 ",$year+"."+$month,$year)) C7 D7 E7 F7 ds1 ds1 ds1 ds1 EquipmentID Equipment Amount costs 上到下扩展,居中,其余默认 上到下扩展,居中,其余默认 汇总求和,居中,其余默认 汇总求和,居中,其余默认 属性 不扩展,居中,其余默认 不扩展,居中,其余默认
相关文档
最新文档