Table

説明

テーブル構造を表すクラスです。

Tableには、FlexSimのテーブルデータの操作に関連付けられたメソッドとプロパティが格納されています。Tableは次のいずれか1つとして設定できます。

  1. ツリーテーブル:このテーブルのデータは、ツリー構造で定義されています。このテーブルは1つ以上のサブノードを含むルートノードで構成されており、それぞれがテーブルの行を表します。各行のサブノードはテーブルのセルを表します。
  2. バンドルテーブル:このテーブルのデータは、バンドルノードによって定義されています。このテーブルは、バンドルデータを格納するツリーのノードで構成されています。
  3. クエリ結果テーブル:これは読み取り専用のメモリ内テーブルであり、Table.query()呼び出しの結果を格納します。

バンドルテーブルおよびツリーテーブルは、モデルツリーの任意の場所に保存できます。一般にグローバルテーブルに保存されるますが、オブジェクトラベル上に保存することもあります。

プロパティ

numCols テーブル内の列数。
numRows テーブル内の行数。

メソッド

addCol テーブルに列を追加します。
addIndex 指定された列にインデックスを追加します。
addRow テーブルに行を追加します。
cell 特定のテーブルセルを返します。
clear すべてのセルに空の値を設定します。
clone テーブルの配列コピーを作成します。
cloneTo このテーブルのすべての値をターゲットテーブルにコピーし、ターゲットテーブルを返します。
deleteCol テーブル列を削除します。
deleteRow テーブル行を削除します。
executeCell セル上のテキストをFlexScriptとして実行します。
getColHeader テーブル列ヘッダーを取得します。
getRowByKey 指定されたキー値を列から検索します。
getRowHeader テーブル行ヘッダーを取得します。
getValueByKey 指定されたキー値を列から検索して、一致した行から1つ以上の値を返します。
hasIndex 指定された列にインデックスが存在する場合はインデックスタイプを返し、それ以外の場合は0を返します。
moveCol 列を新しいインデックスに移動します。
moveRow 行を新しいインデックスに移動します。
removeIndex 指定された列からインデックスを削除します。
setColHeader 列ヘッダーの名前を変更します。
setRowHeader 行ヘッダーの名前を変更します。
setSize テーブルのサイズを変更します。
sort テーブル列を並べ替えます。
swapCols 2つの列のインデックスを交換します。
swapRows 2つの行のインデックスを交換します。

コンストラクター

Table テーブルへの参照を作成します。

静的メソッド

query SQLクエリを実行し、結果をテーブルとして返します。

演算子

[] テーブルセルの値を取得もしくは設定します。
= ツリーノードへの参照をTableオブジェクトに代入します。

詳細

削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.numCols

readonly int numCols

説明

テーブル内の列数。

int columns = table.numCols; バンドルの場合、フィールド数となります。
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.numRows

readonly int numRows

説明

テーブル内の行数。

int rows = table.numRows; バンドルの場合、エントリ数となります。
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.addCol()

Table addCol( int col = 0 , int datatype = 0 )

パラメータ

col 列を挿入する箇所のインデックス。
datatype 新しい列のデータタイプ。

戻り値

Table テーブル。

説明

テーブルに列を追加します。

table.addCol(2);

列インデックスが指定されていない場合、列は末尾に追加されます。データタイプが指定されていない場合、新しい列は前の列からデータタイプをコピーします。

削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.addIndex()

addIndex( Variant keyCol , int indexType = Table.IndexType.Unordered )

パラメータ

keyCol 列名または番号
indexType 目的となるインデックスのタイプ。Table.IndexType.UnorderedまたはTable.IndexType.Orderedのどちらかになります。一般的には、デフォルトの順序付けのない値で十分です。Table.IndexType.Orderedは、WHEREフィルタ(列で>、<、>=、もしくは<=を使用して比較を行う)を含むTable.query()を使用してテーブルを照会する際に役立ちます。

説明

指定された列にインデックスを追加します。

