Bearbeiten des Distributionstitels durch Abgleichen der WaferID mit By StatementHallo,
Ich möchte den Titel meiner Verteilungsdiagramme bearbeiten, damit er etwas aussagekräftiger ist und leichter mit einem anderen von mir erstellten Diagramm übereinstimmt. Ich möchte, dass der Titel jedes Diagramms "Wafer = XYZ..., BatchID = ABC..."

Der Code, den ich unten erstellt habe, lässt mich den Titel bearbeiten, listet jedoch nicht überraschend alle Batchids auf, die in dem assoziativen Array aufgelistet waren, das ich zuvor erstellt habe. (Dieses Array listet nur alle BatchIDs in einer Spalte einer Tabelle auf, die ich habe). Was ich gerne machen möchte ist Ordnen Sie den Wafer der BatchID zu und zeigen Sie ihn im Titel jedes Diagramms mit einer By-Anweisung an.Gibt es dies trotzdem? Vielen Dank!
//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 )
)}
)
)
);GrafikSkriptingRe: Bearbeiten des Distributionstitels durch Abgleichen der WaferID w/ By StatementIch würde das Zurücksetzen des Titels außerhalb des ursprünglichen Codes vornehmen, um die Verteilungen zu generieren, und die Titel ändern, nachdem der Verteilungsbericht erstellt wurde

Hier ist ein Beispiel, das auf Ihrem Skript basiert, jedoch an die Beispieldaten angepasst ist
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 )
)
);
Hinweis: Ich habe die Abschnitte zur Prozessfähigkeit der Ausgabe manuell geschlossen, um ein besseres Bild zu erhalten
Re: Bearbeiten des Distributionstitels durch Abgleichen der WaferID w/ By StatementHallo txnelson,
Vielen Dank nochmal für eine schnelle Antwort. Dies kommt dem, was ich will, näher, außer dass für jeden Wafer nur 1 BatchID angezeigt werden sollte, nicht alle. Vielleicht macht der Blick auf eine Beispieltabelle mehr Sinn.
Ich möchte, dass die Titel meiner Verteilungsdiagramme "Distribution Wafer = A, BatchID = X" und "Distribution Wafer = B, BatchID = X" usw. lauten. Ich verstehe jedoch nicht ganz, wie ich sicher sein kann, dass ich es bin Abgleichen des Wafers mit der richtigen BatchID. (oder wie man sie überhaupt zusammenbringt)
Hinweis: Ich habe eine Tabelle, die jeden Wafer seiner bereits verfügbaren BatchID zuordnet.
| Batch-ID | Waffel |
| X | EIN |
| X | B |
| X | C |
| Ja | D |
Ja | E |
| Ja | F |
| Z | G |
| Z | H |
| Z | ich |
Eine andere Nebenfrage, die ich hatte, war: Für den Code, den Sie gerade gesendet haben, sieht es so aus, als würde er alle Titel meiner Diagramme mit Ausnahme meines ersten in der By-Anweisung aktualisieren. Kennen Sie häufige Gründe, warum dies auftreten könnte? Ich habe dies bei mehr als einer Gelegenheit gesehen.
Re: Bearbeiten des Distributionstitels durch Abgleichen der WaferID w/ By StatementEs ist einfach, den Waferwert aus der Outline Box() für die Verteilung zu entfernen und dann eine Suche in der Lookup-Datentabelle durchzuführen und die BatchID zu erhalten, oder im Fall meines Beispiels die Lot_id zu erhalten, und dann zum Titel des Gliederungsfelds() hinzuzufügen.

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: Bearbeiten des Distributionstitels durch Abgleichen der WaferID w/ By StatementHallo txnelson! Nochmals vielen Dank für die schnelle Antwort und die tolle Lösung.
Ich habe immer noch Probleme mit meiner Nachschlagetabelle. Es scheint, dass "theWafer" korrekt gefunden wird, aber wenn ich es im Debugger ausführe, wird "theLot" nicht gefüllt. Hatten Sie damit Probleme? Anbei mein genauer Code. Meine Header sehen aus wie "Distributions Wafer = ABC123, BatchID = ."
BatchIDs = Nachschlagetabelle als Referenz
| Batch-ID | Waffel |
| 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)
)
);
Danke für die Hilfe!
Betreff: Bearbeiten des Distributionstitels durch Abgleichen der WaferID w/ By StatementFunktioniert das Beispiel, das ich in meiner letzten Antwort gegeben habe, für Sie? Das muss der Ausgangspunkt sein.