根据 Anylogic 中的进程类型从三个表之一中选择工作站延迟时间

selecting workstation delay time from one of three tables based on process type in Anylogic

我有一条生产线,有四个工作站(ws1、ws2、ws3、ws4)。存在三种不同的流程方法(Push、Pull3、Pull1)。根据处理方法,每个工作站的延迟时间在每个操作期间可能不同(例如与 "ws1timeParameter" 相关联)。现在我有三个 tables, (Push, Pull3, Pull1)。每个 table 都有包含工作站 ws1、ws2、ws3 和 ws4 延迟时间的列。当我固定使用一种流程方法(在此示例中为推送流程)时,以下工作正常

 selectFrom(push)
.where(push.period.eq(ws1timeParameter))
.uniqueResult(push.ws1, double.class)   

如何在延迟中插入条件,以便它应用与所选进程类型关联的 table。 (我有一个组合框绑定到一个变量来保存流程类型)。

感谢您的任何见解。

您有 2 个选择:

  1. 在延迟块的持续时间代码行中使用条件语句,例如 myType == push ? selectFrom(push)... : selectFrom(pull)... 这些称为条件语句,您也可以有嵌套条件,请查看 Google 了解更多信息(这是一个 Java 功能)

  2. 创建函数并写出标准 if else 语句。该函数将您的延迟类型(push1、pull...)作为参数以及所有其他信息来提取正确的数据库值。它 returns 处理时间翻倍。从延迟的持续时间代码框中调用函数(而不是您的 SQL 代码)

干杯