直接在 JMP 主頁運行插件時出現錯誤大家好,JMP 社區:
我把2個腳本儲存到插件中,在某些情況下會出現bug,腳本的工作原理如下:
- 第一個外掛程式將建立一個新表並建立幾個新列,我們將這個新表稱為“計算表”
- 接下來我將運行“計算表”中的第二個插件,它將需要打開另一個現有文件(我們稱之為“原始數據表”),然後從“原始數據表”中獲取數據並在“計算表”中輸入一些內容
//This is the first script
Names Default To Here( 1 );
New Table( "Calculate table");
dt = current data table();
newcolumn = {"X", "Y"};
for each({colval},newcolumn,
dt << new column(colval);
);
//This is the starting lines of 2nd script
Names Default To Here( 1 );
dt = current data table();
file = Pick file( "Select raw data table" );
if(is empty(file),
show("No file selected");
stop();
);
Try(
dt2 = open(file);
,
show("No file selected");
stop();
);<BR /> // The following code are not shown here
無bug的情況:
- 如果我打開任何資料表,運行第一個插件,然後在新表中運行第二個插件,它就可以工作
有 Bug 的情況:
- 如果我直接在 JMP 主頁中運行第一個插件,然後運行第二個插件,則第二個插件會出現錯誤
基本上,第二個外掛程式的作用是從「原始資料表」中取得資料和列公式,並輸入到「計算表」中,然後建立一個帶有滑桿框的新視窗。發生錯誤時滑桿框將不起作用,但獲取資料和公式仍然有效
自動化和腳本回覆:直接在 JMP 主頁運行外掛程式時出現錯誤做出猜測:當前數據表不是您所期望的。也許將其列印到日誌中以進行驗證。我認為當前資料表處於通常屬於某個視窗的上下文中,而主視窗正在添加另一個上下文。透過從表運行插件,您可能(1)透過觸摸它來確保該表是當前的,並且(2)獲取以該表為當前表的上下文。
回覆:直接在 JMP 主頁運行外掛程式時出現錯誤我照你說的做,印 dt 和 dt2,它們是正確的。
然後我意識到當我在滑桿框中呼叫列時,我沒有指定哪個資料表,所以我在列前面放了 dt:
關閉 dt2 後,我還在程式碼中間再次添加了一個當前資料表(dt)
現在它運作良好。
lubPP = Lineup box(NCol(1),
PPtb = Text Box( "PP: " || Char( PPmin ) ),
PPsb = Slider Box(
PPmin, PPmax, PPValue,
PPb << Set Text( "PP: " || Char( PPValue ) );
:PP << set each value(PPValue); // I should use dt:PP here
new = dt:NewPP << get values;