將數據過濾器收藏夾保存到下一個會話你好,
這是挑戰:
用戶打開儀表板。 儀表板包含行數據過濾器。 創建一些收藏夾(“添加收藏夾”)。 他關閉儀表板,第二天重新打開時,他希望他的收藏夾過濾器顯示在數據過濾器中。
最重要的是,當用戶關閉儀表板時,我需要保存收藏夾的表達式並在下次運行儀表板時將其粘貼到“Eval(Substitute(Expr(”)。
知道如何以及在何處保存運行之間的表達式嗎?
注意:只有收藏夾必須保存,而不是所有數據過濾器腳本。
例如:
Favorites(
"FILTER1"(Match( columns( :name, :age, :sex, :height, :weight ),
Where( :age == {12, 13} ), Where( :sex == "M" )
)),
"FILTER2"(Match( columns( :name, :age, :sex, :height, :weight ),
Where( :sex == "F" ), Where( :height >= 62.875 & :height <= 70 )
))
)謝謝
腳本回复:將數據過濾器收藏夾保存到下一個會話我有一個解決方案。 謝謝。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
df = dt << Data Filter(
Location( {577, 71} ),
Add Filter(
columns( :name, :age, :sex, :height, :weight ),
Display( :name, Size( 161, 68 ), Height( 68 ), Find( Set Text( "" ) ) ),
Display( :age, Size( 178, 102 ), Height( 102 ) )
),
Favorites(
"FF1"(Match( columns( :name, :age, :sex, :height, :weight ),
Where( :age == {13, 14, 15} ),
Where( :height >= 60.952 & :height <= 70 )
))
)
);
//Save Favorites expression to journal
curJur = Open("C:\Journal.jrn");
curJur[ButtonBox(1)] << Delete Box();
df << Save Script to Journal;
curJur << Save Journal("C:\Journal.jrn");
curJur << Close Window(nosave);
//Load Favorites expression from journal
curJur = Open("C:\Journal.jrn");
SavedExpr = curJur[ButtonBox(1)] << Get Function;
FavoriteExpr = Extract Expr( SavedExpr, Favorites( Wild()) );
curJur << Close Window(nosave);回复:將數據過濾器收藏夾保存到下一個會話@gzmorgan0
謝謝你。
我也考慮過 OnClose/OnOpen,但我不知道如何將一些表達式保存到外部文件並在之後加載此表達式我重新啟動 JMP 並重新運行儀表板。
可能是期刊?
如果你有任何想法,請寫一些非常簡單的例子。
例如,保存這個“Expr(x=5)”,然後加載回來。
回复:將數據過濾器收藏夾保存到下一個會話@tom_abramov
我沒有時間編寫一些測試代碼,但是,這是我要採用的方法:
- 使用可見性折疊的文本框創建儀表板
- 使用 OnClose 腳本將收藏夾過濾器字符串添加到這個隱藏的文本框。
- 使用 OnOpen 或某些儀表闆對象依賴項來獲取值。
如果供個人使用,您可以使用文件。 但是,如果儀表板位於某些共享服務上,安全性通常會禁止打開外部文件。
只是一個開始的想法。