请上传宽度大于 1200px,高度大于 164px 的封面图片
    调整图片尺寸与位置
    滚轮可以放大缩小图片尺寸,按住图片拖动可调整位置,多余的会自动被裁剪掉
取消
Carly(uid:222366)
一头扎进书堆儿里的萌崽~ 职业资格认证:FCA-FineReport
【已下架插件文档】条形饼图组合图
该插件目前已下架帆软市场,本文档仅提供给历史使用了该插件的客户,帆软目前不再提供该插件的任何获取渠道。   1. 版本 1.1 版本 报表服务器版本 JAR 包版本 插件版本 10.0 2017-08-15 V1.1.0 1.2 应用场景 现在提供条形饼图组合图插件,支持条形图与饼图或南丁格尔玫瑰图的组合图。 组合展现不同分类下的多个系列的详细信息,还支持时间轴功能,支持更高维度上的数据筛选,适用于展示型的数据报告或者作战大屏。效果如下图所示: 1.3 功能介绍 支持条形图与饼图或南丁格尔玫瑰图的组合图,组合展现了不同分类下的多个系列的详细信息。 支持时间轴功能,支持更高维度上的数据筛选,可以根据用户的配置自动轮播。 适用于展示型的数据报告或者作战大屏。 2. 插件介绍   2.2 操作方法 1)打开设计器,点击图表,选择条形饼图组合图控件,拖拽至相应的 frm 报表。 2.3 属性设置 2.3.1 数据 注:暂不支持单元格数据。 1)数据集数据 2.3.2 样式 1)基础 此处可设置标题、背景、配色。 2)时间轴 此处可设置时间轴是否显示、播放形式及播放间隔等。 3)坐标轴 可设置X轴、Y轴样式。 4)饼图 此处可选择南丁格尔图展现形式、圆心位置、半径等。 5)标签 此处可设置是否显示标签、标签的位置、标签的样式及内容。 6)提示 此处可设置是否显示提示及提示的样式。 3. 示例 3.1 数据准备 新建如下图所示内置数据集,重命名为2020全国宏观经济指标。 3.2 报表设计 1)新建决策报表,修改body组件布局方式为绝对布局,将条形饼图组合图拖拽到报表设计主体中,调整条形饼图组合图的框体大小。 2)如下图绑定好条形饼图组合图的数据信息。 3)如下图设置图表标题,背景、配色选择默认。 4)如下图设置图表的时间轴,可采用默认设置。 5)如下图选择坐标轴样式。 6)如下图设置饼图,可采取默认设置,也可勾选展现为南丁格尔图。 7)如下图设置标签。 8)如下图设置提示。 3.3 效果预览 1)保存报表,点击PC端预览,条形饼图组合图展示示例如下: 2)保存报表,点击PC端预览,勾选为南丁格尔图,条形饼图组合图展示示例如下: 注:不支持移动端。
【已下架插件文档】登录集成插件
该插件目前已下架帆软市场,本文档仅提供给历史使用了该插件的客户,帆软目前不再提供该插件的任何获取渠道。   1. 概述 1.1 版本 报表服务器版本 JAR 包版本 插件版本 10.0、11.0     1.2 应用场景 通过JWT加密用户信息生成第三方TOKEN,用于实现1、跨域单点登录2、配置用户创建策略,认证完成后实现在帆软平台中创建用户信息3、用于换取帆软fine_auth_token(用于帆软平台接口的调用) 2. 配置说明 2.1 帆软平台地址  帆软平台的访问地址,示例:http://localhost:8075/webroot/decision,该配置用于跳转操作读取帆软平台地址 2.2 JWT秘钥值 用于 third_token 解密,需要与生成 third_token 使用的 key 一致。 2.3 认证完成创建用户 third_token 校验通过之后,开启该功能会按照如下规则在帆软平台创建用户信息。 创建远程连接同名目录:开启配置,token校验通过后,会在 reportlets 下创建同用户名的文件夹,并赋予用户该目录的远程设计目录权限 用户创建策略:           仅用户名       创建 third_token 时,subject 字段须为用户名,示例如下: // 示例KEY,用来解密 third_tokenString key = "FineReport2018";// 用户信息String subject = "zhangsan";// 超期时间 msDate expireTime = new Date(new Date().getTime() + 6000000);//依赖 io.jsonwebtokenString token = io.jsonwebtoken.Jwts.builder()        .setExpiration(expireTime)        .signWith(io.jsonwebtoken.SignatureAlgorithm.HS256, Base64.getEncoder().encodeToString(key.getBytes("UTF-8")))        .setSubject(subject)        .compact();System.out.println(token);        包含部门职位        创建 third_token 时,subject 字段须为JSON格式字符串,示例如下: JSONObject userInfo = JSONObject.create()                .put("username", "zhangsan")                .put("department", JSONObject.create().put("name", "beijing").put("id", "02"))                .put("roles", JSONArray.create().add("业扩").add("部长"))                .put("platformType", JSONArray.create().add(1).add(4));/*** 实际生成数据示例:* {*  "username": "zhangsan",*  "department": {*  "name": "beijing",*  "id": "02"*        },*  "roles": ,*  "platformType": * }*/// 用户信息String subject = userInfo.toString();// 示例KEY,用来解密 third_tokenString key = "FineReport2018";// 超期时间  msDate expireTime = new Date(new Date().getTime() + 6000000);//依赖 io.jsonwebtokenString token = io.jsonwebtoken.Jwts.builder()        .setExpiration(expireTime)        .signWith(io.jsonwebtoken.SignatureAlgorithm.HS256, Base64.getEncoder().encodeToString(key.getBytes("UTF-8")))        .setSubject(subject)        .compact();System.out.println(token); 密码策略同用户名        创建用户密码同用户名字段。        随机密码        随机8位强密码,包含大小写字母、数字和特殊符号。 创建部门策略部门ID长度构建部门树        根据用户信息中 `department` 的 `id` 字段长度匹配来自动构建部门树结构,示例 例如:id 0 对应中国, 02 对应北京,021 对应朝阳区,根据id长度匹配父子部门特殊根部门ID 例如:id 00 对应中国, 02 对应北京,021 对应朝阳区,这时候就需要填入 00 来标记特殊根部门         部门名称拼接构建部门树         根据用户信息中 department 的 name 字段长度分隔来自动构建部门树结构 例如:name 中国 对应中国, 中国|北京 对应北京,中国|北京|朝阳区 对应朝阳区,根据name分隔匹配父子部门,如上 `分隔符` 需要填入 `|` 用户类型说明 平台用户类型: 1 PC端 2 BI查看 (仅BI) 4 移动端  5 BI数据分析(只可创建excel和自助数据集) (仅BI) 6 BI数据处理(可创建sql/db/excel/自助数据集)(仅BI) 注:- 平台默认所有用户均为不限制用户,需要手动开启下具体类型的`限制使用用户`后,添加用户才会生效,否则还是不限制的状态- 用户类型见是有唯一限制的,例如BI查看用户(2)和BI设计用户(5/6),BI数据分析用户(5)和BI数据处理用户(6),用户类型详见帮助文档说明- 当未开启 `限制使用用户`时,FR中默认添加用户类型为 `PC端`和`移动端` BI中默认添加用户类型为 `BI数据分析用户`和 `移动端` 2.4 用户信息是否进行AES加密 即上面代码中的示例 subject 字段最终是否需要进行 aes 加密,其中`AES加密密钥`固定为 16位。示例代码如下: // 示例KEY,用来解密 third_tokenString key = "FineReport2018";// AES加密密钥,16位长度String encryptKey = "1234567890123456"; // 用户信息String subject = "zhangsan";// 超期时间 msDate expireTime = new Date(new Date().getTime() + 6000000);// AES加密用户信息KeyGenerator kgen = KeyGenerator.getInstance("AES");kgen.init(128);Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(encryptKey.getBytes(), "AES"));byte encryptByte = cipher.doFinal(subject.getBytes("utf-8"));//依赖 io.jsonwebtokenString token = io.jsonwebtoken.Jwts.builder()        .setExpiration(expireTime)        .signWith(io.jsonwebtoken.SignatureAlgorithm.HS256, Base64.getEncoder().encodeToString(key.getBytes("UTF-8")))        .setSubject(Base64.getEncoder().encodeToString(encryptByte))        .compact();System.out.println(token); 2.5 模板预览参数校验 对于挂载至OA或者其他平台的报表链接,需校验预览时报表链接参数防止权限泄露。校验请求接口说明: 请求地址:`校验地址` 选项请求类型:POSTBODY请求参数:  { userId: xxx, //当前登录用户名 key1: value1,  //其他所有模板链接携带的URL参数 key2: value2  }响应结果:  {   data: true/false //参数校验结果的返回示例  } 2.6 远程设计连接开启token校验 开启后,设计器远程连接服务器时,可通过token替换密码进行登录认证。 2.2.7 显示唤醒设计器   功能开启之后,用户登录帆软平台后在右上角消息提醒前面会新增一个`启动设计器`按钮,用于唤醒本地设计器并自动连接至远程服务器 - 64位设计器下载地址: win64位设计器下载地址 - 32位设计器下载地址: win32位设计器下载地址   注: - 目前仅windows系统唤醒本地设计器 - 客户端设计器需要OEM,非帆软官网下载的版本 3. 接口说明 3.1 跨域登录接口 请求URL: http(s)://xx.com/webroot/decision/third/auth/cross/login 使用场景:用于集成平台前台页面跨域请求,请求成功后会自动把帆软token写到浏览器cookie中,此时浏览器会处于已登录状态,访问帆软平台首页或者具体的报表页面都是已登陆的效果,不需要再额外处理; 请求方式:GET URL参数说明:third_token - jwt 方式生成的token 请求示例 $.ajax({    url: "http://localhost:8075/webroot/decision/third/auth/cross/login",    dataType: "jsonp",    data: {third_token: "xxx"},    success: function(res) {        console.log(res)    }}) 返回示例 {accessToken: fine_auth_token, url: url, status: success/fail } 3.2 获取帆软fine_auth_token 请求URL:http(s)://xx.com/webroot/decision/third/auth/login 使用场景:帆软平台部分开放接口需要携带 fine_auth_token 进行认证, 这时候就需要使用 third_token 来换取 fine_auth_token,可使用该接口,获取帆软登录状态标识 fine_auth_token 后,可用如下两种处理携带:1、把fine_auth_token添加到请求添加到URL参数中2、在请求头中添加 "Authorization":"Bearer " + fine_auth_token 请求方式:GET 参数说明:third_token - jwt 方式生成的验证token 请求示例 http://localhost:8075/webroot/decision/third/auth/login?third_token=eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2NDYyMTE2NDYsInN1YiI6IntcInVzZXJuYW1lXCI6XCJ6aGFvd3UxXCIsXCJkZXBhcnRtZW50XCI6e1wibmFtZVwiOlwienp6XCIsXCJpZFwiOlwiMDIxMVwifSxcInJvbGVzXCI6WzViXVwiWzRlMWFdWzYyNjldXCJbNWRdfSJ9.yGOsC4uwrEqwtvL0p2ieZLGDsyptn28bwmoTfKJMiNM 返回示例 成功示例:{    "data": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxIiwidGVuYW50SWQiOiJkZWZhdWx0IiwiaXNzIjoiZmFucnVhbiIsImRlc2NyaXB0aW9uIjoiMSgxKSIsImV4cCI6MTY0NjI3MjczNiwiaWF0IjoxNjQ2MjY5MTM2LCJqdGkiOiJKY3lVejUrdUhLbndqM3IySnhyTTd4OGNWeFlrSXdyUVVUNFRjV2VMaXUybGFhc0MifQ.OiXXo3oymPagnO2q4XMGvY2nIzYEae2PCSMHYJavI7E"}失败示例:{    "errorCode": "",    "errorMsg": "FR decision integration exception: The value of jwt key is null!"}    
【已下架插件文档】cpt预览表格可调整
该插件目前已下架帆软市场,本文档仅提供给历史使用了该插件的客户,帆软目前不再提供该插件的任何获取渠道。       1. 概述 1.1 版本  报表服务器版本  插件版本  11.0 V1.4 1.2 应用场景 FineReport使用过程中,通常在cpt表格生成之后,前端预览时无法调整行高、列宽以及行列的位置顺序,所以我们经常会遇到如下一些问题 1)一张明细表,结构简单,但行数、列数很多,想要直接对比分隔较远的几行或者几列,却不能像Excel那样通过复制粘贴或者隐藏行列的办法集中显示到一起; 2)设计cpt时为了美观,固定了行高、设置了符合大多数据显示长度的列宽,但是实际展示时却会有少数几条与普通该字段数据长度相差较大的数据,无法显示完全; 3)报表需求不明确,不清楚每个字段想要的行高列宽,凭自己的判断做好以后却不符合需求方要求,需反复在后台设计器修改、再在前端网页预览效果...... 1.3 功能介绍 为用户提供在前端调整表格的功能。它把表格行高、列宽、行列顺序的决定权充分发放给看报表的人,免去反复沟通修改的成本,能更好地应对频繁变更的展现需求,在上面这些场景下操作起来非常便捷。 3. 操作步骤 3.1 添加【自由调整单元格】按钮 安装好插件后,打开需要在前端调整的cpt文件,点击模板>模板web属性>数据分析设置,将以下设置:修改为为该模板单独设置,双击【自由调整单元格】,将按钮添加到工具栏中,点击【确定】,如下图: 注:目前只支持cpt文件,frm不支持 注:目前支持分页预览、填报预览、数据分析三种预览方式。 3.2 前端自由调整单元格效果预览 3.2.1 进入自由调整单元格模式 1)点击数据分析预览报表(根据上面web属性里的设置),发现在顶部工具栏出现【自由调整单元格】,如下图: 点击以后进入“调整单元格”模式,如下图: 注:此模式下,原本无色的边框会以灰色细框显示出来,原本较粗的表格边框变细。 3.2.2 调整单元格大小(行高列宽) 根据实际需要,将鼠标悬浮在需要调整的单元格的边,鼠标会变为“双向箭头”,此时按住鼠标拖动,直至调整到自己想要的高度和宽度即可。 3.2.3 调整列的顺序 根据实际需要,将鼠标悬浮在需要调整的列的最上方单元格中,鼠标会变为“十字箭头”,此时按住鼠标拖动该列,直至拖至自己想要的地方即可。 3.2.4 调整行的顺序 根据实际需要,将鼠标悬浮在需要调整的行的最左侧单元格中,鼠标会变为“十字箭头”,此时按住鼠标拖动该列,直至拖至自己想要的地方即可。 3.2.5 退出调整单元格模式 点击“退出调整单元格”即可按照已调整的效果正常预览,表格边框恢复原来粗细,原无色边框也变回无色。 4. 注意事项 1)移动端不支持。 2)目前对带图表的表格、复杂表格(如大量同时包含横向、纵向合并单元格、其他非文字内容单元格的情况)支持不完全,可能出现无法调整大小、调整位置的情况,正在持续优化。 3)导出功能暂不支持。
【已下架插件文档】OSS文件上传下载
该插件目前已下架帆软市场,本文档仅提供给历史使用了该插件的客户,帆软目前不再提供该插件的任何获取渠道。   1. 概述 1.1 版本 报表服务器版本 JAR 包 插件版本 App 版本 10.0 2019-06-13 4.2 10.0 1.2 应用场景 在业务中,经常会有上传文件保存到服务器,然后再从另外的报表中查看附件的需求。 1.3 功能描述 1)使用将文件上传到阿里云服务器上的方案,可以同时利用 通用 OSS 配置 和  OSS 文件上传下载 插件; 2)OSS 文件上传下载插件是依赖通用 OSS 配置插件的,需要先安装通用 OSS 配置插件; 3)该方案不仅在集群下能用,也可以在单机下使用将文件存储到阿里云的 OSS 上。 注1:官方仅支持阿里云 OSS (公有云),如使用私有阿里云 OSS 引起的问题,暂无法解决。 注2:上传大文件较慢,不建议通过该插件上传超过200M的文件。 注3:本插件不支持移动端使用。 注4:本插件不支持决策报表填报。 注5:如果实际场景受到以上功能限制影响,可以考虑使用 悦享版文件上传下载插件 解决,其功能和覆盖的场景更多。 2. 插件介绍 1)文件上传至 OSS  「报表填报属性」界面,「自定义提交」的提交类型中新增了「文件上传(OSS)」类型,如下图所示: 2)文件下载 「超级链接」新增一个选项「文件下载(OSS)」,可以通过设置「超级链接」,实现从 OSS 服务器端下载文件,如下图所示: 3. 示例 3.1 环境准备 使用之前需要建立一个阿里云账号,并使用其 OSS 功能,且需要购买一定的存储空间。 1)安装通用 OSS 配置插件   2)进入「数据决策系统」,点击管理系统>系统管理>常规,可以看到有「OSS 通用配置」 Tab 栏,如下图所示: 3)输入对应的信息,其中: EndPoint(地域节点):在阿里云 OSS 点击 bucket ,找到 Bucket 域名,点击进入,在概览的访问域名处即可看到。 AccessKeyId 和 AccessKeySecret :参考阿里云文档 如何获取 AccessKeyId 和 AccessKeySecret 。 注意:修改配置信息,要重启后才会生效。   3.2 报表设计 新建普通报表,给 A1 单元格添加「文件控件」,文件类型设置为「全部文件」,步骤如下图所示:   3.3 上传文件到 OSS 1)菜单栏点击「模板>报表填报属性」,添加「自定义提交」,提交类型选择「文件上传(OSS)」。Bucket 名字:填写 3.1 章节在数据决策系统中的 Bucket 名字。 目录:上传的文件存放在 OSS 的位置,比如 OSS 如图根目录是 project_bak/ 那么文件可以放在某一目录:project_bak/store/folder。 文件:填写文件的填报单元格位置,插入「公式」 A1 。 文件名:代表文件名使用的名称,填写文件名,也可以插入公式filename(A1)。 3)保存报表,点击「填报预览」,上传文件后点击「提交」,如下图所示: 3.4 下载功能 要下载 OSS 中的文件,添加一个类型为「文件下载(OSS)」的超链接,并输入对应 Bucket 名、下载目录和文件名即可,如下图所示: 注1:OSS 的下载链接限时 1 分钟内有效,超时则提示请求已过期。 注2:OSS 上传与下载时要确保阿里云 OSS 的时间与本地使用(包括工程所在服务器)的时间是一致的。
【已下架插件文档】登录集成插件帮助文档
  该插件目前已下架帆软市场,本文档仅提供给历史使用了该插件的客户,帆软目前不再提供该插件的任何获取渠道。   1. 概述 1.1 版本 报表服务器版本 JAR 包版本 插件版本 10.0、11.0     1.2 应用场景 通过JWT加密用户信息生成第三方TOKEN,用于实现1、跨域单点登录2、配置用户创建策略,认证完成后实现在帆软平台中创建用户信息3、用于换取帆软fine_auth_token(用于帆软平台接口的调用) 2. 配置说明 2.1 帆软平台地址  帆软平台的访问地址,示例:http://localhost:8075/webroot/decision,该配置用于跳转操作读取帆软平台地址 2.2 JWT秘钥值 用于 third_token 解密,需要与生成 third_token 使用的 key 一致。 2.3 认证完成创建用户 third_token 校验通过之后,开启该功能会按照如下规则在帆软平台创建用户信息。 创建远程连接同名目录:开启配置,token校验通过后,会在 reportlets 下创建同用户名的文件夹,并赋予用户该目录的远程设计目录权限 用户创建策略:           仅用户名       创建 third_token 时,subject 字段须为用户名,示例如下: // 示例KEY,用来解密 third_tokenString key = "FineReport2018";// 用户信息String subject = "zhangsan";// 超期时间 msDate expireTime = new Date(new Date().getTime() + 6000000);//依赖 io.jsonwebtokenString token = io.jsonwebtoken.Jwts.builder()        .setExpiration(expireTime)        .signWith(io.jsonwebtoken.SignatureAlgorithm.HS256, Base64.getEncoder().encodeToString(key.getBytes("UTF-8")))        .setSubject(subject)        .compact();System.out.println(token);          包含部门职位        创建 third_token 时,subject 字段须为JSON格式字符串,示例如下: JSONObject userInfo = JSONObject.create()                .put("username", "zhangsan")                .put("department", JSONObject.create().put("name", "beijing").put("id", "02"))                .put("roles", JSONArray.create().add("业扩").add("部长"))                .put("platformType", JSONArray.create().add(1).add(4));/*** 实际生成数据示例:* {*  "username": "zhangsan",*  "department": {*  "name": "beijing",*  "id": "02"*        },*  "roles": ,*  "platformType": * }*/// 用户信息String subject = userInfo.toString();// 示例KEY,用来解密 third_tokenString key = "FineReport2018";// 超期时间  msDate expireTime = new Date(new Date().getTime() + 6000000);//依赖 io.jsonwebtokenString token = io.jsonwebtoken.Jwts.builder()        .setExpiration(expireTime)        .signWith(io.jsonwebtoken.SignatureAlgorithm.HS256, Base64.getEncoder().encodeToString(key.getBytes("UTF-8")))        .setSubject(subject)        .compact();System.out.println(token);   密码策略同用户名        创建用户密码同用户名字段。        随机密码        随机8位强密码,包含大小写字母、数字和特殊符号。 创建部门策略部门ID长度构建部门树        根据用户信息中 `department` 的 `id` 字段长度匹配来自动构建部门树结构,示例 例如:id 0 对应中国, 02 对应北京,021 对应朝阳区,根据id长度匹配父子部门特殊根部门ID 例如:id 00 对应中国, 02 对应北京,021 对应朝阳区,这时候就需要填入 00 来标记特殊根部门           部门名称拼接构建部门树         根据用户信息中 department 的 name 字段长度分隔来自动构建部门树结构 例如:name 中国 对应中国, 中国|北京 对应北京,中国|北京|朝阳区 对应朝阳区,根据name分隔匹配父子部门,如上 `分隔符` 需要填入 `|`   用户类型说明 平台用户类型: 1 PC端 2 BI查看 (仅BI) 4 移动端  5 BI数据分析(只可创建excel和自助数据集) (仅BI) 6 BI数据处理(可创建sql/db/excel/自助数据集)(仅BI) 注:- 平台默认所有用户均为不限制用户,需要手动开启下具体类型的`限制使用用户`后,添加用户才会生效,否则还是不限制的状态- 用户类型见是有唯一限制的,例如BI查看用户(2)和BI设计用户(5/6),BI数据分析用户(5)和BI数据处理用户(6),用户类型详见帮助文档说明- 当未开启 `限制使用用户`时,FR中默认添加用户类型为 `PC端`和`移动端` BI中默认添加用户类型为 `BI数据分析用户`和 `移动端` 2.2.4 用户信息是否进行AES加密 即上面代码中的示例 subject 字段最终是否需要进行 aes 加密,其中`AES加密密钥`固定为 16位。示例代码如下: // 示例KEY,用来解密 third_tokenString key = "FineReport2018";// AES加密密钥,16位长度String encryptKey = "1234567890123456"; // 用户信息String subject = "zhangsan";// 超期时间 msDate expireTime = new Date(new Date().getTime() + 6000000);// AES加密用户信息KeyGenerator kgen = KeyGenerator.getInstance("AES");kgen.init(128);Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(encryptKey.getBytes(), "AES"));byte encryptByte = cipher.doFinal(subject.getBytes("utf-8"));//依赖 io.jsonwebtokenString token = io.jsonwebtoken.Jwts.builder()        .setExpiration(expireTime)        .signWith(io.jsonwebtoken.SignatureAlgorithm.HS256, Base64.getEncoder().encodeToString(key.getBytes("UTF-8")))        .setSubject(Base64.getEncoder().encodeToString(encryptByte))        .compact();System.out.println(token); 2.2.5 模板预览参数校验 对于挂载至OA或者其他平台的报表链接,需校验预览时报表链接参数防止权限泄露。校验请求接口说明: 请求地址:`校验地址` 选项请求类型:POSTBODY请求参数:  { userId: xxx, //当前登录用户名 key1: value1,  //其他所有模板链接携带的URL参数 key2: value2  }响应结果:  {   data: true/false //参数校验结果的返回示例  } 2.2.6 远程设计连接开启token校验 开启后,设计器远程连接服务器时,可通过token替换密码进行登录认证。 2.2.7 显示唤醒设计器   功能开启之后,用户登录帆软平台后在右上角消息提醒前面会新增一个`启动设计器`按钮,用于唤醒本地设计器并自动连接至远程服务器 - 64位设计器下载地址: win64位设计器下载地址 - 32位设计器下载地址: win32位设计器下载地址   注: - 目前仅windows系统唤醒本地设计器 - 客户端设计器需要OEM,非帆软官网下载的版本   2.3 接口说明 2.3.1 跨域登录接口 请求URL: http(s)://xx.com/webroot/decision/third/auth/cross/login 使用场景:用于集成平台前台页面跨域请求,请求成功后会自动把帆软token写到浏览器cookie中,此时浏览器会处于已登录状态,访问帆软平台首页或者具体的报表页面都是已登陆的效果,不需要再额外处理; 请求方式:GET URL参数说明:third_token - jwt 方式生成的token 请求示例 $.ajax({    url: "http://localhost:8075/webroot/decision/third/auth/cross/login",    dataType: "jsonp",    data: {third_token: "xxx"},    success: function(res) {        console.log(res)    }}) 返回示例 {accessToken: fine_auth_token, url: url, status: success/fail }   2.3.2 获取帆软fine_auth_token 请求URL:http(s)://xx.com/webroot/decision/third/auth/login 使用场景:帆软平台部分开放接口需要携带 fine_auth_token 进行认证, 这时候就需要使用 third_token 来换取 fine_auth_token,可使用该接口,获取帆软登录状态标识 fine_auth_token 后,可用如下两种处理携带:1、把fine_auth_token添加到请求添加到URL参数中2、在请求头中添加 "Authorization":"Bearer " + fine_auth_token 请求方式:GET 参数说明:third_token - jwt 方式生成的验证token 请求示例 http://localhost:8075/webroot/decision/third/auth/login?third_token=eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2NDYyMTE2NDYsInN1YiI6IntcInVzZXJuYW1lXCI6XCJ6aGFvd3UxXCIsXCJkZXBhcnRtZW50XCI6e1wibmFtZVwiOlwienp6XCIsXCJpZFwiOlwiMDIxMVwifSxcInJvbGVzXCI6WzViXVwiWzRlMWFdWzYyNjldXCJbNWRdfSJ9.yGOsC4uwrEqwtvL0p2ieZLGDsyptn28bwmoTfKJMiNM 返回示例 成功示例:{    "data": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxIiwidGVuYW50SWQiOiJkZWZhdWx0IiwiaXNzIjoiZmFucnVhbiIsImRlc2NyaXB0aW9uIjoiMSgxKSIsImV4cCI6MTY0NjI3MjczNiwiaWF0IjoxNjQ2MjY5MTM2LCJqdGkiOiJKY3lVejUrdUhLbndqM3IySnhyTTd4OGNWeFlrSXdyUVVUNFRjV2VMaXUybGFhc0MifQ.OiXXo3oymPagnO2q4XMGvY2nIzYEae2PCSMHYJavI7E"}失败示例:{    "errorCode": "",    "errorMsg": "FR decision integration exception: The value of jwt key is null!"}  
