1.28 实现报表的动态填写

通过填表公式为报表添加数据查询功能,实现按条件动态展示统计数据。

1. 前言

第27章创建了报表模板并定义了数据项,但报表目前只有样式,没有数据。如何让报表在打开时自动根据指定的日期范围查询并填充数据?
本教程讲解如何在报表模板中使用填表公式,通过数据接口查询销售数据,并根据开始日期和结束日期进行过滤,实现报表的动态填写。
⚠️ 阅读前建议: 先看第27篇了解报表模板的创建方法。本篇在第27篇的基础上,通过填表公式实现数据的动态填充。

2. 操作步骤

(1)设定日期默认值

目标: 打开报表时,自动填入开始日期和结束日期的默认值。
① 打开"商品销售统计"报表模板,进入设计页面,打开填表公式。
② 在"新建打开表单后"事件下添加赋值公式,将"开始日期"赋值为当前月份的第一天。
月初值() 函数需要传入年份和月份两个参数,不能直接传日期,所以需要先用 年份值()月份值() 从当前日期中提取年月再传入:  
  • 系统变量.当前日期 — 获取系统当前日期,如 2026-07-13
  • 年份值(系统变量.当前日期) — 提取当前日期的年份,得到 2026
  • 月份值(系统变量.当前日期) — 提取当前日期的月份,得到 7
  • 月初值(2026, 7) — 根据年份和月份算出月初日期,得到 2026-07-01
当月月初值的获取方式为:月初值(年份值(系统变量.当前日期), 月份值(系统变量.当前日期))
③ 将"结束日期"赋值为当前日期:系统变量.当前日期

(2)在销售订单模板中创建数据接口

数据需要从销售订单中获取,所以数据接口需要在销售订单模板中创建。
① 打开"销售订单"模板,在数据接口中新建一个数据接口,命名为"销售统计查询"。数据源选择本模板的明细表,并且要将数量与金额进行合计。
数据列设置如下:
  • 商品编号 — 直接选择字段
  • 商品名称 — 直接选择字段
  • 规格型号 — 直接选择字段
  • 数量 — 选择字段后,合计函数选择"合计",表达式为 合计(本模板.明细.数量)
  • 金额 — 选择字段后,合计函数选择"合计",表达式为 合计(本模板.明细.金额)
② 添加参数"开始日期"和"结束日期",类型选择"日期"。设置过滤条件:
本模板.销售日期 >= 自定义参数.开始日期 并且 本模板.销售日期 <= 自定义参数.结束日期

(3)在查询按钮下添加赋值公式

目标: 点击"查询"按钮后,根据日期范围查询销售数据并填充到报表中。
① 打开"商品销售统计"报表模板,在填表公式中找到"单元格按钮单击事件",添加数据项选择"查询"按钮对应的单元格。
② 在该数据项下点击"添加公式",选择"赋值公式",数据源选择"模板数据接口",选择"销售统计查询"数据接口。
③ 将参数"开始日期"绑定到报表的"开始日期"字段(本表单.开始日期),"结束日期"绑定到"结束日期"字段(本表单.结束日期)。
④ 建立字段对应关系,将数据接口中的"商品编号"对应到报表明细的"商品编号","商品名称"对应到"商品名称","规格型号"对应到"规格型号","数量"对应到"数量","金额"对应到"金额"。
使用效果: 设置好开始日期和结束日期后,点击"查询"按钮,报表自动填充对应时间范围内的销售统计数据。

3. 核心要点回顾

(1)报表模板中可以使用填表公式,通过单元格按钮单击事件触发数据查询。
(2)数据接口需要在数据来源的模板(销售订单)中创建,不是在报表中新建。
(3)通过有参数数据接口,根据日期范围过滤销售数据,实现动态查询。
(4)本章通过 月初值(年份值(系统变量.当前日期), 月份值(系统变量.当前日期)) 获取当前月份的月初日期——先用 年份值()月份值() 从当前日期中提取年月整数,再传入 月初值() 计算月初。
(5)报表中明细数据通过"插入"操作填充到明细表,合计金额可根据需求通过单元格公式或另外的赋值公式计算。
2026-07-15
0 0