こんにちは、
おもちゃのデータとスクリプトが添付されたJMPファイルのように、モーダルウィンドウを使用して、モデルの構築に使用する列を選択し、PQAを選択するアプリケーションを作成しています。列」。
このモデルは、列名のスペルが任意のデータセットに対して選択されたPQAごとにカスタム出力を作成することになっています。 どのスクリプトを実行すると、特定の列を選択するようにユーザーに求めるポップアップが表示されます。 このウィンドウを次の図に示します。

次のウィンドウでは、ユーザーにPQA、ストレージ条件を設定するように求め、ユーザーが各PQAのサブセットデータセット(ストレージ条件)を表示するかどうかを尋ねます。 つまり、選択されたPQAごとに、サブセットデータセットがバックグラウンドで作成されます。 次に、モデルとグラフの結果が生成され、forループの各反復で、カスタマイズおよびフォーマットされたデータ(LSLおよびUSLのy軸線と測定値のあるy軸ラベル)を含むウィンドウに追加されます。

上記のウィンドウからのユーザー入力を指定して出力を生成するJSLスクリプトコードは次のとおりです。
//select the data in the original data table
Names Default To Here( 1 );
dt = Current Data Table();
//get the unique PQAs
col9 = Column(dt, "PQA");
unique_pqa = Associative Array( col9 ) << get keys;
/////////////////////////////////////////////////////////////
//User Selection Menu(s)
/////////////////////////////////////////////////////////////
//Part 1: ask user for column names in a new window nw1
//possible Group column name (should be character)
character_col_names = dt << Get Column names(character, String);
//possible result column name (should be numeric)
numeric_col_names = dt << Get Column names(Numeric, String);
nw1 = New Window("Column names",
<<MODAL></MODAL>
出力ウィンドウを作成したら、すべてのデータ(サブセットデータが依存している)を含む元のデータテーブルにスクリプトを保存できるようにします。 ただし、すべての出力のスクリプトをスクリプトウィンドウに保存すると、次の結果が得られます。
に注意してください
Where ( :PQA == pqa_val & column(listDT, set_storage_condition_col) == selected_stor_cond )
ステートメントはスクリプトが機能することを許可しません。
このスクリプトのこのステートメントに特定の出力を持たせたい。 たとえば、私が添付したおもちゃのデータセットでは、
column(listDT, set_storage_condition_col)
に等しい:保存条件
さらに、Aを選択した場合pqa_val ( となることによって:PQA == "A" )および5Cとしてselected_stor_cond (となることによって:保管条件== "5C" )。
ただし、ユーザー入力を参照していても、生成された出力スクリプトは存在しません。 上記の例のように、JMPがループ内の特定のインスタンスごとにこれらの値をスクリプトに書き込まないのはなぜですか?
Eval Insert、Eval Expr、Parse、およびSubstituteを使用して、ある式を別の式に挿入しますあなたを助ける必要があります。 また、<<モーダルウィンドウを使用しているため、ボタンを押すときにウィンドウを閉じる必要はありません。
whereステートメントの周囲と内部に1つのEval(EvalExpr())といくつかのExpr()を追加しました。
もっと見る...
//select the data in the original data table
Names Default To Here(1);
dt = Current Data Table();
//get the unique PQAs
col9 = Column(dt, "PQA");
unique_pqa = Associative Array(col9) << get keys;
/////////////////////////////////////////////////////////////
//User Selection Menu(s)
/////////////////////////////////////////////////////////////
//Part 1: ask user for column names in a new window nw1
//possible Group column name (should be character)
character_col_names = dt << Get Column names(character, String);
//possible result column name (should be numeric)
numeric_col_names = dt << Get Column names(Numeric, String);
nw1 = New Window("Column names",
<<MODAL></MODAL>
ありがとうございます。 Eval()や関連するものを使うことすら考えていませんでした。 私は間違いなくこれについてもっと読み、あなたが提供したそのリンクを見ていきます。