Description
A class that represents a table structure.
A Table contains methods and properties associated with manipulating table
data in FlexSim. A Table may be one of the following:
- A Tree Table: This is a table whose data is defined in the tree structure. This
consists of a root node with one or more subnodes, each representing a row in the table. Subnodes
of each row represent cells in the table.
- A Bundle Table: This is a table whose data is defined by a bundle node. This
consists of a node in the tree that contains bundle data.
- A Query Result Table: This is a read-only in-memory table that contains the result
of a call to Table.query().
- An Array Table: This is an in-memory table that references a two-dimensional array.
Bundle and tree tables can be stored anywhere in the model tree. Often they are stored as global tables,
or on object labels.
Properties
numCols |
The number of columns in the table. |
numRows |
The number of rows in the table. |
Methods
addCol |
Adds a column to the table. |
addIndex |
Adds an index to the specified column. |
addRow |
Adds a row to the table. |
cell |
Returns a specific table cell. |
clear |
Sets all cells to empty values. |
clone |
Creates an array copy of the table. |
cloneTo |
Copies all values from this table to the target table, returning the target table. |
deleteCol |
Deletes a table column. |
deleteRow |
Deletes a table row. |
executeCell |
Executes the text on the cell as FlexScript. |
getColHeader |
Gets a table column header. |
getColNum |
Gets the index of a table column header. |
getRowByKey |
Searches a column for the specified key value. |
getRowHeader |
Gets a table row header. |
getRowNum |
Gets the index of a table row header. |
getValueByKey |
Searches a column for the specified key value, and returns one or more values from the matching row. |
hasIndex |
Returns the index type of the specified column if it has an index, otherwise 0. |
moveCol |
Moves a column to a new index. |
moveRow |
Moves a row to a new index. |
removeIndex |
Removes an index from the specified column |
setColHeader |
Renames a column header. |
setRowHeader |
Renames a row header. |
setSize |
Resizes the table. |
sort |
Sorts table columns. |
swapCols |
Swaps indexes of the two columns. |
swapRows |
Swaps indexes of the two rows. |
Constructor
Table |
Creates a reference to a table. |
Static Methods
query |
Executes an SQL query, returning the result as a Table. |
Operators
[] |
Gets or sets the value of a table cell. |
= |
Assigns a reference to a treenode to the Table object. |
Details
Do no remove, this fixes the anchor on doc.flexsim.com
readonly int numCols
Description
The number of columns in the table.
int columns = table.numCols;
For bundles it is the number of fields.
Do no remove, this fixes the anchor on doc.flexsim.com
readonly int numRows
Description
The number of rows in the table.
int rows = table.numRows;
For bundles it is the number of entries.
Do no remove, this fixes the anchor on doc.flexsim.com
Parameters
col |
The index at which to insert the column. |
datatype |
The datatype of the new column. |
Returns
Description
Adds a column to the table.
table.addCol(2);
If no column index is specified the column will be added at the end.
If no datatype is specified the new column will copy the datatype of the previous column.
Do no remove, this fixes the anchor on doc.flexsim.com
Table.addIndex()
addIndex(
Variant keyCol
,
int indexType = Table.IndexType.Unordered
)
|
Parameters
keyCol |
A column name or number |
indexType |
The type of index desired. Can be either Table.IndexType.Unordered or Table.IndexType.Ordered.
Generally the default unordered value is sufficient. Table.IndexType.Ordered can be useful if you are querying the table with
Table.query() with a WHERE filter that uses a >, <,
>=, or <= comparison on the column. |
Description
Adds an index to the specified column.
An index can significantly improve the performance of
the following operations:
- Using the Table.getRowByKey() method with the indexed column
- Using the Table.getValueByKey() method with the indexed column
- Finding a value from the indexed column in a query (e.g.
WHERE IndexedCol = SomeValue
An index can significantly slow performance to operations that change the table. If
a table changes frequently during the model run, an index is not recommended.
You can only add an index to a column in a Bundle table.
Do no remove, this fixes the anchor on doc.flexsim.com
Parameters
row |
The index at which to insert the row. |
datatype |
The datatype of the new row. |
Returns
Description
Adds a row to the table.
table.addRow(2);
If no row index is specified the row will be added at the end.
If no datatype is specified the cells will copy the datatype of the cells in the previous row.
Do no remove, this fixes the anchor on doc.flexsim.com
Parameters
row |
The row index. |
col |
The column index. |
Returns
Description
Returns a specific table cell.
table.cell(2,"Row 3").value = 4;
This will throw an exception for bundles.
Do no remove, this fixes the anchor on doc.flexsim.com
Parameters
recursive |
If set to 1, clear will be called on cells with bundle data, array data and on cells that have node tables. |
Returns
Description
Sets all cells to empty values.
table.clear();
table.clear(1);
Number cells will be set to 0, string cells to an empty string, and pointer cells will be set to a null pointer.
Do no remove, this fixes the anchor on doc.flexsim.com
Returns
Array
|
A copy of the table in an array. |
Description
Creates an array copy of the table.
Array myArray = Table("Parts").clone();
Do no remove, this fixes the anchor on doc.flexsim.com
Parameters
target |
The target table. This must be a tree-bound table, such as a bundle or tree table. |
Returns
Table
|
The resulting table. This is the same table as the target. |
Description
Copies all values from this table to the target table, returning the target table.
Table.query("SELECT * FROM Customers ORDER BY Name").cloneTo(Table("QueryDump"));
Do no remove, this fixes the anchor on doc.flexsim.com
Table.deleteCol()
Parameters
col |
The index of the column to delete. |
Returns
Description
Deletes a table column.
table.deleteCol(3);
Will throw an exception if no column is specified or the column doesn't exist.
Do no remove, this fixes the anchor on doc.flexsim.com
Table.deleteRow()
Parameters
row |
The index of the row to delete. |
Returns
Description
Deletes a table row.
table.deleteRow(3);
Will throw an exception if no row is specified or the row doesn't exist.
Do no remove, this fixes the anchor on doc.flexsim.com
Table.executeCell()
Parameters
row |
The row index. |
col |
The column index. |
Returns
Variant
|
The return value of the executed function. |
Description
Executes the text on the cell as FlexScript.
Variant result = table.executeCell(2, "Row 3");
Do no remove, this fixes the anchor on doc.flexsim.com
Table.getColNum()
Parameters
colHeader |
The column header. |
Returns
int
|
The index of the column header. |
Description
Gets the index of a table column header.
int col = table.getColNum("Orders");
Returns 0 if the column header doesn't exist.
Do no remove, this fixes the anchor on doc.flexsim.com
Table.getRowByKey()
Parameters
key |
The value to use as the key |
keyCol |
The column to search for the key value. |
Returns
int
|
The row number containing the key value in the specified column.
If no match was found, returns 0. |
Description
Searches a column for the specified key value.
If the
keyCol
is not specified, the first indexed
column in the table will be searched. If there is no indexed column, the first
column (column 1) will be searched.
If the column to search has an index, then the index will be used to look up
the correct row, rather than searching row by row.
Do no remove, this fixes the anchor on doc.flexsim.com
Table.getRowNum()
Parameters
rowHeader |
The row header. |
Returns
int
|
The index of the row header. |
Description
Gets the index of a table row header.
int row = table.getRowNum("Type");
Returns 0 if the row header doesn't exist.
Do no remove, this fixes the anchor on doc.flexsim.com
Table.getValueByKey()
Parameters
key |
The value to use as the key |
valueCol |
A column (name or number) to retrieve data from. |
keyCol |
The column to search for the key value. |
Returns
Variant
|
The value in the valueCol in the matching row. |
Description
Searches a column for the specified key value, and returns one or more values from the matching row.
If the
keyCol
is not specified, the first indexed
column in the table will be searched. If there is no indexed column, the first
column (column 1) will be searched.
If the column to search has an index, then the index will be used to look up
the correct row, rather than searching row by row.
Once the matching row is found, the value in
valueCol
on that
row is retrieved. If
valueCol
is an array, the values from
each specified column will be retrieved, and returned as an array.
Do no remove, this fixes the anchor on doc.flexsim.com
Table.hasIndex()
Parameters
keyCol |
A column name or number |
Returns
int
|
If the specified column has an index, returns either Table.IndexType.Ordered or Table.IndexType.Unordered. |
Description
Returns the index type of the specified column if it has an index, otherwise 0.
An index can be added using the
Table.
addIndex()
method.
Do no remove, this fixes the anchor on doc.flexsim.com
Parameters
col |
The index of the column to move. |
newCol |
The index where the column will be moved. |
Returns
Description
Moves a column to a new index.
table.moveCol(2, 5);
Do no remove, this fixes the anchor on doc.flexsim.com
Parameters
row |
The index of the row to move. |
newRow |
The index where the row will be moved. |
Returns
Description
Moves a row to a new index.
table.moveRow(2, 5);
Do no remove, this fixes the anchor on doc.flexsim.com
Table.removeIndex()
Parameters
keyCol |
A column name or number. |
Description
Removes an index from the specified column
An index can be added using the
Table.
addIndex()
method. If the specified column does not have an index,
this method does nothing.
Do no remove, this fixes the anchor on doc.flexsim.com
Parameters
rows |
The new number of rows. |
cols |
The new number of columns. |
datatype |
The datatype of new cells. |
overwrite |
If old cells should have their values reset. |
Returns
Description
Resizes the table.
table.setSize(5, 3);
Do no remove, this fixes the anchor on doc.flexsim.com
Parameters
columns |
The column or columns to sort. |
sortDirections |
The directions each column should be sorted. 0 is Descending and 1 is Ascending. |
Returns
Description
Sorts table columns.
table.sort(1);
table.sort([1, 2, 3], [1, 0, 1]);
Do no remove, this fixes the anchor on doc.flexsim.com
Table.swapCols()
Parameters
col |
The index of the first column. |
col2 |
The index of the ssecond column. |
Returns
Description
Swaps indexes of the two columns.
table.swapCols(2, 4);
Do no remove, this fixes the anchor on doc.flexsim.com
Table.swapRows()
Parameters
row |
The index of the first row. |
row2 |
The index of the second row. |
Returns
Description
Swaps indexes of the two rows.
table.swapRows(2, 4);
Do no remove, this fixes the anchor on doc.flexsim.com
Table Constructor
Parameters
name |
The name of a global table. |
node |
A table-like treenode. The node should either have
Bundle data, or have table-structured subnodes. |
value |
A global table name, treenode, or array. |
array |
A two-dimensional array. The first dimension spans the rows
whereas the second dimension spans the columns. For example, you could get the result
of a call to Storage.System.
querySlots(), and construct a Table
based on that result. |
Description
Creates a reference to a table.
Table parts = Table("Parts");
int partCount = Table("Parts")[3][4];
Do no remove, this fixes the anchor on doc.flexsim.com
Parameters
queryStr |
The sql query. |
p1-p9 |
Only used if you include $ syntax in the query. This defines additional, dynamically
evaluated parameters associated with the query. The value is a "lambda", a type that simply signifies that the parameter
is evaluated as-needed, not immediately when the method is called. You will usually either pass a reference to a
table node here, defining the table to query, or you will use the $iter() command in a FlexScript expression to
dynamically determine the value of a cell in a "virtual table." If this parameter defines a table, it must
be a tree-bound table or a direct reference to a node. In other words, it cannot
be the result Table of another call to Table.query(), unless you clone that result to a tree-bound table with
Table.cloneTo().
See Sql Query Examples for more information. |
Returns
Table
|
The resulting table. This is a read-only in-memory table (it is not stored on a node in the tree). Use
Table.cloneTo() to copy the result to a tree-bound
table. |
Description
Executes an SQL query, returning the result as a Table.
Table result = Table.query("SELECT * FROM Customers ORDER BY Name");
See Sql Query Examples for more information.
Do no remove, this fixes the anchor on doc.flexsim.com
Table.operator []
Parameters
index |
The index or name of a row or column. |
Returns
Variant
|
The variant held by the table cell. If the cell is a FlexScript node this returns the result of executing the code. |
Description
Gets or sets the value of a table cell.
Variant value = table[2]["Orders"];
table[2]["Orders"] = 5;
An exception will be thrown if the name of a row or column that does not exist is specified. To check that
a row or columns with a certain name exists use Table.getColNum()
or Table.getRowNum().
Do no remove, this fixes the anchor on doc.flexsim.com
Table.operator =
Parameters
node |
The node holding a table. |
Returns
Description
Assigns a reference to a treenode to the Table object.
Table table = Table("Data");
Table labelTable = current.labels["TableData"];