历史版本3 :FineReport接收并使用数据服务发布的数据 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 应用场景

用户为保证数据安全,不希望直接将数据仓库账号开发给第三方使用,且拥有 FineDataLink 作为数据中台,想使用「数据服务」功能,统一分发数据给第三方使用,同时想要使用 FineReport 直接接收数据制作看板。

1.2 实现思路

方案一:使用JSON 数据集插件在报表设计器或决策平台安装插件并接收数据服务 API 数据。

方案二:使用数据工厂数据集插件在报表设计器或决策平台安装插件并接收数据服务 API 数据。

2. 数据服务发布数据编辑

2.1 新建订单明细全表API

更多创建步骤详情参见:

使用数据服务,创建 API 订单明细全表,使用 demo 平台 demo1 数据库中的 Arri_DWD_OrderDetailsAll 数据表。

输入API名称、描述、请求方式、API 地址等信息,选择数据源和编写sql语句,请求参数配置将参数设置为允许为空,且默认值为空。

本场景的要求为:可根据货主地区、货主省份动态返回对应数据,两个参数都为空则返回全部,任意一个参数可为空。

对应 SQL 如下:

SELECT * FROM `demo1`.`Arri_DWD_OrderDetailsAll` 
WHERE 1=1 AND 
  CASE 
    WHEN "${area}" != "" AND "${province}" != "" THEN 货主地区 IN ('${area}') AND 货主省份 IN ('${province}')
    WHEN "${area}" = "" AND "${province}" != "" THEN 货主省份 IN ('${province}')
    WHEN "${area}" != "" AND "${province}" = "" THEN 货主地区 IN ('${area}')
    ELSE 1=1
  END;

配置完成后可通过查询预览功能,动态输入不同情况下的参数传递情况,验证是否可正常返回数据。


2.2 新建订单汇总表

整体操作步骤与本文 2.1 节相同, SQL 如下:

SELECT * FROM `demo1`.`Arri_DWS_OrderSummary`
WHERE 1=1 AND 
  CASE 
    WHEN "${area}" != "" AND "${province}" != "" THEN 货主地区 IN ('${area}') AND 货主省份 IN ('${province}')
    WHEN "${area}" = "" AND "${province}" != "" THEN 货主省份 IN ('${province}')
    WHEN "${area}" != "" AND "${province}" = "" THEN 货主地区 IN ('${area}')
    ELSE 1=1
  END;


3. 方案一:JSON数据集接收数据编辑

3.1 安装JSON数据集插件

在FineReport 设计器或者决策平台的插件管理,安装JSON 数据集插件

设计器插件安装方法参照 设计器插件管理

服务器安装插件方法参照 服务器插件管理

3.2 配置数据连接

由于报表需要对接「订单信息全表」api和「订单汇总表」api,使用其发布的 API 数据,共2个api,所以需要定义2个数据连接,配置过程均一致,仅URL地址不同。

这里已配置连接「订单信息全表」api 为例。

FR设计器>服务器>定义数据连接>新建>json,各个配置项如下:


配置项
内容
说明
URL地址

url地址可从数据服务>应用列表的已绑定api直接复制,复制后手动在原地址后拼接两个参数,参数来源于api配置的参数值。

普通参数

a和b两个参数,分别对应api内的area(货主地区)和province(货主省份)2个参数:

  • a:if(len($a1)==0,,$a1)

  • b:if(len($b1)==0,,$b1)

a1为报表内控件名,用于后续后续报表制作,接收货主地区的值

b1为报表内控件名,用于后续后续报表制作,接收货主省份的值

请求头参数

Authorization:AppCode 725742ee-0fdb-4e7b-a1d1-723b97dcfcd6

appcode可从FDL数据服务应用内复制

③配置json数据集

设计器>文件>新建普通模板,创建一个空白cpt,命名为【FR销售订单看板-json数据集】

左侧模板数据集>新建>json数据集,选择对应的json数据连接,查询语句写:$.data,点击预览即可查看和返回数据。(由于FDL数据服务api和FR数据连接处配置的是参数为空返回全部,此时预览数据为全部数据)

④FR报表制作

参数面板的货主地区和货主省份联动制作,参考:公式实现下拉复选框参数联动-https://help.fanruan.com/finereport/doc-view-4181.html

左侧模板数据集>新建>内置数据集,定义好货主地区和货主省份的对应关系

【货主地区】下拉复选框:编辑参数面板,拖入下拉复选框控件,进行如下配置

  • 控件名称,为a1

  • 控件数据字典,选择上述的内置数据集的货主地区字段

  • 控件返回值,类型选择字符串,分隔符用',',起始符和结束符填空

【货主省份】下拉复选框:编辑参数面板,拖入下拉复选框控件,进行如下配置

  • 控件名称,为b1

  • 控件数据字典,选择公式,公式为:if(len($a1)=0,area_province.select(货主省份),eval("area_province.select(货主省份,inarray(货主地区,['"+joinarray($a1,"','")+"'])>0)"))

  • 控件返回值,类型选择字符串,分隔符用',',起始符和结束符填空

分别将【订单明细全表】和【订单汇总表】2个数据集拖入2个sheet,用于前端展现

(2)数据工厂数据集插件

数据工厂数据集-https://help.fanruan.com/finereport/doc-view-2527.html

①安装插件




4. 方案二编辑