Findreport中框架图使用的注意事项

目录

简介

测试数据

闭环链路关系

解决办法:

根不唯一

解决办法:


简介

        在框架图的应用中,一些表达上下游关系的数据非常适合用于做链路图相关的报表。可以展示成雪花图,普通架构图。但是在实际操作中有几点关于数据的注意事项需要留意。

        关于框架的基本使用方法帆软官方帮助文档中,已经给出教程。可以自行前往观看。

测试数据

使用版本

数据库:Oracle19C

报表:Finereport-11

CREATE TABLE employees (
  id NUMBER(10) NOT NULL,
  name VARCHAR2(100) NOT NULL,
  manager_id NUMBER(10),
  CONSTRAINT employees_pk PRIMARY KEY (id),
  CONSTRAINT employees_fk FOREIGN KEY (manager_id) REFERENCES employees(id)
);


 DECLARE
  i NUMBER;
BEGIN
  i := 1;
  INSERT INTO employees (id, name, manager_id) VALUES (i, 'Employee ' || i, NULL);
  FOR i IN 2..50 LOOP
    INSERT INTO employees (id, name, manager_id) VALUES (i, 'Employee ' || i, MOD(i,10)+1);
  END LOOP;
  COMMIT;
END;

select  *  from employees ;

        此时框架图没有问题

Findreport中框架图使用的注意事项_第1张图片

闭环链路关系

        id为1依然是置顶,我们给数据做一次修改,使其数据形成一个闭环的递归下转关系。

update employees 
set manager_id=25 where id = 1

        报表端预览数据是否更新成功(注意数据库AC状态是否开启。以报表段预览的数据为准)

Findreport中框架图使用的注意事项_第2张图片

        此时我们再看一下报表展示效果。其闭环的下钻关系,导致其无法成功展示出来Findreport中框架图使用的注意事项_第3张图片

当整个链路没有形成闭环的时候,数据便不可展示,

        解决办法:

        此时我们就需要把闭环的链路进行断开,使其能形成单向下钻的数据链路

Findreport中框架图使用的注意事项_第4张图片

根不唯一

        在这个数据的递归关系中,ID为1的数据,我们称之为“根”,做框架图,需要保证其根是唯一的,如果不唯一,在框架图中会随机抽取一个根进行下转。

此时我们删刚刚ID为1的数据使其“根”不唯一

以下删掉1,20各位造的数据随机性不一样,需要根据情况删除

delete from   employees where id =1
delete from   employees where id =20

select  *  from employees

        注:本文中采用事务随机生成数据,各位模仿者,请根据生成数据的实际情况进行删除,以达到本博文的实际效果。

            此时可以通过递归查看部分根的关系

SELECT id, name, manager_id,level 
FROM employees
START WITH manager_id  =20  
CONNECT BY PRIOR id = manager_id;

 
 

        (至于为什么删掉1,20,在finereport,其会采用string的数据类型以第一列为准,在框架图中,会优先检索父节点值为空数据为“根”进行下钻,当根不唯一的时候,其“根”的选择会具有不可控性。所以我们根据他选择的“根”将1,10删掉后,20会作为“根”进行下转)。  

        此时ID为20的数据其没有可以进行下钻的层级

Findreport中框架图使用的注意事项_第5张图片

    

          此时我们再观看报表的展示情况

Findreport中框架图使用的注意事项_第6张图片

        关于框架图,当“根”不唯一的时候,其并不会产生扩散效果。

        解决办法:

        当“根”不唯一,我们可以增加一个节点作为当前所有“根”的上一层级,使其汇总到新增的“根”上,当然这个新增的“根”可以作为一个主题名称、公司名称、业务名称存在。如下图所示。

Findreport中框架图使用的注意事项_第7张图片

         如对本文中相关的操作仍有疑问,欢迎私信咨询。

        希望能帮助各位。双击三连。

你可能感兴趣的:(数据库,sql,mysql,finereport,finebi)