<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Bonjour,
Je trace trois graphiques différents (IR, EWMA et CUSUM) dans une seule fenêtre, mais le problème auquel je suis confronté est qu'il affiche également la condition Where utilisée dans les graphiques sur la fenêtre d'affichage.
Fenêtre d'affichage:

Code:
obj = Nouvelle fenetre ( "Rapport d'analyse des tendances" || Date longue ( Aujourd'hui ()) ,
vlb = Boîte de liste V ()
) ;
afficher = Fonction ({ Processus , Étiquette , Par , Type_Src , lmt1 , lmt2 , lmt3 } ,
r1 = Nouvelle fenetre ( "" ,
plb = Panneau électrique ( " Cartes de contrôle pour " || Processus || " & " || " Type de source = " || Type_Src , Tableau de données actuel ( dt ) ;
Zone de liste H (
Carte de contrôle (
Exemple d'étiquette ( Colonne ( dt , Étiquette )) ,
Taille de groupe ( 1 ) , KSigma ( 3 ) ,
Comme colonne ( dt , Processus ) , Mesure individuelle ( LCL ( lmt1 [ 6 ]) , MOYENNE ( lmt1 [ 5 ]) , UCL ( lmt1 [ 7 ]))) ,
Où ( Comme colonne ( dt , Par ) == Type_Src ) ;
) ;
Exemple d'étiquette ( Colonne ( dt , Étiquette )) ,
Taille de l'échantillon ( 1 ) ,
Alpha ( 0,00269979606326021 ) ,
Afficher la légende des limites ( 0 ) ,
Comme colonne ( dt , Processus ) , CUSUM ( Recto-verso ( 1 ) , MOYENNE ( lmt2 [ 5 ]))) ,
Où ( Comme colonne ( dt , Par ) == Type_Src ) ;
) ;
Exemple d'étiquette ( Colonne ( dt , Étiquette )) ,
Taille de l'échantillon ( 1 ) ,
KSigma ( 3 ) , Poids ( 0,2 ) ,
Comme colonne ( dt , Processus ) , EWMA ( MOYENNE ( lmt3 [ 5 ]))) ,
Où ( Comme colonne ( dt , Par ) == Type_Src ) ;
) ;
) ;
) ;
) ; vlb << Ajouter ( r1 ) ; r1 << Fermer la fenêtre ;
) ;
parcelle = Fonction ({ lmts , pmt_path } ,
param_dt = Ouvrir ( pmt_path , "invisible" ) ;
param_summ = param_dt << Résumé ( Invisible ,
Groupe ( : Par groupe , : Processus , : Exemple d'étiquette , : Par )) << Afficher la fenêtre ( 0 ) ;
Pour ( q = 12 , q <= NRangée ( param_summ ) , q ++, Tableau de données actuel ( param_summ ) ;
col2 = : Processus [ q ] ; col3 = : Exemple d'étiquette [ q ] ; col4 = : Par [ q ] ;
Tableau de données actuel ( lmts ) ;
clams = lmts << Obtenir les noms de colonnes ( Chaîne ) ;
Retirer ( clams , 1 , 3 ) ;
Pour ( t = 1 , t <= N articles ( clams ) , t ++, Tableau de données actuel ( lmts ) ;
indv_lmts = Comme colonne ( clams [ t ])[ lmts << Obtenir les lignes où ( : Paramètre == col2 & : Type de graphique == "Individuel" )] ;
cusum_lmts = Comme colonne ( clams [ t ])[ lmts << Obtenir les lignes où ( : Paramètre == col2 & : Type de graphique == "CUSUM" )] ;
ewma_lmts = Comme colonne ( clams [ t ])[ lmts << Obtenir les lignes où ( : Paramètre == col2 & : Type de graphique == "EWMA" )] ;
afficher ( col2 , col3 , col4 , clams [ t ] , indv_lmts , cusum_lmts , ewma_lmts ) ;
) ;
) ;
) ;
Je n'arrive pas à comprendre pourquoi cela se produit. Toute aide serait appréciée. Merci!!
Voyez si cet exemple est utile. J'ai modifié un exemple dans l'excellente intro JSL Jump into JMP Scripting de Murphrey et Lucas.
dt = Open( "$SAMPLE_DATA/Quality Control/Diameter.jmp" );
cc = Carte de contrôle (
Taille du groupe( 1 ),
KSigma( 3 ),
Graphique Col( :DIAMÈTRE, Mesure individuelle),
Où( :MACHINE == "A386" )
);
Attendez( 2 );
(Rapport( cc ) << Parent)[Zone de texte( 1 )] << supprimer ;
Attendez( 2 );
Le texte de la clause Where est une sortie standard de JMP et n'est pas spécifique à votre code.Par exemple pour ce script :
Carte de contrôle (
Taille de groupe ( 1 ) ,
KSigma ( 3 ) ,
Col du graphique ( : DIAMÈTRE , Mesure individuelle ) ,
Où ( : Machine == "A386" )
) ;
Le résultat ressemble à ceci :

Malheureusement, ce texte ne semble pas apparaître dans l'arborescence d'affichage et ne peut donc pas être facilement supprimé.L'approche que j'adopte consiste à créer des sous-ensembles de données pour chaque graphique afin que la clause Where ne soit pas requise.Si je compose une fenêtre contenant plusieurs graphiques, le titre "Carte de contrôle" n'ajoute aucune information utile, je remplace donc ce texte par la clause de sélection utilisée pour sous-ensembler les données :

Voici le script complet :
dt = Ouvrir ( "$SAMPLE_DATA/Contrôle qualité/Diamètre.jmp" ) ;
// nom de colonne utilisé pour la clause 'where'
nom de groupe = "Machine" ;
// j'en ai besoin pour faire le ménage après l'événement de fermeture de la fenêtre
ns = Nouvel espace de noms ( "tables-temporaires-à-supprimer" ) ;
// obtient des valeurs uniques pour la machine
Résumer ( les niveaux = Par ( CommeColonne ( nom de groupe ) ) ) ;
maintenant = Nouvelle fenetre ( "Mes graphiques" ,
hlb = Zone de liste H ()
) ;
// itérer sur chaque valeur
ns : lstTables = {} ;
Pour ( je = 1 , je <= NArticles ( les niveaux ) , je ++,
// crée le sous-ensemble de données
lignes correspondantes = dt << Obtenir les lignes où ( CommeColonne ( nom de groupe ) == les niveaux [ je ] ) ;
dtName = "Sous-ensemble pour" || nom de groupe || "=" || les niveaux [ je ] ;
dtSous-ensemble = dt << Sous-ensemble ( Lignes ( lignes correspondantes ) , Tableau de sortie ( dtName ) , Invisible ) ;
// ajouter à l'espace de noms pour le référencement par l'événement on close
Insérer dans ( ns : lstTables , dtSous-ensemble ) ;
// utilise un conteneur pour garantir que le graphique n'est pas rendu tant qu'il n'est pas ajouté à la fenêtre
récipient = Zone de liste V (
cc = dtSous-ensemble << Carte de contrôle (
Taille de groupe ( 1 ) ,
KSigma ( 3 ) ,
Col du graphique ( : DIAMÈTRE , Mesure individuelle ) ,
)
) ;
// révise le titre
représentant = cc << Rapport ;
ob = représentant [ Boîte de contour ( 1 )] ;
ob << Définir le titre ( nom de groupe || " = " || les niveaux [ je ]) ;
// ajoute à la fenêtre du rapport
hlb << Ajouter ( récipient )
) ;
// entretien ménager - supprime les tables de sous-ensembles
maintenant << À la fermeture (
ns = Espace de noms ( "tables-temporaires-à-supprimer" ) ;
Pour ( je = 1 , je <= NArticles ( ns : lstTables ) , je ++,
Essayer ( Fermer ( ns : lstTables [ je ] , Pas d'enregistrement ) )
)
) ;
Et la sortie associée :

-Dave