cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Check out the JMP® Marketplace featured Capability Explorer add-in
Choose Language Hide Translation Bar
fbm73
Level I

Using a string variable inside a graph builder script

Early in my JMP script, I define a string variable like this:

 

Trim0 = "trim_lvl_a";

There is a column in my data table by the name of trim_lvl_a.  Later in the script, I create a Graph Builder script like this:

 

 

dt << New Script(
       "maps",
Graph Builder(
	Size( 550, 647 ),
	Graph Spacing( 5 ),
	Variables(
		X( :X ),
		Y( :Y ),
		Group Y( :Name( "Tambient (degC)" ) ),
		Wrap( :LotWafer ),
		Color( Column(Trim0) )
	),
	Elements( Points( X, Y, Legend( 3 ) ) ),
	Local Data Filter(
		Add Filter(
			columns( :LotWafer, :Name( "Tambient (degC)" ) ),
			Where( :Name( "Tambient (degC)" ) == 25 ),
			Display( :LotWafer, Size( 224, 105 ), List Display )
		)
	),
	SendToReport(
		Dispatch(
			{},
			"X",
			ScaleBox,
			{Min( -5 ), Max( 60 ), Inc( 5 ), Minor Ticks( 0 ),
			Label Row( Show Major Grid( 1 ) )}
		),
		Dispatch(
			{},
			"Y",
			ScaleBox,
			{Min( -5 ), Max( 60 ), Inc( 5 ), Minor Ticks( 0 ),
			Label Row( Show Major Grid( 1 ) )}
		)
	)
);
);

The problem is where I try to use the Trim0 string constant in the Color part of the graph builder.  Once my JMP script executes and the graph builder script called "maps" is saved to my data table dt, then when I click on the "maps" script in dt, it fails to execute and bring up the graph.  How can I use my string variable Trim0 within this graph builder to refer to the desired column in my data table?  I do not want to have to hard-wire the colulmn name trim_lvl_a into the Color part of the graph builder script.  Thanks.

 

1 ACCEPTED SOLUTION

Accepted Solutions
txnelson
Super User

Re: Using a string variable inside a graph builder script

You need to evaluate the trim0 before submitting the code to JMP.  The below modifications to your script should do what you need.

Eval(
	Eval Expr(
		dt << New Script(
			"maps",
			Graph Builder(
				Size( 550, 647 ),
				Graph Spacing( 5 ),
				Variables(
					X( :X ),
					Y( :Y ),
					Group Y( :Name( "Tambient (degC)" ) ),
					Wrap( :LotWafer ),
					Color( Column( Expr( Trim0 ) ) )
				),
				Elements( Points( X, Y, Legend( 3 ) ) ),
				Local Data Filter(
					Add Filter(
						columns( :LotWafer, :Name( "Tambient (degC)" ) ),
						Where( :Name( "Tambient (degC)" ) == 25 ),
						Display( :LotWafer, Size( 224, 105 ), List Display )
					)
				),
				SendToReport(
					Dispatch(
						{},
						"X",
						ScaleBox,
						{Min( -5 ), Max( 60 ), Inc( 5 ), Minor Ticks( 0 ), Label Row( Show Major Grid( 1 ) )}
					),
					Dispatch(
						{},
						"Y",
						ScaleBox,
						{Min( -5 ), Max( 60 ), Inc( 5 ), Minor Ticks( 0 ), Label Row( Show Major Grid( 1 ) )}
					)
				)
			)
		)
	)
);
Jim

View solution in original post

1 REPLY 1
txnelson
Super User

Re: Using a string variable inside a graph builder script

You need to evaluate the trim0 before submitting the code to JMP.  The below modifications to your script should do what you need.

Eval(
	Eval Expr(
		dt << New Script(
			"maps",
			Graph Builder(
				Size( 550, 647 ),
				Graph Spacing( 5 ),
				Variables(
					X( :X ),
					Y( :Y ),
					Group Y( :Name( "Tambient (degC)" ) ),
					Wrap( :LotWafer ),
					Color( Column( Expr( Trim0 ) ) )
				),
				Elements( Points( X, Y, Legend( 3 ) ) ),
				Local Data Filter(
					Add Filter(
						columns( :LotWafer, :Name( "Tambient (degC)" ) ),
						Where( :Name( "Tambient (degC)" ) == 25 ),
						Display( :LotWafer, Size( 224, 105 ), List Display )
					)
				),
				SendToReport(
					Dispatch(
						{},
						"X",
						ScaleBox,
						{Min( -5 ), Max( 60 ), Inc( 5 ), Minor Ticks( 0 ), Label Row( Show Major Grid( 1 ) )}
					),
					Dispatch(
						{},
						"Y",
						ScaleBox,
						{Min( -5 ), Max( 60 ), Inc( 5 ), Minor Ticks( 0 ), Label Row( Show Major Grid( 1 ) )}
					)
				)
			)
		)
	)
);
Jim