帆软学习总结和笔记

1、fineReport(帆软):

   报表制作、分析、展示的工具。

2、fineReport特点:

   简洁、灵活、专业。

3、fineReport从功能方面可以分为:

    数据层【数据的管理】、应用层【报表的设计和维护】和展示层【展示报表数据】

4、fineReport应用架构分为:

     报表设计器【数据准备和制作报表】和报表服务器【报表集成和使用报表】

5、finereport功能:

   类Excel设计模式、数据支持、复杂报表处理、AlphaFine智能助手、图表、数据地图、决策报表、交互分析、参数控件、数据填报、打印输出、移动应用、大屏应用、决策平台、定时调度、权限控制、集成部署、扩展开放、安全管理。

6、报表类型:

    普通报表、决策报表、聚合报表。

7、两种数据集的区别:

      模板数据集:只对当前报表有效,数据集私有,不能与其他报表共享使用。

     服务器数据集:对当前服务器下所有的报表有效、数据集公用,可以与其他报表共享使用。

8、报表预览方式

分页预览:默认预览方式,只需要查看报表数据进行数据分析时使用

填报预览:填报预览的预览方式,在需要录入或者修改数据的时候使用。

数据分析:数据分析模式也可以查看报表,但是其可以对报表结果进行不分页预览及在线分析包括排序、二次过滤等。

新填报预览:新填报预览,采用了新样式的控件,加载速度快,采用了分页加载。

移动端预览:通过扫码直接在手机上展现报表,让用户直观地看到当前设计模板的实际效果。

决策报表预览:决策报表预览是决策报表设计模式专用的预览方式。

9、报表类型

行式报表:清单式明细表,行式报表对数据纵向扩展,展现一个列表式的表格。

交叉报表 :常见基本报表类型,交叉报表同时包含数据的纵向扩展和横向扩展。

10、父子格

子单元格设置父单元格后,子单元格跟随父单元格进行单元格扩展。【子单元格根据父单元格分组显示】 

左父格:子格跟随父格进行纵向扩展

上父格:子格跟随父格进行横向扩展

11、根据父子格设置进行报表的分类

分组报表:分组报表将报表中的数据按父格分组显示,数据列相同项只显示一个。【根据父格分组】

自由报表: 自由报表为提升报表美观性,将数据分块显示,子格需要自定义父格。【根据父格分块】

12、层次坐标

扩展单元格运算时需要使用层次坐标来表示单元格扩展后的表格位置。 

相对层次坐标

能够获取扩展单元格当前位置有一定偏移量的位置上的值(对原单元格数据进行一定偏移,然后获取原单元格所有的数据)【语法:单元格坐标[单元格坐标:-z(z为整数)] 相对后移】【单元格坐标[单元格坐标:+z(z为整数)] 相对前移】【中括号中的单元格坐标前有;的是横向扩展】

绝对层次坐标

用于获取单元格扩展后某一位置上的值【语法:单元格坐标[单元格坐标:z(z为整数)] 正向获取第z个数】【单元格坐标[单元格坐标:!-z(z为整数)]  反向获取第z个数】【中括号中的单元格坐标前有;的是横向扩展】

相对层次坐标和绝对层次坐标后跟{}中都是过滤的条件。

设置了父格的单元格进行相对层次的计算时不能以自己为父格。

[  ]中的计算都是为了确定单元格的位置的。

双向扩展中[  ]中先写纵坐标,再写横坐标,中间不需要,隔开。

常用公式

Cellx[!0]          获取单元格Cellx扩展出来的所有值          A1[!0]

Cellx[!0]{条件表达式}        很多时候,需要运算的目标不是单元格扩展出的所有值,而是该范围内满足某些条件的值。(通过条件表达式筛选出单元格 Cellx 扩展出来的部分数据)      A1[!0]{A1!=3}【多个不等于的条件如何写】

&Cellx      获取单元格扩展后每个值对应的位置       &A1

