如何在StimulSoft中制作含产品动态列的仓库库存报表?
仓库库存动态列报表实现方案
需求概述
我有多个仓库,仓库表包含名称、位置等字段;产品支持用户新增到数据库;每个仓库对应各产品有库存数量。需要制作报表,将产品作为动态列展示各仓库的对应库存(示例表格如下),且用户新增产品时报表能自动添加对应列。尝试过交叉数据,但不清楚所需的数据格式及筛选设置。
示例报表
| WareHouse | Column B | Product A | Product B | Product C |
|---|---|---|---|---|
| WH1 | A | 50 | 30 | 60 |
| WH2 | B | 70 | 12 | 25 |
| WH3 | C | 35 | 0 | 12 |
| WH4 | D | 0 | 0 | 10 |
一、必备数据格式要求
你需要确保数据库里有至少两张关联表(或通过查询整合为以下结构的数据集):
- 仓库表:包含
仓库ID、仓库名称、位置等固定字段 - 库存记录表:包含
仓库ID、产品ID、库存数量,这是核心的交叉数据源 - 产品表:包含
产品ID、产品名称,用于匹配产品名称作为列名
如果用SQL查询整合,可生成如下结构的数据集(直接用这个数据集做交叉表即可):
| 仓库ID | 仓库名称 | 位置 | 产品名称 | 库存数量 |
|---|---|---|---|---|
| 1 | WH1 | A | Product A | 50 |
| 1 | WH1 | A | Product B | 30 |
| 1 | WH1 | A | Product C | 60 |
| 2 | WH2 | B | Product A | 70 |
| ... | ... | ... | ... | ... |
二、交叉表(动态列)设置步骤
以通用报表工具的逻辑为例:
- 导入数据集:将上述整合后的数据集导入报表工具
- 创建交叉表:
- 行维度:拖入
仓库名称、位置(对应示例里的WareHouse和Column B) - 列维度:拖入
产品名称——这是实现动态列的核心,新增产品后只要数据集里有该产品的记录,列会自动生成 - 度量值:拖入
库存数量,设置聚合方式为求和(如果单仓库单产品只有一条记录,求和等于原值)
- 行维度:拖入
- 补全空值:设置度量值的空值显示为
0,避免报表出现空白(对应示例里的0值)
三、确保新增产品自动同步列
- 确保库存记录表在用户新增产品后,会自动生成该产品对应各仓库的库存记录(初始库存可设为0)
- 报表设置自动刷新数据集,或者用户手动刷新时,新的产品名称会自动作为列添加到交叉表中
内容的提问来源于stack exchange,提问作者ali yeganeh.m
相关产品推荐
相关产品推荐