次の操作のパフォーマンスは、インデックスによって大幅に改善する場合があります。
  • インデックス付きの列でTable.getRowByKey()メソッドを使用する
  • インデックス付きの列でTable.getValueByKey()メソッドを使用する
  • クエリでインデックス付きの列から値を検索する(例:WHERE IndexedCol = SomeValue
テーブルを変更する操作は、インデックスによって大幅に遅くなる場合があります。モデルの実行中にテーブルを頻繁に変更する場合、インデックスは推奨されません。インデックスの追加は、バンドルテーブルの列にのみ行えます。
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.addRow()

Table addRow( int row = 0 , int datatype = 0 )

パラメータ

row 行を挿入する箇所のインデックス。
datatype 新しい行のデータタイプ。

戻り値

Table テーブル。

説明

テーブルに行を追加します。

table.addRow(2);

行インデックスが指定されていない場合、行は末尾に追加されます。データタイプが指定されていない場合、セルは前の行のセルからデータタイプをコピーします。

削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.cell()

treenode cell( Variant row , Variant col )

パラメータ

row 行インデックス。
col 列インデックス。

戻り値

treenode ツリー内のセルのノード。

説明

特定のテーブルセルを返します。

table.cell(2,"Row 3").value = 4;

このコードは、バンドルの場合、例外をスローします。

削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.clear()

Table clear( int recursive = 0 )

パラメータ

recursive 1に設定すると、バンドルデータや配列データを含むセルおよびノードテーブルを含むセルに対してclearが呼び出されます。

戻り値

Table テーブル。

説明

すべてのセルに空の値を設定します。


table.clear();
table.clear(1);

数字セルは0に設定され、文字列セルは空の文字列に、ポインターセルはnullポインターに設定されます。

削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.clone()

Array clone( )

戻り値

Array テーブルのコピーを配列に格納したもの。

説明

テーブルの配列コピーを作成します。


Array myArray = Table("Parts").clone();
      		
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.cloneTo()

Table cloneTo( Table target )

パラメータ

target ターゲットテーブル。バンドルテーブルやツリーテーブルなど、ツリー制限テーブルである必要があります。

戻り値

Table 結果として得られるテーブル。ターゲットと同じテーブルです。

説明

このテーブルのすべての値をターゲットテーブルにコピーし、ターゲットテーブルを返します。

Table.query("SELECT * FROM Customers ORDER BY Name").cloneTo(Table("QueryDump"));
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.deleteCol()

Table deleteCol( int col )

パラメータ

col 削除する列のインデックス。

戻り値

Table テーブル。

説明

テーブル列を削除します。

table.deleteCol(3);

列が指定されていない場合や列が存在しない場合には、例外がスローされます。

削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.deleteRow()

Table deleteRow( int row )

パラメータ

row 削除する行のインデックス。

戻り値

Table テーブル。

説明

テーブル行を削除します。

table.deleteRow(3);

行が指定されていない場合や行が存在しない場合には、例外がスローされます。

削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.executeCell()

Variant executeCell( Variant row , Variant col )

パラメータ

row 行インデックス。
col 列インデックス。

戻り値

Variant 実行された関数の戻り値。

説明

セル上のテキストをFlexScriptとして実行します。

Variant result = table.executeCell(2, "Row 3");
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.getColHeader()

string getColHeader( int colNum )

パラメータ

colNum 列インデックス。

戻り値

string 列ヘッダーのテキスト。

説明

テーブル列ヘッダーを取得します。

string header = table.getColHeader(2);
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.getRowByKey()

int getRowByKey( Variant key , Variant keyCol = nullvar )

パラメータ

key キーとして使用する値。
keyCol キー値を検索する列。

戻り値

int 指定された列でキー値が格納されている行の番号。一致が検出されない場合、0を返します。

説明

指定されたキー値を列から検索します。

keyColが指定されていない場合、テーブル内で最初にインデックス付けされた列を検索します。インデックス付き列がない場合、最初の列(列1)を検索します。
検索する列がインデックス付きの場合、行から行に検索するのではなく、インデックスを使用して正しい行を調べます。
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.getRowHeader()

string getRowHeader( int rowNum )

パラメータ

rowNum 行インデックス。

戻り値

string 行ヘッダーのテキスト。

説明

テーブル行ヘッダーを取得します。

string header = table.getRowHeader(2);
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.getValueByKey()

Variant getValueByKey( Variant key , Variant valueCol , Variant keyCol = nullvar )

パラメータ

key キーとして使用する値。
valueCol データの取得先となる列(名または番号)
keyCol キー値を検索する列。

戻り値

Variant 一致する行にあるvalueColの値。

説明

指定されたキー値を列から検索して、一致した行から1つ以上の値を返します。

keyColが指定されていない場合、テーブル内で最初にインデックス付けされた列を検索します。インデックス付き列がない場合、最初の列(列1)を検索します。
検索する列がインデックス付きの場合、行から行に検索するのではなく、インデックスを使用して正しい行を調べます。
一致する行が検出されると、その行にあるvalueColの値を取得します。valueColが配列の場合、指定された各列の値が取得されて、配列として返されます。
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.hasIndex()

int hasIndex( Variant keyCol )

パラメータ

keyCol 列名または番号

戻り値

int 指定された列がインデックス付きの場合、Table.IndexType.OrderedもしくはTable.IndexType.Unorderedのどちらかを返します。

説明

指定された列にインデックスが存在する場合はインデックスタイプを返し、それ以外の場合は0を返します。

インデックスは、Table.addIndex()メソッドを使用して追加できます。
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.moveCol()

Table moveCol( int col , int newCol )

パラメータ

col 移動する列のインデックス。
newCol この列の移動先のインデックス。

戻り値

Table テーブル。

説明

列を新しいインデックスに移動します。

table.moveCol(2, 5);
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.moveRow()

Table moveRow( int row , int newRow )

パラメータ

row 移動する行のインデックス。
newRow この行の移動先のインデックス。

戻り値

Table テーブル。

説明

行を新しいインデックスに移動します。

table.moveRow(2, 5);
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.removeIndex()

removeIndex( Variant keyCol )

パラメータ

keyCol 列名または番号。

説明

指定された列からインデックスを削除します。

インデックスは、Table.addIndex()メソッドを使用して追加できます。指定された列がインデックス付きでない場合、このメソッドは何も行いません。
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.setColHeader()

Table setColHeader( int colNum , string name )

パラメータ

colNum 列インデックス。
name 新しい列ヘッダー名。

戻り値

Table テーブル。

説明

列ヘッダーの名前を変更します。

table.setColHeader(2, "Orders");
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.setRowHeader()

Table setRowHeader( int rowNum , string name )

パラメータ

rowNum 行インデックス。
name 新しい行ヘッダー名。

戻り値

Table テーブル。

説明

行ヘッダーの名前を変更します。

table.setRowHeader(2, "Order 2");
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.setSize()

Table setSize( int rows , int cols , int datatype = 0 , int overwrite = 0 )

パラメータ

rows 新しい行数。
cols 新しい列数。
datatype 新しいセルのデータタイプ。
overwrite 古いセルの値をリセットすべきかどうか。

戻り値

Table テーブル。

説明

テーブルのサイズを変更します。

table.setSize(5, 3);
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.sort()

Table sort( Variant columns , Variant sortDirections = 0 )

パラメータ

columns 並べ替えの対象となる1つ以上の列。
sortDirections 各列を並べ替える際の方向。0が降順で、1が昇順です。

戻り値

Table テーブル。

説明

テーブル列を並べ替えます。

table.sort(1);table.sort([1, 2, 3], [1, 0, 1]);
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.swapCols()

Table swapCols( int col , int col2 )

パラメータ

col 最初の列のインデックス。
col2 2番目の列のインデックス。

戻り値

Table テーブル。

説明

2つの列のインデックスを交換します。

table.swapCols(2, 4);
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.swapRows()

Table swapRows( int row , int row2 )

パラメータ

row 最初の行のインデックス。
row2 2番目の行のインデックス。

戻り値

Table テーブル。

説明

2つの行のインデックスを交換します。

table.swapRows(2, 4);
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Tableコンストラクター

Table( string name )
Table( treenode node )
Table( Variant value )

パラメータ

name グローバルテーブルの名前。
node テーブルに類似したツリーノード。
value グローバルテーブル名またはテーブルに類似したツリーノード。

説明

テーブルへの参照を作成します。

文字列を渡した場合、その文字列はグローバルテーブル名と解釈されます。ツリーノードを渡した場合、そのツリーノードはバンドルデータを持つテーブルか、テーブル構造のサブノードを持つテーブルと解釈されます。バリアント値を渡す場合、その値は文字列もしくはツリーノード値である必要があります。Table parts = Table("Parts");
int partCount = Table("Parts")[3][4];
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.query()

static Table query( string queryStr , lambda p1 ... p9 = 0 )

パラメータ

queryStr SQLクエリ。
p1-p9 クエリに$構文を含める場合にのみ使用します。これは、クエリと関連付けられて動的評価される追加パラメータを定義したものです。値は「ラムダ」タイプです。このタイプでは、パラメータがメソッド呼び出しと同時に評価されるのではなく、必要に応じて評価されます。通常ここでは、テーブルノードの参照を渡して、クエリを実行すべきテーブルを定義するか、もしくはFlexScript式で$iter()コマンドを使用して「仮想テーブル」のセル値を動的に判断します。このパラメータでテーブルを定義する場合、そのテーブルはツリー制限テーブルか、もしくはノードの直接参照である必要があります。言い換えると、Table.cloneTo()を使用してツリー制限テーブルに対する結果のクローンを作成しない限り、Table.query()に対する別の呼び出しに関する結果テーブルにはなりません。詳細については、SQLクエリの例を参照してください。

戻り値

Table 結果として得られるテーブル。これは読み取り専用のメモリ内テーブルです(ツリー内のノードには格納されません)。Table.cloneTo()を使用して結果をツリー制限テーブルにコピーします。

説明

SQLクエリを実行し、結果をテーブルとして返します。

Table result = Table.query("SELECT * FROM Customers ORDER BY Name");

詳細については、SQLクエリの例を参照してください。

削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.operator []

Variant operator []( Variant index )

パラメータ

index 行または列のインデックスもしくは名前。

戻り値

Variant テーブルセルに保持されるバリアント。セルがFlexScriptノードの場合、コードの実行結果を返します。

説明

テーブルセルの値を取得もしくは設定します。

Variant value = table[2]["Orders"];table[2]["Orders"] = 5;
削除を行わないでください。doc.flexsim.comのアンカーが修正されます。

Table.operator =

Table operator =( treenode node )

パラメータ

node テーブルを保持するノード。

戻り値

Table テーブル。

説明

ツリーノードへの参照をTableオブジェクトに代入します。

Table table = reftable(1);