SELECT_FROM_LTAB
このコマンドによって、ユーザは、ソース論理テーブルと呼ばれる論理テーブルからユーザ指定の選択基準に従って行を選択し、一致する行の位置を論理テーブル sys_select に書き込むことができます。オプションで、一致する行を宛先論理テーブルと呼ばれる別の論理テーブルに書き込むこともできます。
このコマンドのフォーマットは、次のとおりです。
SELECT_FROM_LTAB 'Source Logical table name'
COLUMN Column-number
or ( = or <> or > or < or >= or <= )
'Selection-string' or Selection-number
END or ( or APPEND 'Destination Logical table name')
このコマンドの例を以下に示します。
SELECT_FROM_LTAB 'logtable1'
COLUMN 1
>=
10
END
SELECT_FROM_LTAB には 5 つのパラメータが必要です。最初のパラメータは、データを選択するソース論理テーブルの名称です。この例では、論理テーブルは logtable1 です。2 番目のパラメータは、選択に使用される列の位置で、この例では COLUMN 1、つまり、最初の列です。3 番目のパラメータは、選択演算子で、この例では、>=、つまり、より大きいかまたは等しいです。そのほかに、=、<>、>、<、<= などの演算子を使用できます。4 番目のパラメータは、選択文字列または選択値で、この例では 10、つまり文字列 '10' ではなく数値 10 です。5 番目のパラメータは、END または選択された行のコピー先の宛先論理テーブル名のいずれかです。この例では、END が指定されていて、これはコマンドの終わりを意味します。
要約すると、上記の例は、行の COLUMN 1 に値 = 10 が含まれている場合に、ソース論理テーブル logtable1 からその行を選択し、選択された行の位置を論理テーブル sys_select に書き込むという意味です。
たとえば、論理テーブル logtable1 に下記のデータが含まれていて、
1 20
5 25
10 11
22 17
43 13
ユーザが上記の例のマクロプログラムを実行するものとします。その結果、論理テーブル sys_select には、以下のデータが含まれます。
3
4
5
その理由は、logtable1 の行 3、4、および 5 だけが選択基準を満たしているからです。
別の例を以下に示します。
SELECT_FROM_LTAB 'logtable1'
COLUMN 2
=
'PARTS'
APPEND 'logtable2'
要約すると、上記の例は、行の COLUMN 2 に文字列 = 'PARTS' が含まれている場合に、ソース論理テーブル logtable1 からその行を選択し、選択された行の位置を論理テーブル sys_select に書き込むという意味です。さらに、この例は APPEND も行います。つまり、選択された行を宛先論理テーブル logtable2 の最後にコピーします。
オプション APPEND を指定すると、このコマンドは、指定された論理テーブルがすでに存在するものと見なします。オプション APPEND を指定しないと、このコマンドは、指定された論理テーブルが存在しないものと見なし、指定した名称を持つ新しい論理テーブルが作成されます。
たとえば、論理テーブル logtable1 と logtable2 にそれぞれ下記のデータが含まれていて、
PISTON DRAWING 4
BOLTS PARTS 10
NUTS PARTS 10
CRANKSHAFT DRAWING 1
WASHERS PARTS 10
および
WHEEL ASSEMBLY 2
FRAME ASSEMBLY 1
HANDLE ASSEMBLY 1
ユーザが上記の例のマクロプログラムを実行するものとします。その結果、論理テーブル sys_select と logtable2 には、それぞれ以下のデータが含まれます。
2
3
5
および
WHEEL ASSEMBLY 2
FRAME ASSEMBLY 1
HANDLE ASSEMBLY 1
BOLTS PARTS 10
NUTS PARTS 10
WASHERS PARTS 10
その理由は、logtable1 の行 2、3、および 5 だけが選択基準を満たしているからです。logtable1 の行 2、3、および 5 の内容が logtable2 の最後に追加コピーされていることがわかります。