finereport帮助文档中期学习总结

一、多级上报

1,数据填报
打开设计器,
新建报表,
设计外观,
定义数据集,拖拽数据列:
设置单元格编辑属性
设置填报属性
发布
使用
2,权限集成

二、参数应用与表单制作

1,销量表包含几个地区的数据,想看某个地区的数据怎么办
2,参数为空显示全部数据
3,参数联动怎么处理
4,点击销量表某个地区查看这个地区具体的情况
5,如何给报表传递参数
6,超链接如何给报表传递参数
7,表单不同控件之间如何传递参数

三、填报

制作流程:
1,导入格式,
2,绑定控件
右击绑定对应控件
3,关联数据
模板》》报表填报属性》》内置SQL》》数据库》》表》》智能添加字段》》智能添加单元格
更新提交》》主键
智能提交(增删改)、插入提交、更新提交、删除提交

注意 :1按钮控件记得插入行,删除行
      2此处主键与数据库中的主键不一样,此处主键相当于删选条件


定时填报
实现原理:首先做一个月报表汇总各分公司的销售业绩,然后通过定时器每月定时调用月报表,
汇总各分公司的销售额,并保存在数据库中

批量导入

四、决策平台

1,报表发布的流程
制作报表》》》报表部署》》》WEB页面集成》》》权限配置

2,报表部署到Tomcat的简单介绍
A,独立部署
将WebReport文件拷贝到webapps下
重启Tomcat,浏览器输入http://localhost:8080/WebReport/ReportServer
B,嵌入式部署

3,报表发布到决策平台
管理系统》》》目录管理》》》报表管理
点击对应主题,刷新出模板,

4,利用finereport决策平台打造自己的平台
A,自定义登录网页
B,设置登录背景图片
C,自定义标题平台
D,自定义主页url
E,顶部导航栏
F,配色选择
G,背景图片

5,权限配置
对某张报表的对象操作进行控制,既让某些用户拥有该报表的部分或全部的操作权限
 方案:1,对决策平台进行控制
适用于把finereport的数据决策系统作为项目独立系统的用户
       2,通过报表平台管理对模板的控制
适用于将finereport报表集成至自己系统的用户
基于角色的权限架构:给用户分配一个角色。
用户及权限配置:添加用户》》》设置用户认证方式》》》权限分配

模板内容的权限控制:
A,用户认证后会将报表三个固定的默认参数$fr_username\$fr_authority\$fr_userposition保存在session中
B,同一报表环境下模板中就可以直接以参数的形式获取到对应的值,然后在模板里进行筛选判断就可以显示不同数据及样式

6,定时调度
官方文档

7,B/S设计器
配置B/S数据源》》》添加数据分析表》》》在线设计报表

8,移动端
支持安卓,iphone,ipad
支持移动端数据填报
支持与PC端公用报表模板
支持集成其他APP
支持页面的放大缩小
拥有符合移动端的查询界面
支持绑定移动设备

五、设计模式与预览模式

1,设计模式
A,普通报表设计模式

特点:1,类Excel设计模式
      2,报表作为一个整体,单元格之间会相互影响
      3,重复和冻结
      4,报表分栏
      5,填报报表
      6,支持三种预览方式

B,聚合报表设计模式
类似于大屏联动的效果

特点:1,聚合快
      2,扩展互相不影响
      3,聚合快间的数据计算
      4,导出限制-无法导出Excel
      5,预览限制-不支持填报预览

C,表单设计模式


2,预览模式
A,分页预览模式
功能:1,页面设置
2,每页固定显示行数
3,横向不分页纵向分页
4,重复标题行
5,报表分栏
6,WEB设置

B,填报预览模式
特点:1,控件
      2,填报分页
      3,多sheet
      4,web设置

C,数据分析预览模式

六、动态格间运算

finereport数据模型
单元格绑定数据列》》数据列扩展多条数据》》对扩展结果进行计算

动态格间运算规则:
1,绝对层次坐标
C2[A2:1,B2:1],,C2是目标单元格,A2:1是A2扩展出来的第一个单元格
range(2,3),,数组

