ユーザー指定の値をOpen Database()SQLブロックに渡す良い一日、
現在、Open Database()コマンドを介して実行されているSQLコードのブロックがあります。このSQLブロックは他の人によって生成されたもので、ユーザーインターフェイスを合理化しようとしています。現在、注文番号はSQLブロックに手動で入力され、新しい注文番号が必要になるたびに上書きする必要があります。ユーザー指定の注文番号を取得するJMP GUIを構築しました。
このユーザー指定の注文番号をSQLコードに渡します。
現在の注文番号が手動で入力されたSQLセグメント(25891769)
where
ShopFloorControl.ManufacturingOrder.OrderNumber in (25891769)
and ShopFloorControl.ManufacturingOrder.LineNumber = 0
任意の援助は大歓迎です。
ありがとうございました
ユーザ指定の値をOpen Database()SQLブロックに渡すご協力ありがとうございました。これは私が必要としていたようにうまくいきました。
ユーザ指定の値をOpen Database()SQLブロックに渡すSQLステートメント内の変数を置き換えるためにストリング連結を使用することができます。 これを行う1つの方法は次のとおりです。
order_no = "25891769";
sql_statement = evalinsert(
"SELECT ...
FROM ...
WHERE
ShopFloorControl.ManufacturingOrder.OrderNumber in ('^order_no^')
and ShopFloorControl.ManufacturingOrder.LineNumber = 0");
print(sql_statement);
Results in:
"SELECT ...
FROM ...
WHERE
ShopFloorControl.ManufacturingOrder.OrderNumber in ('25891769')
and ShopFloorControl.ManufacturingOrder.LineNumber = 0"
複数の注文番号がある場合は、CONCAT ITEMSを使用してINリストを作成できます。
order_list = {"25891769", "25891770", "25891771"};
order_inlist = "('" || Concat Items(order_list, "', '") || "')";
sql_statement = evalinsert(
"SELECT ...
FROM ...
WHERE
ShopFloorControl.ManufacturingOrder.OrderNumber in ^order_inlist^
and ShopFloorControl.ManufacturingOrder.LineNumber = 0");
print(sql_statement);
Results in:
"SELECT ...
FROM ...
WHERE
ShopFloorControl.ManufacturingOrder.OrderNumber in ('25891769', '25891770', '25891771')
and ShopFloorControl.ManufacturingOrder.LineNumber = 0"