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

FineReport

1.FineReport

官网 :FineReport产品简介- FineReport帮助文档 - 全面的报表使用教程和学习资料

下载地址 免费下载FineReport - FineReport报表官网

FineReport是一款用于报表制作,分析和展示的工具。

  • 普通模板:是 FineReport 最常用,用的最多的设计模式,保存的文件类型为 cpt,依靠着单元格的扩展与父子格的关系来实现模板效果,可进行参数查询,填报报表,图表设计等等,但是在分页预览模式下不能在报表主体中展示控件,而且单元格间相互影响,很难保持独立性。

  • 聚合报表:一般适用于一张模板中显示多个独立模块的报表。

  • 决策报表:一般适用于控件的展示,保存的文件类型为frm,很好的弥补了普通报表分页预览不能展示控件的问题,同时决策报表可以进行自由拖拽设计,自适应页面大小显示,可以更好的在移动端展示。

2.数据库

(1)FineReport自带一个数据库FRDemo,也可以自定义导入数据库。

(写好数据库名,账号密码,端口号即可)

(2)数据集分类

  • 模板数据集:只能在当前报表模板中使用。

  • 服务器数据集:可以在所有报表模块中使用。

3.表格操作

(1)左下方加号数据库查询/选择数据库/搜索相应表/将其拖入空白区/编辑查询语句/可预览/确定。

(2)数据集编辑好后,切换模板数据集/将其字段拖入编辑区/自定义表格样式。

  • 手写单元格为固定文本,拖入单元格为行列文本(运行前只显示一格)。

(3)斜线添加:点击单元格/右键/单元格元素/插入斜线/右上到左下写字段名(中间英文竖线|隔开)。

(4)HS计算:直接单元格运算,点击F(x)编辑HS,例如:“=SUM(C3)”。

(5)行列字段关联/单击单元格/过滤/例子:“销售员 = (数据列) ds1 销售员”。

4.图表操作

(1)选定FW/合并单元格/右键/单元格元素/插入图表/选择图表/确定。

(2)取消图表上左父格。

(3)图表属性/数据/选择单元格数据/定义分类名(=B3)、系列名(=C2)、其值(=C3)。

(4)图表属性/样式/可更改标题等大量属性样式。

(5)图表属性/特效/交互属性更改工具栏等。

(6)图表属性/特效/条件显示更改柱子颜色、渐变、闪烁特效等。

5.控件操作

查询控件步骤:模板/模板参数/“+”/改名字/完成模板参数的定义/单击上方阴影区铅笔操作控件区。

右侧点击控件设置,在控件区域内方可编辑。

  • 标签控件:编辑控件名称和控件显示值。

  • 下拉菜单控件:编辑控件名称和控件显示默认值。

  • 编辑数据字典,选择数据库与数据表,实际值与显示值(对应好目标列)。

  • 返回编辑区,找到对应目标列的单元格,双击/过滤/选择可选列、操作符、参数等,之后添加即可。

控件事件:对某事件进行事件添加:例如初始化后,代码编写 "alert('初始化后的事件')",运行时会有对应弹窗。

6.网页操作

(1)报表做好后,FineReport中,菜单栏点击服务器/报表平台管理。

(2)点击左侧管理系统/目录管理/添加目录/输入名称即可。

(3)随后在目录管理最下方找到目录,添加模板,选择对应的cpt报表文件,编辑好名称。

(4)回到决策系统目录首页,找到刚刚添加的项目,打开即可查看报表。

7.聚合报表搭建

(1)聚合报表固定页面大小,表格图表均靠拖拽,可自定义调节大小及扩展。

(2)图表方面,由于聚合报表各模块相互独立,不继承其父单元格,若想使用其他模块数据,进行数据绑定时,数据采集不能写“=B3”,应写“=block1~B3”(模块名~单元格名),模块名点击模块移动处即可获取。

(3)其他的跟普通报表一样,控件模块同上。

8.决策报表搭建

(1)决策报表自适应大小,页面大则大,页面小则小。

(2)新建空白画布,拖参数指定控件区域,拖报表块指定表格区域,拖图表指定图表区域。

(3)图表方面,决策报表各模块独立,若想使用其他模块数据,进行数据绑定时,数据采集不能。写“=B3”,应写“=report0~B3”(模块名~单元格名),模块名可在组件设置处查看。

(4)其他的跟普通报表一样,控件模块同上。

9.单元格

(1)扩展方式:不扩展(所有数据一个格)、纵向扩展(默认)、横向扩展。

(2)父格:若左边是右边的爹,点右边时他爹会有箭头显示,能证明他是他爹。

(3)断绝关系:单元格属性中父格设置为无,子格就不认爹了。

(4)若有上父也有左父,俩爹!且均为默认属性,那么子格设置无,这样会正常随他俩爹扩展。

(5)一父一子,跟他爹同向,子格同格显示;跟他爹逆向,乱;子格无向,自动随他爹走。

10.纵横伸展

(1)伸展:非数据列和数据列一起变动,若不伸展,则在单元格属性处取消即可。

