DataGear 制作服务端分页的数据可视化看板

DataGear 企业版 1.1.0 已发布,欢迎体验! http://datagear.tech/pro/

DataGear 2.3.0 版本新增了附件图表数据集特性(在新建图表时将关联的数据集设置为 附件 ,具体参考官网文档定义图表章节),在制作看板时,可以基于此特性,结合dg-chart-listener,利用服务端数据扩展图表功能。本文以表格图表为例,介绍基于此特性制作服务端分页的数据可视化图表。

首先,新建两个SQL数据集。

第一个数据集查询服务端分页数据,它是一个参数化数据集:

名称:
服务端分页-数据

SQL:
select
    *
from
    t_analysis
order by NAME asc
limit ${index}, ${size}

参数:
名称    类型    必填   描述
index   数值     是    页索引
size    数值     是    页大小

第二个数据集查询总记录数:

名称:
服务端分页-总记录数

SQL:
select count(*) as total from t_analysis

参数:
无

然后,新建一个图表,并关联上述两个数据集:

名称:
服务端分页表格

类型:
基本表格

数据集:
1. 服务端分页-数据
2. 服务端分页-总记录数(勾选【附件】单选框)

最后,新建一个看板,引入上述图表,添加分页扩展代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
.dg-dashboard{
  position: absolute;
  left: 0px;
  right: 0px;
  top: 0px;
  bottom: 0px;
}
.dg-chart{
  display: inline-block;
  width: 100%;
  height: 400px;
}
.chart-wrapper{
  display: inline-block;
  width: 80%;
  margin-left: 10%;
  padding: 2em 0em;
  border: 1px solid #ccc;
}
#pagination{
  text-align: center;
}
.pagination-button{
  border: 1px solid #333;
  border-radius: 5px;
  margin: 0 0.5em;
  padding: 0.5em 1.5em;
}
.pagination-current{
  background: blue;
  color: white;
}
.pagination-info{
  padding-left: 1em;
}
</style>
<script type='text/javascript'>
var pageSize = 5;

var chartListener=
{
  update: function(chart, results)
  {
    //获取第一个附件数据集(服务端分页-总记录数)中的总记录数
    var chartDataSet = chart.chartDataSetAttachment();
    var totalResult = chart.resultOf(results, chartDataSet);
    var total = chart.resultCell(totalResult, "total", 0);

    //计算总页数
    var pages = (total%pageSize == 0 ? parseInt(total/pageSize) : parseInt(total/pageSize)+1);
    
    //获取当前页索引
    var currentIndex = chart.dataSetParamValue(0, 0);
    
    //绘制分页按钮
    var $pg = $("#pagination");
    $pg.empty();
    for(var i=1; i<=pages; i++)
    {
      var myIndex = (i-1)*pageSize;
      
      $("<button class='pagination-button' />").attr("page-index", myIndex)
        .addClass(currentIndex == myIndex ? "pagination-current" : "")
        .html(i).appendTo($pg);
    }
    
    $("<span class='pagination-info' />").html("共"+pages+"页,"+total+"条记录").appendTo($pg);
  }
};

function refreshChart(index)
{
  var chart = dashboard.chartOf(0);
  //设置第一个数据集的页索引、页大小参数值
  chart.dataSetParamValuesFirst([index, pageSize]);
  //刷新图表数据
  chart.refreshData();
}

$(function()
{
  //加载第一页
  refreshChart(0);
  
  $("#pagination").on("click", ".pagination-button", function()
  {
    var index = parseInt($(this).attr("page-index"));
    refreshChart(index);
  });
});
</script>
</head>
<body class="dg-dashboard">
<div class="chart-wrapper">
  <div class="dg-chart"
    dg-chart-disable-setting="true"
    dg-chart-listener="chartListener"
    dg-chart-widget="上述图表ID">
  </div>
  <div id="pagination"></div>
</div>
</body>
</html>

点击[保存并展示]按钮,打开看板展示页面,完成!!!

效果图如下所示:

同样,服务端分页的柱状图效果图如下所示:

官网地址:http://www.datagear.tech

源码地址:

Gitee:https://gitee.com/datagear/datagear

Github:https://github.com/datageartech/datagear

DataGear是一款数据可视化分析平台,使用Java语言开发,采用浏览器/服务器架构,支持SQL、CSV、Excel、HTTP接口、JSON等多种数据源,主要功能包括数据管理、SQL工作台、数据导入/导出、数据集管理、图表管理、看板管理等。 系统特点: 1、可管理数据库驱动 可通过驱动程序管理功能添加数据库驱动程序,无需重启,即可支持连接新数据库; 2、多种格式的数据集 支持SQL、CSV、Excel、HTTP接口、JSON等多种格式的数据集; 3、多数据集聚合图表 一个图表可添加多个不同格式的数据集,将它们聚合展示; 4、插件式图表类型 每一种类型的图表都以图表插件形式提供,并内置了大量图表插件,管理员也可上传自定义图表插件,丰富系统图表类型; 5、可自由编辑的HTML看板模板 看板使用原生的HTML网页作为模板,可自由编辑、绑定、异步加载图表,并支持将任意HTML网页导入为看板; 6、丰富的看板API 看板页面内置了大量的页面端API,可用于个性化扩展看板功能。 模块介绍: 1、datagear-analysis 数据分析底层模块,定义数据集、图表、看板API 2、datagear-connection 数据库连接支持模块,定义可从指定目录加载JDBC驱动、新建连接的API 3、datagear-dataexchange 数据导入/导出底层模块,定义导入/导出指定数据源数据的API 4、datagear-management 系统业务服务模块,定义数据源、数据分析等功能的服务层API 5、datagear-meta 数据源元信息底层模块,定义解析指定数据源表结构的API 6、datagear-persistence 数据源数据管理底层模块,定义读取、编辑、查询数据源表数据的API 7、datagear-util 系统常用工具集模块 8、datagear-web 系统业务web模块,定义web控制器、操作页面 9、datagear-webapp 系统Web应用程序组织模块,定义将系统构建为标准WAR程序包的结构 10、datagear-webappembd 系统独立应用程序组织模块,定义将系统构建为独立可执行程序的结构 依赖: Java 8+ Servlet 3.0+ 编译: (执行单元测试编译,需要预先配置单元测试环境) mvn clean package (不执行单元测试编译,无需预先配置单元测试环境) mvn clean package -DskipTests 运行: cd datagear-webappembd/target/datagear-[version] (Linux环境) ./startup.sh (windows环境) startup.bat 调试: 1、将datagear以maven工程导入至IDE工具; 2、将datagear-webapp作为Web应用添加至servlet容器(比如Tomcat); 3、以调试模式运行Servlet容器。 调试注意: 在调试开发分支前(dev-*),建议先备份DataGear工作目录([用户主目录]/.datagear), 因为开发分支程序启动时会修改DataGear工作目录,可能会导致先前使用的正式版程序、以及后续发布的正式版程序无法正常启动。 调试时,系统仅会在第一次启动时升级内置数据库(Derby),如果遇到内置数据库访问异常,需要查看 datagear-management/src/main/resources/org/datagear/management/ddl/datagear.sql 文件,从中查找需要更新的SQL语句,手动更新至内置数据库。 系统自带了一个可用于为内置数据库执行SQL语句的简单工具类org.datagear.web.util.DerbySqlClient,可以在IDE中直接运行。注意:运行前需要先停止DataGear程序。   DataGear数据可视化分析平台 更新日志: v2.4.0 整理chartSetting.js和chartSupport.js中的弃用内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值