Les problèmes que vous devez résoudre concernent un nombre inconnu de colonnes Y, puis comment insérer ce nombre inconnu de colonnes Y dans le Control Chart Builder.Ci-dessous est une façon de le faire
/* Query the user for X and Y columns */
cdlg = Column Dialog(
yCol = ColList( "Y, Response", MinCol( 1 ), MaxCol( 25 ), Data Type( "Numeric" ) ),
xCol = ColList( "X, Factor", MinCol( 1 ), MaxCol( 1 ) )
);
// There isn't a need to unload the values from the Column Dialog
/* Unload the values from the Column Dialog */
/*my_Y1 = cdlg["yCol"][1];
my_Y2 = cdlg["yCol"][2];
my_Y3 = cdlg["yCol"][3];
my_Y4 = cdlg["yCol"][4];
my_Y5 = cdlg["yCol"][5];
my_Y6 = cdlg["yCol"][6];
my_Y7 = cdlg["yCol"][7];
my_Y8 = cdlg["yCol"][8];
my_Y9 = cdlg["yCol"][9];
my_Y10 = cdlg["yCol"][10];
my_Y11 = cdlg["yCol"][11];
my_Y12 = cdlg["yCol"][12];
my_Y13 = cdlg["yCol"][13];
my_X = cdlg["xCol"][1];*/
// What is returned from the ColDialog for yCol is a list of columns in the
// form of expressions, not strings. Control Chart builder does not seem to
// like processing of lists of a length greater than 1. So to get around that
// I take the list and convert it into a single character string. I have found
// the fastest way to do this is to strip off the "{}" from the list leaving
// everything inside of the list as a single string
temp = Substr( Char( cdlg["yCol"] ), 2, Length( Char( cdlg["yCol"] ) ) - 2 );
/* Use the column selections in an analysis */
// Build a character string that is the complete command string
// to run the Control Chart Builder, inserting the above created
// temp variable and then run it.
Eval(
Parse(
"Control Chart Builder(
Show Two Shewhart Charts( 0 ),
Sort by Row Order( 1 ),
Connect Thru Missing( 1 ),
Variables(
Subgroup(eval(cdlg[\!"xCol\!"])),
Y("
|| temp ||
")),
Chart(
Points( Statistic( \!"Individual\!" ) ),
Limits( Sigma( \!"Levey Jennings\!" ) ),
Process Capability Analysis(
Within Sigma Capability( 0 ),
Histogram( 1, Show Within Sigma Density( 0 ) )
)
));"
)
);
;Merci - c'est génial.
Je n'y serais jamais arrivé moi-même
Je sais que c'est une demande assez basique, mais je suis nouveau dans le codage et j'ai été un peu perplexe lors du dernier caucus.
J'ai écrit un complément pour nos ingénieurs qualité pour prendre des données dans une table, diviser la table, ajouter des spécifications et des limites de contrôle à partir d'une autre table, puis je veux qu'ils aient les cartes de contrôle à créer pour eux - ils sont juste avoir une boîte de dialogue pour sélectionner les colonnes ou toutes les colonnes numériques/continues sont tracées.
Le problème est que les noms et le nombre de colonnes varient à chaque fois car cela dépend du produit et je veux un complément générique.
C'est le dernier morceau de code qui me dérange - je peux le faire fonctionner avec un nombre prescrit de colonnes (13 dans ce cas) mais je veux que ce soit n'importe quel nombre.Je sais que j'ai besoin de quelques lignes de code simples, mais je n'arrive pas à comprendre.Toute aide appréciée.
/* Query the user for X and Y columns */
cdlg = Column Dialog(
yCol = ColList( "Y, Response", MinCol( 1 ), MaxCol( 25 ), Data Type( "Numeric" ) ),
xCol = ColList( "X, Factor", MinCol( 1 ), MaxCol( 1 ) )
);
/* Unload the values from the Column Dialog */
my_Y1 = cdlg["yCol"][1];
my_Y2 = cdlg["yCol"][2];
my_Y3 = cdlg["yCol"][3];
my_Y4 = cdlg["yCol"][4];
my_Y5 = cdlg["yCol"][5];
my_Y6 = cdlg["yCol"][6];
my_Y7 = cdlg["yCol"][7];
my_Y8 = cdlg["yCol"][8];
my_Y9 = cdlg["yCol"][9];
my_Y10 = cdlg["yCol"][10];
my_Y11 = cdlg["yCol"][11];
my_Y12 = cdlg["yCol"][12];
my_Y13 = cdlg["yCol"][13];
my_X = cdlg["xCol"][1];
/* Use the column selections in an analysis */
Control Chart Builder(
Show Two Shewhart Charts( 0 ),
Sort by Row Order( 1 ),
Connect Thru Missing( 1 ),
Variables(
Subgroup(my_X ),
Y(my_Y1,my_Y2,my_Y3,my_Y4,my_Y5,my_Y6,my_Y7,my_Y8,my_Y9,my_Y10,my_Y11,my_Y12,my_Y13)),
Chart(
Points( Statistic( "Individual" ) ),
Limits( Sigma( "Levey Jennings" ) ),
Process Capability Analysis(
Within Sigma Capability( 0 ),
Histogram( 1, Show Within Sigma Density( 0 ) )
)
));