帆软 FineReport 绘制漏斗图

七一建党节,祝党生日快乐!
夏日炎炎,周末在家,想起在用帆软做页面展示的时候,使用到了漏斗图,记录下来,方便查看。
以订单销量变化为例,分为五个阶段,商品浏览人数,点击商品人数,创建订单人数,加入购物车人数和支付订单任务等,来实现效果。展示效果大致如下图所示。
在这里插入图片描述

第一步、构造基本列表

新建数据集,根据五个阶段来组装SQL,即通过union连接后再group by 实现统计,查询SQL如下所示,仅做参考,可根据具体业务调整。

select 
data_type,
sum(aa.pvNum) as pvNum,
sum(aa.clickNum) as clickNum,
sum(aa.createNum) as createNum,
sum(aa.cartNum) as cartNum,
sum(aa.payNum) as payNum
from (
SELECT 
        '商品浏览人数' AS 'data_type',
         COUNT(*) AS pvNum,
				0 AS clickNum,
        0 AS createNum,
        0 AS cartNum,
				0 AS payNum
    FROM
        tb_order
    WHERE
        1 = 1 
        AND DATE_FORMAT(created_time, '%Y-%m-%d') >= DATE_ADD('${beginDate}', INTERVAL 1 DAY)
        AND DATE_FORMAT(created_time, '%Y-%m-%d') <= DATE_ADD('${endDate}', INTERVAL 1 DAY)
	UNION ALL 
		SELECT 
        '点击商品人数' AS 'data_type',
				0 AS pvNum,
        COUNT(*) AS clickNum,
				0 AS createNum,
        0 AS cartNum,
				0 AS payNum
    FROM
			tb_order
    WHERE
        1 = 1 
		and order_status IN ('CO','OP','FN')
        AND DATE_FORMAT(created_time, '%Y-%m-%d') >= DATE_ADD('${beginDate}', INTERVAL 1 DAY)
        AND DATE_FORMAT(created_time, '%Y-%m-%d') <= DATE_ADD('${endDate}', INTERVAL 1 DAY)
	UNION ALL 
		SELECT 
        '创建订单人数' AS 'data_type',
				0 AS pvNum,
        0 AS clickNum,
        COUNT(*) AS createNum,
				0 AS cartNum,
				0 AS payNum
    FROM
         tb_order
    WHERE
        1 = 1 
	and order_status = 'CO'
	AND DATE_FORMAT(created_time, '%Y-%m-%d') >= DATE_ADD('${beginDate}', INTERVAL 1 DAY)
	AND DATE_FORMAT(created_time, '%Y-%m-%d') <= DATE_ADD('${endDate}', INTERVAL 1 DAY)
	UNION ALL 
	SELECT 
        '加入购物车人数' AS 'data_type',
				0 AS pvNum,
        0 AS clickNum,
        0 AS createNum,
        COUNT(*) AS cartNum,
				0 AS payNum
    FROM
         tb_order
    WHERE
        1 = 1 
	and order_status = 'CA'
	AND DATE_FORMAT(created_time, '%Y-%m-%d') >= DATE_ADD('${beginDate}', INTERVAL 1 DAY)
	AND DATE_FORMAT(created_time, '%Y-%m-%d') <= DATE_ADD('${endDate}', INTERVAL 1 DAY)
UNION ALL 
	SELECT 
        '支付订单人数' AS 'data_type',
				0 AS pvNum,
        0 AS clickNum,
        0 AS createNum,
        0 AS cartNum,
        COUNT(*) AS payNum
    FROM
         tb_order
    WHERE
        1 = 1 
	and order_status = 'OP'
	AND DATE_FORMAT(created_time, '%Y-%m-%d') >= DATE_ADD('${beginDate}', INTERVAL 1 DAY)
	AND DATE_FORMAT(created_time, '%Y-%m-%d') <= DATE_ADD('${endDate}', INTERVAL 1 DAY)
) aa

