Subscribe Bookmark RSS Feed

How to determine if a data table is already opened?

tommst

Community Trekker

Joined:

Jun 23, 2011

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

tableIsOpen=function({tname},
{dt,rv=0},
try(
dt = DataTable(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
XanGregg

Staff

Joined:

Jun 23, 2011

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;
);

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

Community Trekker

Joined:

Jun 23, 2011

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.