将数据过滤器收藏夹保存到下一个会话你好,
这是挑战:
用户打开仪表板。 仪表板包含行数据过滤器。 创建一些收藏夹(“添加收藏夹”)。 他关闭仪表板,第二天重新打开时,他希望他的收藏夹过滤器显示在数据过滤器中。
最重要的是,当用户关闭仪表板时,我需要保存收藏夹的表达式并在下次运行仪表板时将其粘贴到“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 或某些仪表板对象依赖项来获取值。
如果供个人使用,您可以使用文件。 但是,如果仪表板位于某些共享服务上,安全性通常会禁止打开外部文件。
只是一个开始的想法。