透過將 WaferID 與 By Statement 相符來編輯分發標題你好,
我想編輯分佈圖的標題,使其更具描述性,並且更容易與我創建的另一個圖表相匹配。我希望每個圖表的標題為“晶圓 = XYZ...,BatchID = ABC...”

我在下面創建的程式碼允許我編輯標題,但是,它不出所料地列出了我之前創建的關聯數組中列出的所有批次ID。 (這個陣列只是列出了我擁有的表格的一列中的所有batchID)。我想做的是將晶圓與 BatchID 相匹配,並使用 By 語句將其顯示在每個圖表的標題中。有辦法做到這一點嗎?謝謝你!
//DISTRIBUTION PLOT
batchids = Associative Array( BatchIDs:BatchID );
RawData << Distribution(
Stack( 1 ),
Automatic Recalc( 1 ),
Continuous Distribution(
Column( :col1 ),
Horizontal Layout( 1 ),
Vertical( 0 )
),
Local Data Filter(
Close Outline( 1 ),
Add Filter( columns( :FailDie ), Where( :FailDie == 0 ) ) ),
By( :Wafer ),
SendToReport(
Dispatch(
{},
"Distributions Wafer=XYZ",
OutlineBox,
{Set Title(
"Distributions Wafer=XYZ, Batch ID = " || Char( batchids << Get Keys )
)}
)
)
);大規模客製化回复:通過匹配 WaferID 和 By Statement 來編輯分發標題顯然,當只返回一個值時,您的 JMP 版本正在返回一個定標器。回复:通過匹配 WaferID 和 By Statement 來編輯分發標題我正在運行 JMP 14。
奇怪的是,當我從這行代碼中刪除 [1] 時,腳本運行正確。 其他一切都一樣。
thelot = dtLookup:lot_id[(dtLookup << get rows where(:wafer == theWafer))[1]];
改為:
thelot = dtLookup:lot_id[(dtLookup << get rows where(:wafer == theWafer))];
再次感謝你的幫助!
回复:通過匹配 WaferID 和 By Statement 來編輯分發標題我的示例腳本錯誤。請參閱下文以使用我正在使用的示例數據表。
您運行的是什麼版本的 JMP?
在我提供的示例程序中,更改行
dt = current data table();
到
dt = open("$sample_data/semiconductor capability.jmp");
然後運行腳本。它應該可以正常工作。
回复:通過匹配 WaferID 和 By Statement 來編輯分發標題簡而言之,沒有。 我無法讓它與我需要它的桌子一起工作。 據我所知,它確實有意義並且應該起作用。 我在上一條消息中發送的錯誤(抱歉沒有看到您的回复)是不斷出現的錯誤。 我唯一沒有完全理解的是這一行末尾的 [1]:
theLot = AllTheBatchIDs:BatchID[(AllTheBatchIDs << get rows where( :Wafer == theWafer ))[1]];
它有什麼作用? 有什麼建議麼?
回复:通過匹配 WaferID 和 By Statement 來編輯分發標題訪問或計算...時無效的下標(必須是數字或數字列表){1}
“theLot”的錯誤信息回复:通過匹配 WaferID 和 By Statement 來編輯分發標題我在上次回復中提供的示例對您有用嗎? 這需要作為起點。回复:通過匹配 WaferID 和 By Statement 來編輯分發標題嗨特克斯尼爾森! 再次感謝您的快速響應和出色的解決方案。
我的查找表仍然有問題。 似乎正確找到了“theWafer”,但是當我在調試器中運行它時,“theLot”沒有填充。 你有這方面的問題嗎? 附件是我的確切代碼。 我的標題看起來像“Distributions Wafer = ABC123, BatchID = ”。
BatchIDs = 查找表以供參考
| 批號 | 晶圓 |
| QQQ1234 | ABC-123 |
| YYY1234 | QWE-456 |
For( i = 1, i <= N Items( VthNew ), i++,
theWafer = char(word(-1,Report( VthNew[i] )[Outline Box( 1 )] << get title,"="));
theLot = BatchIDs:BatchID[(BatchIDs << get rows where(:Wafer == theWafer))[1]];
Report( VthNew[i] )[Outline Box( 1 )] <<
Set title(
Report( VthNew[i] )[Outline Box( 1 )] << get title || " BatchID =" || Char(theLot)
)
);
謝謝您的幫助!
回复:通過匹配 WaferID 和 By Statement 來編輯分發標題從 Distribution 的 Outline Box() 中剝離晶圓值是一件簡單的事情,然後從查找數據表中進行查找並獲取 BatchID,或者在我的示例中,獲取 Lot_id,然後將其添加到 Outline Box() 的標題中。

