Voici comment je procédais avant JMP 8 :
tableIsOpen = Function( {tname},
{dt, rv = 0},
Try(
dt = Data Table( tname );
rv = 1;
);
rv;
);
Cela ne fonctionne pas dans JMP version 8 car la fonction DataTable ouvre une boîte de dialogue de fichier si la table n'est pas déjà ouverte. L'utilisateur peut toujours appuyer sur "annuler" mais c'est ennuyeux.
Merci pour toute aide.
Tommy
Vous pouvez parcourir toutes les tables ouvertes en passant un nombre à Data Table() et comparer les noms.
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 : avec une 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;
);
(Le logiciel de forum n'aime vraiment pas inférieur ou égal, c'est pourquoi j'utilise simplement inférieur à et ajouté 1.)