需要幫助 - JMP 15 中列切換器的“設置腳本”行為已更改如果您為列切換器設置腳本,則在 JMP 14 中,腳本在列切換完成後運行,但在 JMP 15 中,它在列切換之前運行。
以下示例使用列切換器創建圖形生成器圖,並設置列切換器腳本以打印 JMP 版本和 Y 軸標題。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
nw = new window("Test",
gb = Graph Builder(
Size( 528, 464 ),
Show Control Panel( 0 ),
Variables( X( :name ), Y( :height ) ),
Elements( Points( X, Y, Legend( 3 ) ) ),
Column Switcher( :height, {:height, :weight} )
)
);
nw[Listboxbox( 1 )] << set script(
print(JMP Version());
print(report(gb)[TextEditBox(4)]<< Get Text());
);
如果您在 JMP 14 中運行腳本並點擊“權重”,您將獲得以下輸出。該腳本在列切換後運行。
"14.1.0"
"weight"
但是,如果您在 JMP 15 中運行相同的腳本,輸出會有所不同。該腳本在列切換發生之前運行。
"15.1.0"
"height"
這種行為變化破壞了我的一個 JMP 腳本,該腳本在切換列後設置軸最小值/最大值。在 JMP 15 中進行列切換後,有什麼方法可以強制腳本運行?謝謝。
回复:需要幫助 - JMP 15 中列切換器的“設置腳本”行為已更改我將這個問題提交給了 JMP 支持並得到了他們的回复:
開發團隊能夠確定事件行為的改變是有意的。
現在,您可以使用 Jim Nelson 在社區中建議的解決方法。 但是,JMP 15 的下一個維護版本計劃採用一種新方法,允許您將腳本設置為 Column Switcher 引用。 這將確保腳本在正確的時間運行。 我們預計此功能將在 7 月的時間範圍內可用。
回复:需要幫助 - JMP 15 中列切換器的“設置腳本”行為已更改@paul_vezzetti感謝您的回复,但不幸的是,能夠讀取新列名稱並不意味著該圖已使用新列更新。在 JMP 15 中,儘管可以從列切換器中讀取新的列名稱,但列切換仍在腳本執行後發生。因此,在我的使用案例中,我想為要切換到的新列設置軸刻度,但這不會起作用,因為 JMP 在我設置刻度後切換到新列,這會完全重置軸。
回复:需要幫助 - JMP 15 中列切換器的“設置腳本”行為已更改你也可以試試這個:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
nw = New Window( "Test",
gb = Graph Builder(
Size( 528, 464 ),
Show Control Panel( 0 ),
Variables( X( :name ), Y( :height ) ),
Elements( Points( X, Y, Legend( 3 ) ) ),
Column Switcher( :height, {:height, :weight} )
)
);
nw[Listboxbox( 1 )] << set script(
Print( JMP Version() );
Print( nw[Listboxbox( 1 )] << Get Selected() );
);
回复:需要幫助 - JMP 15 中列切換器的“設置腳本”行為已更改謝謝你! 此解決方案適用於 JMP 14 和 15。回复:需要幫助 - JMP 15 中列切換器的“設置腳本”行為已更改我會將您的問題提交給 JMP 支持,以獲得 JMP 的官方更改原因,但是,如果您將腳本附加到框架框,您將獲得想要的結果
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
nw = new window("Test",
gb = Graph Builder(
Size( 528, 464 ),
Show Control Panel( 0 ),
Variables( X( :name ), Y( :height ) ),
Elements( Points( X, Y, Legend( 3 ) ) ),
Column Switcher( :height, {:height, :weight} )
)
);
nw[framebox( 1 )] << add graphics script(
print(JMP Version());
print(report(gb)[TextEditBox(4)]<< Get Text());
);