报表/报告组件(二)-实例与实现解释
上篇《报表/报告组件(一)-指标/属性组件设计》介绍了组件核心指标/属性设计,本文以实例介绍各个特性的实现和效果,实例是多个报告融合,显示所有的特性。
设计
指标/属性组件是报告/报表关键部分,上篇已介绍过,本节回顾一下
指标模型 指标可有多个测量字段,满足专业和挑剔的显示样式,格式,数值精度和范围需要
> 格式(format) 支持多个字段合并显示的格式,例如,颜色指标RGB,录入3个字段,显示使用格式 R/G/B 或 R-G-B等,带上样式,R/G/B
> 单位
> 类型 TEXT/NUMBER/DATETIME, ... 可扩展
> 参考范围, 精度
参考范围 数值的合理值/正常值,分为基准参考和范围参考
精度 测量的有效值,通常超过精度适用>xxx, <yyy展示,不使用原本值
> 验证指标数值
> 样式规范,底色/图标资源/字体,设定与精度,范围相关
> 图片类型字段,图表类型字段
> list类型字段,支持多行表格
> 图表类型,生成图表,导出图片
本组件使用MVC模式,M 模型,数据和数据存储;C 指输出器,承上(模型)启下(视图),一个数据可以输出docx,pdf,xlsx。。。;V 视图,如本文的示例,docx文档模板
实现解释
本节以实例说明各特性,实例是真实客户设备检测报告,为了介绍所有特性融合了多个报告内容,因此实例数据内容可能不是很相关。
数据模型
本节以单元测试解释数据模型的实现
回顾一下设计图,数据模型分两部分,左侧红圈部分指标/属性数据,右侧篮圈是指标/属性定义,包括报告类型,报告类型关联zhib/属性,指标,指标属性,下面以时间属性介绍
1. 指标/属性定义
> 指标组
下图新建指标组
> 指标和指标字段
下图新建指标和指标字段
上图构建指标,groupCode是上面的指标组,该指标有两个字段,均为日期类型,用于合并显示,组合出报告需要的日期格式
2. 报告类型,关联指标/属性
报告分类
关联指标
3. 报告,指标/属性数据
数据选择需要属于报告,也即需先新建报告,再写入数据
下图新建报告
报告对象也是三板斧,编码,名称,描述
报告数据分两部分,记录,对应指标,下图新建记录(Record),其中的reportId是上面新建的报告id
IndicatorCode对应的指标,实现记录是指标负责构建
下图是数据,指标报告时间(REPORT-DATETIME)的数据
上面通过单元测试构建核心对象,解释了各类对象的结构,下面详细解释不同类型的指标
合并显示
合并显示是一个指标多个字段合成一个字段显示,例如上面的RGB,录入的时候3个数值,R/G/B,显示是合为一个字段,RGB这是颜色的常用的显示方式。
> 指标模板
上图是报告模板, {{REPORT-DATETIME.报告日期}} 是替代符,REPORT-DATETIME是属性/指标编码,全局唯一,"报告日期"是属性/指标下的item。
> 数据
该指标和数据在上面数据模型介绍过,这里不重复
> 导出效果
报告日期的格式通过合并显示的format定义
段落文本/表格文本
这两类是最简单的文本显示,区别只是识别是段落,还是表格的段落
> 指标模板
> 数据
下图对应的指标和数据
> 导出效果
样式
样式大致分两类,一是显示状态,支持状态文本域联动;二是直接指定颜色
> 指标模板
下图指标模板定义,看着都一样,其实有三类的字段,翼根前面的叶片123是显示状态,颜色联动,前缘粘接是指定颜色,备注是图片类型
> 数据
1. 文本,文本与背景色联动
下图首先创建背景色感应器实现,BgAware,目前有两个实现,TextValueBgAware,支持背景色与文本联动;ConstBgAware,指定背景色
下图构建指标和指标字段项,字段项使用TextValueBgAware实现文本与颜色联动
下图数值,数值也可以设置TextValueBgAware,数值设置的优先级高
2. 指定背景色
下图构建指定背景色的数值
> 导出效果
测量数据
指标是设备的检测数据,该数据是周期性的,如,一天一测,有着严谨的数值表示,样式要求,例如,超限,超精度,要所见即所得
> 指标模板
> 数据
下图是测量指标字段项,可设置上下限,是否包括边界;上精度,下精度
指标/属性定义4个样式,分别是超上限,超下限,超上精度,超下精度
> 导出示例
图片
图片样式那节已经展示过
上图定义图片类型字段项,PNG类型,还有宽和高
相应地,数据是PicValue类型,itemName对应的item名称,value是地址,当然也可以支持minio,ftp等
列表
列表数据支持用户输入不定行的表格行,实例的列表数据是设备检测发现的损伤问题,不定行数,多少项填报多少项
> 指标定义
其中,@@是特殊符号,生成序列号
> 数据
下图列表行指标,行的列是字段项,listType设为true,标识此指标是列表指标
> 导出效果
图表
图表也属于计算指标/属性,使用报告的其他指标/属性,生成图表,本节以柱状图为例
> 指标/属性模板定义
图表的指标/属性的模板定义
> 数据
下图构建图表指标/属性,本文的示例图表都在一个指标下,一个字段对应一个图表
下图 柱状图图表字段项,图表有两个序列,Fe,Cu,每个序列有两个数据,本次和上次
图表没有数据写入,使用的是报告内的数据,上面数据是引用"指标数据"
> 输出效果
下一篇 导出器的实现解释
相关文章:

