這是我在 JMP 8 之前的做法:
tableIsOpen = Function( {tname},
{dt, rv = 0},
Try(
dt = Data Table( tname );
rv = 1;
);
rv;
);
這在 JMP 版本 8 中不起作用,因為如果表尚未打開,DataTable 函數將打開一個文件對話框。 用戶隨時可以按“取消”,但這很煩人。
謝謝你的幫助。
湯米
您可以通過將數字傳遞給 Data Table() 並比較名稱來循環遍歷所有打開的表。
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;
);
編輯:使用“<=”選項
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;
);
(論壇軟件確實不喜歡小於或等於,這就是為什麼我使用普通小於並加1。)