写点什么

小智报表实战系列 -1 商品销售环比占比报表

作者:小智数据
  • 2024-07-11
    北京
  • 本文字数:2010 字

    阅读完需:约 7 分钟

小智报表实战系列-1 商品销售环比占比报表

需求:商品销售 环比/占比(带参数查询)

随着企业业务规模的扩大,对商品销售情况的精准掌握变得尤为重要。为此,企业亟需制作一张《商品季度销售排行榜》报表,以全面、系统地展示各商品在不同季度的销售表现。该报表需具备总计、小计功能,便于快速概览整体及细分销售数据;同时,需支持环比分析,以揭示销售趋势;此外,还需实现组内排名,明确商品在同类中的竞争力。为满足不同用户需求,报表应支持参数查询功能,允许灵活筛选数据。最后,为了方便数据传播与归档,报表需提供查询、翻页、导出、打印功能。
复制代码




报表难点

  • 分组、聚合

  • 同一分组下的坐标快速动态定位

  • 同一分组下倒数第 1 条记录 =C4[B4:!-1]

  • 同一分组下倒数第 2 条记录 =C4[B4:!-2]

  • 强大定位,才可以计算特殊环比: =(C4[B4:!-1]-C4[B4:!-2])/C4[B4:!-2]

  • 同一分组下的条件过滤

  • 灵活的条件过滤,组内占比计算: =C4/SUM(C4[!0]{A4=$A4})

小智报表解决方案

小智报表设计器

脚本嵌入 接口实现


<link rel="stylesheet" href="/xzreport.css"><script type="module" src="/xzreportdesigner.js"></script>const dataset = [ //  添加数据集按钮  { id: 1,value: "新建Json数据集"  },  { id: 2,value: "新建Http接口数据集" },  { id: 3,value: "API服务数据集"  },  { id: 4,value: "外部数据集"  }];const options = {  row: 100,  col: 25,  width: () => document.documentElement.clientWidth,  renderArrow: true,  // 是否显式 扩展方向图标  showFreeze: true,  // 是否显式冻结线  showGrid: true,   // 是否显式网格线  showPreviewToolbar: true,  showBottombar: true,  showSelect: true,  dataset}const _onUpdateDatasetList = [[  {    "name": "商品区域销售",    "id": "商品区域销售",    "columns": [  //列描述   3:文本  2:数字  1:日期      {        "name": "商品",        "data_type": 3      },      {        "name": "区域名称",        "data_type": 3      },      {        "name": "销售额",        "data_type": 2      }    ,      {        "name": "年份",        "data_type": 3      },      {        "name": "季度",        "data_type": 3      },      {        "name": "目标完成比",        "data_type": 2      }    ],    "params": [ //查询参数      {        "name": "商品",        "data_type": 3      },      {        "name": "区域名称",        "data_type": 3      }    ]  }]
options.onUpdateDatasetList = () => { return new Promise((resolve, reject) => {//Promise 异步回调 resolve(_onUpdateDatasetList);// 返回后台获取的数据集列表 })}onMounted(() => {// 页面加载时,初始化报表设计器 sheetDesign = XZReportDesigner("#action_2_8_main", options);})
复制代码

报表设计 = 自由拖拽(低代码) + 极简配置




查询面板 = 零代码 + 极简配置


打印面板 = 零代码 + 极简配置


数据保存

const {config, data} = sheetDesign.getData(); //报表设计器的保存事件
复制代码

报表渲染实现

准备模板和数据

在前面报表设计器保存数据中,已经提交到业务后台保存;现在只需要axios.get提取config,data这2个json数据
复制代码

脚本嵌入 接口实现

const option = {  mode: 'read', view: { width: 1920px, height:1080px },   // 设置报表的宽高  renderArrow: true,  // 是否显式 扩展方向图标  showFreeze: true,  // 是否显式冻结线  showGrid: true,   // 是否显式网格线  showPreviewToolbar: true,  showBottombar: true,  showSelect: true,};
复制代码



渲染数据样例


参数查询 数据导出 打印 = 零代码 极简配置

点评

接口精简(默认可以满足大部需求)

  • onUpdateDatasetList :提供数据集列表

  • onUpdateData :提供数据集记录(带参数查询)

  • sheetDesign.getData() :提取报表设计器的模板数据

  • options 功能选项配置 :默认配置即可满足大部分需要

  • reportDesign.on("dataset-edited",on_dataset_edited);//监听 编辑数据集事件

  • reportDesign.loadData({config: config, data: data});//触发数据刷新事件

  • Json 数据格式 :跨平台通用

分组/聚合/汇总/钻取/穿透/图表/函数/富文本/多样式单元格

  • 简化后端程序员数据处理逻辑

  • 减少后端数据库压力,前端只需要极少的原始数据

  • 促进报表设计器人员和后台程序员合理化分工并行工作

参数查询 导出 最大/小化 = 零代码,极简配置开箱即用

刷新 打印 = 低代码,极简配置开箱即用

参考文档和样例源码下载


用户头像

小智数据

关注

小智BI-数据分析 小智报表-类excel报表中心 2024-07-03 加入

小智数据深耕数据工具领域,为企业加速信息流通与智慧决策,赋能数字化转型。开源表格控件、大屏可视化组件、嵌入式报表工具/BI-SaaS平台、SAAS连接器等。

评论

发布
暂无评论
小智报表实战系列-1 商品销售环比占比报表_小智数据_InfoQ写作社区