<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Bonjour,
Depuis ma dernier question un peu jours je avoir viens un petit plus loin avec mon scénario.
Pour terminer la première étape, je souhaite combiner les rapports (dans 3 fenêtres) en un seul rapport (1 fenêtre).
Comment puis-je faire ceci ... Voir ligne 51 et suivantes
Et comment puis-je enregistrer ce rapport automatiquement nommé par nom de fichier de données (10 premiers caractères) ET _Baseline (si vous sélectionnez plusieurs mois) OU _Monthly (avec le mois sélectionné) ? ... voir lignes 33-40
mon script :
Effacer le journal ();
Effacer les globales ();
data_file= Choisir un fichier("Sélectionner la base de données");
dt_data= Ouvrir( data_file, invisible);
spec_file= Choisir un fichier("Sélectionner le fichier de spécifications");
dt_spec= Ouvrir( spec_file, invisible);
//dt_ssum= Nouveau tableau("Résumé des statistiques", invisible);
specColName = dt_spec << GetColumnNames( Numeric, String );
dataColName = dt_data << GetColumnNames( Numeric, String );
specExpr = Expr(
Colonne (dt_data, nom) << définir la propriété (
"Limites des spécifications",
{LSL( Expr( inférieur ) ), USL( Expr( supérieur ) )}
);
);
Pour( i = 1, i <= N Lignes( dt_spec ), i++,
nom = Colonne (dt_spec, "Processus" ) ;
inférieur = Colonne (dt_spec, "LSL" ) ;
supérieur = Colonne (dt_spec, "USL" ) ;
Si( Contient( dataColName, nom ),
Eval( Eval Expr( specExpr ) )
);
);
Table de données actuelle (dt_data);
Nouvelle fenêtre( "Sélectionnez UN mois", <
Zone de liste V (
Zone de texte ("ou ALL pour la ligne de base"),
mon = List Box(:Stage << obtenir les valeurs),
Button Box( "OK", cho = mon << être sélectionné),
)
);
dt_data << Sélectionner Où (Contient (cho, :Stage));
si (
cho [1] == "Base de référence",
dt_data << supprimer les lignes,
dt_data << inverser la sélection de ligne ;
dt_data << supprimer les lignes ;
);
pour (k = 1, k <= N éléments (dataColName), k++,
cc = dt_data << Carte de contrôle (
Taille du groupe( 1 ),
KSigma( 3 ),
Graphique Col(
dataColName,
Mesure individuelle( Test 1( 1 ), Test 2( 1 ), Test 3( 1 ) ),
Plage mobile,
Aptitude(
Distribution(
Distribution continue (
Colonne ( dataColName),
Quantiles( 0 ),
Disposition horizontale ( 0 ),
Histogramme( 0 ),
Verticale( 0 ),
Boîte à moustaches aberrante ( 0 ),
Statistiques récapitulatives ( 1 ), // aucune fonction
Diagramme quantile normal ( 0 ), // pas de fonction
Étiquetage des capacités PpK (1),
Analyse de capacité,
)
)
)
),
EnvoyerToReport(
Expédition(
{"Mesure individuelle du test"},
"Carte IR de la messagerie instantanée",
FrameBox( 2 ),
{Taille du cadre (75, 162)}
),
Expédition(
{"Plage mobile de test"},
"Carte IR de MR",
FrameBox( 2 ),
{Taille du cadre (75, 162)}
),
Expédition(
{"Analyse des capacités"},
" Sigma à long terme ",
Boîte de contour,
{Fermer( 1 )}
),
Expédition(
{"Analyse des capacités"},
"Carte de Contrôle Sigma",
)
)
)
);
// crée et enregistre une nouvelle table avec LSL, USL, UCL, AVG, LCL,
// Statistiques récapitulatives, CP, CPK, CPL, CPU, Sigma (Control Chart Sigma)
ccr = cc << Rapport ;
ccr << afficher l'arborescence ();
//ccr[StringColBox(1)]
//ccr[NumberColBox(1)]
//ccr[FrameBox(2)]
//ccr[StringColBox(7)]
//ccr[NumberColBox(9)]
//ccr[Boîte de Texte(6)]
Merci pour votre aide
Il semble y avoir 3 questions ici.
Voici un exemple de code pour combiner la sortie dans une seule fenêtre :
dt = Ouvrir ( "$SAMPLE_DATA/Capabilité des semi-conducteurs.jmp" ) ;
maintenant = Nouvelle fenetre ( "Démo" ,
récipient = Zone de liste V ()
) ;
Pour ( je = 5 , je < 8 , je ++,
contenu = Zone de liste V (
dt << Carte de contrôle (
Col du graphique ( Colonne ( je ) , XBar ) ,
Exemple d'étiquette ( : tranche ) ,
KSigma ( 3 )
)
) ;
récipient << Ajouter ( contenu )
) ;
À propos de l'enregistrement automatique du rapport, je vais essayer de répondre sans travailler sur les détails de votre code.Il y a deux aspects : comment obtenir le bon nom et comment effectuer la sauvegarde.Vous souhaitez dériver le nom de plusieurs composants : nom de la table et ligne de base.Je n'ai pas regardé en détail ce que vous entendez par ligne de base mais les principes sont d'utiliser la manipulation des personnages.Si vous voulez les 10 premières lettres du nom de la table, vous pouvez écrire :
nom de la table = dt_données << Obtenir le nom ;
nom court = Gauche ( nom de la table , dix ) ;
Sur la base de la construction d'une autre chaîne représentant les informations de base (par exemple strBaseline), vous pouvez alors construire un nom de fichier, par exemple
nom de fichier = nom court || "_" || strBaseline || ".pdf" ;
Ensuite, pour enregistrer automatiquement le rapport, vous pouvez écrire quelque chose comme :
maintenant << Enregistrer le PDF ( nom de fichier );
Si vous souhaitez l'enregistrer en tant que rapport JMP, je ne sais pas comment ni si cela peut être fait automatiquement, mais vous pouvez l'enregistrer en tant que journal :
nom de fichier = nom court || "_" || strBaseline || ".jrn" ;
maintenant << Enregistrer le journal ( nom de fichier );
-Dave