cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Try the Materials Informatics Toolkit, which is designed to easily handle SMILES data. This and other helpful add-ins are available in the JMP® Marketplace
Choose Language Hide Translation Bar
kprentiss
Level I

JMP Script that changes the column USL and LSL properties

I have a JMP Script Function that obtains a set of spec limits from a text file that is stored within the "Ntwk Osnr Spec Table Filename" variable. I am trying to change the USL and LSL column properties of the "PctDiff_ModBer_q_calcBer column within the "Ntwk Osnr Data Table" data table. But when I run the following JMP script commands I do not get a scripting error but the USL and LSL column properties are not updated. The Spec Limit that is obtained from the spec limit is 1.7. When I step thru the following lines the value of 1.7 is updated within the Speclimit variable but the USL  and LSL Column Properties are not updated. If I set the Speclimit variable to a constant 1.7 then the USL and LSL Column Properties are set to 1.7 and -1.7 respectively. So the issue must be obtaining the value from the text file, but I can figure out the issue. Can some one let me know what the solution is to obtain the spec limit from a text file and have it update the column properties.

 

Include( "$CommonScriptPath/Function - Obtain Spec Limit Value.jsl" );
Speclimit = ObtainSpecLimit(
	Ntwk Osnr Spec Table Filename, DeviceType, "*", "*", "ber_diffQcalc"
);

dt = Open( Ntwk Osnr Data Table Filename, invisible );
Data Table( dt ):PctDiff_ModBer_q_calcBer << Set Property(
	"Spec Limits",
	{LSL( (Speclimit * (-1)) ), USL( Speclimit ), Target( 0 ), Show Limits( 1 )}
);
2 REPLIES 2
jthi
Super User

Re: JMP Script that changes the column USL and LSL properties

Make sure the values are numeric and try using Eval(EvalExpr()) and Expr()

Include("$CommonScriptPath/Function - Obtain Spec Limit Value.jsl");
Speclimit = ObtainSpecLimit(Ntwk Osnr Spec Table Filename, DeviceType, "*", "*", "ber_diffQcalc");

dt = Open(Ntwk Osnr Data Table Filename, invisible);
Eval(
	Eval Expr(
		Data Table(dt):PctDiff_ModBer_q_calcBer << Set Property(
			"Spec Limits",
			{LSL(Expr(Speclimit * (-1))), USL(Expr(Speclimit)), Target(0), Show Limits(1)}
		)
	)
);

Insert one expression into another using Eval Insert, Eval Expr, Parse, and Substitute 

-Jarmo
txnelson
Super User

Re: JMP Script that changes the column USL and LSL properties

The calculations you are specifying within a JMP List, will not be evaluated prior to execution.  Therefore, the statement must be fully parsed and evaluated before  The Substitution function will accomplish that

Include( "$CommonScriptPath/Function - Obtain Spec Limit Value.jsl" );
Speclimit = ObtainSpecLimit(
	Ntwk Osnr Spec Table Filename, DeviceType, "*", "*", "ber_diffQcalc"
);

dt = Open( Ntwk Osnr Data Table Filename, invisible );

Eval(
	Substitute(
			Expr(
				Data Table( dt ):PctDiff_ModBer_q_calcBer <<
				Set Property(
					"Spec Limits",
					{LSL( __LSL__ ), USL( __USL__ ), Target( 0 ), Show Limits( 1 )}
				)
			),
		Expr( __LSL__ ), Speclimit * (-1),
		Expr( __USL__ ), Speclimit
	)
);

 

Jim