原文地址

代码仓库

cboard github地址
cboard 中文文档


cboard安装

包括数据库表的创建,配置文件修改

数据库mysql

进入到项目根目录,登陆到mysql

 mysql > create database cboard;mysql > use cboard;mysql > source sql/mysql/mysql.sql;
修改配置文件

配置文件src/main/resources/config.properties

validationQuery=SELECT 1
jdbc_url=jdbc:\mysql://localhost:3306/cboard # 数据库地址
jdbc_username=root # 用户名
jdbc_password=111111 # 密码

修改好后启动项目,访问localhost:8080进入登陆界面,初始用户名:admin,初始密码:root123


cboard构成

由数据源(DataSource)、数据集(DataSet)、图表(Widget)、看板(DashBoard)这四部分构成;其中看板由多个图表拼接而成,图表显示的数据是数据集中的数据,数据集中的数据从数据源中获得,就mysql来说,数据源即代表一个数据库,数据集则是用sql语句从数据库查出来的数据。

cboard使用

cboard构成可知,为了最终生成一个用于显示各种数据的看板,应该从Datasource->DataSet->Widget->DashBoard这种顺序依次构建。

构建数据源

打开左侧的Configration->DataSource,点击+按钮

对于mysql数据源,填好对应参数,点击test测试是否连接成功

若测试连接成功,点击save保存该数据源。

构建数据集

假设有一张名为billing_detail的表,用于记录个人每一笔钱的支出,总共有id,name,amount,category,create_at5个字段,如下表所示:

id name amout category create_at
1 吃饭 20.2 餐饮 2020-02-01 13:10
2 火车票 170.5 出行 2020-02-01 15:00

依次打开Configration->DataSet,点击添加按钮,新建一个数据集:

在上图中,Name选项填写数据集的名称,格式为:数据集类别/数据集名称;Datasource选择之前创建的数据源;Sql Text即一个sql表达式,用于从数据源中取出数据。填好上面三项后,点击Load Data按钮,若sql表达式正确无误,就会出现下半部分:左侧是数据集中的字段值,这些字段可以用拖拽的方式拖到右侧的栏目下面:Dimension即数据的维度,Measure是度量,Caculated Measure是聚合表达式,Filter Group是过滤器。填好后点击save就成功创建了一个数据集。

创建图表

有了数据集后就可以进行图表的创建,依次点击Configration->Widget,点击添加按钮+,就会出现下图的弹出框

在图中,点击Cube可以下拉选择数据集,Widget Name是图表的名称,命名方式为category/name,选好数据集之后就会出现下图,通过拖动左侧的参数到右侧合适的位置,就可以设计图表了


图表设计

在此,以之前创建好的数据集为基础,通过几个例子来演示图表的设计

1,按年月分类,用曲线显示每个月的总消费


在这个例子中,将左侧维度项(Dimension)下year,month的参数拖到右侧的Row栏目中,将左侧度量项(Measure)下的amount参数拖入到Value Axis这个栏目中,选择Widget Type栏目中的线型图表,点击Preview,可以看到,最终生成的图形中,横轴是Row栏目中两个参数yearmonth的组合,纵轴是Value Axis栏目中的amount的求和值,即sum(amount),也就是说,Measure下的参数拖动到Value Axis栏目时,系统会自动为其添加sum聚合函数。点击View Query可以看到它生成的sql语句正是如此。

SELECT year, month ,SUM(amount)
FROM
(select 1 as `count`,name,`amount`,category,left(create_at,4)as `year`,substring(create_at,6,2)as `month` frombilling_detail
)
cb_view GROUP BY year, month

2,对比每个年份相同月份下的总消费

这个例子中,唯一与例1不同的地方就是把例1中的year这一项从Row这一栏拖到了Column这一栏。这样便每个年份显示一条曲线,横轴就是每年下的每个月份。Column这栏能分成几类,结果就有几条曲线。可以查看它生成的sql和例1完全相同,对比可发现加到ColumnRow这两个栏目下的所有参数都会在生成sql语句时加入到group by后面进行聚合。

SELECT year, month ,SUM(amount)
FROM
(select 1 as `count`,name,`amount`,category,left(create_at,4)as `year`,substring(create_at,6,2)as `month` frombilling_detail
)
cb_view GROUP BY year, month

3,按年月分类,用线型图显示平均消费,用柱状图显示总消费

在这个例子中,同时存在柱状图和线形图。Value Axis这一栏比前两个例子多了一行,且这一行是将左侧Caculated Measure这一项下的avgAmount,这是之前提前定义的计算平均值的聚合表达式参数。

4,统计每个年份的消费占比,按饼图显示

这个例子中,按年份统计消费占比,只需将year这个变量拖到Row这一栏中

5,统计每个消费类别的占比

这个例子中,按年份统计消费占比,只需将category这个变量拖到Row这一栏中


看板设计

设计看板时先添加一个看板分类,否则只能选择默认(default)的分类。依次选择Configuration->DashBoard Category进行添加

创建好自己的看板分类后就可以添加看板了,依次选择Configration->DashBoard,对于网格布局来说,在看板中首先要添加行,即Add Row,每行又可添加多个列。列宽总和为12。添加列时可以选择已经创建好的图表于该列中。如下图

将之前示例中的几个图都添加到看板中,点击save,保存后就可以在看板选项中查看自己的看板了,如下图:


用户交互

cboard中,用户交互的方式有两种,一种是添加看板参数,另一种是图表之间的关联

利用看板参数进行交互

编辑看板,点击添加看板参数(Add Param Row)按钮,就会出现下图


点击添加参数(Add Param)按钮就会弹出可以选择添加的参数选项,选择自己需要添加的参数

