1 报表(理解)
1.1 报表是什么?
报表:向上级报告情况的表格
1.2 为什么要有报表,学来有什么用?–实际应用场景?
老板想看一下 强经理 这个月的采购情况 --> 老板采取的决策,去做一些事情
使用场景:
(1)老板想看一下 强经理 这个月的采购情况
(2)看一下 航航 销售情况
(3)整年(整季度 整月)的营业额 利润 --财务人员
1.3 怎么去使用?
报表的种类:
(1) 数据表格 – excel表格
(2)图形表格 --各种各样的图形表格
数据表格 报表 – easyui-datagrid-groupview
步骤:
(1) 创建一个类报表对象 PurchasebillitemVo(页面要展示的数据字段)
groupField – 分组字段
添加一个构造方法用来给PurchasebillitemVo这个字段赋值
(2)写了方法 findItems
先查询出purchsebillitem
在构造出 PurchasebillitemVo对象
(3)返回前台 --表格里面就进行展示
前台:
(1) 准备一个页面purchasebillitem.jsp -->(查询工具栏 分组的下拉)–》查询功能
(2) puchasebillitem.js 写了一个查询数据的方法 已经
表格的初始化设置的方法
2 图形报表
数据展示的形式,看到不爽,如果图形展示,看到要舒服
做图形报表的框架–echarts highcharts 只需要传递数据
flash – 兼容性不是很好 容易崩溃 actionscript/javascript (flex)
html5 – canvas
不管是哪一个款报表,其实他的用法都差不多
思路:
(1) 下载
(2)引入
(3)看例子 --把我们需要的数据传递给组件 --它就会自动渲染图表
highcharts – 下载
2.1 有哪些图形表格
饼图
柱状图
线图…
任务 今日通关目标
第一关:数据表格
(1)datagrid-groupview
步骤:
后台:(1)创建PurchasebillitemVo
(2)构造方法用来封装数据
(3)多添加一个groupField分组字段
this.groupField = this.supplier;
if(("o.bill.buyer.username").equals(groupBy)){
this.groupField = this.buyer;
}else if(("MONTH(o.bill.vdate)").equals(groupBy)){
//取到月份
int month = (DateUtils.toCalendar(vdate).get(Calendar.MONTH)+1);
this.groupField = month+"月";
}
(4) service写了方法查询数据
第二关:图形表格
(2)2D 3D饼图
核心–:拼接sql
public List<Object[]> findCharts(PurchasebillitemQuery purchasebillitemQuery ){
//拼接jpql的语句 where group
String jpql = "select "+purchasebillitemQuery.getGroupBy()+",sum(o.bill.totalAmount) from Purchasebillitem o " + purchasebillitemQuery.getWhereSql()+
" group by "+purchasebillitemQuery.getGroupBy();
System.out.println("jpql---------:"+jpql);
List<Object[]> result = purchasebillitemRepository.findByJpql(jpql, purchasebillitemQuery.getParams().toArray());
return result;
}
前台就拷贝