如何使用 JSL 實施“在 JMP 日誌中保存您的工作”根據下面共享的信息,可以使用「開啟所有檔案」方法建立 JMP 日誌的連結。
https://community.jmp.com/t5/Statistical-Thinking-for/Saving-Your-Work-in-a-JMP-Journal/ta-p/271841
我想在 GUI 中實現一個功能,可以單擊一個按鈕來創建一個日記鏈接,類似於參考視頻中顯示的方法(無需將整個 GUI 界面傳輸到日記,而只創建一個鏈接)。用於建立日誌連結的 JSL 只允許連接資料表。如何為新視窗中的所有圖表建立連結?我感謝在此事上的任何幫助。
例如,如何將以下新視窗傳輸到 JMP Journal 並以連結的形式呈現?
//
名稱預設為此處( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
nw2= 新視窗( "新視窗",
雙變數( y( :體重 ), x( :高度 ) );
);
nw2 << 將按群組腳本儲存到日誌;
進階統計建模自動化和腳本編寫基礎資料分析與建模資料存取回覆:如何使用 JSL 實現“在 JMP 日誌中保存您的工作”我不太確定你想要什麼,但可能就是這樣
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
nw2 = New Window( "New window",
biv = Bivariate( y( :weight ), x( :height ) )
);
biv << Save ByGroup Script to Journal;
Current Journal() << append( ob = Outline Box( "All Files" ) );
ob << Add All Open Files;
PS 進入 JSL 時,請使用預覽視窗頂部的 JSL 圖示。它使您的程式碼更容易閱讀和理解。
回覆:如何使用 JSL 實現“在 JMP 日誌中保存您的工作”
這正是我想要的結果。
另外,除了「新增所有開啟的檔案」的方法之外,有沒有辦法只新增特定的「指定名稱」的開啟檔案?例如,僅將「新視窗」連結新增至期刊清單。
回覆:如何使用 JSL 實現“在 JMP 日誌中保存您的工作”我應該在我對您的問題的第一次答覆中向您指出腳本索引(在“幫助”下拉選單中)。腳本索引將顯示可以傳遞給物件的訊息,例如「新增所有開啟的檔案」訊息。在我的第一個回覆中,您會注意到該訊息正在傳送到變數「ob」所引用的 OutlineBox()。如果您查看腳本指南並選擇 OutlineBox,您將看到可以指定向其新增項目的所有訊息。

回覆:如何使用 JSL 實現“在 JMP 日誌中保存您的工作”我想我沒有把問題解釋清楚。我想問的是“添加所有打開的文件”是否會自動將所有當前打開的 JMP 文件作為連結對象發送。但是,我想要的是用戶能夠從這些打開的視窗中僅選擇所需的文件,而不是添加所有文件,並且不使用“添加文件引用”來添加保存的文件。如下圖所示,我希望使用者能夠選擇他們想要新增的「開啟檔案」。

回覆:如何使用 JSL 實現“在 JMP 日誌中保存您的工作”我之前的回答顯然不是很清楚。我向 yo9 指出腳本索引以及可以傳遞到大綱框的各種訊息的目的是為您指出一個很好的來源,幫助您了解如何編寫 JSL 來解決您的特定需求。
回覆:如何使用 JSL 實現“在 JMP 日誌中保存您的工作”感謝您的回覆。我明白你的意思。你是說我需要將我想要儲存的項目傳送到大綱框中進行記錄。但是,我目前只知道“ob <<添加所有打開的文件”可以用來一次發送所有打開的文件。我不知道如何將特定的開啟檔案傳送到大綱框。你能給我一些提示嗎?
另外,我還有一個問題。當我使用“ob <<添加所有打開的文件”並且鏈接出現在日記上時,我注意到按鈕的功能似乎消失了。例如,在下面所示的 JSL 中,最初有一個按鈕,但在單擊 Journal 中的連結後,該按鈕似乎消失了。如何才能讓按鈕的功能繼續存在?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
nw2 = New Window( "New window",
outputGButton = Button Box( "Test", print("test");
),
biv = Bivariate( y( :weight ), x( :height ) )
);
nw2 << Save ByGroup Script to Journal;
Current Journal() << append( ob = Outline Box( "All Files" ) );
ob << Add All Open Files;回覆:如何使用 JSL 實現“在 JMP 日誌中保存您的工作”您最新回應中的 JSL 建立了一個視窗物件顯示框,其中包含一個名為「nw2」的變量,該變數用於允許引用該顯示框。視窗物件的預設操作是建立一個新的顯示窗口
nw2 = New Window( "New window",
在視窗物件內部有一個按鈕框顯示框,其名稱為“Test”,腳本為“Print(“test”)”。帶有一個名為“OutputGButton”的變量,用於引用按鈕框。
outputGButton = Button Box( "Test", print("test");
)
視窗物件中的下一個物件是運行雙變量平台的 JSL,其中有一個名為「biv」的變量,用於引用雙變量平台物件。雙變量平台的預設操作是執行雙變量分析並在新視窗中顯示輸出,或在本例中在 nw2 視窗物件中顯示輸出。 2 個元素被傳遞到雙變量平台。列權重傳遞給 Y 元素,列高傳遞給 X 元素
biv = Bivariate( y( :weight ), x( :height ) )
至此,在JSL中,nw2視窗物件的定義就完成了,結束語“)”
我將詳細介紹這一級別的內容,以便說明腳本中的下一行如何與 nw2 視窗物件或 nw2 視窗物件中的其中一個物件互動。
每個定義的物件都有可以傳遞給它們的訊息。不同類型的物件有不同的可以傳遞給它們的訊息清單。 nw2 視窗物件具有「設定視窗標題」、「將視窗置於前面」、「關閉視窗」等訊息。

在目前腳本中
nw2 << Save ByGroup Script to Journal;
它有“Save ByGroup Script to Journal”訊息傳遞給 nw2 視窗物件。然而,該訊息不是視窗物件可用的訊息。
將按組腳本儲存到日誌是 JMP 平台可用的消息。
腳本中此訊息可以傳遞到的唯一物件是 biv 變數所引用的雙變數平台
biv << Save ByGroup Script to Journal;
但是,當按照這種方式使用時,傳遞到日誌的腳本僅包含用於運行雙變量的 JSL,而不是運行用於創建帶有按鈕框和雙變量平台的視窗物件的完整 JSL 的腳本。
因此,需要做的是編寫 JSL,將一個按鈕框放入日誌中,該按鈕框包含目前 nw2 視窗物件定義中的所有 JSL。
基本上,「按群組腳本儲存到日誌」的作用是使用指定的腳本建立一個按鈕方塊。如果要求按鈕框中的功能與給定功能不同,則由使用者編寫程式碼來進行變更。下面是一個腳本,它執行與 Save ByGrooup 相同的操作...但在 Bivariate 的輸出之前添加了指定的按鈕框
Names Default To Here( 1 );
//dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
file = pick file();
dt = open(file);
biv = dt << Bivariate( y( :weight ), x( :height ), invisible );
theScript = Char( biv << get script );
biv << close window;
Eval(
Parse(
"New Window( \!"My Journal\!",
<<JOURNAL></JOURNAL>
<P>除了添加所有打開的文件之外,它還使用菜單(1)來讓用戶選擇要添加的文件</P>回覆:如何使用 JSL 實現“在 JMP 日誌中保存您的工作”與許多情況相比,這裡不太明顯,但是,正如 Jim 所提到的,腳本索引確實提供了解決方案。 << 新增所有開啟的檔案有一個可選參數,可讓您選擇要在大綱框中連結到的檔案。

ob << Add All Open Files( Menu( 1 ) );