这个参数是我们之前定义好的数据集中的参数,它的变化将影响所有依赖于该数据集的图表。参数添加成功后点击保存,查看看板

可以通过修改看板参数的值来使图形发生变化。

利用图表关联进行交互

在前面提到的例4,例5两个例子中,例4展示了每个年份的消费占比,例5展示了每个消费类别的占比。如果需求是点击例4饼图中不同年份对应的位置,例5则相应的切换到统计该年份下的各类消费的占比,这就用到图表之间的关联。


如上图所示,例4和例5两个图表已加入到看板中,点击例4上的链接按钮,就会出现一个关联图表的选项

第一个参数Widget Fields表示当前图表要关联的变量,按要求选择年份year,第二个参数Correlation Widget表示要关联的目的图表,第三个参数Correlation Widget Fields表示关联目的图表的变量。填好后点击Save保存。查看看板是否正确。

cboard使用方法以及用户交互的两种方式相关推荐

  1. react 调用 html5,React-Native Webview 和H5交互的两种方式

    React-Native WebView 和H5交互有两种方式: 方式1:RN Webview 向H5注入JS 此方式可作为Webview向H5端传递数据. RN Webview 有以下属性,可以注入 ...

  2. 前后端交互的两种方式

    方式一:表单提交 表单(form):表单用于收集用户输入信息,并将数据提交给服务器.是一种常见的与服务端数据交互的一种方式 //1. action:指定表单的提交地址 //2. method:指定表单 ...

  3. iOS WKWebView和JS交互的两种方式

    2019独角兽企业重金招聘Python工程师标准>>> 本文介绍两种方式实现iOS WKWebView和JS交互 WKWebViewConfiguration注入WKScriptMe ...

  4. Collections.sort方法对list排序的两种方式

    最近在工作中用到对地震等各种条件的排序,这里刚好用到了这个方法,我用的第二种方法   下面请参考 Collections.sort( )分为两部分,一部分为排序规则,一部分为排序算法 . 规则用来判断 ...

  5. php mail方法_php邮件发送的两种方式

    这篇文章研究的主要内容就是使用PHP来发送电子邮件,总结为以下两种方法: 一.使用PHP内置的mail()函数 $to = "test@163.com"; //收件人 $subje ...

  6. Linux:两种非交互修改用户密码的两种方式

    背景说明 在制作docker镜像时,会经常涉及添加用户并给用户设置密码的操作.这样的场景在使用Dockerfile时,不能使用交互方式进行镜像制作,这时候就需要使用非交互的方式添加用户并修改用户密码. ...

  7. python启动方法_python进程开启的两种方式

    一.进程 1.1.方式一 from multiprocessing import Process import time #方式一 def task(name): print(f"my na ...

  8. 微信公众号开发中,获取用户资料的两种方式

    2019独角兽企业重金招聘Python工程师标准>>> 微信公众号的开发主要是在服务号环境下进行,订阅号是拿不到用户的资料的,因此,下文的讨论都基于微信服务号. 微信公众号的两个ac ...

  9. Vue父组件调用子组件的方法并传参的两种方式(用$refs.refName.functionName、window.function)

    如需了解儿子怎么控制老子的,传送门:https://s-z-q.blog.csdn.net/article/details/120094689 父组件father.vue <template&g ...

  10. ClickHouse【环境搭建 02】设置用户密码的两种方式(明文+SHA256)及新用户添加及只读模式 Cannot execute query in readonly mode 问题解决

    1.查看user.xml文件可知设置密码的多种方式 <!-- Password could be specified in plaintext or in SHA256 (in hex form ...

最新文章

  1. 最大限度地减少块输出中间结果的计算和存储
  2. 在sql server中建存储过程,如果需要参数是一个可变集合怎么处理?
  3. 瑞友天翼4.0在XP下安装注意事项
  4. 上海计算机应用基础自考上机,上海2010年自考计算机应用基础上机大纲
  5. stack与queue
  6. OpenCV创建小部件Creating Widgets
  7. ubuntu 配置mycat
  8. 大学计算机学生成绩综合管理系统,大学综合测评成绩管理系统的研究 计算机专业毕业论文.doc...
  9. matlab怎么看输出电压纹波,教你如何正确取电源的输出纹波噪声值
  10. AI学习笔记(十一)CNN之图像识别(上)
  11. 文本词频统计是字典吗_TF-IDF词频逆文档频次算法
  12. 自适应控制与鲁棒控制的区别
  13. 在计算机上找不到autocad,天正提示找不到可用的AutoCAD版本怎么办?
  14. 对y_pred强制二分类
  15. OSGi架构学习与设计
  16. 中电丽声推出全新一代硅麦
  17. 分布式系统课程总结 西电计算机学院
  18. canvas实现地图放大缩小拖拽
  19. LTE中RB、RBG、CCE、REG
  20. 汉字转换成NCR编码的字符

热门文章

  1. 马斯克:未来将尝试打造超级高铁运输系统 时速是飞机的2倍
  2. Linux安装Nexus3
  3. 《从0到1:CTFer成长之路》书籍配套题目-[第二章 web进阶]死亡ping命令
  4. javaweb小区物业管理系统设计与实现(毕业论文+程序设计+数据库文件)
  5. java8配置环境变量_java8环境变量设置
  6. Android签名证书:jks和keystore
  7. 《人人都是产品经理》——第一章笔记
  8. 字母冒泡法排序c语言,C语言冒泡排序法的实现(升序排序法)
  9. LVDT位移传感器的构成原理及特点
  10. html5 后端模板 免费,推荐12个非常不错而且免费的后台管理HTML模板