你好。
這取自 Scripting Index 腳本之一。
我試圖編寫一個本質上將 row_end 作為動態輸入的 JSL,但我下面的當前代碼無法按預期工作。
我如何編寫它以便它可以工作? 我已經嘗試將整個表達式放入 Eval (Eval Parse(Expression)) 但這也不起作用。
如果我用它的實際值替換 row_end,只有這樣我的代碼才能工作。 有任何想法嗎? 謝謝。
我正在使用 JMP16。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Quality Control/Flight Delays.jmp" );
row_end = 16;
obj = dt << Model Driven Multivariate Control Chart( Process( :AA, :CO, :DL, :F9, :FL, :NW, :UA, :US, :WN ), Historical Data End at Row( row_end ) );
“行()的歷史數據結束”似乎無法評估變量。 因此,需要在 JSL 中處理它。一種常見的方法是使用“Eval Insert()”。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Quality Control/Flight Delays.jmp" );
row_end = 16;
Eval(
Parse(
Eval Insert(
"obj = dt << Model Driven Multivariate Control Chart( Process( :AA, :CO, :DL, :F9, :FL, :NW, :UA, :US, :WN ), Historical Data End at Row( ^row_end^ ))"
)
)
);
或者,可以使用 Substitute() 函數來處理問題
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Quality Control/Flight Delays.jmp" );
row_end = 16;
Eval(
Substitute(
Expr(
obj = dt << Model Driven Multivariate Control Chart(
Process( :AA, :CO, :DL, :F9, :FL, :NW, :UA, :US, :WN ),
Historical Data End at Row( theEnd )
)
),
Expr( theEnd ), row_end
)
);