Modifica del titolo della distribuzione abbinando WaferID w/ By StatementCiao,
Vorrei modificare il titolo dei miei grafici di distribuzione per essere un po' più descrittivo e più facile da abbinare a un altro grafico che ho creato. Vorrei che il titolo di ogni grafico fosse "Wafer = XYZ..., ID batch = ABC..."

Il codice che ho creato di seguito mi consente di modificare il titolo, tuttavia, non sorprende che elenchi tutti i batchid elencati nell'array associativo che ho creato in precedenza. (questo array elenca solo tutti i batchID in una colonna di una tabella che ho). Quello che vorrei fare è abbinare il Wafer al BatchID e visualizzarlo nel titolo di ogni grafico con un'istruzione By.C'è un modo per fare questo? Grazie!
//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 )
)}
)
)
);GraficaScriptingRe: Modificare il titolo di distribuzione abbinando WaferID w/ By StatementPrenderei il ripristino del titolo al di fuori del codice iniziale per generare le distribuzioni e modificare i titoli dopo la generazione del rapporto di distribuzione

Ecco un esempio basato sul tuo script, ma modificato sui dati di esempio
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 )
)
);
Nota: ho chiuso manualmente le sezioni Capacità di elaborazione dell'output per un'immagine migliore
Re: Modificare il titolo di distribuzione abbinando WaferID w/ By StatementCiao txnelson,
Grazie ancora per una rapida risposta. Questo si sta avvicinando a quello che voglio, tranne che per ogni Wafer dovrebbe essere visualizzato solo 1 BatchID, non tutti. Forse guardare una tabella di esempio avrà più senso.
Voglio che i titoli dei miei grafici di distribuzione siano "Distribution Wafer = A, BatchID = X" e "Distribution Wafer = B, BatchID = X" ecc. Tuttavia, non capisco bene i mezzi con cui posso essere sicuro di essere abbinando il Wafer al BatchID corretto. (o come abbinarli a tutti se è per questo)
Nota: ho una tabella che fa corrispondere ogni Wafer al suo BatchID già disponibile.
| ID lotto | Wafer |
| X | UN |
| X | B |
| X | C |
| sì | D |
sì | E |
| sì | F |
| Z | G |
| Z | H |
| Z | io |
Un'altra domanda a margine che ho avuto è stata: per il codice che hai appena inviato, sembra che aggiorni tutti i titoli dei miei grafici tranne il mio primo nell'istruzione By. Conosci i motivi comuni per cui ciò potrebbe verificarsi? L'ho visto in più di un'occasione.
Re: Modificare il titolo di distribuzione abbinando WaferID w/ By StatementÈ semplice rimuovere il valore del wafer da Outline Box() per la distribuzione, quindi eseguire una ricerca dalla tabella dei dati di ricerca e ottenere il BatchID o, nel caso del mio esempio, ottenere il Lot_id, e poi per aggiungerlo al titolo della 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)
)
);Re: Modificare il titolo di distribuzione abbinando WaferID w/ By StatementCiao txnelson! Grazie ancora per una risposta rapida e una soluzione fantastica.
Ho ancora problemi con la mia tabella di ricerca. Sembra che "theWafer" sia stato trovato correttamente, tuttavia quando lo eseguo nel debugger "theLot" non viene popolato. Hai avuto problemi con questo? In allegato il mio codice esatto. Le mie intestazioni assomigliano a "Distributions Wafer = ABC123, BatchID = ."
BatchIDs = tabella di ricerca per riferimento
| ID lotto | Wafer |
| QQQ1234 | ABC-123 |
| AAAA1234 | 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)
)
);
Grazie per l'aiuto!
Re: Modificare il titolo di distribuzione abbinando WaferID w/ By StatementL'esempio che ho fornito nella mia ultima risposta funziona per te? Questo deve essere il punto di partenza.