$Cellx       获取单元格的值        $A1

13、动态格间运算

使用层次坐标进行跨行运算、跨组运算、集合运算等等。

比较:将单元格扩展出的每个值与第一个值进行比较。

占比:计算单元格扩展出的每个值在总量中占据的比例。

环比:计算每行数据与上一行数据的比率。

环比增长率:指本期与上期数据之间的增长比率。计算公式为:(本期数-上期数)/上期数×100%

逐层累计:分组报表中,每一组数据逐行累计。

跨层累计:分组报表中,所有数据逐行累计,跨组时接着上一组累计结果继续累计。 

逐层平均值:在分组报表中,每一组中分别将「第一层至当前层」数据相加然后求平均值,得到这一层的「累计平均值」。

跨层平均值」相对于「逐层平均值」而言,不是每组分别算平均值,而是从第二组开始在上一组的累计结果值上继续汇总算平均值。 

循环引用是指当一个单元格内的公式直接或间接地引用了这个公式本身所在的单元格。 

14、STRFTIME

STRFTIME('%Y',订购日期)     取出订购日期中的年份 

STRFTIME('%m',订购日期)     取出订购日期中的月份 

15、常用函数 

left:根据指定的字符数,返回文本字符串中第一个或前几个字符【语法:left(‘字符串文本’,个数)】

now:当前时间【语法:now()】

month:取出月份【语法:month(时间)】

Year:取出年份

SEQ():返回数值,在整个报表执行过程中,返回该函数被第几次执行了。

RANK(number,ref,order):返回一个数在一个数组中的秩。(如果把这个数组排序,该数的秩即为它在数组中的序号。)
Number所求秩的数。(可以是Boolean型,true=1,false=0)
Ref可以是数组,引用,或一系列数,非实数的值被忽略处理(接受Boolean型,true=1,false=0)。
Order指定求秩的参数,非零为升序,零为降序
备注
RANK对重复的数返回相同的秩,但重复的数影响后面的数的秩,比如,在一组升序排列的整数中,如果5出现了2次,并且秩为3,那么6的秩为5(没有数的秩是4).
示例
A1:A5=6,5,5,2,4
RANK(A1,A1:A5,1)即6的秩为5.
RANK(3,1,2,"go",3,4,1)=3,"go"被忽略。 

UNIQUEARRAY(array):去掉数组中重复的元素 

{A2} 可以获取当前页中 A2 单元格扩展出来的所有值 

16、主子报表

报表包含了一片或多片单元格,每一片单元格都针对同一个对象。单元格片段为子报表,且主题内容与主报表不同。 【整体是主表,每一片单元格表是子表】

17、条件属性

当单元格满足一定条件时,对报表的样式做一些改变。 

19、$$$【代表当前单元格】 

20、注意:导出中的关联的参数默认值不存在的话导出的数据会为空。

21、参数

在大多数情况下,我们并不需要报表把数据库中所有的数据都呈现出来,而是要根据一些条件过滤出我们想要得数据。FineReport报表中使用控件绑定参数来动态地过滤数据,实现用户对数据的实时查询。

22、参数种类和区别

模板参数:模板参数是指在当前模板下创建的参数。在模板>模板参数中定义,只在当前报表中可以使用,且必须与过滤条件结合才能筛选数据。需要将数据库中的数据全部取出来再进行过滤。

数据集参数:新建数据集时,在SQL查询语句中定义参数,直接在数据查询时就完成数据的过滤条件。

全局参数:全局参数是指在当前服务器下创建的参数,在服务器>全局参数中定义,定义方法与模板参数相同,在工程下的所有报表中都可以使用,必须与过滤条件结合才能筛选数据。 

23、填报报表

普通报表是从数据库中取数,进行数据的分析与展示。而填报报表是将数据写入到数据库,进行数据的录入,包含数据的增加、删除和修改操作。

24、行式填报报表

