運行表格腳本透過綠色播放圖示運行表腳本有什麼區別:

....並通過“運行”按鈕?

自動化和腳本編寫回覆:運行表格腳本是否有理由懷疑有差異?例如,您可以在腳本“視窗”中透過突出顯示單獨的部分來運行它們。
回覆:運行表格腳本他們通常做同樣的事情。
綠色小箭頭速度更快,一鍵點擊。

回覆:運行表格腳本在為表腳本中的“計時問題”發明第三個“解決方案”之後 - 不幸的是沒有真正成功
……我發現實際的差別是:
- 透過播放圖示運行腳本 → 問題
- 開啟腳本視窗 - [嘗試一些新程式碼...或什麼都不做] - 然後點擊「執行」按鈕→ 沒有問題。
回覆:運行表格腳本透過點擊綠色運行箭頭來運行,在其附加的資料表上運行腳本。
從「編輯」視窗執行腳本會在「目前活動資料表」上執行腳本,該資料表可能不是儲存腳本的資料表。
回覆:運行表格腳本我也是這麼想 ...
回覆:運行表格腳本好主意,
但實際上,對於“編輯”模式,我注意在單擊運行之前激活“我的表”。
並且:這是有效的“編輯”模式:)
也許它與程式碼中某處的當前資料表()有關 - 如果腳本透過播放圖示或透過執行按鈕啟動,則其行為可能會有所不同。
只是放一個:)將目前資料 table() 直接轉換為表格腳本並沒有顯示兩種方法之間的差異。
但我的程式碼是一長串 JSL、主選單(「...」)、開啟檔案、加入、連線...
我將嘗試降低複雜性以顯示差異 - 或產生匿名範例...
回覆:運行表格腳本我嘗試添加
current data table();
看看它是否會將腳本指向保存腳本的資料表,但事實並非如此。該腳本針對目前資料表所在的任何資料表執行。
回覆:運行表格腳本在這兩種情況下都不能依賴 Current Data Table()。如果在按下綠色三角形後立即開啟新表,則當前表可能會在執行腳本之前發生變更(綠色運行按鈕很可能不會發生這種情況,但也可能發生)。使用這樣的腳本進行測試相當容易
wait(1);
Caption(Current Data Table() << get name);
按綠色三角形執行腳本,然後立即按 Ctrl+N 建立新表。
看起來,如果您將 Current Data Table() 排除在外,它將在執行腳本的表上觸發(在這兩種情況下)
wait(1);
Current Data Table() << New Column("A");
與
wait(1);
New Column("A");
回覆:運行表格腳本關於我的問題
其實歸根究底還是時間問題
……就像 Jarmo 所描述的那樣 - 但有點相反:
我使用自訂的 AddIn 來載入檔案。
並且由於主選單無法返回返回值:(,
我使用當前資料表()來存取新建立的表
這就是想法......
//<FONT face="courier new,courier">開啟(“$SAMPLE_DATA/Big Class.jmp”);</FONT><BR />Main Menu("load_");
// wait(1);
dt= current data table(); // the idea: myDT
caption(dt << get name())
a)如果我只使用Open( "$SAMPLE_DATA/Big Class.jmp" ) ,一切都很順利。
另一方面,透過主選單(“load_”)開啟資料表後,
目前數據表仍然引用我的主表(!)。
啟動wait(1)解決了這個問題 - 需要 1 秒的罰款。
b)為了使其更健壯(更快),我在 FUNC 內建立了一個表格參考:::load_:myTable並使用dt=:::load_:myTable而不是透過current data table()的原始方法。
有趣的:
通過:::load_:myTable 的方法無需wait(1) 即可運作。
這意味著我已經可以在新表獲取當前資料 table()之前與它進行通訊!
所以,也許值得研究一下,數據表取得目前數據表的速度有多快()
……以及為什麼會有差異。
回覆:運行表格腳本回到討論的開始 - 綠色播放圖示和編輯視窗的「運行」按鈕之間的差異:
@Byron_JMP寫道:
他們通常做同樣的事情。
綠色小箭頭速度更快,一鍵點擊。

問題歸結為發現沒有一個明確定義當前數據表() !
使用綠色播放按鈕並檢查結果窗口,可以看到以下序列:
1) AddIn開啟測試並報告目前資料表已變更為測試
2)主表仍然認為check_current_data_table是當前資料表(!!!)
3)在wait(0)之後,它知道得更好並返回test 。
另一方面 - 如果透過編輯視窗中的 RUN 按鈕啟動腳本 - 所有 3 個結果視窗都顯示與目前資料 table()相同的表。
主要腳本:
Names Default To Here( 1 );
Main Menu( "load_" );
win = new window("1 ",Text Box ("main table (1):\!n" ||
(current data table() << get name())));
wait(1);
win = new window("2 ",Text Box ("main table (2):\!n" ||
(current data table() << get name())));載入_:
Names Default To Here( 1 );
dt = open("C:\temp\test.csv");
Caption( {100, 200}, "postprocessing ...");
win = new window("addIn", text box("inside the addin:\!n" ||(current data table()<< get name())));
// win << moveWindow( 100, 100 );
Caption( remove );
深入挖掘後,我們會發現一些微小的細節(例如啟用 AddIn 內的<< moveWindow或停用其中一個標題命令)會對行為產生影響。
回覆:運行表格腳本順便說一句,同樣的問題:
沒有一個明確定義當前資料表() !
這也是觸發這篇文章的問題: ThisDataTable() ?
具有相同的錯誤修復:
新增等待 (0)
在...前面
dt = 當前資料表()!