如何編寫腳本以根據其他列上的標籤將列中出現的規格限制值套用到其自己的屬性?我有類似於所附資料表的傳入資料。
我願意(作為例子)
- 將出現在列 Breakdown_5 中的行值(第一個/頂部)與 T5(在 TestStage 下)的行 USL/LSL(在標籤下)保存為 Breakdown_5 列屬性中的限制,類似地
- 將出現在列中的行值(第一個/頂部)與 S7(在 TestStage 下)的行 USL/LSL(在「標籤」下)儲存為「電阻」_7 列屬性中的限制
- 將 Current_7 列中出現的行值(第一個/頂部)與 S7(在 TestStage 下)的行 USL/LSL(在「標籤」下)儲存為 Current_7 列屬性中的限制
- 將 Current_11 列中出現的行值(第一個/頂部)與 W11(在 TestStage 下)的行 USL/LSL(在「標籤」下)儲存為 Current_11 列屬性中的限制
- 將 Capacitance_6 列中出現(第一個/頂部)的行值與 U6(在 TestStage 下)的行 USL/LSL(在「標籤」下)儲存為 Capacitance_6 列屬性中的限制
一般來說,如何在JSL 中編寫腳本來應用與測量資料列(Breakdown_#、Resistance_#、Current_# 等)下出現(第一個/頂部)的LSL/USL 行(在標籤下)相對應的規格限制on) 對應於正確的 TestStage#,其中 # 指的是測試階段編號。

自動化和腳本編寫視窗回覆:如何編寫腳本以根據其他列上的標籤將列中出現的規格限制值套用到自己的屬性?這是一個適用於您的範例資料的腳本
Names Default To Here( 1 );
dt = Data Table( "exampleDataSummary" );
// Find all numeric columns and place in a list
numColList = dt << get column names( numeric, string );
// Find the unique values of TestStage
Summarize( dt, tstStage = By( :TestStage ) );
// Loop across all test stages and match with response column
stageNumber = "";
For Each( {Stage}, tstStage,
stageNumber = Substr( Stage, 2 );
resCol = "";
For Each( {col}, numColList,
If( Word( -1, col, "_" ) == stageNumber,
resCol = col
);
// Get LSL and USL
If( resCol != "",
theLSL = Column( dt, resCol )[(dt << get rows where( :TestStage == Stage & :label == "LSL" ))[1]];
theUSL = Column( dt, resCol )[(dt << get rows where( :TestStage == Stage & :label == "USL" ))[1]];
Show( theLSL, theUSL );
Eval(
Substitute(
Expr(
Column( dt, resCol ) << set property( "Spec Limits", {LSL( _LSL_ ), USL( _USL_ )} )
),
Expr( _LSL_ ), theLSL,
Expr( _USL_ ), theUSL
)
);
);
);
);回覆:如何編寫腳本以根據其他列上的標籤將列中出現的規格限制值套用到自己的屬性?@tx尼爾森對了謝謝。 該腳本適用於範例資料檔案。 我有兩個問題。
1.剛剛意識到我的測量參數(列)名稱可以採用電阻_Null_Port_7、電容_Full_Plate_6等形式。 當 TestStage 編號末尾之前的列名稱中存在多個底線時,如何更改腳本。 我猜 Word() 函數的實作需要改變,但我正在努力解決它(以前沒有使用它有點令人困惑)。
2. 套用限制後,如何以程式設計方式為每列啟用「顯示為圖形參考線」? 我知道如何透過管理規格限制 () 手動執行此操作。 我使用的是 JMP 16.2。
回覆:如何編寫腳本以根據其他列上的標籤將列中出現的規格限制值套用到自己的屬性?請訪問腳本索引以查找我在提供的腳本中使用的各種函數的詳細資訊。正如我所使用的,Word() 函數並不關心名稱中有多少個「_」。正如我所使用的,Word() 函數中的第一項是 -1,它指示函數從字串末尾開始獲取第一個單字。
若要告訴 JMP 自動將數值顯示為參考線,請使用規格限規範中的「Show()」參數。
Column( dt, resCol ) << set property( "Spec Limits", {LSL( _LSL_ ), USL( _USL_ ), Show(1)} )
請花時間研究我提供的腳本,以幫助您成為更有效率的腳本編寫者。
回覆:如何編寫腳本以根據其他列上的標籤將列中出現的規格限制值套用到自己的屬性?@tx尼爾森我正在研究您的程式碼,感謝您解釋 Word () 的工作原理。
到目前為止,該腳本不適用於我的實際資料(僅實際列名稱有所不同,即帶有更多下劃線)。
問題是腳本運行時不會對我的實際數據拋出任何錯誤,並且日誌中沒有任何內容,這與我在此處附加的示例數據表上運行相同的腳本時不同。 所以我沒有什麼可以用來調試的。
我已經嘗試過 show (1) 來顯示啟用的限制以程式設計方式「顯示為圖形參考線」。 它使用此處發布的範例資料在 JMP 16.2 中對我不起作用。
我會嘗試偵錯腳本,如果發現任何問題,請回覆您。 在日誌中沒有任何內容的情況下取得一些偵錯指標將很有用。
回覆:如何編寫腳本以根據其他列上的標籤將列中出現的規格限制值套用到自己的屬性?我的錯誤,改變吧
顯示(1)
到
顯示限制(1)
回覆:如何編寫腳本以根據其他列上的標籤將列中出現的規格限制值套用到自己的屬性?@tx尼爾森需要改變
Substr( )
讓腳本適用於我的實際數據。 然而,當繪製任何測量參數的分佈時,show (1) 仍然不顯示限制。
以下內容在我的 JMP16.2 上也不起作用,即顯示限制未啟用列屬性中的「顯示為圖形參考線」。
dt=Open("$SAMPLE_DATA/Process Measurements.jmp");
Column(dt, "Process 2")<<SET property=""></SET>然而,這確實可以完成工作。
Column( dt, resCol ) << set property( "Spec Limits", {LSL( _LSL_ ), USL( _USL_ ), Show Limits( 1 )})