报表/报告组件(二)-实例与实现解释
上篇《报表/报告组件(一)-指标/属性组件设计》介绍了组件核心指标/属性设计,本文以实例介绍各个特性的实现和效果,实例是多个报告融合,显示所有的特性。 设计 指标/属性组件是报告/报表关键部分,上篇已介绍过,本节回顾…...
linux的实时性
Linux 的实时性取决于其内核配置和使用场景。标准 Linux 内核(非实时内核)在设计上更注重吞吐量和公平调度,而非严格的实时性。但通过以下方式可以显著提升其实时性能: 1. 标准 Linux 内核的实时性 优点: 适用于大多数…...
Opencv4 c++ 自用笔记 04 图像滤波与边缘检测
图像滤波与边缘检测 直接采集到的图像可能带有噪声的干扰,因此去除噪声是图像预处理中十分重要的一步。图像滤波是图像噪声去除的重要方式。 图像卷积 卷积操作广泛应用于信号处理领域,而图像本质上可以视为一种二维信号数据。 卷积过程可以理解为一…...

流媒体基础解析:音视频封装格式与传输协议
在视频处理与传输的完整流程中,音视频封装格式和传输协议扮演着至关重要的角色。它们不仅决定了视频文件的存储方式,还影响着视频在网络上的传输效率和播放体验。今天,我们将深入探讨音视频封装格式和传输协议的相关知识。 音视频封装格式 什…...

一个html实现数据库自定义查询
使用场景 应用上线后甲方频繁的找开发查询数据库数据,且没有固定的查询规律,产品经理也没有规划报表需求。 实现方案 后端开放自定义sql查询,屏蔽所有数据库的高危操作,将常用查询的sql放在一个html中的js中直接查询࿰…...
OCC笔记:TopoDS_Edge上是否一定存在Geom_Curve
1. 问题 写occt代码时,访问边的几何数据,通常有以下代码,若边不为空,BRep_Tool::Curve函数是否能返回Curve的有效对象指针呢? //其他略...const TopoDS_Edge& curEdge TopoDS::Edge(edgeExp.Current()); if( cu…...
Python aiohttp 全面指南:异步HTTP客户端/服务器框架
边写代码零食不停口 盼盼麦香鸡味块 、卡乐比(Calbee)薯条三兄弟 独立小包、好时kisses多口味巧克力糖、老金磨方【黑金系列】黑芝麻丸 边写代码边贴面膜 事业美丽两不误 DR. YS 野森博士【AOUFSE/澳芙雪特证】377专研美白淡斑面膜组合 优惠劵 别光顾写…...
更新已打包好的 Spring Boot JAR 文件中的 class 文件
# 1. 解压原始 JAR unzip -q original-app.jar -d temp # 2. 替换 class 文件 cp ~/projects/new-classes/*.class temp/BOOT-INF/classes/com/example/ # 3. 保留原始清单 cp temp/META-INF/MANIFEST.MF . # 4. 重新打包 jar -cf0m new-app.jar MANIFEST.MF -C temp/ . # …...
容器(如 Docker)中,通常不建议运行多个进程或要求进程必须运行在前台
在容器(如Docker)中,通常不建议运行多个进程或要求进程必须运行在前台,这与容器的设计理念、资源管理和生命周期管理机制密切相关。以下是具体原因和深入解析: 一、容器的设计理念:单一职责原则 容器的核…...
conda管理环境指令综合(随时更新)
创建环境和删除环境 #创建环境 conda create --name envname#删除环境 conda env remove --name envname克隆环境 # 查看现有环境列表 conda env list# 执行克隆操作 conda create --name 新环境名称 --clone 原环境名称# 示例:将名为"tf2"的环境克隆…...
从Java的JDK源码中学设计模式之装饰器模式
装饰器模式是一种极具弹性的结构型设计模式,它允许我们通过组合的方式动态扩展对象功能而无需修改原有结构。本文将通过JDK源码中的实际应用和通俗易懂的代码示例,带你深入了解这一强大模式的精髓。 装饰器模式核心原理 装饰器模式的核心思想ÿ…...

