cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • JMP 19 is here! See the new features at jmp.com/new.
  • Register to attend Discovery Summit 2025 Online: Early Users Edition, Sept. 24-25.
Choose Language Hide Translation Bar

Data table referencing when combining windows

Hi, I am using the JMP ver 18.2

I have an issue when trying to combine windows into a dashboard. 

For example, when I tried to combine the following 2 reports,

Answer_Seeker_0-1751268768887.png

 

Instead of having the 2 reports showing up as a dashboard, what I get was a new data table and a dashboard with empty frames.

Answer_Seeker_1-1751268982119.png

I think this is caused by the table referencing issue.

Is there a preference or method to combine windows without creating a new data table, and the original data table as reference?

 

 

 

 

1 ACCEPTED SOLUTION

Accepted Solutions

Re: Data table referencing when combining windows

@Answer_Seeker - JMP is indeed using the Source script in the data table to recreate the table each time the dashboard is run.  JMP Applications/Dashboards have several options for how to access the data, with the intention that the script may need to be run repeatedly on either the same time or a different table.

If you use the red-triangle menu to Edit Application, and then Show Properties in the Dashboard Builder, you should see the data table settings on the property panel to the right:

 

danschikore_0-1751311937549.png

 

Embedded Script is the default if (1) the table has a script that we can use (2) the table is not saved to a file.  If the table is saved to a file, you should see a popup similar to this when you combine the windows:

 

danschikore_1-1751312209214.png

 

This will change to using the Full Path option, which will ensure that it runs with the table that was resaved in JMP form.  For any of the other options, you would have to use Edit Dashboard to change the setting and then resave the Dashboard.  You can use the Current Data Table option if you always want to run against the current table.  You could then save the script to an Add-In or other JSL container to recreate the dashboard for another table.

View solution in original post

4 REPLIES 4
jthi
Super User

Re: Data table referencing when combining windows

Did you get this immediately after you combined the windows or after saving and loading? Is your data table saved? Have you taken a look at the script which is behind the dashboard? It does at least seem that your table name is different and based on those images it is impossible to say if you have similarly named columns in both tables/reports

jthi_2-1751271232899.png

jthi_3-1751271240443.png

X, Y and Wafer ID possibly as columns?

jthi_5-1751271330646.png

No Wafer Id, X or Y visible here

jthi_4-1751271319368.png

 

-Jarmo

Re: Data table referencing when combining windows

Hi jthi,

Thanks for replying.

Yes, I get an empty dashboard immediately after clicking the "OK" button of the combine window dialog. (And also a new data table is created as if the green triangle of "Source" is pressed )

Answer_Seeker_2-1751274558167.png

 

 

Anyway,  the original data table was not saved when execute the window combination.

The X ,Y and the Wafer ID columns are some derivative columns, which seem they are not copied to the new data table.

Answer_Seeker_0-1751272972334.png

 

The following is the script I copied from the dashboard window. 

 


