cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
JMP is taking Discovery online, April 16 and 18. Register today and join us for interactive sessions featuring popular presentation topics, networking, and discussions with the experts.
Choose Language Hide Translation Bar
tommst
Level I

How to determine if a data table is already opened?

This is how I used to do it before JMP 8:

tableIsOpen = Function( {tname},
	{dt, rv = 0},
	Try(
		dt = Data Table( tname );
		rv = 1;
	);
	rv;
);


This does not work in JMP verison 8 because DataTable function will open a file dialog if the table is not opened already. User can always press "cancel" but it's annoying.

Thanks for any help.
Tommy

2 REPLIES 2
XanGregg
Staff

Re: How to determine if a data table is already opened?

You can loop through all the open tables by passing a number to Data Table() and compare names.

tableIsOpen = Function( {tname},
	{rv = 0, i},
	For( i = 1, i < N Table() + 1 & rv == 0, i++,
		If( Lowercase( Data Table( i ) << Get Name ) == Lowercase( tname ),
			rv = 1
		)
	);
	rv;
);

edit: with a "<=" option

tableIsOpen = Function( {tname},
	{rv = 0, i},
	For( i = 1, i <= N Table() & rv == 0, i++,
		If( Lowercase( Data Table( i ) << Get Name ) == Lowercase( tname ),
			rv = 1
		)
	);
	rv;
);


(The forum software really doesn't like less than or equal, which is why I use plain less than and added 1.)

tommst
Level I

Re: How to determine if a data table is already opened?

Thanks for the code. I'm trying it out now.
I wish there's a more straight forward way of checking for opened data file.