鸿蒙电脑会在国内逐渐取代windows电脑吗?
点击上方关注 “终端研发部” 设为“星标”,和你一起掌握更多数据库知识 10年内应该不会 用Windows、MacOS操作系统的后果是你的个人信息可能会被美国FBI看到,但绝大多数人的信息FBI没兴趣去看 你用某家公司的电脑系统,那就得做好被某些人监视的下场,相信…...

持续领跑中国异地组网路由器市场,贝锐蒲公英再次登顶销量榜首
作为国产远程连接SaaS服务的创领者,贝锐持续引领行业发展,旗下贝锐蒲公英异地组网路由器,凭借出色的技术实力和市场表现,斩获2024年线上电商平台市场销量份额中国第一的佳绩,充分彰显了其在网络解决方案与异地组网领域…...

Spring AI 系列3: Promt提示词
一、Promt提示词 Promt提示是引导 AI 模型生成特定输出的输入, 提示的设计和措辞会显著影响模型的响应。 在 Spring AI 中与 AI 模型交互的最低层级,处理提示有点类似于在 Spring MVC 中管理”视图”。 这涉及创建带有动态内容占位符的大段文本。 这些占…...
Nginx 的配置文件
核心概念: 指令 (Directives): 配置文件的基本构建块。每条指令以分号 ; 结束。指令可以设置参数(如 worker_processes auto;)。 上下文 (Contexts): 指令被组织在特定的块(用花括号 {} 包围)中,称为上下文…...

Redis:安装与常用命令
🌈 个人主页:Zfox_ 🔥 系列专栏:Redis 🔥 安装 Redis 使⽤apt安装 apt install redis -y⽀持远程连接 修改 /etc/redis/redis.conf 修改 bind 127.0.0.1 为 bind 0.0.0.0 修改 protected-mode yes 为 protected-mo…...
[原创](Windows使用技巧): Windwos11如何设置局域网共享访问? (多图详解)
[作者] 常用网名: 猪头三 出生日期: 1981.XX.XX 企鹅交流: 643439947 个人网站: 80x86汇编小站 编程生涯: 2001年~至今[共24年] 职业生涯: 22年 开发语言: C/C++、80x86ASM、Object Pascal、Objective-C、C#、R、Python、PHP、Perl、 开发工具: Visual Studio、Delphi、XCode、…...

Mac 芯片系列 安装cocoapod 教程
安装声明: 本人是在搭梯子的环境下安装成功,前提是必须安装好安装homebrew环境。 1.检测rudy的源 2.查看源(目的:检测rudy的源) gem sources - l 3.移除源(目的:移除rudy自带的源) gem sources --remove https://rubygems.org/ 4.更换源(目的:替换成国…...

智启未来:AI重构制造业供应链的五大革命性突破
一、需求预测:让供应链“未卜先知” 1.1 从经验判断到数据预言 传统供应链依赖人工分析历史数据,但面对市场波动、设备突发故障等不确定性,往往反应滞后。AI通过整合工业物联网(IIoT)传感器数据、生产排程、供应商交…...