采用行式报表的样式,在一行中录入多个信息, 删除数据时按行删除。

25、决策报表

不同于普通报表设计时的表格界面,决策报表采用画布式界面,专为大屏和移动端而生。在同一个页面整合不同的企业数据 ,完美地展示企业的各类业务指标,实现数据的对维度分析。

26、决策系统

决策系统是FineReport报表管理系统。管理人员使用决策系统管理报表,包括权限分配、用户配置、报表挂载和维护等。普通用户登录决策系统查看自己权限内的报表。

特点:

统一访问:决策系统用户管理和权限配置,使得不同角色的用户能够通过相同的门户系统看到自己权限内的报表。

系统管理:为系统资源配置、系统活力监控、报表定时调度等系统功能提供统一的管理环境。

 分类维护:不同类型的报表提供对应的开发方法,采用统一的报表模板化定制、发布方案、简化报表的维护环节,降低报表维护对IT技术人员的依赖性。

 27、常用公式

【1】文本函数

FIND():从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。 

         语法:Find("只定的子字符串","字符串",指定的索引)【索引从1开始不是从0开始,没有指定索引默认从1开始】

FORMAT():按指定的规则将对象格式化为字符串

        语法:Format("2011-12-23","yyMMdd")【把2011-12-23格式化为20111223形式的字符串】 Format("1.07654","#0.0元")【把1.07654格式化为1.1元形式的字符串】

LEN():返回文本字符数或者数组的长度

        语法:Len("fan ruan")【返回字符串的长度【字符串中有空格也算一个长度】】

SPLIT():分割字符串为数组

        语法:Split("字符串","分隔符")【按照分隔符对字符串进行分割】

                  Split(12345," ")【空分隔符的话会每一个都分开【1,2,3,4,5】】

REPLACE():用其他文本来代替原始文本中的部分内容

        语法:Replace("原字符串内容","被替换的内容","替换的内容")

                   Replace("原字符串内容",被替换的起始索引,被替换的内容的长度,"替换的内容")

SORT(A1)等同于=COUNT(UNIQUEARRAY(A1[!0]{A1 > $A1})) + 1, 默认降序排列, 如需要升序, 则传递参数false, 

【2】日期时间函数

DATEDELTA():返回一个日期前后一定天数的日期,同理MONTHDELTA()【月份】和YEARDELTA()【年份】

        语法:Datedelta("日期",-+数字)【返回-+数字天数后的日期】

DATEINMONTH():返回在某一个月当中第几天的日期,同理DATEINWEEK()DATEINYEAR()

        语法:Dateinmonth("日期到天数",+-数字)【返回日期月[+]正数的第几天的日期,[-]返回日期月的倒数第几天的日期】【日期不写到天数会识别不到日期参数会出错】

 DATESUBDATE():返回两个日期之间的时间差,同理FATADIF()

        语法:Datesubdate("第一个日期","第二个日期","d")【返回两个日期之间相差的天数,"h"返回相差的小时】

WEEKDAY():返回某个日期是星期几,星期天为0

        语法:weekday("日期")

【3】逻辑函数

IF(): 根据条件是否满足,返回不同结果

        语法:if(条件,[满足条件返回的值],[不满足条件返回的值])【可以嵌套】

SEITCH():根据表达式的值返回不同结果

        语法:Switch(判断的表达式,表达式的值,"返回的值",表达式的值,"返回的值"......)

【4】数组函数

GREPARRAY():过滤数组

        语法:Greparray([数组],过滤条件)

INARRAY():返回值在数组中的位置

        语法:Inarray("返回值/查找的值",[数组])

INDEXOFARRAY():返回数组的第N个元素

        语法:Indexofarray([数组],N【第几个元素】)

 JOINARRAY():将数组以特定分隔符组成字符串

        语法:Joinarray([数组],"分隔符")

MAPARRAY():把数组中的项目以特定规则进行转化

        语法:Maparray([数组],规则)

