SQL式の評価結果を精緻化し、常に SQL エレメントとともに使用します。FILTER ステートメントの結果は、SQL クエリーの結果から 1行を戻す必要があります。
基本的な構文:
<FILTER> expression </FILTER>
次の例を検討してみます:
LINE-REF |
ITEM_CODE |
Bore1 |
Bore2 |
Schedule |
Material |
Type |
SG-T1 |
GCA150-RG2 |
6 |
6 |
STD |
NYLON |
GASKET |
SG-T1 |
FCD150-WNRSTD |
6 |
6 |
STD |
CS ASTM A105 |
FLANGE |
SG-T1 |
PA5BSTD |
6 |
6 |
STD |
CS API 5L |
PIPE |
SG-T1 |
EEL90CFSTD-LBW |
6 |
6 |
STD |
FRG CS A234 WPB |
ELBOW |
SG-T1 |
VVGCF150-FLO |
6 |
6 |
STD |
CS ASTM A234 |
VALVE |
SG-T1 |
T1RCFSTD-BW |
6 |
4 |
STD |
FRG CS A234 |
TEE |
SG-T1 |
PA5BSTD |
4 |
4 |
STD |
CS API 5L |
PIPE |
SG-T1 |
EEL90CFSTD-LBW |
4 |
4 |
STD |
FRG CS A234 WPB |
ELBOW |
SG-T1 |
FCD150-WNRSTD |
4 |
4 |
STD |
CS ASTM A105 |
FLANGE |
SG-T1 |
GCA150-RG2 |
4 |
4 |
STD |
NYLON |
GASKET |
SG-T1 |
VVGCF150-FLO |
4 |
4 |
STD |
CS ASTM A234 |
VALVE |
次の SQL ステートメントは、PIPELINE-REFERENCE = 'SG-T1' であればテーブル内のすべての行を返し、それ以外の場合は行を返しません。
<SQL>
SELECT * FROM COMPONENTS WHERE [LINE-REF] = '$P.PIPELINE-REFERENCE$'
</SQL>
FILTER ステートメントは各コンポーネントで順番に評価されます。
<FILTER>
[ITEM_CODE] = '$M.ItemCode$' AND Bore1 = $M.SIZE1$
</FILTER>
FILTER ステートメントの基準に基づいて、1行を返す必要があります。ItemCode = VVGCF150-FLO、Size1 = 4 のコンポーネントで一致する唯一の行はテーブルの最後の行です。
FILTER ステートメントには簡単な比較 (=、<、>、<>) や論理演算子 (AND、OR) を含むことができます。
-
SQL エレメントおよび FILTER エレメントがある場合、SQL エレメントは一度だけ評価されます。FILTER エレメントは各コンポーネント、材料、情報アイテム、ジョイントごとに評価されます。
-
長所 - SQL ステートメントの実行が遅い場合に効果的です。FILTER 要素は SQL クエリーの結果に作用します。
-
短所 - SQL ステートメントのマクロでジョイントコンポーネントのプロパティを使用することはできません。
-
-
FILTER エレメントがない場合、SQL エレメントは各ジョイントで評価されます。
-
長所 - ジョイントのプロパティは SQL ステートメントのマクロに含めることができます。
-
短所 - SQL ステートメントが何度も実行されるため、遅くなることがあります。
-