So habe ich es vor JMP 8 gemacht:
tableIsOpen = Function( {tname},
{dt, rv = 0},
Try(
dt = Data Table( tname );
rv = 1;
);
rv;
);
Dies funktioniert in JMP Version 8 nicht, da die DataTable-Funktion einen Dateidialog öffnet, wenn die Tabelle noch nicht geöffnet ist. Der Benutzer kann jederzeit auf „Abbrechen“ klicken, aber das ist nervig.
Vielen Dank für jede Hilfe.
Tommy
Sie können alle offenen Tabellen durchlaufen, indem Sie eine Zahl an Data Table() übergeben und Namen vergleichen.
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;
);
Bearbeiten: mit einer 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;
);
(Die Forensoftware mag „kleiner als“ oder „gleich“ wirklich nicht, weshalb ich einfach „kleiner als“ verwende und 1 hinzufüge.)