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

我在下面創建的代碼允許我編輯標題,但是,它毫不奇怪地列出了我之前創建的關聯數組中列出的所有 batchid。 (此數組僅列出我擁有的表的一列中的所有批次 ID)。 我想做的是將 Wafer 與 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 來編輯分發標題我會在初始代碼之外重置標題以生成分佈,並在生成分佈報告後更改標題

這是基於您的腳本的示例,但已修改為示例數據
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 )
)
);
注意:我手動關閉了輸出的過程能力部分以獲得更好的畫面
回复:通過匹配 WaferID 和 By Statement 來編輯分發標題你好,
再次感謝您的快速回复。 這越來越接近我想要的,除了每個 Wafer 只應顯示 1 個 BatchID,而不是全部。 也許查看示例表會更有意義。
我希望我的分佈圖的標題是“Distribution Wafer = A,BatchID = X”和“Distribution Wafer = B,BatchID = X”等。但是,我不太明白我可以確定的方式將 Wafer 與正確的 BatchID 匹配。 (或者如何完全匹配它們)
注意:我有一個表,它確實將每個 Wafer 與其 BatchID 匹配。
我遇到的另一個問題是:對於您剛剛發送的代碼,它似乎更新了我圖表的所有標題,除了我在 By 語句中的第一個標題。 您知道發生這種情況的常見原因嗎? 我不止一次看到過這種情況。
回复:通過匹配 WaferID 和 By Statement 來編輯分發標題從分佈的 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 來編輯分發標題嗨,特克斯尼爾森! 再次感謝您的快速響應和出色的解決方案。
我的查找表仍然有問題。 似乎正確找到了“theWafer”,但是當我在調試器中運行它時,“theLot”沒有填充。 你有什麼問題嗎? 附上我的確切代碼。 我的標題看起來像“Distributions Wafer = ABC123, BatchID = ”。
BatchIDs = 查找表供參考
| 批號 | 晶圓 |
| QQ1234 | 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 匹配來編輯分發標題我在上次回復中提供的示例對您有用嗎? 這需要成為起點。