用戶使用我無法重現的腳本獲取錯誤。我完成了我的應用程序,它在我的macihne上按預期工作。我發送給少數用戶來測試應用程序。用戶不應該收到錯誤消息。
您需要從Col列表中選擇一列的部分腳本。
我在腳本的前面創建了這個Col List Box,並分配了一些onChange腳本,它幾乎可以讀取所選的列:
colListX = Col List Box (Data Table(dt<<GET name=""></GET>
現在,當用戶單擊列錶框中的任何列時,他們會收到以下錯誤消息。我在代碼中放了一些show()命令並要求它們運行它:

所以,這裡colListX - 是我正在使用的Col List Box。colListXselected - 是當前通過Get Selected獲取的列。有趣的是:用戶將其顯示在日誌中
colListXselected = {"eventtime"};
Is Scriptable(colListXselected) = 1;
我的日誌顯示為
colListXselected = {:eventtime};
Is Scriptable(colListXselected) = 1;
並且運行的代碼是相同的。
我想整個錯誤都發生了,因為用戶沒有將它作為列,所以即使對像是可編寫腳本的,但由於它不是列,因此無法將Get Name消息應用於它。
無論如何,任何想法為什麼用戶與我的輸出有這種差異?如何排除故障?
謝謝,
中號
Re:用戶因我的腳本而無法重現錯誤。這是JMP 13.0.0中的一個問題。 請參閱JMP 問題說明59737 詳情。 您可以從下載免費更新到JMP 13.2.1 JMP軟件更新頁。
希望有所幫助!
Re:用戶因我的腳本而無法重現錯誤。有時間回到這個。
非常感謝您進行故障排除 - 現在它很有意義,因為我知道為什麼我的用戶會收到此錯誤。
我不明白的是為什麼我的JMP返回列引用列表,而它應該(並且它與其他用戶一起)返回字符串列表。
要排除其餘代碼並確保它對它沒有任何影響,我編寫了這個小腳本並要求我的用戶運行它:
Names Default To Here( 1 );
Clear Log();
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Col List Box Example",
colList = Col List Box( all, width( 250 ), maxSelected( 1 ) ),
);
colList << Set Selected (2);
colListSelected = colList<< Get Selected;
testString="test";
show(Type(testString));
show(Type(colListSelected));
show(Type(colListSelected[1]));
show(colListSelected[1]);
我的JMP返回這個:
Type(testString) = "String";
Type(colListSelected) = "List";
Type(colListSelected[1]) = "Name";
colListSelected[1] = :age;
他們的JMP返回:
Type(testString) = "String";
Type(colListSelected) = "List";
Type(colListSelected[1]) = "String";
colListSelected[1] = "age";
這怎麼可能?來自JMP的任何人都可以看看這個嗎?或者我應該發送它支持?
謝謝,
中號
Re:用戶因我的腳本而無法重現錯誤。您可以使用JMPVersion()函數來打印JMP的版本。
Re:用戶因我的腳本而無法重現錯誤。Miguello,
ColListBox << get selected返回列名列表,即帶引號的字符串列表。我不知道你的結果如何是列引用。 關於錯誤:請看下面的腳本。兩個列表usrsel1和usrsel2都是列表和腳本。 usrsel1 [1]是可編寫腳本的,因為它是一個列引用:它有消息(方法)。usrsel2 [1]是一個不可編寫腳本的字符串。這就是您報告的錯誤消息告訴您的內容。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
usrsel1 = { :height };
usrsel2 = { "height" };
//Run one line at a time
Show( IsScriptable(usrsel1), IsScriptable(usrsel2) ); // both are 1
Show( IsScriptable(usrsel1[1]), IsScriptable(usrsel2[1]) ); //results are 1, 0
show(usrsel1[1] <<GET name=""></GET>我知道沒有首選項或選項設置(在Windows上)獲取選擇返回列引用。