你好- 我有一個JSL 腳本,它從for 循環內將多個大綱框發送到期刊(即循環的每個週期都會創建一個新的大綱框,一旦創建它,我就會將其副本發送到期刊) )。 有沒有一種方法可以通過使用廣播組合鍵(即按住 鍵同時打開或關閉其中一個)來使日誌中生成的一組大綱框一致打開或關閉?
我已經編寫了許多應用程序,我希望能夠在其中執行此操作。 在其中一些中,我似乎無意中合併了此功能,而在其他中我沒有 - 但我無法弄清楚我編寫腳本的方式有何不同。 在所有情況下,大綱框都包含格式相同的數據摘要,其中唯一的區別在於所匯總的實際數字。
非常感謝您的任何建議。
非常感謝這兩個建議 - 我將使用建議的解決方法之一,這兩種方法都可以完成這項工作。與往常一樣,知道我沒有錯過任何一個小技巧是很有用的:)
遺憾的是,您無法更改 helpKey 值,因為 JMP 依賴它們。
但是,您可以創建一個按鈕來展開/折疊所有 OutlineBox,而不是使用控制鍵,而是依賴 OutlineBox 標題和幫助鍵。 詳細信息請參閱下面我的示例
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Owl Diet.jmp" );
yList = dt << get column names( string );
Remove From( yList, N Items( yList ) );
nw = New Window( "Example",
Button Box( "Collapse All",
<<SET function=""></SET>
ExpandedExpanded擴展
CollapsedCollapsed倒塌
這一定是由於所有圖形生成器輸出共享公共 HelpKey。 我發現的 HelpKeys 的最佳參考是這裡, 或許@Justin_Chilton可以闡明是否可以在向日記本發送內容時設置幫助鍵,或者是否可以針對日記本中的項目進行修改? 如果不可能,解決方法是在每個輸出之間插入一個文本項:

如果將圖形生成器輸出移動到大綱框下,您可以使用“顯示樹結構”查看幫助鍵:

你好 - 謝謝你,我已經驗證了,如果大綱框都具有相同的標題,我可以使用廣播的打開/關閉命令同時打開和關閉它們。 不幸的是,我確實需要它們有不同的標題,因為一旦它們全部關閉,我就無法輕易說出我特別想打開哪一個。
我找到了一個按我想要的方式工作的腳本示例 - 但它與我從 for 循環內將圖形生成器輸出的多個副本發送到日誌的情況有關。 每次運行循環時,我都會更改圖形生成器正在繪製的變量,然後在運行下一個循環之前將副本發送到日誌。 腳本的相關部分的工作原理如下:
dt = Open( "$SAMPLE_DATA/Owl Diet.JMP" );
yList = dt << get column names(string);
remove from(yList, nItems(yList));
show(yList);
// Create the chart as I want it to look for the first item on the list, and send a copy of it to the journal;
gb = Graph Builder(
Show Control Panel( 0 ),
Size( 600, 250 ),
Show Legend( 0 ),
Variables( X( :species ), Y( as column(column(dt, yList[1])) ) ),
Elements( Box Plot( X, Y, Legend( 6 ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
OutlineBox,
{Set Title( "Analysis of " || title case(yList[1]) )}
),
Dispatch( {}, "graph title", TextEditBox, {Set Text( "" )} ),
Dispatch( {}, "400", LegendBox, {Set Title( "" )} )
)
);
report(gb) << journal();
// Then run all the others in sequence by each time replacing the current Y variable with the next one, and adding them to the journal as we go;
for(i=2, i<=nItems(yList), i++,
gbb = report(gb);
gbb << Dispatch( {}, "Graph Builder", OutlineBox, {Set Title( "Analysis of " || title case(yList[i]) )} );
gbb[GraphBuilderBox(1)] << remove variable(2);
gbb[GraphBuilderBox(1)] << add variable({as column(column(dt, yList[i])), role("Y")});
gbb << journal()
);
// Finally, close the original chart window;
gb << close window;
廣播命令在這種情況下起作用,大概是因為所有圖表實際上都被稱為“圖形生成器”,儘管它們都被賦予了不同的標籤- 當我向期刊發送大綱框時,我想要重現這種效果不是使用圖形生成器創建。
歡迎任何建議,儘管我可能會問不可能的事情。
非常感謝。
根據我的經驗,如果您使大綱框標題匹配,那麼它們都會用控制鍵打開或全部關閉(在 Windows 上)。右鍵單擊其中一個並將鼠標懸停在“像這樣關閉所有內容”上會彈出一個工具提示,指示相同的幫助鍵具有相同的效果,但我沒有找到在期刊或JSL 中使用幫助鍵的參考。
