VS2019+CR13.0.4:如何实现按产品划分的报表总计?
实现Crystal Reports按产品划分的总计效果
方法一:在Crystal Reports中直接设置分组与总计
这种方法无需修改现有数据集,直接在报表设计器内配置:
- 步骤1:添加产品分组
打开报表设计器,右键点击左侧「字段资源管理器」中的产品字段(如ProductName),选择「插入到组」,报表会自动按产品对数据进行分组排列。 - 步骤2:添加组级总计
- 选中金额字段(如
Amount),将其拖拽到组脚注区域(Group Footer); - 右键点击该金额字段,选择「插入」→「汇总」;
- 在汇总设置弹窗中,选择「求和」作为汇总类型,确认「汇总位置」为「组#1 组脚注」(对应产品分组),点击确定后,每组产品的金额总计就会自动生成。
- 选中金额字段(如
- 步骤3:添加全局总计(可选)
若需要所有产品的总金额,将金额字段拖拽到报表脚注区域(Report Footer),同样插入求和汇总即可。
方法二:使用预生成带总计的类型化数据集
如果你已自行生成包含产品级总计的数据集(如每条产品对应一条总计记录,或数据集包含ProductTotal字段),可按以下步骤配置:
- 步骤1:绑定数据集字段
将数据集内的产品名称、明细金额、产品总计字段依次拖拽到报表的*细节区域(Details)*或分组区域。 - 步骤2:区分明细与总计行
若数据集内明细行和总计行通过标识字段(如IsTotal)区分,可通过「抑制显示」功能控制显示逻辑:- 右键点击细节区域,选择「格式化节」;
- 在「抑制显示」的公式编辑器中输入
{DataSet.IsTotal} = True,确保总计行不会显示在明细区域; - 将总计字段拖拽到组脚注区域,设置其抑制显示公式为
{DataSet.IsTotal} = False,仅显示对应产品的总计行。
- 步骤3:样式优化
可给总计行设置加粗等样式突出显示:右键点击总计字段,选择「格式化字段」,在「字体」选项卡勾选「加粗」即可。
内容的提问来源于stack exchange,提问作者Beppe Salvaderi
相关产品推荐
相关产品推荐

