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)
);DECLAREi NUMBER;
BEGINi := 1;INSERT INTO employees (id, name, manager_id) VALUES (i, 'Employee ' || i, NULL);FOR i IN 2..50 LOOPINSERT INTO employees (id, name, manager_id) VALUES (i, 'Employee ' || i, MOD(i,10)+1);END LOOP;COMMIT;
END;select  *  from employees ;

        此时框架图没有问题

闭环链路关系

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

update employees 
set manager_id=25 where id = 1

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

        此时我们再看一下报表展示效果。其闭环的下钻关系,导致其无法成功展示出来

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

        解决办法:

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

根不唯一

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

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

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

delete from   employees where id =1
delete from   employees where id =20select  *  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的数据其没有可以进行下钻的层级

    

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

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

        解决办法:

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/230753.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jenkins使用nexus插件

nexus介绍 Nexus 是一个强大的仓库管理工具,用于管理和分发 Maven、npm、Docker 等软件包。它提供了一个集中的存储库,用于存储和管理软件包,并提供了版本控制、访问控制、构建和部署等功能。 Nexus 可以帮助开发团队提高软件包管理的效率和…

mysql8报sql_mode=only_full_group_by(存储过程一直报)

1:修改数据库配置(重启失效) select global.sql_mode;会打印如下信息 ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION里面包含 ONLY_FULL_GROUP_BY,那么就重新设置,在数据库中输入以下代码,去掉ONLY_FULL_GROU…

openGauss学习笔记-134 openGauss 数据库运维-例行维护-检查操作系统参数

文章目录 openGauss学习笔记-134 openGauss 数据库运维-例行维护-检查操作系统参数134.1 检查办法134.2 异常处理 openGauss学习笔记-134 openGauss 数据库运维-例行维护-检查操作系统参数 134.1 检查办法 通过openGauss提供的gs_checkos工具可以完成操作系统状态检查。 前提…

unity程序中的根目录

在unity程序中如果要解析或保存文件时,其根目录为工程名的下一级目录,也就是Assets同级的目标

【hacker送书第6期】深入理解Java核心技术

第6期图书推荐 内容简介作者简介精彩书评参与方式 内容简介 《深入理解Java核心技术:写给Java工程师的干货笔记(基础篇)》是《Java工程师成神之路》系列的第一本,主要聚焦于Java开发者必备的Java核心基础知识。全书共23章&#xf…

设计模式 【Adapter 模式】

Adapter 模式 1.什么是 Adapter 模式 用来填补现有的程序和所需的程序之间差异的设计模式就是 Adapter 模式。 Adapter 模式有两种: ● 类适配器模式,即使用继承的适配器 ● 对象适配器模式,即使用委托的适配器 2.使用继承的适配器示例…

华为鸿蒙:安卓,拜拜了您呢!

9 月底,华为举办了今年的秋季全场景新品发布会,接近尾声的时候,华为终端 BG CEO 余承东突然宣布,鸿蒙 HarmonyOS NEXT 即将发布,鸿蒙原生应用全面启动。 不同于之前 HarmonyOS 基于 AOSP(Android 开放源代…

SQL server-excel数据追加到表

参考文章:SQL server 2019 从Excel导入数据_mssql2019 导入excel数据-CSDN博客 将excel数据导入到SQL server数据库的详细过程 注意:第一行数据默认为数据库表中的字段,所以这个必须要有,否则无法映射导入 问题1:ADD…

初刷leetcode题目(11)——数据结构与算法

😶‍🌫️😶‍🌫️😶‍🌫️😶‍🌫️Take your time ! 😶‍🌫️😶‍🌫️😶‍🌫️😶‍🌫️…

05 # 基本类型

类型注解 作用&#xff1a;相当于强类型语言中的类型声明 语法&#xff1a; (变量/函数): type 原始类型: let bool: boolean true; let num: number 313; let str: string kaimo;数组: let arr: number[] [1, 2, 3]; let arr2: Array<number | string> [1, 2,…

网关路由器双栈配置中的IPv6相关选项解析

1、引言 讲知识往往是枯燥无味的&#xff0c;我们先从问题入手。家庭网关&#xff08;光猫&#xff09;、路由器是我们每个人或多或少都有所接触的2种设备。现在一般都是光纤入户&#xff0c;通常每个家庭配备一个光猫和一台家用路由器。 目前有许多网络服务已经提供了IPv6支…

五、初识FreeRTOS之FreeRTOS的任务创建和删除

本节主要学习以下内容&#xff1a; 1&#xff0c;任务创建和删除的API函数&#xff08;熟悉&#xff09; 2&#xff0c;任务创建和删除&#xff08;动态方法&#xff09;&#xff08;掌握&#xff09; 3&#xff0c;任务创建和删除&#xff08;静态方法&#xff09;&#xf…