如何從 from 欄位取得限制並透過 JSL 將其用於其他欄位?所附資料表的各列中的每個測量參數(電流、電阻)都有限值 (LSL/USL)。
在不更改資料表格式的情況下,如何取得每個參數的限制以顯示為參考線,例如在繪製中位數與 PartID 時(如所附資料表中的腳本所示)?
我能想到的一種方法是將 LSL/USL 保存到每個參數的列屬性中,但為此我需要一些 JSL 幫助。
視窗回覆:如何從 from 欄位取得限制並透過 JSL 將其用於其他欄位?最簡單的(在我看來最好的)是更改表格式,但由於你不能這樣做,那麼其他選項將使用列屬性(這會有點奇怪,因為你會有限制)或圖形腳本。 首先,您必須收集每個列的所有可能限制(同一列可以有不同的限制嗎?),摘要應該對此非常有效,然後根據您的選擇添加 then 作為列屬性或使用 then與圖形腳本。
回覆:如何從 from 欄位取得限制並透過 JSL 將其用於其他欄位?這是我處理你的桌子的方式。它將所有 USL 和 LSL 值移至每列的列屬性中,然後在繪製列圖表時自動顯示限制

Names Default To Here( 1 );
dt = Current Data Table();
colNamesList = dt << get column names( string, numeric );
For Each( {col}, colNamesList,
LSL = Column( col )[(dt << get rows where( :Label == "LSL" ))[1]];
USL = Column( col )[(dt << get rows where( :Label == "USL" ))[1]];
Eval(
Substitute(
Expr(
Column( col ) << set property(
"spec limits",
{LSL( _LSL_ ), USL( _USL_ ), Show Limits( 1 )}
)
),
Expr( _USL_ ), USL,
Expr( _LSL_ ), LSL
)
);
);
// Uncomment the below 2 lines to delete the LSL and USL rows in the table
//dt << select where(:Label == "LSL" | :Label=="LSL");
//dt << delete rows;
Graph Builder(
Size( 570, 578 ),
Variables( X( :partID ), Y( :Current ), Y( :Resistance ) ),
Elements( Position( 1, 1 ), Points( X, Y, Legend( 8 ), Jitter( "None" ) ) ),
Elements( Position( 1, 2 ), Points( X, Y, Legend( 6 ), Jitter( "None" ) ) ),
Local Data Filter( Add Filter( columns( :Label ), Where( :Label == {"Median"} ) ) )
);
回覆:如何從 from 欄位取得限制並透過 JSL 將其用於其他欄位?@tx尼爾森@jthi
謝謝,我現在就嘗試你的解決方案。 我想做類似的事情,但無法讓以下功能正常運作。 這個想法是在對所有測試的參數列進行分組後將其應用於列組。 我嘗試了一個測試參數(當前)列,但它不起作用。 當傳遞數字作為限制時運作正常,但在傳遞變數時則不然。 我哪裡出錯了(我嘗試過不使用 Eval() 和 Expr())。
Names Default To Here( 1 );
setSpecLimits = Function( {dt_ref, colName, _LSL, _USL},
{specLimits},
tmp = Eval( Expr( dt_ref:colName << Set Property( "Spec Limits", {LSL( _LSL ), USL( _USL ), Show Limits( 1 )} ) ) );
Return( specLimits ); //optional
);
////Check
Clear Log();
//test before
specLims = Data Table( "exampleData" ):Current << Get Property( "Spec Limits" ); Show( specLims );
//New values
_LSL = Data Table( "exampleData" ):Current[2]; Show( _LSL );
_USL = Data Table( "exampleData" ):Current[3]; Show( _USL );
dt_ref = Data Table( "exampleData" ); show (dt_ref);
colName = "Current"; Show( colName );
//call function
setSpecLimits( dt_ref, colName, _LSL, _USL );
//test after
specLims = Data Table( "exampleData" ):Current << Get Property( "Spec Limits" ); Show( specLims );
回覆:如何從 from 欄位取得限制並透過 JSL 將其用於其他欄位?這應該可以解決問題
setSpecLimits = Function( {dt_ref, colName, _LSL, _USL},
{specLimits},
tmp = Eval(
eval Expr(
dt_ref:colName << Set Property( "Spec Limits", {LSL( expr(_LSL) ), USL( expr(_USL ) ), Show Limits( 1 )} )
)
);
Return( specLimits ); //optional
);回覆:如何從 from 欄位取得限制並透過 JSL 將其用於其他欄位?代替代替,您還可以使用評估 (評估 Expr( ...Exp())) :
Eval(EvalExpr(dt_ref:colName << Set Property( "Spec Limits", {LSL(Expr(_LSL )), USL(Expr( _USL) ), Show Limits( 1 )} )))預先評估規格限制_LSL & _USL他們必須在裡面表達式 ()並透過以下方式進行預先評估評估表達式() 。
這樣做之後,可以透過以下方式評估整個表達式評估()
回覆:如何從 from 欄位取得限制並透過 JSL 將其用於其他欄位?@tx尼爾森謝謝。 Eval Expr() 就可以解決這個問題。
如何將規格參考線變更為虛線並將虛線顏色變更為紅色?
回覆:如何從 from 欄位取得限制並透過 JSL 將其用於其他欄位?您可以使用圖形使用者介面:

回覆:如何從 from 欄位取得限制並透過 JSL 將其用於其他欄位?或 JSL:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt:height << Set Property("Spec Limits",{LSL( 57 ), USL( 67 )});<BR /><BR /><BR />
gb = dt << Graph Builder(
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
);
specs=dt:height << Get Property("Spec Limits");
LSL=specs["LSL"];
USL=specs["USL"];
report(gb)[ScaleBox(1)] <<{ Add Ref Line( LSL, "Dashed", "Red", "LSL", 1 ),
Add Ref Line( USL, "Dashed", "Red", "USL", 1 )}回覆:如何從 from 欄位取得限制並透過 JSL 將其用於其他欄位?@hogi謝謝。 我一直在尋找 JSL 方法,當定義規格限制並將其保存到列屬性中,然後由 JMP 自動繪製時,將實線更改為虛線和預設顏色(如帖子 3 所示) @tx尼爾森)。
回覆:如何從 from 欄位取得限制並透過 JSL 將其用於其他欄位?使用規格限值的「顯示限值」功能,僅顯示藍色實線。如果您想使用 JSL 顯示限制、指定顏色、標籤、線型等,則需要編寫程式碼來使用該訊息
obj << add ref line(......);
能力。
請參閱腳本索引以取得描述和範例
回覆:如何從 from 欄位取得限制並透過 JSL 將其用於其他欄位?起初,這有點「令人失望」——如果我使用這個很酷的「顯示限制」功能,為什麼無法更改顏色。
但實際上,這是可能的——透過 GUI。 只需使用顯示限制(1)並轉到軸設定。
另一方面:
如果您想透過 JSL 更改顏色 - 附加的小程式碼添加改變顏色的同時線條也不會太心動吧?
人們可以考慮在首選項中設定預設顏色/線條樣式。
全自動 - 無需 JSL - 無需手動更改 - 只要您想要的線條即可。