文档满意度调研反馈一期
            文档满意度调研反馈一期     文档满意度调研问卷 哈喽,亲爱的小伙伴们~ 日前我们发布了文档满意度调研问卷:https://sk6xa7bj2w.jiandaoyun.com/f/6232eb64cf839c000785a2fc 很多番薯给出了非常肯定的回答,也接收到了大家的相关需求和渴望。 今天特地整理了本期FAQ,希望能解决大家的部分问题~   01 Q 数据分析理论知识 A: 常用数据分析模型与方法:https://help.fanruan.com/finebi/doc-view-1162.html 对外用户分析:RFM 分析、ABC分析、波士顿矩阵图、转化分析、购物篮分析-关联规则、留存分析、用户画像分析、月复购分析、AARRR 用户运营分析、用户流入流出分析、用户生命状态分析、用户粘性分析 内部营运分析:需求分析方法-KANO模型、库存周转分析、杜邦分析、盈亏平衡分析 02 Q 如何获取模板素材 A:  为大家推荐两个渠道: 1)模板:帆软市场(https://market.fanruan.com/template) 介绍:不同场景!不同终端!不同风格!你想要的模板我都有! 2)素材:FVD素材库(https://fvd.fanruan.com/) 介绍:可视化素材一键可达!不断更新!模板美化不求人! 注:请使用帆软通行证登录。 03 Q 最好能有更多业务方面的模板,方便报表实施时的思路以及解决一些技术问题。 A:  基于实际项目案例,我们为大家制作了人事、销售、财务、生产、采购等方面的Demo,并记录下制作过程中的思路和注意点。 详情请参见:业务场景案例:https://help.fanruan.com/dvg/doc-view-5.html   04 Q 有没有单元格统一的格式呢 A: FineReport11.0新增了模板主题管理,为大家设计好了风格统一的单元格样式。 详情请参见:模板主题管理:https://help.fanruan.com/finereport/doc-view-4273.html   05 Q 财务报表 A: 财务管理方案:https://help.fanruan.com/dvg/doc-view-121.html   06 Q 希望增加用户模板上传渠道,丰富模板题材库 A:  目前帆软市场和Demo平台暂时无法直接上传模板,但用户可以通过以下三个渠道发布自己的模板。 1)社区论坛(https://bbs.fanruan.com/topic/c/113-10-1.html) 用户可自行新建帖子,并上传模板。 审核机制:只要满足社区基本规范,即可发布帖子。 面向用户:所有社区用户 2)可视化指南(https://help.fanruan.com/dvg) 用户可点击右上角,新建文档,上传模板和方法论。 审核机制:上传的模板必须有可复用性,需要写清自己的制作思路。审核通过后会自动发放奖励到您的账户 面向用户:实际项目用户 3)FVD素材库(https://fvd.fanruan.com/) 用户可点击右上角,上传项目/素材/方法论(分类说明请戳这里) 审核机制:上传的模板视觉要求较高,由视觉专业同学进行审核,暂无奖励。 面向用户:视觉涉猎用户   07 Q 希望能把移动端Demo或者PC端Demo在一个页面上汇集一下,方便下载。 A: 下载方法 1)PC端Demo:用户访问http://demo.finereport.com/,查看每一张模板,在模板显示界面有一个「点击下载模板」按钮,点击即可跳转到对应模板的下载页面 2)移动端Demo:移动端 Demo下载:https://help.fanruan.com/finereport/doc-view-2931.html   08 Q 数据看板大屏布局规划 A:  给大家推荐以下一些布局: 驾驶舱布局:https://help.fanruan.com/dvg/doc-view-24.html 多级分析页面布局:https://help.fanruan.com/dvg/doc-view-12.html BI分析报告布局:https://help.fanruan.com/dvg/doc-view-44.html 移动端布局:https://help.fanruan.com/dvg/doc-view-9.html   09 Q 可视化美化优化 A: 为大家推荐以下几种方法: FVD素材库:https://fvd.fanruan.com/ 颜色搭配一致性原则:https://help.fanruan.com/dvg/doc-view-46.html 色彩与配色基础:https://help.fanruan.com/dvg/doc-view-8.html 几套预定义样式推荐:https://help.fanruan.com/dvg/doc-view-51.html   10 Q 希望能提供一个大屏模板下载专栏,提供一些优质大屏下载接口 A:您可登录大屏Demo(http://finemaxdemo.fanruan.com/),查看每一张模板。 在模板显示界面有一个「点击下载模板」按钮,点击即可跳转到对应模板的下载页面。     11 Q 手机上查看文档,可以增加一个手机上查看的链接或者APP的说明。休息前想看会文档,手机上能看到finereport文档,其它模块查不到。 A:有两种方法 1)微信查看: 关注公众号「帆软」,在下拉框「了解帆软」,选择对应的产品,即可查看对应的帮助文档。 2)APP查看: 下载帆软社区App(https://bbs.fanruan.com/plugin.php?id=app_download),在APP首页即可查看所有帮助文档。     12 Q 如何进行插件的开发? A:插件开发教程:https://wiki.fanruan.com/pages/viewpage.action?pageId=12746905 10.0接口:https://wiki.fanruan.com/pages/viewpage.action?pageId=20021384 11.0接口:https://help.fanruan.com/finereport/doc-view-4327.html   — END — 帮助文档 https://help.fanruan.com/ 文档共创 文档共创规则        
