You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Crystal Reports重复日期问题:如何仅统计单条交付日期的工时汇总?

Crystal Reports重复工时条目处理方案

方法一:组选择公式过滤重复条目

你已经实现分组计数,直接利用组选择就能保留每组第一条记录:

  • 确保报表按工单创建主组(若已分组可跳过)
  • 创建组内序号公式@组内序号,公式内容:
    WhilePrintingRecords;
    NumberVar count := If {工单字段} = Previous({工单字段}) Then count + 1 Else 1;
    
    (把{工单字段}替换成你实际的工单字段名)
  • 右键点击工单组 -> 选择「组选择公式」,输入:{@组内序号} = 1,保存后每组仅保留第一条交付日期对应的工时记录,重复条目会被过滤。

方法二:从数据源层面去重(推荐)

直接在SQL数据源里过滤重复数据,从根源解决问题:

  • 打开报表的数据源设置,改用SQL命令模式,输入类似以下SQL(替换成你的表和字段名):
    SELECT *
    FROM (
        SELECT 
            工单编号, 交付日期, 工时,
            ROW_NUMBER() OVER (PARTITION BY 工单编号 ORDER BY 交付日期) AS rn
        FROM 你的业务表
    ) t
    WHERE rn = 1
    
    这段SQL会按工单分组,给每个工单的交付日期排序后只取第一条,报表加载的就是无重复的数据。

方法三:仅汇总单条工时(不过滤记录)

如果需要保留所有交付日期显示,但汇总时只算一次工时:

  • 创建公式@有效工时:
    If {@组内序号} = 1 Then {工时字段} Else 0
    
  • 对@有效工时字段做求和汇总,最终结果就是每个工单仅统计一次工时。

内容的提问来源于stack exchange,提问作者user29920292

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 04:03:28