cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Choose Language Hide Translation Bar

Add a <<Set Function() message to the column switcher

It would be great if we could run a given script each time a new variable is selected with the column switcher feature.

4 Comments
Jeff_Perkinson
Community Manager
Status changed to: Yes, Stay Tuned!

We are working on this for JMP 16.

I've been working on this for JMP 16. I'm planning on using a technique similar to the Text Edit Box or the Button Box which have a Set Script option. Below is an example which would work in JMP 16. Let me know if you have any suggestions or concerns.

 

dt = Open("$SAMPLE_DATA/Process Measurements.jmp");
// Set up a Graph with a Reference line at the mean value for Process 1 on the x-axis
gb = dt << Graph Builder(
	Show Control Panel(0),
	Variables( X( :Process 1 ), Y( :Process 2 ) ),
	Elements( Points( X, Y, Legend( 2 ) ), Smoother( X, Y, Legend( 3 ) ) ),
	SendToReport(
		Dispatch(
			{},
			"Process 1",
			ScaleBox,
			{Add Ref Line( 10.0787278156801, "Dashed", "Blue", "Mean", 2 )}
		)
	)
);
// Set up a Column Switcher for Process 1
cs = gb << Column Switcher(
	:Process 1,
	{:Process 1, :Process 3, :Process 4, :Process 5, :Process 6, :Process 7}
);

// Set a Script on Process 1 which recreates the Ref Line at the new mean for the column on the X-axis.
cs << Set Script(
	report = gb << Report;
	col = Column(cs << Get Current());
	meanX = ColMean(col);
	axisbox = report[axis box( 1 )];
	axisbox << Add Ref Line( meanX, "Dashed", blue, "Mean", 2 );	
);
anne_sa
Level VI

Hello @paul_vezzetti ,

 

It is exactly what I had in mind.

Thank you very much for your help it is highly appreciated to see wishes coming true!

Jeff_Perkinson
Community Manager
Status changed to: Delivered

As noted above, with the release of JMP 16 the Column Switcher object supports a script option.

 

Here's the example from the Scripting Index:

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Car Poll.jmp" );
obj = dt << Contingency( Y( :size ), X( :marital status ) );
ColumnSwitcherObject = obj << Column Switcher(
	:marital status,
	{:sex, :country, :marital status}
);
ColumnSwitcherObject << Set Script(
	Print( "New Value: " || Char( ColumnSwitcherObject << Get Current ) )
);