绘制列表,对应字段绑定,效果如下图所示。
在这里插入图片描述
在浏览器预览效果如下。
在这里插入图片描述

第二步、绘制漏斗图

在列表下方单元格,点击属性列表,选择插入元素-插入图表,在类型中选择漏斗图(新特性),操作如下图所示。
在这里插入图片描述
构造数据源,类似的,五个阶段要分别拼接,展示值和对应的显示名要分开,即 key-values形式,注意要添加排序字段。

SELECT 
    data_type, num
FROM
    (SELECT 
        '商品浏览人数' AS 'data_type',
            COUNT(*) AS num,
            1 AS ordSeq
    FROM
        tb_order
    WHERE
        1 = 1 
        AND DATE_FORMAT(created_time, '%Y-%m-%d') >= DATE_ADD('${beginDate}', INTERVAL 1 DAY)
        AND DATE_FORMAT(created_time, '%Y-%m-%d') <= DATE_ADD('${endDate}', INTERVAL 1 DAY)
	UNION ALL 
		SELECT 
        '点击商品人数' AS 'data_type',
            COUNT(*) AS num,
            2 AS ordSeq
    FROM
			tb_order
    WHERE
        1 = 1 
        and order_status IN ('CO','OP','FN')
        AND DATE_FORMAT(created_time, '%Y-%m-%d') >= DATE_ADD('${beginDate}', INTERVAL 1 DAY)
        AND DATE_FORMAT(created_time, '%Y-%m-%d') <= DATE_ADD('${endDate}', INTERVAL 1 DAY)
	UNION ALL 
		SELECT 
        '创建订单人数' AS 'data_type',
            COUNT(*) AS num,
            3 AS ordSeq
    FROM
         tb_order
    WHERE
        1 = 1 
        and order_status = 'CO'
	AND DATE_FORMAT(created_time, '%Y-%m-%d') >= DATE_ADD('${beginDate}', INTERVAL 1 DAY)
	AND DATE_FORMAT(created_time, '%Y-%m-%d') <= DATE_ADD('${endDate}', INTERVAL 1 DAY)
	UNION ALL 
	SELECT 
        '加入购物车人数' AS 'data_type',
            COUNT(*) AS num,
            4 AS ordSeq
    FROM
         tb_order
    WHERE
        1 = 1 
      and order_status = 'CA'
	AND DATE_FORMAT(created_time, '%Y-%m-%d') >= DATE_ADD('${beginDate}', INTERVAL 1 DAY)
	AND DATE_FORMAT(created_time, '%Y-%m-%d') <= DATE_ADD('${endDate}', INTERVAL 1 DAY)
UNION ALL 
	SELECT 
        '支付订单人数' AS 'data_type',
            COUNT(*) AS num,
            5 AS ordSeq
    FROM
         tb_order
    WHERE
        1 = 1 
     and order_status = 'OP'
	AND DATE_FORMAT(created_time, '%Y-%m-%d') >= DATE_ADD('${beginDate}', INTERVAL 1 DAY)
	AND DATE_FORMAT(created_time, '%Y-%m-%d') <= DATE_ADD('${endDate}', INTERVAL 1 DAY)
    ) main
ORDER BY ordSeq asc
;

编辑栏-数据,数据来源选择数据集数据,即上一步新建的,选择使用字段值,指定系列名和值,效果如下所示。
在这里插入图片描述
编辑栏-样式,可设置漏斗图的标题,图例等信息,效果所下图所示。
在这里插入图片描述
放大图的范围,即选中区域后,合并单元格,如下图所示。
在这里插入图片描述
图例页签下,勾选图例可见,在浏览器预览效果如下图所示。
在这里插入图片描述
比如可以使用标签,在编辑栏-格式,标签下-标签,使用标签
在这里插入图片描述
在浏览器展示效果如下图所示。
在这里插入图片描述
以上就是漏斗图添加的过程,帆软自带有很多属性,可以调试查看效果,祝好!