获取三维城市所需geojson文件的操作步骤
写在前面 1)该方案由番薯提供,帆软技术支持不负责方案的维护和使用问题解答。 2)网址如不可用,请移步评论区查看!!! 1. geojson简介 1.1 geojson的定义 geojson是一种对各种地理数据结构进行编码的格式,基于Javascript对象表示法(JavaScript Object Notation, 简称JSON,FineReport内置的中国-area.json也是其中一种)的地理空间信息数据交换格式。 geojson对象可以表示几何、特征或者特征集合。 geojson支持点、线、面、多点、多线、多面等集合类型。 1.2 三维城市中的geojson 在「FVS大屏编辑模式」的「三维城市」组件中,产品自动识别的geojson属性包括: 类型 属性 示例 命名建筑(主建筑) building&&name 既有building属性又有name属性,则在三维城市中会出现该建筑的3D模型,且建筑外立面颜色闪耀,代表建筑灯光 未命名建筑(其他建筑) building 没有building属性,则在三维城市中不会出现该建筑的3D模型 只有building属性没有name属性,则在三维城市中,该建筑的名称不能被识别到,被纳入其他建筑中,色彩也相较于有名称的建筑更加暗淡 命名道路(主道路) road&&name 既有road属性又有name属性,则在三维城市中显示该道路,且道路自带流光效果,表示人流车流 未命名道路(其他道路) road 没有road属性,则在三维城市中不会显示该道路 只有road属性没有name属性,则在三维城市中,该街道的名称不能被识别到,被归入其它街道,街道色泽也更暗淡些 草地 grass 水系 water 2. 获取基础的geojson 1)进入「https://overpass-turbo.eu/」网站,在搜索框内模糊查询需要圈选的城市区域,如「wuxidong」(无锡东,只支持英文) 2)点击「manually select bbox」按钮,调整方框圈选城市区域范围 3)修改浏览器「setting」中的UI language为「en」,否则后续步骤可能无法生效。 4)修改左侧代码为: ; nwr({{bbox}}); out; 5)点击「run」按钮,获取该区域的geojson数据点。 6)点击「Export」按钮,点击「download/copy as GeoJSON」。 3. 调整获取的geojson 本章将教大家如何增删改建筑/道路模型。 1)获取某块原geojson中没有的建筑: 进入「https://geojson.io」,模糊搜索「wuxi」(无锡),这个网站搜索不会太精细,需要手动放大、定位到需要的位置。 2)对需要的区域进行选择,可圈选道路、不规则区域、矩形区域,如下图所示: 3)对圈选出来的建筑按照三维城市可识别的属性补充建筑模型的properties: 其中building是必要包括的,name不包括则导入三维城市时被识别为其他建筑; height按照高度的比例在三维城市中展示,没有height则按照默认高度生成建筑,如果想让建筑在大屏上更突出,最好设置一个稍大的高度,100-300之间都比较合理。 4)将这段建筑的代码复制到以获取的基础geojson中: 用任一文本编辑器打开上一个基础文件  map.geojson,可以在开头、中间或末尾的任何对象后新增上一步骤中复制的代码。 如上图所示,在蓝框前后添加新增建筑的代码都是可以的,三维城市的识别与顺序无关,只是靠后的建筑名称在三维城市的模型列表靠后。 复制粘贴的时候注意  “,”  和  “}”  不要错位(“type”前一个"{"到最后一个选点的经纬度后的 "] ] ] } },"组成一个建筑对象),如果用能对准的编辑器处理会方便很多。 5)道路、草地等同理,在合并好代码后导入三维城市即可生产建筑。 编辑于 2021-10-19 10:22 编辑于 2021-10-25 15:10 4. 建筑为空的 geojson 如果用户希望完全使用自定义模型,不想创建场景,此时需要导入一个空的geojson 这个geojson中需要添加一个 Polygon 并作为第一个 feature,添加特殊属性: "calder:bbox": true 此时场景范围(bbox)以此 Polygon 为准 示例: { "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": { "calder:bbox": true }, "geometry": { "type": "Polygon", "coordinates": [ ,,,,] ] } } ] }   编辑于 2021-10-25 15:46
外置数据库回迁内置数据库
1. 概述 1.1 问题描述 安装部署FineReport 报表工程时,会创建数据库 FineDB。FineDB 用来存储 FineReport 自带的报表管理系统(数据决策平台)信息,比如平台用户信息、权限设定信息等。 初次安装部署工程时,可以选择 FineDB 为内置数据库或外接数据库,详细内容可以参考:决策系统简介 若用户选择了 FineDB 为外接数据库, 实际使用中,当 FineDB 外接数据库无法连接或者需要进行工程迁移时,就需要将 FineDB 回迁,从外接数据库变换成内置数据库。   1.2 实现思路 在管理系统中手动备份平台配置 FineDB 文件,用备份的文件替换原有文件,删除外接数据库配置「db.properties」文件后即可还原为内置数据库。 2. 操作步骤 2.1 备份平台配置 1)登录管理员账号,进入「管理系统>智能运维>备份还原」,点击「平台配置」,可以看到备份界面,如下图所示: 注:若备份界面无内容显示,说明 FineDB 为内置数据库,在「管理系统」>「常规」界面,「外接数据库」位置可以查看是否配置外接数据库。 2)在「管理系统>智能运维>备份还原>平台配置」界面,点击「手动备份」后,弹出「备份设置」窗口,点击「确定」,若需要修改名称可以在「名称」处修改,如下图所示: 2.2 替换FineDB库 1)进入报表工程目录%FR_HOME%\webapps\webroot\backup\config\manual,找到刚才备份的文件,如下图所示:   2)点击备份文件,解压备份文件中的「config」文件夹,得到「finedb」数据库文件,如下图所示: 3)复制「finedb」数据库文件,替换报表工程目录%FR_HOME%\webapps\webroot\WEB-INF\embed下的「finedb」文件,如下图所示: 2.3 删除配置文件 进入%FR_HOME%\webapps\webroot\WEB-INF\config 目录,删除「db.properties」文件。该配置文件保存的是外接数据库的配置,删除即还原为内置数据库,如下图所示: 2.4 重启报表工程 重启报表工程后,用管理员账号登录,在「管理系统」>「常规」界面,「外接数据库」位置可以看到已显示「待配置」,说明 FineDB 已还原为内置数据库,如下图所示: 3. 注意事项 3.1 外置数据库迁移到 Oracle 数据库 本文介绍内容为外置数据库迁移到内置 HSQL 数据库,如果用户需要将外置数据库迁移到 Oracle 数据库,需要注意本节所述内容。 有两条主键 ID ,区别为结尾是否带空格。例如「config」和「config 」,Oracle 数据库会认为是不同的数据,HSQL 数据库认为是相同的数据。FineDB 数据库通常只有 fine_conf_entity 会有结尾带空格的情况。 在备份时需要做如下处理:将结尾为空格的数据结尾处加上'__BL__',在还原时再去掉。在这种情况下,若用本文的方法,将备份文件拷贝至 embed 文件夹,再迁移出去后,需要执行update fine_conf_entity set id = replace(id, '__BL__', '')做脏数据处理。
【Demo升级即将启动】先收集一波吐槽,也欢迎大家分享
2020年度帆软产品Demo升级即将开始,我们将通过问卷形式收集您的相关意见和建议,希望通过此次调研可以呈现出大家心目中最理想的Demo。 参与问卷填写即可获得1~2F币奖励,优质问卷还将获得2~10F币额外奖励~ 如上传可复用模板,一经选中,可获得36~88F币额外奖励哦~ 所有奖励将在问卷收集结束后,通过社区后台统一发放~请在提交时填写真实的联系方式,便于发放奖品哦~ 问卷链接:https://u5tqxzizx9.jiandaoyun.com/f/5f19402a5aa24a0006aac417另:如果有问卷未涉及,但需要Demo改进的方面,请直接在帖子下方评论,谢谢大家~~
个人成就
内容被浏览78,641
加入社区5年16天
返回顶部