Linux进程间通信----简易进程池实现
进程池的模拟实现 1.进程池的原理: 是什么 进程池是一种多进程编程模式,核心思想是先创建好一定数量的子进程用作当作资源,这些进程可以帮助完成任务并且重复利用,避免频繁的进程的创建和销毁的开销。 下面我们举例子来帮助理…...

解锁Java多级缓存:性能飞升的秘密武器
一、引言 文末有彩蛋 在当今高并发、低延迟的应用场景中,传统的单级缓存策略往往难以满足性能需求。随着系统规模扩大,数据访问的瓶颈逐渐显现,如何高效管理缓存成为开发者面临的重大挑战。多级缓存架构应运而生,通过分层缓存设…...

(纳芯微)NCA9548- DTSXR 具有复位功能的八通道 I²C 开关、所有I/O端子均可承受5.5V输入电压
深圳市润泽芯电子有限公司 推荐NOVOSENSE(纳芯微)品牌 NCA9548- DTSXR TSSOP-24封装 NCA9548- DTSXR 具有复位功能的八通道 IC 开关、所有I/O端子均可承受5.5V输入电压 产品描述 NCA9548是通过I2C总线控制的八路双向转换开关。 SCL / SDA上行数据分散到八对下行数据或通道。…...

013旅游网站设计技术详解:打造一站式旅游服务平台
旅游网站设计技术详解:打造一站式旅游服务平台 在互联网与旅游业深度融合的时代,旅游网站成为人们规划行程、预订服务的重要工具。一个功能完备的旅游网站,通过用户管理、订单管理等核心模块,实现用户与管理员的高效交互。本文将…...

2024 CKA模拟系统制作 | Step-By-Step | 12、题目搭建-创建多容器Pod
目录 免费获取题库配套 CKA_v1.31_模拟系统 一、题目 二、考点分析 1. 多容器 Pod 的理解 2. YAML 配置规范 3. 镜像版本控制 三、考点详细讲解 1. 多容器 Pod 的工作原理 2. 容器端口冲突处理 3. 资源隔离机制 四、实验环境搭建步骤 总结 免费获取题库配套 CKA_v…...

优化 Spring Boot API 性能:利用 GZIP 压缩处理大型有效载荷
引言 在构建需要处理和传输大量数据的API服务时,响应时间是一个关键的性能指标。一个常见的场景是,即使后端逻辑和数据库查询已得到充分优化,当API端点返回大型数据集(例如,数千条记录的列表)时࿰…...
PostgreSQL 修改表结构卡住不动
[] 查找卡住的进程 ID(PID) -- 查看当前所有数据库连接及进程信息 SELECTpid,usename,query,age(clock_timestamp(), query_start) AS query_duration FROMpg_stat_activity WHEREquery LIKE %ALTER TABLE%; -- 过滤出正在执行 ALTER TABLE 的语句今天遇…...

【C盘瘦身】给DevEco Studio中HarmonyOSEmulator(鸿蒙模拟器)换个地方,一键移动给C盘瘦身
文章目录 一、HarmonyOSEmulator的安装路径二、修改路径 一、HarmonyOSEmulator的安装路径 之前安装了华为的DevEco Studio,当时没注意,后来C盘告急,想着估计是鸿蒙的模拟器占用空间比较大,一检查还真是躺在C盘。路径如下&#x…...
AutoCompose - 携程自动编排【开源】
AutoCompose - 携程自动编排【开源】 AutoCompose是一款单事件驱动(无状态)的流程引擎。使用本框架,能够轻松实现复杂服务的自动化编排【零配置、零编码】,能够显著提高开发维护效率。支持同步编程、异步编程(已支持Co…...
mybatis和hibernate区别
MyBatis 和 Hibernate 都是 Java 生态中主流的持久层框架,但设计理念和适用场景有显著区别。以下是核心对比: 1. 本质区别 特性HibernateMyBatis框架类型全自动 ORM(对象关系映射)框架半自动 SQL 映射框架核心思想对象优先&#…...

ORACLE 缺失 OracleDBConsoleorcl服务导致https://xxx:port/em 不能访问
这个原因是,操作过一下 ORCL的服务配置变更导致的。 再PATH中添加个环境变量,路径如下 管理员权限运行cmd 等待创建完成 大概3分钟 查看服务 点击第一个访问,下图登录后的截图...