So entfernen Sie die „Wo“-Bedingung aus Kontrolldiagrammanzeigen.<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, ist, dass die in Diagrammen verwendete Wo-Bedingung auch im Anzeigefenster angezeigt wird.
Anzeigefenster:

Code:
obj = Neues Fenster ( "Trendanalysebericht" || Langes Datum ( Heute ()) ,
vlb = V-Listenfeld ()
) ;
Anzeige = Funktion ({ Verfahren , Etikett , Durch , Quelle_Typ , lmt1 , lmt2 , lmt3 } ,
r1 = Neues Fenster ( "" ,
plb = Panel-Box ( " Regelkarten für " || Verfahren || " & " || " Quelltyp = " || Quelle_Typ , Aktuelle Datentabelle ( dt ) ;
H Listenfeld (
Kontrollkarte (
Musteretikett ( Spalte ( dt , Etikett )) ,
Gruppengröße ( 1 ) , KSigma ( 3 ) ,
Als Spalte ( dt , Verfahren ) , Individuelle Messung ( LCL ( lmt1 [ 6 ]) , Durchschn ( lmt1 [ 5 ]) , UCL ( lmt1 [ 7 ]))) ,
Wo ( Als Spalte ( dt , Durch ) == Quelle_Typ ) ;
) ;
Musteretikett ( Spalte ( dt , Etikett )) ,
Probengröße ( 1 ) ,
Alpha ( 0.00269979606326021 ) ,
Grenzen-Legende anzeigen ( 0 ) ,
Als Spalte ( dt , Verfahren ) , CUSUM ( Zweiseitig ( 1 ) , Durchschn ( lmt2 [ 5 ]))) ,
Wo ( Als Spalte ( dt , Durch ) == Quelle_Typ ) ;
) ;
Musteretikett ( Spalte ( dt , Etikett )) ,
Probengröße ( 1 ) ,
KSigma ( 3 ) , Gewicht ( 0,2 ) ,
Als Spalte ( dt , Verfahren ) , EWMA ( Durchschn ( lmt3 [ 5 ]))) ,
Wo ( Als Spalte ( dt , Durch ) == Quelle_Typ ) ;
) ;
) ;
) ;
) ; vlb << Anhängen ( r1 ) ; r1 << Fenster schließen ;
) ;
Handlung = Funktion ({ lmts , pmt_path } ,
param_dt = Offen ( pmt_path , "unsichtbar" ) ;
param_summe = param_dt << Zusammenfassung ( Unsichtbar ,
Gruppe ( : Gruppiere nach ,: Verfahren ,: Musteretikett ,: Durch )) << Schaufenster ( 0 ) ;
Zum ( q = 12 , q <= Nr ( param_summe ) , q ++, Aktuelle Datentabelle ( param_summe ) ;
col2 =: Verfahren [ q ] ; col3 =: Musteretikett [ q ] ; col4 =: Durch [ q ] ;
Aktuelle Datentabelle ( lmts ) ;
clms = lmts << Spaltennamen erhalten ( Schnur ) ;
Entfernen von ( clms , 1 , 3 ) ;
Zum ( t = 1 , t <= N Artikel ( clms ) , t ++, Aktuelle Datentabelle ( lmts ) ;
indv_lmts = Als Spalte ( clms [ t ])[ lmts << Holen Sie sich Zeilen wo ( : Parameter == col2 & : Diagramm Typ == "Individuell" )] ;
cusum_lmts = Als Spalte ( clms [ t ])[ lmts << Holen Sie sich Zeilen wo ( : Parameter == col2 & : Diagramm Typ == "CUSUM" )] ;
ewma_lmts = Als Spalte ( clms [ t ])[ lmts << Holen Sie sich Zeilen wo ( : Parameter == col2 & : Diagramm Typ == "EWMA" )] ;
Anzeige ( col2 , col3 , col4 , clms [ t ] , indv_lmts , cusum_lmts , ewma_lmts ) ;
) ;
) ;
) ;
Ich kann nicht herausfinden, warum es passiert. Jede Hilfe wäre willkommen. Vielen Dank!!
Betreff: So entfernen Sie die "Wo"-Bedingung aus Kontrolldiagrammanzeigen.Vielen Dank mpb . Das ist, was ich nach einer genauen Lösung gesucht habe.
Betreff: So entfernen Sie die "Wo"-Bedingung aus Kontrolldiagrammanzeigen.Danke für den Beitrag David. Das scheint ein guter Ansatz zu sein und wird auf jeden Fall ausprobiert.
Obwohl zwischenzeitlich nach einer schnellen Lösung gesucht wurde und mpb s Lösung hat gut geklappt.
Aber Ihr Ansatz ist auch für den Endbenutzer ziemlich selbsterklärend, um die Diagramme gut zu interpretieren.
Betreff: So entfernen Sie die "Wo"-Bedingung aus Kontrolldiagrammanzeigen.Sehen Sie, ob dieses Beispiel hilfreich ist. Ich habe ein Beispiel im exzellenten JSL-Intro Jump into JMP Scripting von Murphrey und Lucas modifiziert.
dt = Open( "$SAMPLE_DATA/Quality Control/Diameter.jmp" );
cc = Regelkarte (
Gruppengröße( 1 ),
KSigma( 3 ),
Diagrammspalte (: DURCHMESSER, Einzelmessung),
Wo( :MASCHINE == "A386" )
);
Warte( 2 );
(Bericht( cc ) << Parent)[Text Box( 1 )] << löschen;
Warte( 2 );
Betreff: So entfernen Sie die "Wo"-Bedingung aus Kontrolldiagrammanzeigen.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 scheint dieser Text nicht im Anzeigebaum zu erscheinen 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 mit mehreren Diagrammen zusammenstelle, fügt der Titel "Kontrolldiagramm" keine nützlichen Informationen hinzu, daher ersetze ich diesen Text durch die Auswahlklausel, die zum Unterteilen der Daten verwendet wird:

Hier ist das vollständige Skript:
dt = Offen ( "$SAMPLE_DATA/Qualitätskontrolle/Durchmesser.jmp" ) ;
// Spaltenname, der für die 'where'-Klausel verwendet wird
Gruppenname = "Maschine" ;
// Benötige dies, um nach dem Ereignis "Fenster schließen" den Haushalt zu führen
ns = Neuer Namensraum ( "temporäre-tabellen-zu-löschen" ) ;
// Eindeutige Werte für Maschine erhalten
Zusammenfassen ( Ebenen = Durch ( AlsSpalte ( Gruppenname ) ) ) ;
nw = Neues Fenster ( "Meine Diagramme" ,
hlb = H Listenfeld ()
) ;
// über jeden Wert iterieren
ns : lstTables = {} ;
Zum ( ich = 1 , ich <= NIArtikel ( Ebenen ) , ich ++,
// die Datenteilmenge erstellen
übereinstimmende Zeilen = dt << Holen Sie sich Zeilen wo ( AlsSpalte ( Gruppenname ) == Ebenen [ ich ] ) ;
dtName = "Teilmenge für" || Gruppenname || "=" || Ebenen [ ich ] ;
dtSubset = dt << Teilmenge ( Reihen ( übereinstimmende Zeilen ) , Ausgabetabelle ( dtName ) , Unsichtbar ) ;
// Zum Namensraum hinzufügen, um vom On-Close-Ereignis referenziert zu werden
Einfügen in ( ns : lstTables , dtSubset ) ;
// Verwenden Sie einen Container, um sicherzustellen, dass das Diagramm nicht gerendert wird, bis es an das Fenster angehängt wird
Container = V Listenfeld (
cc = dtSubset << Kontrollkarte (
Gruppengröße ( 1 ) ,
KSigma ( 3 ) ,
Diagrammspalte ( : DURCHMESSER , Individuelle Messung ) ,
)
) ;
// Titel überarbeiten
rep = cc << Bericht ;
ob = rep [ OutlineBox ( 1 )] ;
ob << Titel festlegen ( Gruppenname || " = " || Ebenen [ ich ]) ;
// an das Berichtsfenster anhängen
hlb << Anhängen ( Container )
) ;
// Haushaltsführung - Lösche die Teilmengentabellen
nw << Auf Schließen (
ns = Namensraum ( "temporäre-tabellen-zu-löschen" ) ;
Zum ( ich = 1 , ich <= NIArtikel ( ns : lstTables ) , ich ++,
Versuchen ( Nah dran ( ns : lstTables [ ich ] , NeinSpeichern ) )
)
) ;
Und die dazugehörige Ausgabe:

- Dave