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
yanee
Level III

Missing Local Filter when Append Graph to the new Window

I try to append graph with local filter to the new window

The graph is appeared in the New Window Tab but the local filter is missing.

Yld2 = 
Graph Builder(
	Size( 604, 690),
	Show Control Panel( 0 ),
	Variables( X( :Index ), Y( :Yield ), Page( :Process ) ),
	Elements(
		Points( X, Y, Legend( 4 ) ),
		Line( X, Y, Legend( 5 ) ),
		Caption Box( X, Y, Legend( 6 ), Per Factor( 1 ) )
	),
	Local Data Filter(
		Add Filter( columns( :Process ), Where( :Process == {"Auto_Align", "Final_Electrical_Test"} ),Display( :Process, N Items( 10 ) ) )
	) 
);

plot = new window("Plot", tb = tab box());
tb << append ("Yield Trend By Process",vlb = vlistbox());
vlb << append(report(Yld2));
5 REPLIES 5
txnelson
Super User

Re: Missing Local Filter when Append Graph to the new Window

The Local Data Filter is independent of the Graph Builder Report, so it has to be added separately.

The path to the Local data filter is being referenced by going to the parent of the Graph Builder object and then referencing the Outline Box for the Local Data Filter.

Yld2 = Graph Builder(
	Size( 604, 690 ),
	Show Control Panel( 0 ),
	Variables( X( :Index ), Y( :YieProcess ), Page( :sex ) ),
	Elements(
		Points( X, Y, Legend( 4 ) ),
		Line( X, Y, Legend( 5 ) ),
		Caption Box( X, Y, Legend( 6 ), Per Factor( 1 ) )
	),
	Local Data Filter(
		Add Filter( columns( :Process ), Where( :Process == "Auto_Align", "Final_Electrical_Test" ), Display( :Process, N Items( 10 ) ) )
	)
);

plot = New Window( "Plot", tb = Tab Box() );
tb << append( "Yield Trend By Process", vlb = V List Box( hlb = H List Box() ) );
hlb << append( (Report( yld2 ) << parent)["Local Data Filter"] );
hlb << append( Report( Yld2 ) );
Jim
hogi
Level XII

Re: Missing Local Filter when Append Graph to the new Window

When I saw this idea, I thought: wow, great, looks like a solution for the idea with the split Graph + additional legend (/ data filter)

Graph Builder - open legend in new window (or in it's own ScrollBox) 
But it seems that by taking the parts of the report the objects loose their interactivity

jthi
Super User

Re: Missing Local Filter when Append Graph to the new Window

If you build your report in a bit different way it should work. This is one option

Names Default To Here(1); 

dt = open("$SAMPLE_DATA/Big Class.jmp");

vlb = V List Box(gb = dt << Graph Builder(
	Size(525, 454),
	Show Control Panel(0),
	Variables(X(:weight), Y(:height)),
	Elements(Points(X, Y, Legend(7)), Smoother(X, Y, Legend(8))),
	Local Data Filter(Add Filter(columns(:age), Display(:age, N Items(6))))
));

plot = New Window("Plot", tb = Tab Box());
tb << append("Yield Trend By Process", plot_collector = V List Box());
plot_collector << append(vlb);
-Jarmo
hogi
Level XII

Re: Missing Local Filter when Append Graph to the new Window

Nice idea to encapsulate the fragile GraphBuilder with a display box.

 

I just found in the Scripting Index that Platform is explicitly invented for this application:

hogi_0-1706140034253.png

 

I don't know if Platform has a benefit compared to a List Box - or another Display Box ...

hogi
Level XII

Re: Missing Local Filter when Append Graph to the new Window

You could also generate the Data Filter and the GraphBuilder separately and append both to the window.
Important: don't forget the Data Filter Context Box which will create the link between the Data Filter and the plot.

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );

gb = H List Box(
	dt << Graph Builder(
		Size( 200, 200 ),
		Show Control Panel( 0 ),
		Variables( X( :sex ), Y( :age ) ),
		Elements( Points( X, Y, Legend( 4 ) ) )
	)
);
ldf = H list Box(dt << Data Filter( Local, Add Filter( columns( :sex ) ) ));

plot = New Window( "Plot", Data Filter Context Box( tb = Tab Box() ) );
tb << append(
	"age by sex",
	Data Filter Context Box(
		hlb = H List Box()

	)
);
hlb << append( ldf );
hlb << append( gb );

And the easiest way:
Create the window with the plot and the Data Filter - don't append them