2,相对层次坐标
案例:1,比较:总额中扩展出来的每个值与扩展后第一个值进行比较
=B3-B3[A3:1]
      2,环比:是每月与上月的数据进行一个比率运算,需要相对获取上月位置上的值进行运算
=IF(&A3=1,0,B3/B3[A3:-1])(相对位置) 或者mom(a3,b3)
      3,同期比:是把当年当月与上一年相应月份的数据进行一个比率
=IF(&A3>1,C3/C3[A3:-1],0)
      4,逐层累计:在分组报表中,每一组中分别将每层与上一层数据相加,得到这一层的累计结果
=D3[B3:-1] + C3
      5,跨层累计:不是分组分别累计,而是从第二组开始在上一组的累计结果上继续累计。
=IF(&B3>1,D3[B3:-1] + C3,D3[A3:-1,B3:!-1] +C3)
      6,循环引用:每条记录中有一个期初数,一个期末数,下一条中需引用之前的期末数作为本期的期初数。
=if(&A3 = 1,0,B3[A3:-1] + C3[A3:-1] + C3[A3:-1] - D3[A3:-1])
      7,占比:计算某个单独的数据,在总量中占据的比例。
=B3 / sum(B3[!0])   or   proportion(B3)
      8,条件汇总:对扩展出来的数据汇总满足条件的数据信息
=count(B3[!0]{A3 = $A3 && C3 >= 2500})
      9,排名:分别对各个月份的销售量进行了排名
=count(B3[!0]{B3 > $B3}) + 1
      10,序号:seq():返回值为数值
      seq(cell)

七、数据排序与超级链接

1,排序
即对数据按照一定规律进行排列
数据查询时:即数据集中的排序,直接在sql中对数据进行排序
select * from table order by column name asc  desc
报表预览前:指在sql语句执行后进行的排序,

报表预览后:在报表加载结束后对数据的在排序

2,超级链接
钻取:钻取到其他报表
      钻取到当前报表
      多维钻取
      无限层钻取
      组合钻取
联动:单元格联动单元格
      单元格联动图表
      图表联动图表

八、单元格和函数


1,单元格模型:
单元格数据和引用:数据类型、实际值与显示值、单元格支持的操作
单元格样式:行高列宽、隐藏行列、自动换行、上下标、文字竖排、大文本字段分页时断开、标识说明、格式刷
单元格Web属性:web显示、web编辑风格、控件实际值与显示值、预览、打印和导出单元格内容及背景设置
隐藏单元格:直接隐藏行列,,设置某个行的行高为零,可以加判断条件。
2,函数
系统参数:
$$totalPage_number:  获取报表总页数
$$page_number:  获取报表当前页
$fr_username:  在使用权限时保存用户名的参数
$fr_authority:  在使用权限时保存角色的参数
NULL:空值的参数,表示不可用或不存在的数据
NOFILTER:  用来比较的变量,且只可用来比较,任何值与它比较均返回TRUE
reportName servletURL serverSchema serverName
serverPort serverURL contextPath sessionID

Op参数:
op=write,指报表是以填报的方式进行访问
op=view,指报表是以数据分析的方式进行访问
op=form,指报表是以表单的方式进行访问
op=edit,指可以报表在BS端进行编辑
op=fs,指进入数据决策系统
op=fr_platform,指进入finereport管理平台
op=auth_login,是finereport的报表认证地址
op=auth_logout,是用户的登出地址
op=excel_submit,是任务提交页面
op=fr_log&cmd=fg_manager,是finereport的日志管理平台

九、部署集成

1,首先是JDK版本选择以及环境变量设置,确认JDK安装成功
2,根据业务应用数据量合理选择Tomcat版本,安装确认安装成功
3,根据业务场景选择合理的部署方式
4,注意合理设置服务器端口和内存
5,部署完成以后遇到发布的问题,查看日志判断错误原因,一般从Tomcat内存,环境,以及类冲突等方面入手。

