So entfernen Sie die „Wo“-Bedingung aus den Control-Chart-Anzeigen.<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo,
Ich zeichne drei verschiedene Diagramme (IR, EWMA und CUSUM) in einem einzigen Fenster, aber das Problem, mit dem ich konfrontiert bin, besteht darin, dass die in den Diagrammen verwendete Where-Bedingung auch im Anzeigefenster angezeigt wird.
Anzeigefenster:

Code:
obj = Neues Fenster ( „Trendanalysebericht“ || Langes Date ( Heute ()) ,
vlb = V-Listenfeld ()
) ;
Anzeige = Funktion ({ Verfahren , Etikett , Von , Src_Type , lmt1 , lmt2 , lmt3 } ,
r1 = Neues Fenster ( „“ ,
plb = Panel-Box ( „Kontrollkarten für“ || Verfahren || " & " || „Quellentyp=“ || Src_Type , Aktuelle Datentabelle ( dt ) ;
H-Listenfeld (
Kontrollkarte (
Musteretikett ( Spalte ( dt , Etikett )) ,
Gruppengröße ( 1 ) , KSigma ( 3 ) ,
Als Spalte ( dt , Verfahren ) , Individuelle Messung ( LCL ( lmt1 [ 6 ]) , Durchschnittlich ( lmt1 [ 5 ]) , UCL ( lmt1 [ 7 ]))) ,
Wo ( Als Spalte ( dt , Von ) == Src_Type ) ;
) ;
Musteretikett ( Spalte ( dt , Etikett )) ,
Probengröße ( 1 ) ,
Alpha ( 0,00269979606326021 ) ,
Limits-Legende anzeigen ( 0 ) ,
Als Spalte ( dt , Verfahren ) , CUSUM ( Zweiseitig ( 1 ) , Durchschnittlich ( lmt2 [ 5 ]))) ,
Wo ( Als Spalte ( dt , Von ) == Src_Type ) ;
) ;
Musteretikett ( Spalte ( dt , Etikett )) ,
Probengröße ( 1 ) ,
KSigma ( 3 ) , Gewicht ( 0,2 ) ,
Als Spalte ( dt , Verfahren ) , EWMA ( Durchschnittlich ( lmt3 [ 5 ]))) ,
Wo ( Als Spalte ( dt , Von ) == Src_Type ) ;
) ;
) ;
) ;
) ; vlb << Anhängen ( r1 ) ; r1 << Fenster schließen ;
) ;
Handlung = Funktion ({ lmts , pmt_path } ,
param_dt = Offen ( pmt_path , "unsichtbar" ) ;
param_summ = param_dt << Zusammenfassung ( Unsichtbar ,
Gruppe ( : Gruppiere nach ,: Verfahren ,: Musteretikett ,: Von )) << Schaufenster ( 0 ) ;
Für ( Q = 12 , Q <= NRow ( param_summ ) , Q ++, Aktuelle Datentabelle ( param_summ ) ;
Spalte2 =: Verfahren [ Q ] ; Spalte 3 =: Musteretikett [ Q ] ; Spalte 4 =: Von [ Q ] ;
Aktuelle Datentabelle ( lmts ) ;
clms = lmts << Spaltennamen abrufen ( Zeichenfolge ) ;
Entfernen von ( clms , 1 , 3 ) ;
Für ( T = 1 , T <= N Artikel ( clms ) , T ++, Aktuelle Datentabelle ( lmts ) ;
indv_lmts = Als Spalte ( clms [ T ])[ lmts << Zeilen wo abrufen ( : Parameter == Spalte2 & : Diagramm Typ == "Individuell" )] ;
cusum_lmts = Als Spalte ( clms [ T ])[ lmts << Zeilen wo abrufen ( : Parameter == Spalte2 & : Diagramm Typ == „CUSUM“ )] ;
ewma_lmts = Als Spalte ( clms [ T ])[ lmts << Zeilen wo abrufen ( : Parameter == Spalte2 & : Diagramm Typ == „EWMA“ )] ;
Anzeige ( Spalte2 , Spalte 3 , Spalte 4 , clms [ T ] , indv_lmts , cusum_lmts , ewma_lmts ) ;
) ;
) ;
) ;
Ich kann nicht herausfinden, warum es passiert. Jede Hilfe wäre dankbar. Danke!!
Betreff: So entfernen Sie die „Wo“-Bedingung aus den Control-Chart-Anzeigen.Danke mpb . Das ist es, was ich nach einer genauen Lösung gesucht habe.
Betreff: So entfernen Sie die „Wo“-Bedingung aus den Control-Chart-Anzeigen.Danke für den Beitrag, David. Das scheint ein guter Ansatz zu sein und ich werde ihn auf jeden Fall ausprobieren.
Obwohl in der Zwischenzeit nach einer schnellen Lösung gesucht wurde und mpb Die Lösung hat gut geklappt.
Aber Ihr Ansatz ist auch ziemlich selbsterklärend, damit der Endbenutzer die Diagramme gut interpretieren kann.
Betreff: So entfernen Sie die „Wo“-Bedingung aus den Control-Chart-Anzeigen.Sehen Sie, ob dieses Beispiel hilfreich ist. Ich habe ein Beispiel in der hervorragenden JSL-Einführung „Jump into JMP Scripting“ von Murphrey und Lucas modifiziert.
dt = Open( "$SAMPLE_DATA/Quality Control/Diameter.jmp" );
cc = Kontrollkarte(
Gruppengröße( 1 ),
KSigma( 3 ),
Diagrammspalte (:DURCHMESSER, Einzelmessung),
Wo( :MACHINE == "A386" )
);
Warten(2);
(Report( cc ) << Parent)[Text Box( 1 )] << delete;
Warten(2);
Betreff: So entfernen Sie die „Wo“-Bedingung aus den Control-Chart-Anzeigen.Der Text für die where-Klausel ist eine Standardausgabe von JMP und nicht spezifisch für Ihren Code.Zum Beispiel für dieses Skript:
Kontrollkarte (
Gruppengröße ( 1 ) ,
KSigma ( 3 ) ,
Diagrammspalte ( : DURCHMESSER , Individuelle Messung ) ,
Wo ( : Maschine == „A386“ )
) ;
Die Ausgabe sieht so aus:

