我有一個列切換器,它控製圖形生成器生成的圖。我想附加一個表,其中包含與列切換器中選擇的列相關的信息。我的腳本可以工作,只要通過單擊選擇列切換器中的列。如果使用向上和向下箭頭鍵滾動瀏覽,則出現的表格始終用於前一列切換器選擇。我不知道為什麼 - 任何見解都會非常有幫助。
實際應用程序很複雜,但此腳本顯示了該問題的人為示例。如果單擊以選擇列,而不是使用向上和向下箭頭滾動,請檢查右側的值列會發生什麼情況。
Names Default To Here( 1 );
dt = Open( "$Sample_Data/Diabetes.jmp" );<BR /><BR />dt << Select Rows(1::25);
NW = New Window( "Total Cholesterol",
OB = Outline Box( " Plots",
HLB = H List Box(
nSelected = N Rows( dt << Get Selected Rows );
dt_Subset = dt << Subset( Selected Rows( 1 ) );
colList = {BMI, BP, Total Cholesterol, LDL, HDL, TCH, LTG};
GBobj = dt_Subset << Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Variables( X( :Age ), Y( :BMI ) ),
Elements( Points( X, Y, Legend( 3 ) ), Smoother( X, Y, Legend( 4 ) ) )
);
);
);
);
//Add column Switcher to GB plots
Current Data Table( dt_Subset );
cs = GBobj << Column Switcher( :BMI, colList );
// Add initial table with values for Column Switcher selection for Age = 50
var = cs << Get Current;
dt_Small = dt_Subset << Select Where( :Age == 50 );
dt_View = dt_Subset << Subset( Selected Rows( 1 ), Columns( var ), Invisible );
View1 = Data Table Box( dt_View );
Try( HLB << Append( View1 ) );
// Add script to act based on current Column Switcher selection;
// Append/update the table
NW["Plots"][ListBoxBox( 1 )] << Set Script(
Try( Close( dt_View, NoSave ) );
Try( View1 << Delete );
var = cs << Get Current;
dt_Small = dt_Subset << Select Where( :Age == 50 );
dt_View = dt_Subset << Subset( Selected Rows( 1 ), Columns( var ), Invisible );
View1 = Data Table Box( dt_View );
Try( HLB << Append( View1 ) );
);偉大的! 希望在未來的版本中,我們可以實現願望清單請求以將腳本直接附加到列切換器。
保羅,這太棒了!有用!看來 "var = NW["Plots"][ListBoxBox( 1 )] << Get Selected" 做了我想法“獲取當前”命令應該做的!按照您的建議使用“等待”語句,我發現它們在執行時有所不同。非常感謝你的幫助!
感謝您指出腳本何時運行,Paul。也用於願望清單請求的鏈接。
實際上,您可以更改:
var = cs << 獲取當前;
至:
var = NW["Plots"][ListBoxBox( 1 )] << 被選中;
這應該有效。
一旦列表中的選擇發生變化並且在列切換器實際切換列之前,腳本就會運行。 如果您在 Set Script 的末尾添加一個等待,您可以看到這一點。 表格在圖表切換之前更新。 這就是您看到之前的列切換器選擇的原因。 不幸的是,我不知道有任何其他方式可以觸發您正在尋找的內容。 目前 JMP 願望清單中有一個關於此功能的請求:
https://community.jmp.com/t5/JMP-Wish-List/Add-a-lt-lt-Set-Function-message-to-the-column-switcher/idi-p/212288