Names Default To Here( 1 );
dt = Current Data Table();
batchids = Associative Array( dt:lot_id );
dtlookup =New Table( "Lookup",
Add Rows( 24 ),
New Column(
["en" => "wafer", "ja" => "ウエハー", "x-id" => "S_wafer_Col", "zh-CN" => "晶片"],
Numeric( 1 ),
"Nominal",
Set Values(
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24]
),
Lock( 1 )
),
New Column( "lot_id",
Character,
"Nominal",
Set Values(
{"lot01", "lot02", "lot03", "lot04", "lot05", "lot06", "lot07", "lot08",
"lot09", "lot10", "lot11", "lot12", "lot13", "lot01", "lot02", "lot03",
"lot04", "lot05", "lot06", "lot07", "lot08", "lot09", "lot10", "lot11"}
)
)
);
Dis = dt << Distribution(
Stack( 1 ),
Automatic Recalc( 1 ),
Continuous Distribution(
Column( :npn1 ),
Horizontal Layout( 1 ),
Vertical( 0 )
),
Local Data Filter(
Close Outline( 1 ),
Add Filter( columns( :site ), Where( :site == 1 ) )
),
By( :Wafer )
);
For( i = 1, i <= N Items( Dis ), i++,
theWafer = num(word(-1,Report( dis[i] )[Outline Box( 1 )] << get title,"="));
thelot = dtLookup:lot_id[(dtLookup << get rows where(:wafer == theWafer))[1]];
Report( dis[i] )[Outline Box( 1 )] <<
Set title(
Report( dis[i] )[Outline Box( 1 )] << get title || " Lot="
|| Char(thelot)
)
);回复:通過匹配 WaferID 和 By Statement 來編輯分發標題你好特克斯尼爾森,
再次感謝您的快速回复。 這越來越接近我想要的,除了每個 Wafer 應該只顯示 1 個 BatchID,而不是全部。 也許查看示例表會更有意義。
我希望我的分佈圖的標題是“Distribution Wafer = A, BatchID = X”和“Distribution Wafer = B, BatchID = X”等。但是,我不太了解我可以確定的方式將 Wafer 與正確的 BatchID 匹配。 (或者就此而言如何匹配它們)
注意:我有一個表,它確實將每個 Wafer 與其已經可用的 BatchID 相匹配。
我的另一個問題是:對於您剛剛發送的代碼,它似乎更新了我圖表的所有標題,但 By 語句中的第一個標題除外。 您知道發生這種情況的常見原因嗎? 我不止一次看到過這種情況。
回复:通過匹配 WaferID 和 By Statement 來編輯分發標題我會在初始代碼之外重置標題以生成分佈,並在生成分佈報告後更改標題

這是一個基於您的腳本的示例,但已修改為示例數據
Names Default To Here( 1 );
dt = Current Data Table();
batchids = Associative Array( dt:lot_id );
Dis = dt << Distribution(
Stack( 1 ),
Automatic Recalc( 1 ),
Continuous Distribution(
Column( :npn1 ),
Horizontal Layout( 1 ),
Vertical( 0 )
),
Local Data Filter(
Close Outline( 1 ),
Add Filter( columns( :site ), Where( :site == 1 ) )
),
By( :Wafer )
);
For( i = 1, i <= N Items( Dis ), i++,
Report( dis[i] )[Outline Box( 1 )] <<
Set title(
Report( dis[i] )[Outline Box( 1 )] << get title || " Lots="
|| Char( batchids << get keys )
)
);
注意:我手動關閉了輸出的過程能力部分以獲得更好的畫面