Ich habe an der Automatisierung einer Prozess-Screening-Analyse gearbeitet.
Ich habe ein Textfeld-Popup, das den Benutzer auffordert, ein Datum im Format JJJJ-MM einzugeben. Dann habe ich eine Schaltfläche, um das Datum als Variable zu speichern. Als Nächstes habe ich eine Schaltfläche, die die Prozess-Screening-Analyse ausführt. Darüber hinaus habe ich einen lokalen Datenfilter mithilfe der Benutzereingabe eingefügt, um die Analyse nur für diesen Datensatz durchzuführen. Das funktioniert gut.
Ich möchte jedoch auch die Option „Kontrolldiagramm für ausgewählte Elemente“ nutzen, die ich als letztes Argument des Moduls „Prozessprüfung“ eingegeben habe. Das vorletzte Argument ist „Alles auswählen“. Das Ergebnis, das ich erhalte, zeigt die Kontrolldiagramme mit der richtigen Gruppierung, aber nicht mit der richtigen Filterung (alle Daten aus der Datentabelle werden zum Erstellen der Diagramme verwendet).
Ich habe zwei Fragen. Wie kann ich sicherstellen, dass zum Erstellen der Diagramme nur die Daten verwendet werden, die mit dem lokalen Datenfilter gefiltert wurden?
(Wenn ich die gewünschten Diagramme mit dem roten Dreieck aus dem Modul „Prozess-Screening“ erstelle und dann dieses Skript verwende, erhalte ich viele fest codierte Werte, die für eine spätere Analyse möglicherweise nicht mehr funktionieren.)
Die zweite Frage ist, wie ich die Kontrollkarten zur weiteren Verarbeitung oder Speicherung wieder aufrufen kann. Ich konnte nicht herausfinden, wie ich sie in einer anderen Variable speichern oder exportieren kann. Früher habe ich die Prozess-Screening-Analyse in einer Variable gespeichert und dann << Bericht; verwendet und als Powerpoint gespeichert, aber nur das Prozess-Screening wird ohne die Kontrollkarten angezeigt.
Wir sind für jede Hilfe und Ressource dankbar.
Hier ist ein Ausschnitt meines Codes
year = Char( Year( Today() ) );
month = Char( Month( Today() ) );
date = Concat Items( {year, month}, "-" );
w = New Window( "Date Filter",
Border Box( top( 30 ), bottom( 20 ), Left( 30 ), Right( 30 ),
V List Box(
H Center Box( Text Box( "Date Filter\!n\!nPlease enter date in yyyy-mm format" ) ),
Spacer Box( size( 1, 30 ) ),
H List Box( Text Box( "Date: " ), b1 = Text Edit Box( date ) ),
Spacer Box( size( 1, 15 ) ),
Spacer Box( size( 1, 15 ) ),
H Center Box(
Button Box( "Save Filter Date",
b2 = b1 << Get Text();
)
),
H Center Box(
Button Box( "Get Process Capability",
Current Data Table( dt2 );
dt4 = Process Screening(
Process Variables(
:"Metric1", :"Metric2",:"Metric3"),
Grouping( :"MetricA" ),
Control Chart Type( "Indiv and MR" ),
Process Performance Graph( 1 ),
Show Tests( 0 ),
Target Index( 1 ),
Cp( 1 ),
Spec Limits( 1 ),
Use Limits Table(1,Data Table( dt3 ),Process Variables( :Process ),Grouping( :"MetricA" ),LSL( :LSL ),USL( :USL ),Target( :Target ),Go),
Local Data Filter(Add Filter( columns( :"ProcessDate" ), Where(:"ProcessDate" == b2 ))),
SendToReport( Dispatch( {}, "", TableBox, {Sort By Column( 2, 1 )} ) ),
Select All,
Control Charts for Selected Items,
);
)
)
)
)
);
Funktioniert Ihr Filter für die Prozessprüfung ordnungsgemäß? Ich habe einen einfachen Test mit JMPS-Beispieldaten durchgeführt.
Gefiltert nach nur lot01

und wenn ich ein Kontrolldiagramm für ausgewählte erstelle, kann ich sehen, dass es gefiltert wurde

Die Kontrolldiagramme werden in einem neuen Fenster geöffnet. Um diese zu erfassen, können Sie << Fensterliste abrufen + << Fenstertitel abrufen verwenden und prüfen, welches Ihr Fenster ist. Es heißt "Ausgewählte Diagramme", wenn mehr als eines erstellt wurde UND "Ausgewählte Diagramme" noch nicht existiert.
Hallo jthi,
Ja, der lokale Datenfilter funktioniert für den Prozessfähigkeitsteil der Analyse definitiv einwandfrei. Wenn ich die Daten gefiltert habe und die gewünschten Kennzahlen auswähle (also alle) und dann zum roten Dreieck gehe und Kontrolldiagramme für ausgewählte Elemente auswähle, erhalte ich das gefilterte Kontrolldiagramm, nach dem ich suche. Wenn ich meinen Code wie oben eingefügt weiter verwende, werden die ungefilterten Kontrolldiagramme (alle Daten) ausgegeben.
Das scheint zumindest zu funktionieren
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
ps = dt << Process Screening(
Process Variables(
:NPN1, :PNP1, :PNP2, :NPN2, :PNP3, :IVP1, :PNP4, :NPN3, :IVP2, :NPN4, :SIT1,
:INM1
),
Control Chart Type("Indiv and MR"),
RowStates([0 1, 10 1, 11 1]),
Local Data Filter(
Add Filter(
columns(:lot_id),
Where(:lot_id == {"lot01", "lot02", "lot03", "lot04"}),
Display(:lot_id, N Items(13))
)
)
);
ps << Select All;
ps << Control Charts for Selected Items;Ja, das scheint zu funktionieren. Vielen Dank für die Hilfe