FineReport帆软学习笔记汇总
公司需求来学习帆软已有一周,入门视频+自测练习题已做完,保存下学习笔记。
常用操作:
加内外边框、标题栏样式、居中、设置单元格属性样式(日期格式、保留小数位等)、根据数据长度修改单元格长宽、等线字体更美观
设置子父格 多数据集关联设置过滤条件 行后分页(单元格属性其他)
CTRL依次选中需要添加到表中的数据集字段 拖到行头 选择排列方向即可
动态间隔运算 条件属性(超值高亮 隔行不同色) 超级链接(表跳转 导出 排序) 控件参数 (填报控件 填报属性 工具栏)
报表样式:行式报表 (交叉报表 分组报表) 自由报表 主子报表 图表 填报报表 决策报表
入门视频课程:
报表属性设计基础:
一、单元格扩展:
当数据表一列中有多行数据时(值不同的多种数据),则必须进行扩展(横向/纵向),否则会在同一单元格内以逗号形式展示
~行式报表:清单式 纵向展示数据 列表式表格 10纵向扩展行式报表示例.cpt
~交叉报表:同时包含纵向与横向扩展 展示性强 03第一张报表.cpt
二、父子格设计
子单元格随父单元格进行分组展示
纵向扩展–左父格 默认存在
横向扩展–上父格 默认存在
~分组报表 12父子格设计:分组报表.cpt 使用默认左父格
~自由报表 13父子格设计:自由报表.cpt 全部单元格使用同一字段作为左父格
三、层次坐标
掌握层次坐标的概念;学会使用层次坐标和常用公式计算:比较、占比、环比、逐层累计、跨层累计和条件汇总
扩展单元格用层次坐标表示单元格扩展后的表格位置 单元格插入公式写入函数
相对层次坐标 Cellx[Celly:-z] 相对前移 B2[A2:-1] 记录B2 A2位置关系 &A2-1前移 取出此时与A2相同位置关系的B2返回
Cellx[Celly:+z] 相对后移 C2[C2:+1]
计算同期比、比上期之类的与时间相关的数据,而这些运算往往需要用到下一行的数据减上一行数据,后一列数据减前一列数据
绝对层次坐标 Cellx[Celly:z] 正向获取第z个数 A1[A1:3]
Cellx[Celly:!-z] 反向获取第z个数 获取单元格某一位置上的值 A1[A1:!-5]
单元格尚未扩展,但是其它单元格的计算表达式可能需要此单元格扩展后某个数据的精确位置,这时就需要使用绝对层次坐标精确表达该数据的位置
Cellx表示需要返回结果的单元格,Celly表示位移时参考的单元格。
Cellx[Celly:-z]的运算逻辑:记录位移前Celly和Cellx的对应关系,记为关系1,当Celly完成-z个位置的位移后,按照‘关系1’返回对应的Cellx。
记录xy对应位置关系 位移后再根据关系返回值
Cellx[Celly:z]的运算逻辑:记录Celly和Cellx的对应关系,记为关系1,取出A2列第一个数据,返回该数据与关系1对应的B2值
常用公式: RANGE(5):将1-5按从小到大顺序输出
Cellx[!0] 获取单元格Cellx所扩展出来的所有值 A1[!0]
Cellx[!0]{表达式条件} 获取单元格满足条件的值 A1[!0]{A1!=3}
&Cellx 获取单元格扩展后每个值对应的位置 &A1
$Cellx 获取单元格的值 $A1
动态格间运算:使用层次坐标进行跨行、跨组、集合运算等
比较:将单元格扩展值与第一个值比较 B2-B2[A2:1]
占比:计算单元格扩展出的每个值在总量中占据的比例 B2/SUM(B2[!0])
环比:计算每行数据与上一行数据的比率 IF(&A2>1,B2/B2[A2:-1],0) 若A2地址值大于1,上一行,否则等于0
逐层累计:分组报表中每一组数据逐层累计 C2+D2[B2:-1]
跨层累计:分组报表中所有数据逐行累计,跨组时接上一组累计结果继续累计 IF(&B2>1,C2+E2[B2:-1],C2+E2[A2:-1,B2:!-1])
条件汇总: COUNT(C2[!0]{A2=$A2 && C2>2500})
报表功能设计基础
一、主子报表
包含一或多片单元格,各片单元格针对同一对象表,每个子报表内容不同,所有子表一起构成主表
新操作:行后分页 两表关联同一左父格
二、条件属性
新操作:属性面板学则条件属性 属性:背景颜色当前行公式 超值高亮 分隔行颜色。。。
三、超级链接
新操作: 双击单元格 高级 自定义显示值
排序:修改数据集SQL语句 SELECT * FROM 订单 ORDER BY ${A} B 刷 新 输 入 A B 对 应 参 数 选 中 需 要 实 现 排 序 功 能 的 单 元 格 选 择 超 级 链 接 设 置 动 态 参 数 A B 实 现 排 序 页 面 跳 转 : 修 改 数 据 集 S Q L 语 句 S E L E C T ∗ F R O M 订 单 明 细 W H E R E 订 单 I D = {B} 刷新输入A B对应参数 选中需要实现排序功能的单元格 选择超级链接 设置动态参数 A B 实现排序 页面跳转:修改数据集SQL语句 SELECT * FROM 订单明细 WHERE 订单ID= B刷新输入AB对应参数选中需要实现排序功能的单元格选择超级链接设置动态参数AB实现排序页面跳转:修改数据集SQL语句SELECT∗FROM订单明细WHERE订单ID={订单号} 设置订单号默认参数 跳转页面
选中单元格 设置超级链接 网络报表 选择文件和参数 订单号=$$ ( 代 表 当 前 单 元 格 值 ) 跳 转 页 面 实 现 导 出 : 选 中 单 元 格 超 级 链 接 J S 脚 本 参 数 I D 值 A 4 写 入 J S 语 句 − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − 未 实 现 w i n d o w . o p e n ( F R . c j k E n c o d e ( " (代表当前单元格值) 跳转页面 实现导出:选中单元格 超级链接 JS脚本 参数ID值A4 写入JS语句--------------------------------------------------未实现 window.open(FR.cjkEncode(" (代表当前单元格值)跳转页面实现导出:选中单元格超级链接JS脚本参数ID值A4写入JS语句−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−未实现window.open(FR.cjkEncode("(servletURL)?reportlet=/订单明细表.cpt&订单号=" + ID + “&format=excel”));
图表入门
一、图表简介
数据准备:定义数据来源 单元格或数据集
插入图表方式:单元格元素图标或悬浮元素图表
选择图表类型:建表时与类型栏 柱形、饼形、折线…
定义图表数据:数据栏 数据来源、分类名、系列名、值、汇总方式…
定义图表样式:标题、图例、标签、系列、坐标轴、数据表、背景、提示…
添加图标特效:条件属性、交互属性…
二、图表入门示例
新操作:单元格内部右键插入单元格元素插入图表 适当拉长拉宽图表单元格 插入后设置单元格元素 要展示的数据
柱形图:分类名 对应图表要显示的数据分类 公式+单元格名
系列名 对应图表要显示的数据单位 文本信息+单元格名
参数入门
一、参数入门
控件绑定参数动态过滤数据 提供参数供报表使用
定义参数: 设置参数名、添加参数
模板参数-只适用当前报表,但需先取出数据库数据再过滤
数据集参数-新建数据集时,再SQL中定义参数,查询数据时便完成过滤
全局参数-服务器中使用,所有报表都可以使用
控件绑定参数:将控件与参数绑定(设置数据过滤),实现输入值实时传入到SQL,实现过滤
设置参数面板样式:控件位置、背景等
二、参数入门示例
模板参数方法:
模板-模板参数-设置名称和默认值 编辑参数面板 全部添加自动添加三种控件 参数文本信息 绑定参数输入框 查询按钮 绑定参数输入框 点击后有13种类型的控件
设置数据过滤 双击已设置模板参数对应参数所在单元格 设置过滤条件 让其等于用户输入参数
实现后如参数查询时根据参数在数据集中查询展示相应数据
数据集参数方法:
参数定义方式与模板参数不同 在数据库查询语句中提前定义好 新建数据集,SELECT * FROM 订单 WHERE 货主地区=‘ 货 主 地 区 ′ , 刷 新 设 置 参 数 默 认 值 编 辑 参 数 面 板 全 部 添 加 自 动 添 加 三 种 控 件 参 数 文 本 信 息 绑 定 参 数 输 入 框 查 询 按 钮 绑 定 参 数 输 入 框 点 击 后 有 13 种 类 型 的 控 件 < 下 拉 框 > 需 要 设 置 数 据 字 典 将 销 量 表 地 区 字 段 与 控 件 绑 定 设 置 库 名 、 表 名 、 实 际 值 、 显 示 值 实 现 下 拉 框 选 项 与 数 据 字 段 一 致 总 结 : 模 板 参 数 设 置 单 元 格 过 滤 条 件 , 数 据 集 设 置 查 询 S Q L 参 数 三 、 参 数 为 空 选 择 全 部 模 板 参 数 设 置 方 法 : 双 击 A 2 单 元 格 修 改 过 滤 条 件 选 择 公 式 i f ( l e n ( {货主地区}' ,刷新设置参数默认值 编辑参数面板 全部添加自动添加三种控件 参数文本信息 绑定参数输入框 查询按钮 绑定参数输入框 点击后有13种类型的控件 <下拉框>需要设置数据字典 将销量表地区字段与控件绑定 设置库名、表名、实际值、显示值 实现下拉框选项与数据字段一致 总结:模板参数设置单元格过滤条件,数据集设置查询SQL参数 三、参数为空选择全部 模板参数设置方法: 双击A2单元格修改过滤条件 选择公式 if(len( 货主地区′,刷新设置参数默认值编辑参数面板全部添加自动添加三种控件参数文本信息绑定参数输入框查询按钮绑定参数输入框点击后有13种类型的控件<下拉框>需要设置数据字典将销量表地区字段与控件绑定设置库名、表名、实际值、显示值实现下拉框选项与数据字段一致总结:模板参数设置单元格过滤条件,数据集设置查询SQL参数三、参数为空选择全部模板参数设置方法:双击A2单元格修改过滤条件选择公式if(len(货主地区)==0,nofilter,$货主地区)当下拉框参数长度为0时,不过滤,否则继续使用下拉框参数 点击修改
数据集参数设置方法:
修改SQL SELECT * FROM 订单 WHERE 1=1 ${if(len(货主地区) == 0,"",“and 货主地区 = '” + 货主地区 + "’")}
总结:模板参数修改过滤条件, 数据集修改SQL参数
填报入门
一、填报简介
普通报表式从DB中取数据,进行数据分析展示
填报报表式将数据写入数据库,包含CRUD操作,流程包括:
报表设计:与普通报表设计一样,但如果不需要显示数据,则不需要添加数据集
报表设计—>添加填报控件—>设置填报属性—>填报预览
二、行式填报报表
1、报表设计
2、将单元格绑定填报控件:选中一行数据,单击组件设置,选择控件,文本控件
3、设置填报属性:将单元格和数据库表中字段对应起来。
菜单栏模板选择报表填报属性 提交内置SQL 选择提交类型 绑定库与表字段(智能添加字段 智能添加单元格-点选 勾选主键 勾选未修改不更新)
4、设置自定义工具栏:模板菜单模板web属性 填报页面设置 以下设置改为为该模板单独设置 删除掉默认的 设置提交、校验、插入记录、删除记录
5、填报预览
三、自由填报报表
1、报表设计,用自由报表样式进行设计
2、添加填报控件,将单元格绑定控件:日期用函数设置TODAY() 性别单选按钮组件自定义数据集 出生日期日期控件 职务下拉框设置数据字典与DB关联
邮编、电话、手机使用文本控件添加填写规则 备注使用文本域 照片文件控件限制上传大小1024kb
3、设置填报属性 菜单栏模板选择报表填报属性 内置SQL 绑定库表 智能添加字段单元格 勾选主键与未修改不更新
4、填报预览
决策报表入门
一、决策报表简介
新建决策报表—>新建数据集—>拖拽组件(报表块、图表块、参数等)—>设计组件—>报表预览
决策报表设计采用画布式界面而非普通报表的表格式,用组件拼装在画布上,在组件中进行数据绑定
专为大屏和移动端而生。实现整合数据、展示各指标、实现数据多维度分析
二、决策报表入门示例
添加带参数的数据集 拖拽报表块、图表块、参数进入画布 添加全部设置查询参数 复制设计好的报表块 点击图表块设计数据
数据决策系统
一、决策系统简介
决策系统 是帆软报表管理系统。
管理员使用决策系统管理报表,包含权限分配、用户配置、报表挂载维护等
普通用户登录只能查看自己权限内的报表
二、决策系统挂载报表示例
服务器菜单选择报表平台管理,登入系统 ,目录管理新建目录,将报表添加到决策系统目录下
服务器部署
报表完成后需要部署到服务器供用户查看,主要有两种部署方式:
部署包: 官网下载 内含配置环境和报表工程,解压直接使用
独立部署:将工程拷贝到Tomcat安装路径下 finereport/webapps/项目 拷贝到 Tomcat/webapps/ 目录下即可
函数:
strftime()函数可以把YYYY-MM-DD HH:MM:SS格式的日期字符串转换成其它形式的字符串。
strftime()的语法是strftime(格式, 日期/时间) %d 日期, 01-31、%f 小数形式的秒,%H 小时, 00-23、%j 算出某一天是该年的第几天,
%M 分钟, 00-59、%s 从1970年1月1日到现在的秒数、%S 秒, 00-59、%w 星期, 0-6 (0是星期天)、%W 算出某一天属于该年的第几周, 01-53、%Y 年, YYYY、%% 百分号
两个数据集字段需要进行关联 双击单元格 过滤 数据列 两表相同的外键字段 添加 确定
建表案例流程:03第一张报表.cpt
一: 加数据链接 添加数据集 做表(拖拽字段进入表格 函数 数据集关联 字体居中 表格边框)
二: 加图表 创建图表区域合并单元格 插入图表 设置数据(数据来源 单元格数据 分类名 分类字段所在单元格名 系列名 系列名字段所在单元格 值 值字段所在单元格)
设置样式(标题可见 特效)
不需要单元格扩展
三: 控件(查询) 模板 模板参数 新建模板参数 全部添加(快捷设置 标签控件:名字 自定义控件2:绑定数据 查询控件)
自定义控件 (样式:下拉框 数据绑定 数据字典)
数据过滤(想通过控件改变图和表的数据必须设置数据过滤 双击单元格设置过滤条件 选择参数 添加)
经验:(看要求先写思路 设计数据集(SQL) 全查表 把字段粘出来分析表
设计报表样式(展示样式 技术活 看熟练度)
设计图表 功能实现和逻辑一步步来 一点点验证 先做复杂 简单设计最后做)
~暂时想不出的功能可在帆软帮助文档搜索关键字
~显示/实际值:单元格右键形态数据字典设置显示值和实际值
~多数据集:用到2或多个数据集时,需要对数据进行关联绑定。选取任一字段双击,过滤条件选取关联字段与另一数据集绑定,添加即可
~图表:柱形图 单元格元素 数据 数据来源 分类名:横向上大的分类 系列名:横向上大分类下的小分类 系列值:纵向上每个系列展示的具体值
根据需求调整Y轴 单元格元素 样式 坐标轴 编辑Y轴 样式 系列 设置坐标轴对应的系列为何 堆积和坐标轴+ 将轴与值捆绑
~数据字典就是为方便类似下拉框的选择属性的场景,在库中另外建表,不存储一条条数据主体,而存储不同的列对应的属性有哪些,再与主表关联起来
主表只负责存储外键而非属性本身。这样当属性需要修改时,主体表、页面、代码都不需要修改,只需要修改数据字典即可 数据的字典
~分组报表内分地区计算占比 自己想出来的公式 E2/sum(E2[!0]{A2=$A2})
~排名:降序 =count(B3[!0]{B3 > $B3}) + 1 / =SORT(B3) 升序 =count(B3[!0]{B3 < KaTeX parse error: Expected 'EOF', got '}' at position 3: B3}̲) + 1 / =SORT…Sort== ‘ASC’, F4, -F4),点击确定保存 即可实现排序
~数据集设计:数据库没有能直接拿来用的字段就在新建数据集时通过SQL语句创建自己要用到的字段
~模板参数:设置模板参数 用于过滤数据 具体值在参数数据集设计 表中字段添加过滤条件两种方式 参数不可用做下拉框数据字典-经验
~超级链接:超级链接依靠传入参数控制数据 不需要模板参数 注意区分用处不同 图标超级链接与单元格设置区域不同 在单元格元素-特效中