异常处理

【1】结果显示乱码,如????
处理方案
在数据库连接后指定编码方式为 utf8
在这里插入图片描述

?useUnicode=true&characterEncoding=utf8

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PDF如何转换成Word?PDF转Word方法分享!​

PDF大家都不陌生了吧&#xff1f;作为打工人&#xff0c;学生党的大家都知道&#xff0c;PDF是现在不可或缺的文件传输工具之一&#xff0c;不仅可将文档转为Word&#xff0c;还可以转成excel,ppt等各种形式&#xff0c;其重要性不言而喻&#xff0c;那么今天小编就跟大家具体说…

【MySQL】表的约束

目录 一、空属性 二、默认值 三、列描述 四、zerofill 五、主键 六、自增长 七、唯一键 八、外键 九、综合案例 真正约束字段的是数据类型&#xff0c;但是数据类型约束很单一&#xff0c;需要有一些额外的约束&#xff0c;更好的保证数据的合法性&#xff0c;从业务逻…

NSQ 实现逻辑探秘

1 什么是 NSQ NSQ 是一个消息队列中间件&#xff0c;用 go 实现&#xff0c;有如下特点&#xff1a; 分布式&#xff1a; 它提供了分布式的、去中心化且没有单点故障的拓扑结构&#xff0c;稳定的消息传输发布保障&#xff0c;能够具有高容错和高可用特性。 易于扩展&#xf…

星辰秘典:揭开Python项目的神秘密码——2048游戏

✨博主&#xff1a;命运之光 &#x1f338;专栏&#xff1a;Python星辰秘典 &#x1f433;专栏&#xff1a;web开发&#xff08;html css js&#xff09; ❤️专栏&#xff1a;Java经典程序设计 ☀️博主的其他文章&#xff1a;点击进入博主的主页 前言&#xff1a;你好&#x…

深度学习与神经网络

文章目录 引言1. 神经网络1.1 什么是神经网络1.2 神经元1.3 多层神经网络 2. 激活函数2.1 什么是激活函数2.2 激活函数的作用2.3 常用激活函数解析2.4 神经元稀疏 3. 设计神经网络3.1 设计思路3.2 对隐含层的感性认识 4. 深度学习4.1 什么是深度学习4.2 推理和训练4.3 训练的相…

python语法(高阶)-多线程编程

""" 演示多线程编程的使用 """ import time import threadingdef sing(msg):while True:print(msg)time.sleep(1)return Nonedef dance(msg):while True:print(msg)time.sleep(1)return Noneif __name__ __main__:# 创建一个唱歌的线程&#xf…

html实现好看的多种风格导航菜单(附源码)

文章目录 1.设计来源1.1 顶部导航菜单1.1.1 界面风格1-一二级连体导航菜单1.1.2 界面风格2-二级导航下拉框1.1.3 界面风格3-系统开始风格1.1.4 界面风格4-购物类导航菜单1.1.5 界面风格5 - 带搜索扩展的导航条1.1.6 界面风格6-火热效果多级导航条 1.2 悬浮按钮菜单1.2.1 界面风…

电力系统系统潮流分析【IEEE 57 节点】(Matlab代码实现)

&#x1f4a5; &#x1f4a5; &#x1f49e; &#x1f49e; 欢迎来到本博客 ❤️ ❤️ &#x1f4a5; &#x1f4a5; &#x1f3c6; 博主优势&#xff1a; &#x1f31e; &#x1f31e; &#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 …

Ceph分布式存储系统搭建

目录 安装部署示例 &#xff08;一&#xff09;准备环境 1). 设置主机名 2). 关闭防火墙 3).添加sdb磁盘并格式化 4).配置hosts解析文件 5).配置免密登录 6).同步时区 7). 安装 Ceph 包 &#xff08;二&#xff09;创建 Ceph 集群 1、 安装ceph-deploy管理工具 2、 …

