如何正确清除行状态处理程序我有一个非常简单的行状态处理程序,可确保永远不会取消选择给定的选定行。问题是,我想关闭该功能并继续正常操作。
这是锁定第 15 行始终被选中的简单脚本。
names default to here(1);
dt=open("$SAMPLE_DATA\big class.jmp");
x=15;
dt << select rows(x);
setrow = function({x},dt<<CLEAR select=""></CLEAR>
所以现在的问题是,除了关闭和重新打开数据表之外,如何删除 Row State Handler?我可以将行状态处理程序更改为不同的函数,但我更愿意只删除行状态处理程序。
有人有答案吗?
数据表脚本回复:如何正确清除行状态处理程序我认为您只需要将空分配给先前存储对处理程序的引用的变量。 您需要在取消分配处理程序之前使用 Wait( 0 ) 函数调用,以确保赶上所有更新并且脚本同步。 (感谢 Dan Schikore 提供有关 Wait 的提示。)
查看此示例并在运行后检查日志。 只有前两行状态更改会导致输出到日志。
Names Default To Here( 1 );
// example data set
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// example handler
f = Function( {a}, Show( a ) );
// assign handler
rs = dt << make row state handler( f );
// test handler
dt << Select Rows( 1 );
dt << Select Rows( 5 );
Wait( 0 );
// de-assign handler
rs = Empty();
// test absence of handler
dt << Select Rows( 3 );
dt << Select Rows( 9 );回复:如何正确清除行状态处理程序一个老问题,但为什么不设置 rs=0 呢?
回复:如何正确清除行状态处理程序<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />下面似乎清除了行状态处理程序(但不是当前行状态):
清除全局变量( rs ) ;
回复:如何正确清除行状态处理程序谢谢。
回复:如何正确清除行状态处理程序我将 JSL 代码复制/粘贴到 MS-Word,然后将其从 Word 复制/粘贴到此处。例如:
空函数=功能({ X } , { z } ,
z = 1个;
) ;
rs = dt <<制作行状态处理程序(空函数) ;
回复:如何正确清除行状态处理程序可能不是正确的解决方案,但我为行状态处理程序分配了一个空函数:
empty_function = function({x},{z},
z = 1;
);
rs = dt << Make Row State Handler(empty_function);
如果函数完全为空,它会以某种方式不起作用,所以我将 z=1 添加为“虚拟代码”。
问候
彼得
PS:您如何将示例代码格式化为“代码”(就像您所做的那样)? 看来我太笨了,看不懂论坛软件。