Ciao gente, nuovo nello scripting jmp.Ho uno script allegato che è stato scritto nel 2012 e ora non funziona da quando è passato a jmp16, ha funzionato con jmp14.Fondamentalmente mi consente di leggere i limiti delle specifiche superiore e inferiore per tutti i parametri della colonna. Di seguito è riportato il messaggio di errore e un esempio del mio file di dati dopo averlo letto.Qualsiasi aiuto sarebbe molto apprezzato.Non ho scritto la sceneggiatura e da allora la persona ha lasciato l'azienda.
Grazie in anticipo per qualsiasi assistenza.


C'erano 2 problemi.
- Il valore per la variabile "Versione" non è stato impostato.
- In JMP 16, il codice si interrompe quando incontra una variabile Character.
Ho risolto entrambi i problemi.Invece di controllare un tipo di dati di carattere, in realtà controllo per assicurarmi che il tipo di modellazione sia continuo.Anche le colonne numeriche nominali o ordinali non devono avere i limiti di specifica impostati.
Names Default To Here( 1 );
version = JMP Version();
/*** This script will save the values in the specified rows as ***/
/*** Spec Limit column attributes for each respective column. ***/
/*** If there is no value for a particular column, the Spec ***/
/*** Limit attribute for that column will not be changed. By ***/
/*** saving the limits as column attributes, the Cpk analysis ***/
/*** along with limits reference markers, will automatically ***/
/*** be generated whenever a distribution is generated for a ***/
/*** column. ***/
/*** Alternatively, this script can be used to delete the ***/
/*** Spec Limits column attributes altogether by checking the ***/
/*** "Delete Attributes" checkbox. ***/
// 10/28/2004 v2.0
// 12/24/2012 v2.1, modified to handle limits with units, like "2 Ohms"
Limits_dlg = Dialog(
Text Box( Version ),
Text Box( " " ),
Text Box( " " ),
Text Box( " " ),
Text Box( "Spec Limits:" ),
Text Box( " " ),
LineUp( 2,
"LSL is in row", LSLRow = EditNumber( 1 ),
"USL is in row", USLRow = EditNumber( 2 )
),
Text Box( " " ),
Text Box( " " ),
Text Box( " " ),
Text Box( "My table already has Spec Limits attributes, and I want to delete them... " ),
DelAttr = Check Box( "Delete Attributes", 0 ),
Text Box( " " ),
HList( Button( "OK" ), Button( "Cancel" ) )
);
If( Limits_dlg["Button"] == -1,
Throw( "!User Cancelled" )
);
If( Limits_dlg["DelAttr"] == 1,
For( i = 1, i < N Col() + 1, i++,
Column( i ) << Delete Property( "Spec Limits" )
),
//Else...
For( i = 1, i < N Col() + 1, i++,
If( As Column( i ) << get modeling type == "Continuous",
LSpec = Column( i )[Limits_dlg["LSLRow"]];
LSpec = Num( Word( 1, Char( LSpec ) ) ); //Truncate to numeric if it has units appended to it.
USpec = Column( i )[Limits_dlg["USLRow"]];
USpec = Num( Word( 1, Char( USpec ) ) ); //Truncate to numeric if it has units appended to it.
Eval(
Substitute(
Expr(
Column( i ) << Set Property(
"Spec Limits",
{LSL( _LSL ), USL( _USL ), show limits( 1 )}
)
),
Expr( _LSL ), LSpec,
Expr( _USL ), USpec
)
);
)
)
);
Grazie TX,
Sempre lo stesso messaggio di errore.Hai aggiunto solo due righe credo, nessun altro cambiamento?
Ho notato che ho perso una riga originale nel file org.
Versione = "Limiti come attributi, v2.1 24 dicembre 2012";
sopra era nel file originale, non sono sicuro che ciò cambi la soluzione proposta.
Quando guardo i valori per la versione, sicuramente legge 16 strega è quello che sto eseguendo.Riattacca quando provo a guardare Nomi predefiniti qui?
Nomi predefiniti qui (1);
Versione = versione JMP ();
Grazie