本文基于前几篇文章对Seal Report Designer软件中Tasks下各类任务模版的学习基础,针对之前创建销售数据报表,创建任务在报表生成之前更新销售人员每年的销售业绩。
在mysql的sales_report数据库内新建销售总结表,使用下面的SQL语句创建数据表保存销售人员每年的销售业绩。
sql
CREATE TABLE sales_summary (
salesperson_id INT NOT NULL,
name VARCHAR(50) NOT NULL,
sale_year INT NOT NULL,
total_sales DECIMAL(10,2) NOT NULL DEFAULT 0.00,
PRIMARY KEY (salesperson_id, sale_year)
)
在Seal Report Designer软件的Sources节点下找到销售数据报表使用的数据源,在其下新建销售汇总table,以便后续在视图中使用,如下图所示。

在Tasks节点下新建Default task任务,数据源选择销售报表数据源,Execution step属性设置为模型数据生成前,然后在SQL statement属性中输入更新语句,如下面所示。

sql
-- 清空汇总表
TRUNCATE TABLE sales_summary;
-- 插入最新统计结果(仅包含有销售记录的年份)
INSERT INTO sales_summary (salesperson_id, name, sale_year, total_sales)
SELECT
sp.salesperson_id,
sp.name,
YEAR(sr.sale_date) AS sale_year,
SUM(sr.total_amount) AS total_sales
FROM
salespersons sp
INNER JOIN sales_records sr ON sp.salesperson_id = sr.salesperson_id
GROUP BY
sp.salesperson_id,
sp.name,
YEAR(sr.sale_date)
ORDER BY
sp.salesperson_id,
sale_year;
点击Seal Report Designer的运行按钮,当弹出报表页面后到mysql数据库中查询sales_summary表的数据,此时已经有了销售人员每年的销售业绩,如下图所示。

参考文献:
1https://github.com/ariacom/Seal-Report
4https://sealreport.org/forum/
5https://github.com/ariacom/Seal-Report/releases
6https://www.cnblogs.com/Leo_wl/p/7716582.html
7https://sealreport.org/Help/html/26c7ae63-9b83-dc1d-b5d0-00a18021be41.htm