<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 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 = Zone de liste V ()
) ;
affichage = Fonction ({ Traiter , Étiquette , Par , Src_Type , lmt1 , lmt2 , lmt3 } ,
r1 = Nouvelle fenetre ( "" ,
plb = Panneau électrique ( " Cartes de contrôle pour " || Traiter || " & " || " Type de source= " || Src_Type , Tableau de données actuel ( dt ) ;
H Zone de liste (
Carte de contrôle (
Échantillon d'étiquette ( Colonne ( dt , Étiquette )) ,
Taille de groupe ( 1 ) , KSigmaGenericName ( 3 ) ,
Comme colonne ( dt , Traiter ) , Mesure individuelle ( LCL ( lmt1 [ 6 ]) , MOY ( lmt1 [ 5 ]) , UCL ( lmt1 [ sept ]))) ,
Où ( Comme colonne ( dt , Par ) == Src_Type ) ;
) ;
Échantillon d'étiquette ( Colonne ( dt , Étiquette )) ,
Taille de l'échantillon ( 1 ) ,
Alpha ( 0.00269979606326021 ) ,
Afficher la légende des limites ( 0 ) ,
Comme colonne ( dt , Traiter ) , CUSUM ( Recto verso ( 1 ) , MOY ( lmt2 [ 5 ]))) ,
Où ( Comme colonne ( dt , Par ) == Src_Type ) ;
) ;
Échantillon d'étiquette ( Colonne ( dt , Étiquette )) ,
Taille de l'échantillon ( 1 ) ,
KSigmaGenericName ( 3 ) , Lester ( 0,2 ) ,
Comme colonne ( dt , Traiter ) , EWMA ( MOY ( lmt3 [ 5 ]))) ,
Où ( Comme colonne ( dt , Par ) == Src_Type ) ;
) ;
) ;
) ;
) ; vlb << Ajouter ( r1 ) ; r1 << Fermer la fenêtre ;
) ;
terrain = Fonction ({ lmts , pmt_path } ,
param_dt = Ouvert ( pmt_path , "invisible" ) ;
param_sum = param_dt << Sommaire ( Invisible ,
Groupe ( : Par groupe , : Traiter , : Échantillon d'étiquette , : Par )) << Afficher la fenêtre ( 0 ) ;
Pour ( q = 12 , q <= NRow ( param_sum ) , q ++, Tableau de données actuel ( param_sum ) ;
col2 = : Traiter [ q ] ; col3 = : Échantillon d'étiquette [ q ] ; col4 = : Par [ q ] ;
Tableau de données actuel ( lmts ) ;
clms = lmts << Obtenir les noms de colonne ( Chaîne de caractères ) ;
Retirer ( clms , 1 , 3 ) ;
Pour ( t = 1 , t <= N articles ( clms ) , t ++, Tableau de données actuel ( lmts ) ;
indv_lmts = Comme colonne ( clms [ t ])[ lmts << Obtenir des lignes où ( : Paramètre == col2 & : Type de graphique == "Individuel" )] ;
cusum_lmts = Comme colonne ( clms [ t ])[ lmts << Obtenir des lignes où ( : Paramètre == col2 & : Type de graphique == "CUSUM" )] ;
ewma_lmts = Comme colonne ( clms [ t ])[ lmts << Obtenir des lignes où ( : Paramètre == col2 & : Type de graphique == "EWMA" )] ;
affichage ( col2 , col3 , col4 , clms [ 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( :DIAMETRE, Mesure individuelle ),
Où( :MACHINE == "A386" )
);
Attendez( 2 );
(Rapport( cc ) << Parent)[Zone de texte( 1 )] << supprimer ;
Attendez( 2 );
Le texte de la clause where est la 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 ) ,
KSigmaGenericName ( 3 ) ,
Col du graphique ( : DIAMÈTRE , Mesure individuelle ) ,
Où ( : Machine == "A386" )
) ;
La sortie 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 "Control Chart" 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 = Ouvert ( "$SAMPLE_DATA/Contrôle qualité/Diamètre.jmp" ) ;
// nom de colonne utilisé pour la clause 'where'
nom de groupe = "Machine" ;
// besoin de ceci pour faire le ménage après l'événement de fermeture de fenêtre
ns = Nouvel espace de noms ( "tables-temporaires-à-supprimer" ) ;
// obtenir des valeurs uniques pour la machine
Résumer ( niveaux = Par ( CommeColonne ( nom de groupe ) ) ) ;
nouveau = Nouvelle fenetre ( "Mes graphiques" ,
hlb = H Zone de liste ()
) ;
// itération sur chaque valeur
ns : lstTables = {} ;
Pour ( je = 1 , je <= NIéléments ( niveaux ) , je ++,
// crée le sous-ensemble de données
matchingRows = dt << Obtenir des lignes où ( CommeColonne ( nom de groupe ) == niveaux [ je ] ) ;
dtName = "Sous-ensemble pour" || nom de groupe || "=" || niveaux [ je ] ;
dtSubset = dt << Sous-ensemble ( Lignes ( matchingRows ) , 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 , dtSubset ) ;
// utilise un conteneur pour s'assurer que le graphique n'est pas rendu tant qu'il n'est pas ajouté à la fenêtre
récipient = Zone de liste V (
cc = dtSubset << Carte de contrôle (
Taille de groupe ( 1 ) ,
KSigmaGenericName ( 3 ) ,
Col du graphique ( : DIAMÈTRE , Mesure individuelle ) ,
)
) ;
// réviser le titre
représentant = cc << Signaler ;
ob = représentant [ ContourBox ( 1 )] ;
ob << Définir le titre ( nom de groupe || " = " || niveaux [ je ]) ;
// ajoute à la fenêtre du rapport
hlb << Ajouter ( récipient )
) ;
// ménage - supprimer les tables de sous-ensemble
nouveau << À la fermeture (
ns = Espace de noms ( "tables-temporaires-à-supprimer" ) ;
Pour ( je = 1 , je <= NIéléments ( ns : lstTables ) , je ++,
Essayer ( proche ( ns : lstTables [ je ] , Pas d'enregistrement ) )
)
) ;
Et la sortie associée :

-Dave