Ecco come lo facevo prima di JMP 8:
tableIsOpen = Function( {tname},
{dt, rv = 0},
Try(
dt = Data Table( tname );
rv = 1;
);
rv;
);
Questo non funziona in JMP versione 8 perché la funzione DataTable aprirà una finestra di dialogo file se la tabella non è già aperta. L'utente può sempre premere "Annulla" ma è fastidioso.
Grazie per qualsiasi aiuto.
Tommy
Puoi scorrere tutte le tabelle aperte passando un numero a Data Table() e confrontare i nomi.
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;
);
modifica: con un'opzione "<="
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;
);
(Al software del forum in realtà non piace inferiore o uguale a, motivo per cui utilizzo semplicemente minore di e aggiungo 1.)