十、权限管理

1,用户管理
finereport数据决策系统两种添加用户的方式:
手动添加:在决策系统中直接添加配置用户信息(也可以从数据集导入)
同步数据集:是指在设计器中新建一个服务器数据集,该数据集从数据库中获取用户信息,然后将该数据集中数据同步至
决策系统中。
单点登录:帮助文档,
2,模板访问权限
A,不做身份验证
B,仅验证用户名,密码
C,自定义用户角色权限

D,使用数字签名验证


3,权限细粒度
是指在对模板内部的小处方面进行权限控制,比如说单元格内容数据,控件,隐藏行列,工具栏,sheet,表单等。
不同的角色用户登录系统,希望可操作的内容不一样,填报数据时,对某些控件拥有的编辑权限不一样,查看数据时
,看到的数据不一样。
finereport对权限细粒度控制提供了2中不同的控制方式,一个是完全可视化的权限编辑,另外一个是根据FR提供的
内置参数设置条件属性来控制权限。
对于权限细粒度的控制,主要分为两方面:工具栏和模板内容。

4,分级权限
op=fs多级权限分配有以下几个特征:
A、如果需要将授权权限分配给某个职位或角色,首先需要开启分级授权功能;
B、如果某角色拥有授权权限,其必须拥有管理平台>权限管理的查看权限,
因为进行权限分配的时候需要在权限管理项中进行;
C、下级管理员能看到用户是管理员在给其分配可管理部门/角色时的部门下面的所有用户,
同时该部门的部门结构也会显示出来;
D、如果出现多个管理员为同一角色进行权限分配,那么后配置的增量更新先配置的;
E、分级管理员增删报表目录的时候,不能直接针对文件夹来增删,必须向下钻取到最底层的具体报表,
因为分级管理员对目录拥有的权限不一定是完整的目录。

十一、多级上报

1,直线上报(一对一)
简单的销售报销直线流程,一个节点一个人员。

2,会签(一对多)
是撰拟公文的过程中,主办单位主动与有关单位协商并核签的一种办公程序,一般当公文的内容涉及本单位
的多个部门或与其他单位有关时,需要进行会签。

3,多级联合上报(多对一)
这种应用需要用自定义用户(创建服务器数据集),

4,多任务流程
一个流程分成多个任务,每个任务相互独立,互补影响。

5,子任务流程
汇总一起上报。

十二、finereport打印专题

1,打印方式分类及对比
flash打印(基本无需安装插件),PDF打印(清晰度最高),applet打印(Java实现,兼容性较好,速度最快),
2,JS调用打印方法
doURLxxxxPrint(printurl)
示例
FR.doURLFlashPrint("/WebReport/ReportServer?reportlet=report.cpt")
doURLxxxxPrint(printurl,isPopUp)
示例
FR.doURLFlashPrint("/WebReport/ReportServer?reportlet=report.cpt",true);
doURLxxxxPrint(config)
3,批量打印
4,打印典型应用
不查看直接打印,打印模板与预览模板不同,动态打印

十三、二次开发之js

1,什么是js
JavaScript是种脚本语言,它可以用来制作与网络无关的,与用户交互作用的复杂软件。基于对象(Object Based)和
事件驱动(Event Driver)的编程语言。
        JavaScript是动态的,它可以直接对用户或客户输入做出响应,无须经过Web服务程序。它对用户的反映响应,
是采用以事件驱动的方式进行的。所谓事件驱动,就是指在主页(Home Page)中执行了某种操作所产生的动作,
就称为“事件”(Event)。比如按下鼠标、移动窗口、选择菜单等都可以视为事件。当事件发生后,可能会引起相应的事件响应。
         JavaScript是依赖于浏览器本身,与操作环境无关,只要能运行浏览器的计算机,并支持JavaScript的浏览器就可
正确执行。即JavaScript源代码在发往客户端执行之前不需经过编译,而是将文本格式的字符代码发送给客户端由浏览器直接
解释执行。

