Crystal Reports XI重复工单处理:筛选指定SequenceID记录
Crystal Reports XI 工单重复显示筛选解决方案
需求规则
- 针对每个工单:
- 保留所有 SequenceID ≥ 900 的记录;
- 同时保留该工单下 SequenceID < 900 的最大记录;
- 若工单无SequenceID ≥ 900的记录,仅保留SequenceID < 900的最大记录。
实现步骤(选择公式法)
直接通过记录选择公式实现筛选,无需复杂分组操作:
- 打开报表后,点击顶部菜单 报表 → 选择专家 → 记录;
- 在弹出的窗口中,点击 显示公式 按钮,替换默认公式为以下内容(注意替换成你实际的表名和字段名):
{你的表名.WorkOrderNumber} = {你的表名.WorkOrderNumber} AND ( {你的表名.SequenceID} >= 900 OR {你的表名.SequenceID} = Maximum(If {你的表名.SequenceID} < 900 Then {你的表名.SequenceID} Else 0, {你的表名.WorkOrderNumber}) )
- 保存公式并刷新报表,即可得到符合要求的结果。
公式逻辑说明
- 第一部分
{你的表名.SequenceID} >= 900:直接保留所有高序列值的记录; - 第二部分
{你的表名.SequenceID} = Maximum(...):筛选出当前工单下所有SequenceID<900中的最大值记录; - 两个条件用
OR连接,确保同时满足两种场景的筛选需求。
示例验证
- 示例1:工单WO1234有SequenceID 4、6、902,公式会保留6(<900的最大值)和902(≥900),与预期输出一致;
- 示例2:工单WO1234只有20、50,公式仅保留50(<900的最大值),符合预期。
内容的提问来源于stack exchange,提问作者Brody Camping
相关产品推荐
相关产品推荐

