当前位置: 首页 > news >正文

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的数据其没有可以进行下钻的层级

    

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

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

        解决办法:

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

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

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

相关文章:

  • 【迅搜04】索引配置(一)加载配置文件以及服务端配置
  • 第四章 python基础之面向对象
  • YoloV7改进策略:RefConv打造轻量化YoloV7利器
  • 实力登榜!迅镭激光荣膺“江苏省瞪羚企业”称号!
  • 初识操作系统
  • 九、hdfs中Namenode元数据处理
  • SDN核心技术与内容
  • 34970A 数据采集 / 数据记录仪开关单元
  • 黑马点评笔记 redis缓存三大问题解决
  • 【深度学习】神经网络训练过程中不收敛或者训练失败的原因
  • 【实战详解】如何快速搭建接口自动化测试框架?Python + Requests
  • Verilator 用法
  • 轻量封装WebGPU渲染系统示例<39>- emissive和arm纹理支持(源码)
  • 智能优化算法应用:基于水循环算法无线传感器网络(WSN)覆盖优化 - 附代码
  • 编译器设计02-前端概述
  • 分享一款快速APP功能测试工具
  • 【node学习】协程
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • create-react-app做的留言板
  • CSS中外联样式表代表的含义
  • FastReport在线报表设计器工作原理
  • Javascript 原型链
  • Java读取Properties文件的六种方法
  • Mac转Windows的拯救指南
  • markdown编辑器简评
  • python 装饰器(一)
  • Python连接Oracle
  • Python实现BT种子转化为磁力链接【实战】
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • socket.io+express实现聊天室的思考(三)
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 当SetTimeout遇到了字符串
  • 学习Vue.js的五个小例子
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • MPAndroidChart 教程:Y轴 YAxis
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • $ git push -u origin master 推送到远程库出错
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (九)One-Wire总线-DS18B20
  • (六)软件测试分工
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (轉)JSON.stringify 语法实例讲解
  • .NET 8.0 中有哪些新的变化?
  • .Net CF下精确的计时器
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .NET DataGridView数据绑定说明
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .NetCore项目nginx发布
  • .Net的DataSet直接与SQL2005交互
  • .NET开发人员必知的八个网站
  • .NET轻量级ORM组件Dapper葵花宝典
  • [ 云计算 | AWS ] 对比分析:Amazon SNS 与 SQS 消息服务的异同与选择
  • [20160807][系统设计的三次迭代]