查找所有顯示樹元素<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好,
我想使用 JSL 獲取顯示樹中所有對象的列表以用於腳本編寫。具體來說,我想獲取窗口內所有框架框的列表,然後向每個框架添加一個圖形腳本。或者更好的是,我想向用戶返回可用 FrameBox 的列表,然後讓用戶選擇要添加的圖形腳本。
如何獲取窗口中所有 FrameBox 的列表?我想獲得一個適合腳本編寫形式的列表,而不僅僅是查看顯示樹。這可能嗎?
謝謝!
回复:查找所有顯示樹元素您使用什麼版本的 JMP?
您是在 Windows 機器上還是在 Mac 上運行?
您能否清除日誌,重新運行腳本,然後在下一個響應中包含整個日誌輸出?
回复:查找所有顯示樹元素我正在嘗試運行此腳本,但收到錯誤消息:
Send 在訪問或評估 'Send' 時需要腳本化對象{1},節點 << /*###*/className/*###*/
知道為什麼或者我應該做什麼嗎?
謝謝,
托瓦
回复:查找所有顯示樹元素我正在嘗試運行此腳本,但收到錯誤消息:
Send 在訪問或評估 'Send' 時需要腳本化對象{1},節點 << /*###*/className/*###*/
知道為什麼或者我應該做什麼嗎?
謝謝
回复:查找所有顯示樹元素嗨女士,
問題似乎是“parent << getTitle”不會為 JMP10 中的圖形生成器生成結果。
如果沒有這個,我的團隊將在 JMP10 中完成任務。感謝您的幫助!
回复:查找所有顯示樹元素由於我沒有 JMP 10 許可證,我可能無法提供幫助。 出了什麼問題? 日誌中有任何消息嗎?
對於 JMP 的每個新版本,Graph Builder 都發生了很大的變化。 我認為 Graph Builder 的腳本支持也得到了改進。 也許 v.10 Graph Builder 報告中有一個特殊的顯示框類型,它(尚)不是“可編寫腳本的”,導致 while 循環在搜索完成之前停止。
您也可以嘗試使用插入()代替插入項目()。
回复:查找所有顯示樹元素你好多發性硬化症,
再次感謝您的腳本;它非常適合 JMP12。我現在正在嘗試使腳本兼容 JMP10,但在調試 GraphBuilder 腳本時遇到問題。你知道如何讓你的腳本發揮作用嗎JMP10 中的 GraphBuilder?
dt =打開( “$SAMPLE_DATA/大類.jmp” ) ;
// 腳本適用於 graph1。
圖1 = dt <<適合模型(
是( :高度) ,
效果( :性別) ,
性格( 《標準最小二乘法》 ) ,
強調( 《槓桿效應》 ) ,
跑步(
:高度<< {不合適( 0 ) ,按預測繪製實際情況( 1 ) ,
Box Cox Y 變換( 1 ) ,按預測繪製殘差圖( 1 ) ,
情節效應槓桿( 1 )}
)
) ;
// graph2 的腳本將會崩潰。
/*
graph2 = dt << 圖形生成器(
顯示控制面板( 0 ),
變量( X( :身高 ), Y( :體重 ), Wrap( :年齡 ) ),
元素(點(X,Y,圖例(1)))
);
*/
等待( 1 ) ;
贏=當前窗口() ;
// 將顯示的 FrameBox 編號與標題鏈接起來的關聯數組
fb標題= [ => ] ;
我= 1 ;
儘管(可編寫腳本(嘗試(家長=贏[框架盒(我)] <<家長) ) ,
儘管(父類型=查爾(家長<<班級名稱) != “大綱框” ,
家長=家長<<家長
) ;
fb標題<<插入項目(我,家長<<獲取標題) ;
我++;
) ;
展示( fb標題) ;
// 選擇窗口。
贏<<將窗口置於前面;
為了(我= 1 ,我<= N 項( fb標題) ,我++,
贏[框架盒(我)] <<選擇;
新窗戶( “框架框標題” , <<莫代爾,文本框(評估( fb標題[我] ) ) ) ;
贏[框架盒(我)] <<取消選擇;
) ;
回复:查找所有顯示樹元素謝謝女士。
如果您在該後續問題的單獨討論中發表回复,查找隱藏或顯示的框架框,我會將其標記為正確。
非常令人印象深刻。
回复:查找所有顯示樹元素如果你不需要 Ian 內置的所有其他東西,這對我有用。不知道為什麼它返回列表列表,但我只選擇第一個。
dt =打開( “$SAMPLE_DATA/大類.jmp” ) ;
BIV = (dt <<雙變量(Y( :高度, :重量) , X( :年齡))) ;
框架列表= BIV <<路徑( “//框架框” ) ;
等待( 2 ) ;
框架列表[ 1 ][ 1 ] <<選擇;
等待( 2 ) ;
框架列表[ 2 ][ 1 ] <<選擇;
回复:查找所有顯示樹元素有趣的討論。 下面是一個示例,大量借鑒了上面的示例,其中我使用關聯數組來鏈接目前數量顯示帶有標題的框架框。
dt =打開( “$SAMPLE_DATA/大類.jmp” ) ;
對象= dt <<適合模型(
是( :高度) ,
效果( :性別) ,
性格( 《標準最小二乘法》 ) ,
強調( 《槓桿效應》 ) ,
跑步(
:高度<< {不合適( 0 ) ,按預測繪製實際情況( 1 ) , Box Cox Y 變換( 1 ) ,按預測繪製殘差圖( 1 ) ,
情節效應槓桿( 1 )}
)
) ;
報告=報告(對象) ;
// 將顯示的框架框編號與標題鏈接起來的關聯數組
fb標題= [ => ] ;
我= 1 ;
儘管(可編寫腳本(嘗試(家長=報告[框架盒(我)] <<家長)) ,
儘管(父類型=查爾(家長<<班級名稱) != “大綱框” ,家長=家長<<家長) ;
fb標題<<插入項目(我,家長<<獲取標題) ;
我++;
) ;
展示( fb標題) ;
// 選擇窗口。
對象<<將窗口置於前面;
為了(我= 1 ,我<= N 項( fb標題) ,我++,
報告[框架盒(我)] <<選擇;
贏=新窗戶( “框架框標題” , <<莫代爾,文本框(評估( fb標題[我]))) ;
報告[框架盒(我)] <<取消選擇;
) ;
回复:查找所有顯示樹元素好的。謝謝伊恩。返回的隱藏 FrameBox 的一個不幸的副作用是 FrameBox 標題可能與 FrameBox 編號不匹配,如下所示。我也許可以使用 Try() 函數的其他一些變體來使我的腳本正常工作。
名稱默認為此處( 1 ) ;
清除日誌() ;
// 該函數遞歸遍歷顯示樹,生成
// 構成的顯示框名稱的預排序列表
// 那個樹。 它還查找每個 FrameBox(無論是否顯示),
// 並獲取父 OutlineBox 的名稱
預購=功能( {節點} ,
當地的( { chnode } ,
// 檢查當前節點
節點類型=查爾(節點<<班級名稱) ;
打印( “節點:” ||節點類型) ;
如果(節點類型== “框架盒” ,
// 查找此FrameBox的父輪廓節點的標題
家長=節點<<家長;
父類型=查爾(家長<<班級名稱) ;
儘管(父類型!= “大綱框” ,
家長=家長<<家長;
父類型=查爾(家長<<班級名稱) ;
) ;
插入( fb標題,家長<<獲取標題) ;
) ;
// 進行遞歸
chnode =節點<<孩子;
儘管(可編寫腳本( chnode ) ,
遞歸( chnode ) ;
chnode = chnode <<同胞;
) ;
)
) ;
// 嘗試“預購”。 。 。
dt =打開( “$SAMPLE_DATA/大類.jmp” ) ;
對象= dt <<適合模型(
是( :高度) ,
效果( :性別) ,
性格( 《標準最小二乘法》 ) ,
強調( 《槓桿效應》 ) ,
跑步(
:高度<< {不合適( 0 ) ,按預測繪製實際情況( 1 ) ,繪圖回歸( 0 ) ,按預測繪製殘差圖( 1 ) ,情節效應槓桿( 1 )
}
)
) ;
報告=報告(對象) ;
fb標題= {} ;
預購(報告) ;
打印( “\!n” , fb標題) ;
// 選擇窗口。
等待( 1 ) ;
對象<<將窗口置於前面;
為了(我= 1 ,我<= N 項( fb標題) ,我++,
嘗試(
報告[框架盒(我)] <<選擇;
贏=新窗戶( “框架框標題” , <<莫代爾,文本框(評估( fb標題[我] ) ) ) ;
報告[框架盒(我)] <<取消選擇;
)
) ;
回复:查找所有顯示樹元素並沒有真正直接回答您的問題,但您可以通過使用“Try()”函數使您提到的失敗變得良性。
回复:查找所有顯示樹元素你好伊恩@JMP ,
再次感謝您的預購功能。有沒有辦法讓函數只返回實際顯示的FrameBox?或者 JMP 有沒有辦法判斷哪些 FrameBox 顯示或不顯示?
我發現當我的腳本嘗試向未顯示的 FrameBox 發送命令時,會導致錯誤。
回复:查找所有顯示樹元素謝謝伊恩。
回复:查找所有顯示樹元素這是完全有可能的。 下面的代碼使用前序遍歷來遍歷顯示樹(我相信最初是由 JMP 部門的 Joseph Morgan 編寫的)。 您應該能夠通過一些調整來獲得您需要的內容(取決於代碼的其餘部分)。
名稱默認到這裡( 1 ) ;
清除日誌() ;
// 該函數遞歸遍歷顯示樹,生成
// 構成的顯示框名稱的預排序列表
// 那個樹。 它還查找每個 FrameBox(無論是否顯示),
// 並獲取父 OutlineBox 的名稱
預購=功能({節點} ,
當地的({ chnode } ,
// 檢查當前節點
節點類型=查爾(節點<<班級名稱) ;
打印( “節點:” ||節點類型) ;
如果(節點類型== “框架盒” ,
// 查找此FrameBox的父輪廓節點的標題
家長=節點<<家長;
父類型=查爾(家長<<班級名稱) ;
儘管(父類型!= “大綱框” ,
家長=家長<<家長;
父類型=查爾(家長<<班級名稱) ;
) ;
插入( fb標題,家長<<獲取標題)
) ;
// 進行遞歸
chnode =節點<<孩子;
儘管(可編寫腳本( chnode ) ,
遞歸( chnode ) ;
chnode = chnode <<同胞;
) ;
) ;
) ;
// 嘗試“預購”。 。 。
dt =打開( “$SAMPLE_DATA/大類.jmp” ) ;
對象= dt <<適合模型(
是( :高度) ,
效果( :性別) ,
性格( 《標準最小二乘法》 ) ,
強調( 《槓桿效應》 ) ,
跑步(
:高度<< {不合適( 0 ) ,按預測繪製實際情況( 1 ) ,
繪圖回歸( 0 ) ,按預測繪製殘差圖( 1 ) ,
情節效應槓桿( 1 )}
)
) ;
報告=報告(對象) ;
fb標題= {} ;
預購(報告) ;
打印( “\!n” , fb標題) ;