SORTARRAY(array):返回数组array排过序的数组。当数组元素存在类型不一致或者无法比较时,返回原数组。

        语法:SORTARRAY([3,4,4,5,1,5,7])返回[1,3,4,4,5,5,7].

item会对数组进行遍历

例如:maparray([123,234,334,455],left(item,1))    结果是:1,2,3,4

数组中元素是字符串的要加双引号

【5】报表函数

SQL():在公式中调用sql查询函数返回结果

        语法:sql("连接名","SQL语句",列号,行号)【行号也可不写,返回一列的值】

VAIUE():从数据集中查找符合条件的值 

        语法:value("数据集的名称",列号,行号)【行号也可不写,返回一列的值】

                   value("数据集的名称",列号,列号,条件)【例如:value("FRDemo",1,2,"牛奶")  返回该数据集中的第一列,并满足第二列的值为牛奶的第一列的值】

        VALUE(tableData,targetCol,orgCol,element)返回tableData中第targetCol列中的元素,这些元素对应的第orgCol列的值为element。

28、图表

【1】饼图

饼图有几个分类名是几个饼图,有几个系列名就是一个饼图分成了几块。 

环形图就是设置饼图的内径占比

【2】折线图

折线图的分类和系列名相同的话会连不成线,会是点。 

【3】百分比仪表盘

百分比仪表盘需要设置最大数,但是最大数不能为负数【负数无法识别】 

【4】散点图

散点图的X、Y轴是不支持字符串的,想实现X轴支持字符串使用组合图中单一的散点图 

【5】词云

词云中的部分词汇不显示,需要修改下样式中系列下的指定大小 

29、错误排查

1、二分法

2、控制变量法

3、日志分析法 

30、网页框控件

把控件拖入body中在属性中设置对应的模板(模板路径或网络模板)

模板 URL 尾部必须添加参数 &op=write(以填报预览) 

31、填报控件类型

32、报表联动

 报表联动如果有插入行的需求,那么需要通过设置插入行策略为原值,来让插入的行也能继承联动的效果。 

33、分页预览中不分页显示

&__bypagesize__=false的意义是不根据纸张大小进行分页

34、参数命名规则

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

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

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

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

注意

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

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

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

35、在分页预览时,想要取得当前页面 可以采用$page_number    $page_number

  • 8
    点赞
  • 164
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Maven是一个Java项目构建管理工具,可以自动化地完成项目的编译、测试、打包和部署等工作。它使用一个标准的项目对象模型(POM),通过配置文件来管理项目的依赖关系,并且可以方便地引入其他开源或第三方库。 FineReport是一款基于Java的企业级报表开发工具,可以帮助用户快速创建、设计和生成各种类型的报表。它提供了强大的数据分析和可视化功能,支持多种数据源,包括数据库、Excel、XML等,可以辅助企业进行数据分析、决策和管理。 在使用Maven和FineReport进行项目开发时,可以结合使用这两个工具,以提高开发效率和项目质量。首先,可以通过Maven来管理FineReport的依赖库,方便项目的构建和管理。例如,在项目的POM文件中,可以配置FineReport所需的Jar包的版本和引用方式,Maven会自动下载和管理这些依赖。 其次,FineReport可以使用Maven进行打包和部署。在项目开发完成后,可以通过Maven将FineReport生成的报表文件打包为War包或其他部署格式,并部署到Web服务器上。这样,可以方便地将FineReport集成到现有的Java项目中,实现报表的在线访问和使用。 另外,FineReport也可以作为Maven的插件使用,以实现更方便地调用和使用FineReport的功能。通过配置Maven插件,可以在项目构建或自动化测试过程中,调用FineReport的API来生成报表,或者进行其他相关的报表处理操作。这样可以实现项目与报表的紧密集成,提高开发效率和代码质量。 总之,结合使用Maven和FineReport能够帮助开发者更好地管理和使用FineReport工具,以实现高效、可靠的报表开发和管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值