表格的创建:

Plant Simulation中表格可以由以下几种方式定义:TableFile,Variable的Table类型,Table中的列类型为Table,自定义属性中的Table属性,Method中定义的Table类型变量。

除方法中的表变量外,其他种类的表格均为可视化的表格,可以手动格式化表格。方法中表格的创建可以利用一些函数。

示例:

local  StringTab:  table; / *定义一个默认格式的表格,列数不定,数据类型为string * /

local  MixTab:  table[integer,  string]; / *定义一个有初始格式的表格,共两列,数据类型第一列为整数,第二列为字符串* /

StringTab. create; / *生成StringTab表格,行数不定* /

MixTab.create (4); / *生成MixTab表格,共4行,MixTab为两列四行的表格* /

MixTab.forget; / *删除MixTab表格,删除仅仅删除数据,忘记删除整个表格* /

在程序运行中,方法生成的表格变量是可以打开的。

表格操作函数:

writeRow(Column:<any>, Row:<any>, Value:<any> [,Value:<any>, …, Value:<any>])

填写表格中的一行的数据。

示例:TableFile.writeRow(1,3,”a”,”b”);  /*在TalbeFile的第1列、第3行的单元格开始向后写入”a”, “b”两个值*/

copyRangeTo(SourceRange:<listrange>, TargetTable:<any>, TargetColumn:<any>, TargetRow:<any>)

从一个表格中复制数据到另一个表格。

示例:OriginTab.copyRangeTo({1,2}..{4,3}, DesTab, 2, 3);  /*将OriginTab表格中从第1列第2行到第4列第3行范围内的数据复制到DesTab表格中,从DesTab表格中的第2列第3行开始复制。

insertRow(Above:<any>)

向表格中插入一个空白行。

示例:TableFile.insertRow(2);  /*在TableFile的第2行上方插入一个空白行,原第2行变为第3行*/

insertColumn(RightOfColumn:<any>)

向表格中插入一个空白列。

示例:TableFile.insertColumn(2);  /*在TableFile的第2列左侧插入一个空白列,原第2列变为第3列*/

cutRow(Row:<any>)

删除表格中的一行。

示例:TableFile.cutRow(3);  /*删除TableFile中的第3行*/

setCursor(Column:<any>, Row:<any>)

设置游标位置。

示例:TableFile.setCursor(1,1);  /*将当前游标位置设置为第1行第1列*/

CursorX

当前列游标的位置。

示例:

TableFile.CursorX :=2 ;  /*将列游标设置为2*/

TableFile.CursorX;           /*获取当前列游标的值*/

CursorY

当前行游标的位置。

示例:

TableFile.CursorY :=2 ;  /*将行游标设置为2*/

TableFile.CursorY;           /*获取当前行游标的值*/

find(Range:<listrange>, Value:<any>)

查找表格中的值。查找从当前游标位置开始,所以查询结果与当前游标位置相关,使用前要先设置游标位置,查询结束后,游标位置为查询到的值的位置。

示例:

TableFile.setCursor(1,1);                     /*重置游标位置到 (1,1)*/

TableFile.find({1,1}..{*,*}, “value”);  /*在TableFile表格的整张表中查找值 “value”,如存在该值则返回TRUE,不存在则返回FALSE*/

TableFile.CursorY                                  /* “value” 位置的行坐标 */

max([Range:<listrange>, …])

寻找范围内的最大值。查找从当前游标位置开始,所以查询结果与当前游标位置相关,使用前要先设置游标位置,查询结束后,游标位置为查询到的值的位置。

示例:

TableFile.setCursor(1,1);       /*重置游标位置到 (1,1)*/

TableFile.max({1,1}..{*,*});  /*在TableFile表格的整张表中查找最大值*/

TableFile.CursorY                   /*最大值位置的行坐标 */

min([Range:<listrange>, …])

寻找范围内的最小值。查找从当前游标位置开始,所以查询结果与当前游标位置相关,使用前要先设置游标位置,查询结束后,游标位置为查询到的值的位置。

示例:

TableFile.setCursor(1,1);      /*重置游标位置到 (1,1)*/

TableFile.min({1,1}..{*,*});  /*在TableFile表格的整张表中查找最小值*/

TableFile.CursorY                  /*最小值位置的行坐标 */

setDataType(Column:<any> [,Column:<any>, …], DataType:<string>)

设置单元格格式。

示例:

TableFile.setDataType({1,*}..{1,*} , “real”);  /*将TableFile第一列数据格式设置为”real” */

getDataType(Column:<any>)

读取单元格格式。

示例:

TableFile.getDataType({1,*}..{1,*});  /*读取TableFile第一列数据格式,返回值为字符型数据*/

initialize([Range:<listrange>, …,] Value:<any>)

初始化表格内容。

示例: TableFile.initialize({1,1}..{1,5},”ok”);  /*将TableFile表格{1,1}..{1,5}范围内的单元格的值填入”ok”*/


如有不完善之处,欢迎随时指正。

1 对 “SimTalk常用函数介绍(三):表格操作相关函数”的想法;

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注