將腳本新增至 jmp 報告中的 ButtonBox<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
親愛的社區
我認為我的問題很簡單,但我仍然需要一些幫助。 我使用帶有添加模擬器的探查器平台來創建具有多個因素的響應的蒙特卡羅模擬:
我的分析器=分析器(
是( :回覆)
) ;
我的分析器<<模擬器(
因素(
因素1 <<隨機的(普通的()) ,
因素2 <<隨機的(普通的())
) ;
我想在報告視窗中「模擬表格」大綱框下的「製作表格」按鈕中添加一些功能。 我透過添加腳本來做到這一點。 我想要做的是命名「Make Table」按鈕產生的表,並對該表執行一系列操作:
報告(我的分析器)[按鈕盒( 2 )] <<設定腳本(
我的類比表=目前數據表() ;
//對MySimTable執行動作
) ;
問題是'當前數據表'命令被執行前按下按鈕時的任何其他操作。 這意味著當前表格不是透過按下「製作表格」按鈕產生的表格。 所以這是我的問題:有沒有辦法在運行“之前執行“內建”按鈕功能?目前數據表' 命令? 任何給我自動生成的表的參考的解決方案將不勝感激。
謝謝
回覆:將腳本加入 jmp 報告中的 ButtonBox你好,
我已與 JMP 開發團隊確認,在執行內建功能之前運行腳本是有意為之的行為。
以下是一個簡化的範例,示範如何隱藏原始按鈕、執行腳本、點擊原始(隱藏)按鈕,然後執行另一段腳本。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );dt << New Column( "heightplusweight", Formula( :height + :weight ) );
// replace the button in Simulate To Tablex = Profiler( y( :heightplusweight ) );x << Simulator( Factors( Factor1 << Random( Normal() ), Factor2 << Random( Normal() ) ));bb2 = Report( x )["Simulate to Table"][Button Box( 1 )];bb2 << Visibility( "Hidden" ); // new for JMP 12bb2 << Sib Prepend( Button Box( "NewButton", setfunction( Function( {this}, // this==replacement button New Window( "Before", < H List Box( Button Box( "OK" ), Button Box( "Cancel" ) ) ); (this << Sib) << Click; // sib==original button because of < New Window( "After", < H List Box( Button Box( "OK" ), Button Box( "Cancel" ) ) ); ) ) ));
以此為模型,您可以套用隱藏並點擊舊按鈕的概念,然後設定新表格的名稱:
bb2 << Sib Prepend( Button Box( "NewButton", setfunction( Function( {this}, // this==replacement button (this << Sib) << Click; // sib==original button because of < Data Table(1) << Set Name( "New Table Name" ); ) ) ));
我希望這有幫助。
溫迪
回覆:將腳本加入 jmp 報告中的 ButtonBox嗨伊恩
感謝您的回覆。 我已將此討論發送給支援團隊,只是想看看他們可能會說什麼。
回覆:將腳本加入 jmp 報告中的 ButtonBox嗨傑瑞
我對解決方法也有類似的想法。 感謝您向我展示如何實施該解決方案。 效果很好
回覆:將腳本加入 jmp 報告中的 ButtonBox我同意伊恩的觀點。 但是,在獲得更好的選擇之前,作為一種解決方法,您可以考慮添加一個劫持「建立表」功能的新按鈕:
報告(我的分析器)[ “模擬到表” ] <<前置(
新按鈕=按鈕盒( “製作桌子加” ,
報告(我的分析器)[按鈕盒( 3 )] <<點選() ;
我的類比表=目前數據表() ;
)
) ;
請注意,插入新按鈕會將原始「製作表格」按鈕的引用從 2 更改為 3。
回覆:將腳本加入 jmp 報告中的 ButtonBox我認為下面的腳本只是證實了您發現的行為。 在這種情況下,它看起來像“setScript”添加到預定義的腳本(這似乎合理),但它似乎是前置而不是附加:
名稱預設到這裡( 1 ) ;
// 測試表
dt =新表( “模擬” ,
新增行( 5 ) ,
新專欄( “X” ,
數位,
“連續的” ,
格式( “最好的” , 12 ) ,
設定值( [ 1 , 2 , 3 , 4 , 5 ] )
) ,
新專欄( “是” ,
數位,
“連續的” ,
格式( “最好的” , 12 ) ,
公式( : X +隨機常態( 0 , 0.1 ) )
)
) ;
// 擬合模型
調頻= dt <<適合模型(
是( : y ) ,
效果( : X ) ,
性格( 《標準最小平方法》 ) ,
強調( 《槓桿效應》 ) ,
跑步(
分析器(
1 ,
信賴區間( 1 ) ,
期限價值( X ( 3 ,鎖( 0 ) ,展示( 1 ) ) ) ,
模擬器(
1 ,
因素( X <<隨機的(普通的( 3 , 0.8 ) ) ) ,
回應( y <<無噪音)
)
) ,
: y << {不合適( 0 ) ,按預測繪製實際情況( 1 ) ,按預測繪製殘差圖( 1 ) ,劇情效應槓桿( 1 )}
)
) ;
// 定義範例腳本
做一點事=
表達式(
嘟() ;
為了(我= 1 ,我<=表格() ,我++,列印(我,數據表(我) <<取得名稱)) ;
) ;
// 將範例腳本分配給按鈕(JMP 似乎前置到已經存在的腳本?)
報告(調頻)[按鈕盒( 5 )] <<設定腳本(做一點事) ;
也許將此線程發送到support@jmp.com得到明確的答案?