2,js使用说明
作用机理:
      设计模板时可以给控件、工具栏按钮、整个报表添加JS事件,每个事件对应一个
function。当报表转为html页面时会将这些function加到html的头部head。
      当事件被触发时如点击按钮时,或者导出打印报表时,对应的function就会被执行。
引入现成的js文件:
A,单个模板引入外部js文件:分页预览、填报预览或者数据分析旁的设置图标,然后点击引用JS。
B,相对路径引用JS:相对于报表工程目录如WebReport,如WebReport\js下有引用的js文件test.js,则相对路径为js/test.js
C,绝对路径引用js:如D:\tomcat\Webapps\WebReport\WEB-INF\scripts\script.js
3,FR的JS API和事件
A,FR:在JS语句中执行使用FR的方法或者属性,比如说FR.Msg.alert,FR中的方法比如引入finereport.js
B,FS:是数据决策系统中的js接口,比如说FS.tabPane.addItem
C,contentWindow:是在web页面集成的时候,将finereport报表嵌入在iframe中,调用报表对象时使用的接口,比如:
document.getElementById('reportFrame').contentWindow,其中,document.getElementByTd('reportFrame')是获取iframe对象
contentwindow是报表对象,相当于HTML中的window对象。

4,典型JS实例 


十四、参数应用

1,参数应用场景
2,参数的概念、定义与作用过程
3,参数在各种应用场景下如何处理

十五、表单

1,表单应用场景


2,表单的概念
不同于普通报表设计,表单设计拥有很多普通报表设计无法企及的优势,如下:
整体性:普通报表是一个整体,无法实现局部刷新,表单是由各个组件组件,可以实现组件内刷新,即局部刷新;
自适应:普通报表无法实现自适应,表单可以完美的实现自适应,更好的支持移动端的使用;
控件:普通报表实现参数查询,只能将控件添加到参数面板中,表单不仅可以在参数面板中添加控件,
同时还可以单独使用控件,实现数据的过滤;
联动:普通报表中单元格或图表无法直接与单元格实现联动,表单却可以实现报表块或图表块与报表块的联动。

3,典型表单的制作介绍
新建表单:FineReport支持新建工作薄,即普通cpt模板,还支持新建表单,两种设计模式;
拖入组件:FineReport表单支持多种不同的组件类型,包括报表、参数、图表和控件;
定义数据集:定义各个组件数据来源,与普通模板的数据来源一样,图表组件数据即可来源于数据集,也可来源于单元格
设置表单样式:即设置表单的显示样式

十六、表单和聚合报表8.0

1,报表设计

模板设计
普通模板设计:是FineReport最常用,用的最多的设计模式,保存的文件类型为cpt,依靠着单元格的扩展与父子格的关系
来实现模板效果,可进行参数查询,填报报表,图表设计等等,但是在分页预览模式下不能在报表主体中展示控件,
而且单元格间相互影响,很难保持独立性;

表单设计:一般适用于控件的展示,包括普通模板中的参数报表使用的参数面板也可以称之为表单,很好的弥补了普通报表
分页预览不能展示控件的问题,同时表单可以进行自由拖曳设计,自适应页面大小显示,可以更好的在移动端展示;

聚合报表:一般适用于一张模板中显示多个独立模块的报表。

2,表单
3,聚合报表
4,典型demo
5,服务体系
6,合作客户

十七、案例分享

1,将数据集的数据两两分为一组
ds1.group(int(($$group_result_sequence - 1) / 2))

2,同期比问题:
先在月份的高级里排序,同期比公式:=IF(&A3 > 1,C3 / C3[A3:-1],0)

3,固定显示行数:
在高级属性里,补充空白数据,求和里》》公式形态:if(len(A4)==0,"",$$$)

4,图表数据筛选:
分类轴里加公式:=C2{&c2>6}
系列名=d1:e1    系列值:d2{&c2>6} :e2{&c2>6}

5,图表条件显示思维转换,在线切换图表展示维度。


你可能感兴趣的:(finereport知识点)