Salut tout le monde,
J'ai importé des fichiers csv dans JMP pour obtenir respectivement la table de données (affectée en tant que dt0) et la table de spécifications (affectée en tant que dt1). Je me demande d'obtenir la spécification dans la table de spécifications (dt0) et de définir les limites de spécification des colonnes dans la table de données (dt0).
Le problème que j'ai trouvé que les spécifications ne peuvent pas être définies avec succès :

Voici mes codes :
Noms par défaut ici ( 1 );
Fichiers = Choisissez un fichier (
"Sélectionner le fichier CSV" ,
"$Téléchargements" ,
{ "Fichiers JMP|jmp;jsl;jrn" , "Tous les fichiers|*" },
1 ,
0 ,
""
);
dt0 = Ouvrir (
Des dossiers,
Importer les configurations(
Fin de ligne ( CRLF, CR, LF ),
Fin de champ( Virgule, CSV( 0 ) ),
Citations de bande ( 1 ),
Utilisez l'apostrophe comme guillemet( 0 ),
Utiliser les paramètres régionaux( 0 ),
Analyser tout le fichier( 1 ),
Traiter les colonnes vides comme numériques ( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Étiquettes( 1 ),
Noms de colonne Début( 2 ),
Les données commencent( 8 ),
Lignes à lire( "Tous" ),
Règle de l'année( "20xx" )
)
);
dt1 = Ouvrir (
Des dossiers,
Importer les configurations(
Fin de ligne ( CRLF, CR, LF ),
Fin de champ( Virgule, CSV( 0 ) ),
Citations de bande ( 1 ),
Utilisez l'apostrophe comme guillemet ( 0 ),
Utiliser les paramètres régionaux( 0 ),
Analyser tout le fichier( 1 ),
Traiter les colonnes vides comme numériques( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Étiquettes( 1 ),
Noms de colonne Début( 2 ),
Les données commencent( 5 ),
Lignes à lire( 2 ),
Règle de l'année( "20xx" )
)
);
Pour (je= 13 , je<= Cols N (dt0), i++,
Colonne (dt0,i)<< Type de données (Numérique);
Colonne (dt0,i)<< Type de modélisation ( "Continu" );
);
Pour (je= 13 , je<= Cols N (dt1), i++,
Colonne (dt1,i)<< Type de données (Numérique);
Colonne (dt1,i)<< Type de modélisation ( "Continu" );
);
Pour (je= 13 , je<= Cols N (dt1), i++,
tempUSL= Col Valeur stockée (dt1, je, 1 ); // Attribuez la spécification de la table de spécifications dt1 à 'tempUSL' et 'tempLSL'
tempLSL= Col Valeur stockée (dt1, je, 2 );
Éval (
Expr éval (
Colonne ( dt0,i ) << Définir la propriété (
« Limites des spécifications » ,
{LSL( Expr ( tempLSL ) ), USL( Expr ( tempUSL ) ), Afficher les limites ( 1 )}
)
)
);
);
Des conseils pour régler ce problème ? Merci
Je vois ce que vous faites et je dois dire que votre code est très joli. Aussi très complexe.
Il existe plusieurs autres façons d'obtenir la même chose en utilisant des plates-formes de script qui existent déjà dans JMP.
Voici quelques exemples :
Celui-ci utilise la plate-forme de criblage de processus
Names Default To Here( 1 );
dt1 = Open( "$SAMPLE_DATA/Cities.jmp" );
dt2 = Open( "$SAMPLE_DATA/CitySpecLimits.jmp" );
dt1 << Process Screening(
Y( :OZONE, :CO, :SO2, :NO ),
Use Limits Table(
1,
dt2,
Process Variables( :Column 1 ),
LSL( :_LSL ),
USL( :_USL ),
Target( :_Target ),
Go
)
);
Celui-ci utilise la plate-forme de capacité de processus
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
obj = dt << Process Capability(
Process Variables( :OZONE, :CO, :SO2, :NO ),
Spec Limits(
Import Spec Limits(
"$SAMPLE_DATA/CitySpecLimits.jmp"
)
)
);
Dans cet exemple, une boîte de dialogue s'ouvre pour permettre à l'utilisateur de sélectionner le tableau des limites de spécification
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
obj = dt << Manage Spec Limits(
Y( dt << Get Column Group( "Processes" ) )
);
Ce code de base qui tire parti des fonctionnalités de la plate-forme est également beaucoup plus facile à maintenir.
J'espère que cela a été utile,
Acclamations,
B
Si vous attribuez un numéro à 'tempUSL' et 'tempLSL' directement, cela pourrait fonctionner.
Mais je dois attribuer les limites de spécification à partir de la table de spécifications.
Names Default To Here( 1 );
Files = Pick File(
"Select CSV File",
"$Downloads",
{"JMP Files|jmp;jsl;jrn", "All Files|*"},
1,
0,
""
);
dt0 = Open(
Files,
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Comma, CSV( 0 ) ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 2 ),
Data Starts( 8 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
);
dt1 = Open(
Files,
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Comma, CSV( 0 ) ),
Strip Quotes( 1 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 2 ),
Data Starts( 5 ),
Lines To Read( 2 ),
Year Rule( "20xx" )
)
);
For(i=13, i<=N Cols(dt0), i++,
Column(dt0,i)<<DATA type=""></DATA>