1、假设如图中的一个场景,数码产品修理站需要修理两种类型的产品:Phone和Computer。修理站的工作人员希望记录修理每一个产品的开始时间、结束时间、修理时长,以便安排进一步工作。这时我们就需要使用ReadWrite写入数据的功能。主要步骤就是:(1)File Module 的设置, 及(2)建立 ReadWrite Module。
2、首先是File Module 的设置。1)假如我们想要将数据写入到txt文本文件里,Access Type就选择Sequential File。2)Operati荏鱿胫协ng System File Name填写文件名称或是文件路径。这里我们填写ReadWrite.txt。这个文件在模拟完成之后会被自动创建。Tips:Operating System File Name可以填写txt文件的完整路径,这个路径中不能含有中文字符,否则系统无法读取;另外,也可以像例子中直接写这个txt文件的名称,则系统会默认在模型文件所在的文件夹中查找这个文件完成写入,如果这个文件不存在,将会被自动创建。这里建议采取后一种方法,这样当我们把模型和txt文件拷贝给别人时,文件路径的改变不会影响数据的写入。设置File文件也可以双击文件所在的栏位,打开对话框编辑,如图。
3、然后是建立 ReadWrite Module。1)Type选择Write to File。2)用Arena File Name指向我们刚才所设置的File 1文件。3)在Assignment添加我们需要输出的数据。每一个进入ReadWrite模块的实体所带有的相应数据都会被记录下来。如图:第一行,EnterProcessTime记录实体进入系统的时间,这是Assign模块之前替我们采集到的。第二行,TNOW是完成Fix Process后的“当前时刻”。第三行,TNOW - EnterProcessTime用公式计算了加工时间,包括等待的时间。第四行,Str(ENTITIES, Entity.Type)记录的是实体的类型Entity Type,即我们在Creat模块中Entity Type一栏所设定的文字内容。Phone或Computer。
4、-----------------语法Str(ENTITIES, Entity.Type)介踏群拆虮绍---------------幻腾寂埒----------语法:Str(Element Type, Element Symbol Number),返回于Element Type中定义次序与Element Symbol Number一致的那个Element Type的字符。假设Entity.Type =1,即Entity模块中第1个被定义的Entity;那么 Str(ENTITIES, Entity.Type)就返回Entity模块中第1个被定义的Entity的字符串的数值,即“Phone”-----------------------------语法解读完毕--------------------------------------设置完毕,跑模型,下图是txt最终的输出效果。到此我们已经知道如何写入txt文件。
5、那么如何写入Excel文件呢?下面用同样的例子示范。在File Module 的设置之前,需要首先设置Excel中的名称管理器。1)在模型所在的文件夹中建立Excel文件,命名为ReadWrite.xlsx2)在指定输出的Excel 文件中,在Sheet1这张表中,定义A1:D71这个range,它的名字是TestRange。3)将 Sheet1 和 TestRange 这两个参数值记录,稍后需要输入到Arena File Module里面。4)保存并关闭Excel文档。Tips:如果输出四组数值,Excel里面就必须定义四列,例如A列到D列。
6、接下来,回到Arena中设定File模块。1)Access Type选好相应的格式,这里我们选择Excel 2007 (*.xlsx)。2)写好路径。参考步骤(2)设置File3)点击Recordsets,Arena会将当前Excel中的Recordsets都导入进来,显示在Recordsets in file一栏中。4)在Recordsets in file中选择需要写入数据的Named Range。我们选择刚才设定的TestRange。Tips:Recordset Name就是 Excel 文件中你要输出的那个表(sheet) 的名称,例如 Sheet1。Named Range是Excel名称管理器所对应的位置。
7、最后,设定ReadWrite模块。1)Type选择Write to File。2)Record ID对应的就是Recordset Name。在下拉菜单中选择Sheet 1。3)填好Assignment内容。设定完毕跑模型,下图是Excel 2007 (*.xlsx)最终的输出效果。相信大家可以融会贯通读写其他数据库的方法,各位Get到了吗?(关于Type是Write to Screen或Read from Keybroad的情况,这两个选项都是搭配Command工具条进行模型调试和除错时使用的,感兴趣的同学可以试试看。)
8、再补充一点,关于Arena14.70.00 版本,存在一个读写64位Office文件的Bug,会有图中的报错。这时我们需要在Office官网上打一个补丁 。请在 http://www.microsoft.com/download/en/confirmation.aspx?id=23734 下载:AccessDatabaseEngine.exe问题就可以解决了。