页面树结构
转至元数据结尾
转至元数据起始

正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史

« 前一个 版本 2 下一个 »

需求:

工厂目前有多条流水线,每天8点开始运行,17点分停止,希望以图形的形式展示当天流水线各个机器的安排情况。

原理:

smartbi内置了echarts图形,但是未支持时间轴,因此需要把日期转换成数值,然后使用横向堆积图展示。

实现步骤:

一、数据准备

1、把日期时间处理成数字:从数据上看可以考虑把任务执行的消化时长数值作为X轴,但X轴是从0开始的,而机器每天8点开始运行,因此还需要对8点开始的机器+8

即:开始时间=8点 然后耗时+8,其他时间段 然后直接处理成耗时,对所有的数据进行堆叠。(注:截图是SqlServer语法,时间处理可自行根据数据库类型调整

2、增加排序字段:由于堆叠是按照耗时字段堆叠,顺序可能出现异常,因此可把流水线和机器开始时间拼接,用于排序

完整SQL
select
 "線別"+
    CONVERT(varchar(100), "時間開始", 120) as sort,
    "線別",
    "機型",
    "時間開始",
    "時間結束",case
        when DATENAME(hour, "時間開始") = 8 then DATEDIFF(second, "時間開始", "時間結束") / 3600.0 + 8
        else DATEDIFF(second, "時間開始", "時間結束") / 3600.0
    end as times
from
    "dbo"."生產排程1"
order by
    "線別",
    "時間開始"


二、图形设计

1、字段拖拽情况

2、使用数据准备中构造的字段进行排序和机型颜色

3、通过扩展属性处理X轴的数值标签 转为时间标签,并把最小值调整为8点,最大值为17点

{
	"xAxis": {
		"position": "top",
		"min":8,
		"max":17,
		"axisLabel": {
			"formatter": "function(param){return param +':00';}"
		},
		"axisTick": {
			"show": true
		},
		"axisLine": {
			"show": true
		},
		"splitLine": {
			"show": true
		},
		"interval": 1
	}
}





  • 无标签