Leider erscheint dieser Text nicht im Anzeigebaum und kann daher nicht einfach entfernt werden.Mein Ansatz besteht darin, Teilmengen von Daten für jedes Diagramm zu erstellen, sodass die where-Klausel nicht erforderlich ist.Wenn ich ein Fenster erstelle, das mehrere Diagramme enthält, fügt der Titel „Kontrolldiagramm“ keine nützlichen Informationen hinzu, daher ersetze ich diesen Text durch die Auswahlklausel, die zur Teilmenge der Daten verwendet wird:

Hier ist das vollständige Skript:
dt = Offen ( „$SAMPLE_DATA/Quality Control/Diameter.jmp“ ) ;
// Spaltenname, der für die „where“-Klausel verwendet wird
Gruppenname = "Maschine" ;
// brauche dies, um nach dem Close-Window-Ereignis Ordnung zu schaffen
ns = Neuer Namespace ( „zu löschende temporäre Tabellen“ ) ;
// eindeutige Werte für Maschine abrufen
Zusammenfassen ( Ebenen = Von ( Als Spalte ( Gruppenname ) ) ) ;
jetzt = Neues Fenster ( „Meine Charts“ ,
hlb = H-Listenfeld ()
) ;
// über jeden Wert iterieren
ns : lstTables = {} ;
Für ( ich = 1 , ich <= NItems ( Ebenen ) , ich ++,
// Datenteilmenge erstellen
MatchingRows = dt << Zeilen wo abrufen ( Als Spalte ( Gruppenname ) == Ebenen [ ich ] ) ;
dtName = „Teilmenge für“ || Gruppenname || "=" || Ebenen [ ich ] ;
dtSubset = dt << Teilmenge ( Reihen ( MatchingRows ) , Ausgabetabelle ( dtName ) , Unsichtbar ) ;
// Zum Namespace hinzufügen, um durch das On-Close-Ereignis referenziert zu werden
Einfügen in ( ns : lstTables , dtSubset ) ;
// Einen Container verwenden, um sicherzustellen, dass das Diagramm erst gerendert wird, wenn es an das Fenster angehängt wird
Container = V-Listenfeld (
cc = dtSubset << Kontrollkarte (
Gruppengröße ( 1 ) ,
KSigma ( 3 ) ,
Diagrammspalte ( : DURCHMESSER , Individuelle Messung ) ,
)
) ;
// Überarbeite den Titel
rep = cc << Bericht ;
ob = rep [ OutlineBox ( 1 )] ;
ob << Titel festlegen ( Gruppenname || " = " || Ebenen [ ich ]) ;
// an das Berichtsfenster anhängen
hlb << Anhängen ( Container )
) ;
// Housekeeping – Teilmengentabellen löschen
jetzt << Beim Schließen (
ns = Namensraum ( „zu löschende temporäre Tabellen“ ) ;
Für ( ich = 1 , ich <= NItems ( ns : lstTables ) , ich ++,
Versuchen ( Schließen ( ns : lstTables [ ich ] , NeinSpeichern ) )
)
) ;
Und die dazugehörige Ausgabe:

-Dave