Linux 用户名称高亮和最近路径显示

1、通常情况下&#xff0c;Linux中的路径名称会不断叠加显示&#xff0c;如下图&#xff0c;这样看起来会很长。 2、为了设置路径只是当前最近的文件路径&#xff0c;先进入自己的家目录&#xff0c;然后进入.bashrc&#xff1a; 3、在.bashrc文件中的最后一行加入以下内容…

C国演义 [第三章]

第三章 组合分析步骤递归函数的返回值和参数递归结束的条件单层逻辑 组合总和 III 组合 力扣链接 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;n 4, k 2 输出&#xff1…

Echarts区域面积areaStyle用图片进行纹理填充

React DOM结构代码&#xff1a; import fillImg from xx/fillImg.png; // 填充纹理图片...... {/* 趋势图填充纹理图片 */} <img id"fillImg" src{fillImg} style{{ width: 0 }} /> <div id"line" style{{ width: 100%, height: 300 }}></…

蓝绿发布、灰度发布和滚动发布

系列文章目录 文章目录 系列文章目录一、1.金丝雀发布&#xff08;Canary Release&#xff09;的工作原理&#xff1a;2.滚动发布&#xff08;Rolling Release&#xff09;3.蓝绿发布&#xff08;Blue-Green Deployment&#xff09;有钱人玩的&#xff01; 总结 一、 当涉及到…

深入理解深度学习——注意力机制(Attention Mechanism):带掩码的多头注意力(Masked Multi-head Attention)

分类目录&#xff1a;《深入理解深度学习》总目录 相关文章&#xff1a; 注意力机制&#xff08;AttentionMechanism&#xff09;&#xff1a;基础知识 注意力机制&#xff08;AttentionMechanism&#xff09;&#xff1a;注意力汇聚与Nadaraya-Watson核回归 注意力机制&#…

WPF中的Behavior及Behavior在MVVM模式下的应用

WPF中的Behavior及Behavior在MVVM模式下的应用 在WPF中&#xff0c;Behaviors&#xff08;行为&#xff09;是一种可重用的组件&#xff0c;可以附加到任何UI元素上&#xff0c;以添加特定的交互行为或功能。Behaviors可以通过附加属性或附加行为的方式来实现。 Behavior并不…

知识蒸馏学习记录(二)

上一篇博文中我们介绍了知识蒸馏的一些基础知识&#xff0c;这里我们来学习其到底是如何完成知识蒸馏过程的。 知识蒸馏为何可以让学生网络模型小却性能强&#xff1f; 详细很多同学与我有相同的疑问&#xff0c;尽管它依靠不同的蒸馏温度T可以学得一些hard target标注无法包…

三维空间刚体运动之旋转矩阵与变换矩阵

1. 旋转矩阵 1.1 点、向量和坐标系 点&#xff1a;点是空间中的基本元素&#xff0c;没有长度&#xff0c;没有体积&#xff1b; 向量&#xff1a;把两个点连接起来&#xff0c;就构成了向量&#xff0c;向量可以看成从某点指向另一点的一个箭头&#xff1b;只有当我们指定这…

hive基于新浪微博的日志数据分析——项目及源码

有需要本项目的全套资源资源以及部署服务可以私信博主&#xff01;&#xff01;&#xff01; 该系统的目的是利用大数据技术&#xff0c;分析新浪微博的日志数据&#xff0c;从而探索用户行为、内容传播和移动设备等各个层面的特性和动向。这项研究为公司和个人在制定营销战略、…

Redis数据库的简介、部署及常用命令

Redis数据库的简介、部署及常用命令 一、关系数据库与非关系型数据库概述1、关系型数据库2、非关系型数据库3、关系数据库与非关系型数据库区别4、非关系型数据库产生背景 二、Redis简介1、Redis服务器程序的单线程模型2、Redis的优点 三、Redis部署四、Redis 命令工具1、redis…