JMP App(
	Set Name( "Dashboard" ),
	Set Description( "Description" ),
	Auto Launch( 1 ),
	Snap To Grid( 1 ),
	Show Grid( 1 ),
	Show Properties( 0 ),
	Show Sources( 1 ),
	Group By Category( 0 ),
	Dashboard Mode( 1 ),
	Parameters,
	Tables(
		DataTable1 = GuiTable(
			Set Path( "" ),
			Set Label( "map081_BAWBA020NB2593D-MCH_52252324_988-5225232-02" ),
			Location( "Embedded Script" ),
			Invisible( 0 ),
			Set Script(
				Open(
					"//wlcsp-server/d/BAW/mqc/InspectionResultMap/BAWBA020NB2593D-MCH/map081_BAWBA020NB2593D-MCH_52252324_988-5225232-02.dat",
					columns(
						New Column( "iCol",
							Numeric,
							"Continuous",
							Format( "Best", 12 )
						),
						New Column( "iRow",
							Numeric,
							"Continuous",
							Format( "Best", 12 )
						),
						New Column( "Kind",
							Numeric,
							"Continuous",
							Format( "Best", 12 )
						),
						New Column( "Inspect",
							Numeric,
							"Continuous",
							Format( "Best", 12 )
						),
						New Column( "Result",
							Numeric,
							"Continuous",
							Format( "Best", 12 )
						),
						New Column( "rCol",
							Numeric,
							"Continuous",
							Format( "Best", 12 )
						),
						New Column( "rRow",
							Numeric,
							"Continuous",
							Format( "Best", 12 )
						),
						New Column( "RcgEnd",
							Numeric,
							"Continuous",
							Format( "Best", 12 )
						),
						New Column( "ResultSub",
							Numeric,
							"Continuous",
							Format( "Best", 12 )
						)
					),
					Import Settings(
						End Of Line( CRLF, CR, LF ),
						End Of Field( Comma, CSV( 0 ) ),
						Treat Leading Zeros as Character( 1 ),
						Strip Quotes( 1 ),
						Use Apostrophe as Quotation Mark( 0 ),
						Use Regional Settings( 0 ),
						Scan Whole File( 1 ),
						Treat empty columns as numeric( 0 ),
						CompressNumericColumns( 0 ),
						CompressCharacterColumns( 0 ),
						CompressAllowListCheck( 0 ),
						Labels( 1 ),
						Column Names Start( 4 ),
						First Named Column( 1 ),
						Data Starts( 5 ),
						Lines To Read( "All" ),
						Year Rule( "20xx" )
					)
				)
			)
		)
	),
	Script(JSL Quote(// This script is executed when the application is run.
// Named objects have been created for the application modules
// (for example, "Module1") and the pre-defined object
// "thisApplication" refers to the application object itself.
// Variables and functions declared here are scoped to the
// Application namespace.


)	),
	Allocate(
		Module1 = Plan(
			PreAllocate,
			Script(JSL Quote(// This script is executed when a new module instance is
// created.  The pre-defined object "thisModuleInstance" refers
// to the instance object, but other objects such as boxes and
// scripts have not yet been created.  Variables declared here are
// scoped to the ModuleInstance namespace.

// This special function will receive parameters passed to CreateInstance()
OnModuleLoad({},
);

thisModuleInstance << Create Objects;

// After this point your module instance objects have been created
// and can be referred to by name (for example, "Button1").

Try(TabPage3 << Set Scriptable Object(thisApplication));
)			),
			Allocate(
				TabPage3 = Tab Page Box();
				Splitter1 = H Splitter Box();
				TabPage1 = Tab Page Box();
				Scroll1 = Scroll Box();
				Report1 = Platform(
					DataTable1,
					Graph Builder(
						Size( 437, 481 ),
						Show Control Panel( 0 ),
						Fit to Window,
						Variables,
						Elements( Points( Legend( 1 ) ) )
					)
				);
				TabPage2 = Tab Page Box();
				Scroll2 = Scroll Box();
				Report2 = Platform(
					DataTable1,
					Graph Builder(
						Size( 450, 481 ),
						Show Control Panel( 0 ),
						Fit to Window,
						Variables,
						Elements( Points( Legend( 1 ) ) )
					)
				);
			),
			Organize(
				Reparent( Scroll2( Report2 ) );
				Reparent( TabPage2( Scroll2 ) );
				Reparent( Splitter1( TabPage2 ) );
				Reparent( Scroll1( Report1 ) );
				Reparent( TabPage1( Scroll1 ) );
				Reparent( Splitter1( TabPage1 ) );
				Reparent( TabPage3( Splitter1 ) );
				Relocate( TabPage3( 0, 0 ) );
			),
			Initialize(
				TabPage3 << Background Color( "None" ),
				TabPage3 << Border( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ),
				TabPage3 << Enabled( 1 ),
				TabPage3 << Horizontal Alignment( "Default" ),
				TabPage3 << Margin( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ),
				TabPage3 << Padding(
					{Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )}
				), TabPage3 << Text Color( "None" ), TabPage3 << UI Only( 0 ),
				TabPage3 << Vertical Alignment( "Default" ),
				TabPage3 << Visibility( "Visible" ),
				TabPage3 << Set Min Size( 203, 128 ),
				TabPage3 << Set Max Size( 30000, 30000 ),
				TabPage3 << Set Stretch( {"Neutral", "Neutral"} ),
				TabPage3 << Title( "Dashboard" ), TabPage3 << Tip( "" ),
				TabPage3 << Icon( "" ), TabPage3 << Closeable( 0 ),
				TabPage3 << Moveable( 0 ), TabPage3 << Set Base Font( "Text" ),
				TabPage3 << Set Font Scale( 1 ),
				Splitter1 << Background Color( "None" ),
				Splitter1 << Border(
					{Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )}
				), Splitter1 << Enabled( 1 ),
				Splitter1 << Horizontal Alignment( "Default" ),
				Splitter1 << Margin(
					{Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )}
				),
				Splitter1 << Padding(
					{Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )}
				), Splitter1 << Text Color( "None" ), Splitter1 << UI Only( 0 ),
				Splitter1 << Vertical Alignment( "Default" ),
				Splitter1 << Visibility( "Visible" ), Splitter1 << Dockable( 1 ),
				Splitter1 << Set Width( 1150 ), Splitter1 << Set Height( 508 ),
				Splitter1 << Set Sizes( {0.495204882301656, 0.504795117698344} ),
				Splitter1 << Set Min Size( 203, 102 ),
				Splitter1 << Set Max Size( 60003, 30000 ),
				Splitter1 << Set Stretch( {"Window", "Window"} ),
				Splitter1 << set horizontal( 1 ),
				TabPage1 << Background Color( "None" ),
				TabPage1 << Border( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ),
				TabPage1 << Enabled( 1 ),
				TabPage1 << Horizontal Alignment( "Default" ),
				TabPage1 << Margin( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ),
				TabPage1 << Padding(
					{Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )}
				), TabPage1 << Text Color( "None" ), TabPage1 << UI Only( 0 ),
				TabPage1 << Vertical Alignment( "Default" ),
				TabPage1 << Visibility( "Visible" ),
				TabPage1 << Set Min Size( 100, 102 ),
				TabPage1 << Set Max Size( 30000, 30000 ),
				TabPage1 << Set Stretch( {"Neutral", "Neutral"} ),
				TabPage1 << Title( "Graph Builder" ), TabPage1 << Tip( "" ),
				TabPage1 << Icon( "Trellis" ), TabPage1 << Closeable( 1 ),
				TabPage1 << Moveable( 1 ), TabPage1 << Set Base Font( "Text" ),
				TabPage1 << Set Font Scale( 1 ),
				Scroll1 << Background Color( "None" ),
				Scroll1 << Border( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ),
				Scroll1 << Enabled( 1 ),
				Scroll1 << Horizontal Alignment( "Default" ),
				Scroll1 << Margin( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ),
				Scroll1 << Padding( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ),
				Scroll1 << Text Color( "None" ), Scroll1 << UI Only( 0 ),
				Scroll1 << User Resizable( {1, 1} ),
				Scroll1 << Vertical Alignment( "Default" ),
				Scroll1 << Visibility( "Visible" ),
				Scroll1 << Set Min Size( 100, 76 ),
				Scroll1 << Set Max Size( 30000, 30001 ),
				Scroll1 << Set Stretch( {"Window", "Window"} ),
				Scroll1 << Width( 568 ), Scroll1 << Height( 482 ),
				Scroll1 << Set Auto Scrollable( 1 ),
				Scroll1 << Set Scrollers( 0, 0 ), Scroll1 << Set Show Empty( 0 ),
				Scroll1 << Set Clip Printing( 0 ),
				Report1 << Background Color( "None" ),
				Report1 << Border( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ),
				Report1 << Enabled( 1 ),
				Report1 << Horizontal Alignment( "Default" ),
				Report1 << Margin( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ),
				Report1 << Padding( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ),
				Report1 << Text Color( "None" ), Report1 << UI Only( 0 ),
				Report1 << Vertical Alignment( "Default" ),
				Report1 << Visibility( "Visible" ),
				Report1 << Set Min Size( 100, 76 ),
				Report1 << Set Max Size( 30000, 30001 ),
				Report1 << Set Stretch( {"Neutral", "Neutral"} ),
				Report1 << set horizontal( 0 ),
				TabPage2 << Background Color( "None" ),
				TabPage2 << Border( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ),
				TabPage2 << Enabled( 1 ),
				TabPage2 << Horizontal Alignment( "Default" ),
				TabPage2 << Margin( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ),
				TabPage2 << Padding(
					{Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )}
				), TabPage2 << Text Color( "None" ), TabPage2 << UI Only( 0 ),
				TabPage2 << Vertical Alignment( "Default" ),
				TabPage2 << Visibility( "Visible" ),
				TabPage2 << Set Min Size( 100, 102 ),
				TabPage2 << Set Max Size( 30000, 30000 ),
				TabPage2 << Set Stretch( {"Neutral", "Neutral"} ),
				TabPage2 << Title( "Graph Builder" ), TabPage2 << Tip( "" ),
				TabPage2 << Icon( "Trellis" ), TabPage2 << Closeable( 1 ),
				TabPage2 << Moveable( 1 ), TabPage2 << Set Base Font( "Text" ),
				TabPage2 << Set Font Scale( 1 ),
				Scroll2 << Background Color( "None" ),
				Scroll2 << Border( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ),
				Scroll2 << Enabled( 1 ),
				Scroll2 << Horizontal Alignment( "Default" ),
				Scroll2 << Margin( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ),
				Scroll2 << Padding( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ),
				Scroll2 << Text Color( "None" ), Scroll2 << UI Only( 0 ),
				Scroll2 << User Resizable( {1, 1} ),
				Scroll2 << Vertical Alignment( "Default" ),
				Scroll2 << Visibility( "Visible" ),
				Scroll2 << Set Min Size( 100, 76 ),
				Scroll2 << Set Max Size( 30000, 30001 ),
				Scroll2 << Set Stretch( {"Window", "Window"} ),
				Scroll2 << Width( 579 ), Scroll2 << Height( 482 ),
				Scroll2 << Set Auto Scrollable( 1 ),
				Scroll2 << Set Scrollers( 0, 0 ), Scroll2 << Set Show Empty( 0 ),
				Scroll2 << Set Clip Printing( 0 ),
				Report2 << Background Color( "None" ),
				Report2 << Border( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ),
				Report2 << Enabled( 1 ),
				Report2 << Horizontal Alignment( "Default" ),
				Report2 << Margin( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ),
				Report2 << Padding( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} ),
				Report2 << Text Color( "None" ), Report2 << UI Only( 0 ),
				Report2 << Vertical Alignment( "Default" ),
				Report2 << Visibility( "Visible" ),
				Report2 << Set Min Size( 100, 76 ),
				Report2 << Set Max Size( 30000, 30001 ),
				Report2 << Set Stretch( {"Neutral", "Neutral"} ),
				Report2 << set horizontal( 0 )
			)
		)
	),
	Initialize(
		Module1 << Auto Launch( 1 );
		Module1 << Set Module Type( "Report" );
		Module1 << Set Window Title( "^TABLENAME - ^APPNAME" );
	)
) << Run;

 

 

Re: Data table referencing when combining windows

@Answer_Seeker - JMP is indeed using the Source script in the data table to recreate the table each time the dashboard is run.  JMP Applications/Dashboards have several options for how to access the data, with the intention that the script may need to be run repeatedly on either the same time or a different table.

If you use the red-triangle menu to Edit Application, and then Show Properties in the Dashboard Builder, you should see the data table settings on the property panel to the right:

 

danschikore_0-1751311937549.png

 

Embedded Script is the default if (1) the table has a script that we can use (2) the table is not saved to a file.  If the table is saved to a file, you should see a popup similar to this when you combine the windows:

 

danschikore_1-1751312209214.png

 

This will change to using the Full Path option, which will ensure that it runs with the table that was resaved in JMP form.  For any of the other options, you would have to use Edit Dashboard to change the setting and then resave the Dashboard.  You can use the Current Data Table option if you always want to run against the current table.  You could then save the script to an Add-In or other JSL container to recreate the dashboard for another table.

Re: Data table referencing when combining windows

Would you be able to provide the (perhaps anonymized) JMP data table(s) and reports that generate this error? 

Recommended Articles