列切换器和尝试功能你好
是否可以在列切换器脚本中使用try函数?我正在创建一个脚本,在其中添加列切换器,然后将几个选定的列添加到可以正常运行的图形中。但是,有时会缺少一列,这会使脚本停止。因此,我试图对每个相关列使用try函数(因为我不希望列切换器中的所有列),但是我无法使其正常工作。
dt <<列切换器(
try((:RER),throw(“ RER不存在”)),
try((:VO2),throw(“ VO2不存在”)),
try(:Name(“ Drink- [ml]”),throw(“ Drink- [ml]不存在”))
);
有可能还是有更好的方法来做到这一点?
朱丽叶
回复:列切换器和尝试功能这是我会做的
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
// set desired list of columns to be in column switcher
desiredColList = {"Height", "Weight", "Zippy"};
// remove from list, columns that are not available
For( i = N Items( desiredColList ), i >= 1, i--,
If( Try( Column( dt, desiredColList[i] ) << get name, "" ) == "",
Remove From( desiredColList, i, 1 )
)
);
// If columns are available, run the platform
If( N Items( desiredColList ) > 0,
ow = oneway( x( :age ), y( :height ) );
ow << Column Switcher( :height, desiredColList );
);回复:列切换器和尝试功能我会在消息外使用Try()函数。有条件地构建消息。像这样:
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Fitness.jmp" );
gb = dt << Graph Builder(
Size( 532, 456 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :Age ), Y( :Oxy ) ),
Elements( Points( X, Y, Legend( 3 ) ) )
);
alt cols = List();
Try(
Insert Into( alt cols, Column( dt, "Age" ) )
);
Try(
Insert Into( alt cols, Column( dt, "Weight" ) )
);
Try(
Insert Into( alt cols, Column( dt, "Runtime" ) )
);
col switcher expr = Expr( Column Switcher( :age ) );
Insert Into( col switcher expr, alt cols );
Eval(
Insert(
Expr( Send( gb ) ),
Name Expr( col switcher expr )
)
);