我需要一些关于Anylogic模型的帮助。
模型(短):订单在单个路由中移动的制造场景。工作场所(WP)是通过模拟启动动态创建的。它们的名称、数量和其他参数存储在数据库中(excel导入)。订单也是根据导入创建的。代理人口“订单”有一个集合路由,其中包含它必须以特定顺序停止的工作场所。
目标:我想要一个moveTo块在main中找到代理订单的下一个目的地。问题和解决方案路径:
>
我将目标类型设置为代理,并在代理字段中键入一个函数agent.get目标()
。此函数按顺序返回集合的下一个条目WP目标名称=routing.get(i)
。这样我得到一个数据类型错误(在运行未编译时)。我怀疑这是因为数据库没有将入口保存为WP类型,而只保存为字符串。是否有可能从Excel创建带有代理的集合?
在此之后,我尝试使用与字符串相同的getDestination,通过findFirst查找与返回名称匹配的WP,并将其作为WP返回<代码>WP targetWP=findFirst(wps,w-
我认为这并不难,但找不到答案或解决方案。正如你所知,我是一个初学者。。。希望描述是好的,有人可以帮助我或给我一个提示:)谢谢
欢迎使用堆栈溢出:)要通过Excel导入创建填充,必须创建一个方法并调用如下代码。您还需要一个空的人口int n=excelFile。getLastRowNum(您的姓名);for(int i=第一行;i
现在,如果您想按名称获取工作场所,您必须创建一个与您的尝试类似的方法<函数体:WP workplaceToFind=wps。findFirst(w-
是否可以使用Excel中的代理创建集合?
不直接使用集合的属性,并且正如您所看到的,您不能拥有作为代理类型的数据库(DB)列类型1
但是直接通过Java代码(您可以使用插入数据库查询向导为您构建框架代码)相对简单。
在此之后,我尝试使用与字符串相同的getDestination,通过findFirst查找与返回名称匹配的WP,并将其作为WP返回
是的,这是一种方法。如果您的订单详细信息在Excel/数据库中,它们可能是通过某个字符串ID(这将是您从单独的Excel工作表/数据库表创建的工作场所代理的参数)引用工作场所的。但是,您需要使用Javaequals
方法来比较字符串,而不是==
(用于比较数字或两个对象是否是同一个对象)。
我想要一个移动到主块,找到代理订单的下一个目的地
所以一般的整体解决方案是
>
从DB创建一组Workplace
代理(假设在Main中称为workplace
),每个代理都有一个String参数id
或从DB列映射的类似参数。
从DB创建一组order
代理(比如在Main中称为订单
),然后在它们的启动操作中,使用另一个DB表中的数据设置它们的工作场所ID集合(类型ArrayList
,元素类String
;假设称为workplaceIDsList
)。
order
可能还需要一个工作变量,将下一个索引存储在它需要去的列表中(所以假设一个int
变量nextWorkplaceIndex
从0开始)。
在Main中编写一个名为getWorkplaceByID的函数,该函数具有一个字符串,并返回一个工作区。这将从与ID匹配的人群中获取工作场所;与您的方法类似的单行方法是findFirst(workplaces,w)-
MoveTo块(我假设它在Main中)需要将order
移动到由getWorkplaceByID(agent.workplaceIDsList.get(nextWorkplaceIndex))
定义的代理。(位在计算表达式后增加索引,以便为下一个工作场所做好准备。)
为了填充集合,您将有两个表,如下所示(假设使用字符串作为工作场所和订单的ID):
>
order\u-workplaces
表:列order\u-id
、sequence\u-num
和workplace\u-id
(因此有多行指定订单id的工作区id序列)。
在订单的启动操作中,通过插入数据库查询向导设置骨架查询代码,如下所示(在这里,我们希望循环此订单ID的所有行,并做一些事情——我们将更改骨架代码以向集合中添加条目,而不是像骨架代码那样仅通过traceln打印内容)。
https://imgs.xnip.cn/cj/n/32/81f154b1-93e4-41bc-bac0-c14c3d4a8631.png" width="100%" height="100%" />
然后我们编辑骨架代码如下所示。(请注意,我们在初始查询中添加了一个orderBy
子句,因此我们确保以升序序列号顺序获取行。)
List<Tuple> rows = selectFrom(order_workplaces)
.where(order_workplaces.order_id.eq(id))
.orderBy(order_workplaces.sequence_num.asc())
.list();
for (Tuple row : rows) {
workplaceIDsList.add(row.get(order_workplaces.workplace_id));
}
AnyLogic数据库是一个普通的关系数据库——实际上是HSQLDB——数据库只理解它们自己的特定数据类型,如VARCHAR,AnyLogic和它使用的库将这些数据类型转换为Java类型,如String。在用户界面中,AnyLogic使其看起来像是将列类型设置为int、String等。但这些实际上是列内容最终将被翻译成的Java类型。
AnyLogic确实支持具有选项列表类型的列(以及包含可执行Java代码的列的特殊类型列),但这些是特殊情况,在后台使用特殊逻辑将列数据(最终仍然是一个字符串)转换为适当的选项列表实例,或(对于代码列)转换为动态编译,然后执行Java)。
简介 Laravel 可以用 seed 类轻松地为数据库填充测试数据。所有的 seed 类都存放在 database/seeds 目录下。你可以任意为 seed 类命名,但是更应该遵守类似 UsersTableSeeder 的命名规范。Laravel 默认定义的一个 DatabaseSeeder 类。可以在这个类中使用 call 方法来运行其它的 seed 类从而控制数据填充的顺序。 编写 See
问题内容: 我一直在尝试使用从数据库查询的数据加载TableView,但似乎无法使其正常工作。 这是我第一次尝试用数据库查询项填充数据库的情况,以防我的代码看起来杂乱无章,而且效果不佳。 FXML是通过JavaFx SceneBuilder完成的。 这是数据库查询类: 这是通过JavaFx场景生成器生成的FXML脚本: 问题答案: 这是将数据从数据库填充到tableView的最佳解决方案。 这是参
问题内容: 如何填充一个int列(当前为空),其中包含不带重复项的随机数? 问题答案: 我想您可以使该列成为防止重复的主键,尽管这是一种hack。您可以稍后删除密钥。
我正在创建一个web应用程序,您必须从数据库中读取对象/实体的列表,并将其填充到JSF
问题内容: 我正在尝试使用我的Derby数据库数据填充Netbeans GUI-builder jTable。 我在Account.java类中使用以下代码: 理想情况下,我希望能够返回其中包含参数数据和列的tableModel,因为我知道在GUI中执行此方法是一种不好的做法。在线上的所有教程都没有显示如何将数据发送到另一个类,它们只是在GUI类中执行数据库代码。 我有一个错误,它看不到数据和列,