Hallo Leute, neu bei jmp scripting.Ich habe ein Skript angehängt, das 2012 geschrieben wurde und seit dem Wechsel zu jmp16 nicht mehr funktioniert, es funktionierte unter jmp14.Es erlaubt mir im Grunde, die oberen und unteren Spezifikationsgrenzen für alle Spaltenparameter einzulesen. Unten ist die Fehlermeldung und ein Beispiel meiner Datendatei, sobald ich sie eingelesen habe.Jede Hilfe wäre sehr willkommen.Ich habe das Drehbuch nicht geschrieben und die Person hat die Firma inzwischen verlassen.
Vielen Dank im Voraus für jede Hilfe.


Es gab 2 Probleme.
- Der Wert für die Variable „Version“ wurde nicht gesetzt.
- In JMP 16 stoppt der Code, wenn er auf eine Character-Variable trifft.
Ich habe beide Probleme behoben.Anstatt nach einem Datentyp von Zeichen zu suchen, überprüfe ich tatsächlich, ob der Modellierungstyp „Kontinuierlich“ ist.Für nominelle oder ordinale numerische Spalten sollten auch keine Spezifikationsgrenzen festgelegt sein.
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
)
);
)
)
);
Danke TX,
Immer noch dieselbe Fehlermeldung.Sie haben nur zwei Zeilen hinzugefügt, glaube ich, keine anderen Änderungen?
Mir ist aufgefallen, dass ich eine Originalzeile in der Org-Datei verpasst habe.
Version = "Limits als Attribute, v2.1, 24. Dezember 2012";
oben war in der Originaldatei, nicht sicher, ob das Ihre vorgeschlagene Lösung ändert.
Wenn ich mir die Werte für die Version ansehe, wird auf jeden Fall 16 angezeigt, was ich ausführe.Es hängt sich auf, wenn ich versuche, Names Default to Here?
Namen standardmäßig bis hierhin (1);
Version = JMP-Version ();
Danke