(2)排序:

  • 死点

  • 开发人员控制,则用扩展后直接排序即可。

  • 活点

  • 用户控制,表头区域自定义,表头设置打开,选好单元格。

(3)接着改纹理的幌子插入图片:选择某单元格/单元格属性/样式/单元格/背景/填充/图片。

11.过滤数据

(1)数值列过滤数据:

  • 拖入字段的单元格/双击/过滤/普通/选条件就完了。

  • 拖入字段的单元格/双击/过滤/公式/写条件/增加/确认。

  • 例如:LEFT(订单ID,3)=103,筛选订单ID前三位是103的。

(2)更牛逼的筛选方式:

  • 添加模板数据集时直接用代码筛选。

  • 比如:where 地区 = '${area}',展开数据集时会有筛选提示。

  • 添加控件操作,见本章第五题,但不用返回编辑区过滤方可直接运行。

12.三级联动

当参数之间有层级关系时,需要在选择参数时实现联动效果。

定义查询所有数据的数据集(总数据集、地区集、销售员集、销售总量集)

(1) -- 总数据集SELECT * FROM 销量 where 1=1 ${if(len(area)=0,'','and 地区="'+area+'"')} ${if(len(xsy)=0,'','and 销售员="'+xsy+'"')} 
(2) -- 地区数据集SELECT distinct 地区 FROM 销量
(3) -- 销售员数据集SELECT distinct 销售员 FROM 销量 where 1=1 ${if(len(area)=0,'','and 地区="'+area+'"')}
(4) -- 销售总量数据集SELECT 销售员,sum(销量) as 销售总量 FROM 销量 where 1=1 ${if(len(area)=0,'','and 地区="'+area+'"')} ${if(len(xsy)=0,'','and 销售员="'+xsy+'"')} group by 销售员

添加控件,数据字典编辑,类型设置:数据查询,其他同第5题。

13.控件为空则显示All

(1)模板参数:在对应单元格内过滤条件用函数,代码为:if(len(地区)=0,NOFILTER,地区)

  • 如果参数等于0,也就是啥也没选,用NOFILTER不会筛选任何值,否则筛选对应参数

(2)数据集参数:导入数据集时代码:

SELECT * FROM 订单 WHERE 1=1 ${if(len(area)==0,"","and 货主地区 = '"+area+"'")}
  • 更牛逼的筛选语句,导入数据集时直接代码筛选,比方式1更牛逼。

14.填报报表

数据库中新建库和表格:

create database if not exists itheima charset=utf8;
create table if not exists itheima.tb_user(
id int,
name varchar(20),
age int,
gender varchar(20)
);

(1)FineR服务器/定义数据连接/连接到本地/默认编码。

(2)添加数据集/select * from 表名;

(3)拖入字段列后/为其各字段添加控件/文本控件等。

(4)模板/报表填报属性/内置SQL/智能提交/智能添加字段/选主键/智能添加单元格/选择对应列/未修改不更新/确定。

(5)模板/模板Web属性/报表页面设置/为该模板单独设置/选择对应控件/确定/填报预览。

(6)选定指定单元格/按钮控件/设置个插入行和插入列。

15.Tomcat启动

用Tomcat启动数据决策网页系统,找到Tomcat文件夹/bin/startup.bat,双击即可。

访问网址:http://localhost:8080/webroot/decision/

相关文章:

FineReport

1.FineReport 官网 :FineReport产品简介- FineReport帮助文档 - 全面的报表使用教程和学习资料 下载地址 免费下载FineReport - FineReport报表官网 FineReport是一款用于报表制作,分析和展示的工具。 普通模板:是 FineReport 最常用&#xf…...

嵌入式就业前景好么

嵌入式就业前景在当前环境下是较为乐观的,以下是对嵌入式就业前景的详细分析: 广泛应用领域:嵌入式系统广泛应用于智能家居、医疗设备、航空航天等领域。随着物联网(IoT)的快速发展,预计到2024年&#xff…...

为啥找对象千万别找大厂男,还好我不是大厂的。。

网上看到一大厂女员工发文说:找对象千万别找大厂男,理由说了一大堆,无非就是大厂男为了逃避带娃,以加班为由宁愿在工位上玩游戏也不愿回家。当然这种观点有的人赞同有的人反对。 网友精彩评论: --------------下面是今…...

如何查看k8s中service的负载均衡策略

在Kubernetes中,Service的负载均衡策略一般由kube-proxy负责,kube-proxy使用iptables或IPVS规则进行负载均衡。默认情况下,kube-proxy使用的是轮询(Round Robin)策略,但是在使用IPVS模式时,可以…...

Linux-DNS域名解析服务01

BIND 域名服务基础 1、DNS(Domain Name System)系统的作用及类型 整个 Internet 大家庭中连接了数以亿计的服务器、个人主机,其中大部分的网站、邮件等服务器都使用了域名形式的地址,如 www.google.com、mail.163.com 等。很显然…...

[c++刷题]贪心算法.N01

题目如上: 首先通过经验分析,要用最少的减半次数,使得数组总和减少至一半以上,那么第一反应就是每次都挑数组中最大的数据去减半,这样可以是每次数组总和值减少程度最大化。 代码思路:利用大根堆去找数据中的最大值,…...

