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

Crystal Report循环取值问题:匹配WOS与RS表返回上一步工序号

Crystal Reports 上一步工序匹配实现方案

原代码错误原因

  1. 没有定义变量存储循环中递减的工序号,每次减1操作没有被持久化保存,循环永远基于原始Step Number执行,永远无法得到正确匹配结果
  2. 没有将RS表的同工单所有Step Number转换为可匹配的集合,直接单值判断只会匹配当前行对应的RS工序,不会遍历当前工单的所有RS有效工序

正确实现公式

// 1. 初始化变量:存储当前待匹配的工单工序号
NumberVar currentStep := ToNumber({WO3_WorkOrderOperationDetail.StepNumber});
// 2. 读取当前工单对应的所有RS工艺路线有效工序号集合
NumberVar Array validRouteSteps := Array(ToNumber({WO_97_UDF_WORoutingLines.StepNumber}));

// 3. 循环递减直到匹配到RS中存在的工序,添加currentStep>0避免无匹配时死循环
Do
(
    currentStep := currentStep - 1
)
While Not( currentStep In validRouteSteps And currentStep > 0 );

// 4. 返回最终匹配结果
currentStep

配置注意事项

  • 必须先保证WOS工单工序表和RS工艺路线表已经通过工单唯一ID建立正确的表关联,公式才能读取到当前工单对应的所有RS工序集合,不会跨工单匹配
  • 无匹配场景下公式默认返回0,可根据业务需求修改边界判断逻辑,例如把返回值调整为Null、-1或其他自定义标识
  • 如果公式运行时提示数组错误,可将公式放置在「工单分组」的上下文内执行,避免读取全表RS工序号

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 17:15:02