When you create a By() group, JMP is creating a set of subset tables for you automatically. You can also do this on a level-by-level basis by using Where() clauses instead.
Here is a script that creates tabs per level, and as a bonus they are moveable and dockable, so they behave like a JMP Dashboard and can be rearranged in a variety of ways.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
//get the unique levels
Summarize( dt, unique_values = by( :sex ) );
// Create the window with an empty tab list
nw = New Window( "Tabs", tb = Tab Box( <<Dockable( 1 ) ) );
// Generate tabs, one per level
For( i = 1, i <= N Items( unique_values ), i++,
tb << Append(
Tab Page Box(
Title( ":sex = " || unique_values[i] ),
dt << Bivariate( invisible, Y( :height ), X( :weight ), Where( :sex == unique_values[i] ) ),
<<Moveable( 1 ),
<<Closeable( 1 )
)
)
);