推荐常用的三款源代码防泄密软件

三款源代码防泄密软件——安秉源代码加密、Virbox Protector 和 MapoLicensor——确实各自在源代码保护的不同方面有其专长。这些软件可以满足企业对于源代码保护的三大需求:防止泄露、防止反编译和防止破解。 安秉源代码加密: 专注于源代码文件的加密&…...

Android 13 高通设备热点低功耗模式(2)

前言 之前写过一篇文章:高通热点被IOS设备识别为低数据模式,该功能仿照小米的低数据模式写的,散发的热点可以达到被IOS和小米设备识别为低数据模式。但是发现IOS设备如果后台无任何网络请求的时候,息屏的状态下过一会,会自动断开热点的连接。 分析 抓取设备的热点相关的…...

web前端任职条件:全面解析

web前端任职条件:全面解析 在当今数字化快速发展的时代,Web前端技术已经成为互联网行业不可或缺的一部分。作为一名Web前端开发者,需要具备哪些任职条件呢?本文将从四个方面、五个方面、六个方面和七个方面为您深入剖析。 四个方…...

分析医药零售数据该用哪个BI数据可视化工具?

数据是企业决策的重要依据,可以用于现代企业大数据可视化分析的BI工具有很多,各有各擅长的领域。那么哪个BI数据可视化工具分析医药零售数据又好又快? 做医药零售数据分析首推奥威BI数据可视化工具! 奥威BI数据可视化工具做医药…...

如何使用芯片手册做软件开发?

在阅读和利用芯片手册进行软件开发时,你应该关注以下几个关键点: 引脚功能:了解芯片上每个引脚的功能,包括它们可以被配置为输入还是输出,以及它们支持的特殊功能,如模拟输入、PWM输出、中断等。 寄存器映…...

基于深度学习的文本翻译

基于深度学习的文本翻译 基于深度学习的文本翻译,通常称为神经机器翻译(Neural Machine Translation, NMT),是近年来在自然语言处理(NLP)领域取得显著进展的技术。NMT通过使用深度神经网络来自动学习和翻译…...

Unity制作透明材质直接方法——6.15山大软院项目实训

之前没有在unity里面接触过材质的问题,一般都是在maya或这是其他建模软件里面直接得到编辑好材质的模型,然后将他导入Unity里面,然后现在碰到了需要自己在Unity制作透明材质的情况,所以先搜索了一下有没有现成的方法,很…...

【HarmonyOS NEXT】如何通过h5拉起应用(在华为浏览器中拉起应用)

华为浏览器支持拉起外部应用 浏览器访问网页经常会遇到deeplink的场景。当前处理方案统一为使用AMS系统能力startAbility去隐式拉起。传递的want参数为 { "actions": "ohos.want.action.viewData", "uri": deeplink链接 } 网页需要给自己的应用拉…...

模板方法模式(大话设计模式)C/C++版本

模板方法模式 C #include <iostream> using namespace std;class TestPaper { public:void TestQ1(){cout << "杨过得到&#xff0c;后来给了郭靖&#xff0c;炼成倚天剑&#xff0c;屠龙刀的玄铁可能是[ ]\na.球磨铸铁 b.马口贴 c.高速合金钢 d.碳素纤维&qu…...

数据提取:数据治理过程中的质量保障

一、引言 在数字化时代&#xff0c;数据已经成为企业决策和运营的核心资源。然而&#xff0c;数据的价值并不仅仅在于其数量&#xff0c;更在于其质量。数据治理作为确保数据质量、安全性和一致性的重要手段&#xff0c;对于企业的长期发展至关重要。其中&#xff0c;数据提取…...

第55期|GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以找…...

移植案例与原理 - utils子系统之file文件操作部件

Utils子系统是OpenHarmony的公共基础库&#xff0c;存放OpenHarmony通用的基础组件。这些基础组件可被OpenHarmony各业务子系统及上层应用所使用。公共基础库在不同平台上提供的能力&#xff1a; LiteOS-M内核&#xff1a;KV(key value)存储、文件操作、定时器、Dump系统属性。…...

个股期权有哪些股票?金融新手必须知道!

今天带你了解个股期权有哪些股票&#xff1f;在中国的股票市场中&#xff0c;个股期权是一种衍生品&#xff0c;允许投资者购买或卖出特定股票的期权合约。 个股期权有哪些股票&#xff1f; 个股期权是指在特定时间内&#xff0c;以特定价格买入或卖出特定数量的某只个股的权利…...

平庸的学术工作者

自己进入学术这条路&#xff0c;差不多十年了&#xff0c;回想自己目前的成果&#xff0c;自我评价为平庸。如果将同领域清华的年轻学者打分为 100 分的话&#xff0c;我将自己打分 65。 到目前为止&#xff0c;并不觉得智力因素在管理科学与工程领域的科研中有太大决定作用&a…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手&#xff1a;借助大模型技术&#xff0c;开发能根据用户输入的主题、风格等要求&#xff0c;生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用&#xff0c;帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...