JSL代码清除选定的数据表内容我正在尝试做一些我认为应该很容易完成的事情,但我找不到可以让我完成的 JSL 指令。基本上,在选择各种列和行后,我想删除所选单元格的内容,而不是整个列或行。我可以手动执行此操作,但找不到执行此操作的 JSL 命令。任何建议,将不胜感激。
例如,
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Select Rows( [5, 7, 8, 10] );
Column ( "name" ) << Set Selected ( 1 );
Column ( "sex" ) << Set Selected ( 1 );
现在删除所选单元格的内容。
谢谢。
回复:JSL代码清除选定的数据表内容<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />操作系统标准之间存在差异。Windows 使用编辑->清除Mac 使用编辑->删除。
因此,为了使脚本对任何一个都健壮,您需要使用:
If(Host is( Windows ),
Main Menu( "Clear" ), //Windows
Main Menu( "Delete" ) //Mac
);
-杰夫
回复:JSL代码清除选定的数据表内容谢谢大家的建议,
很高兴看到几个选项。我想应该有一个典型的命令我可以按照MS的建议调用(注意:实际命令是主菜单( “清除” ) ;, 不是主菜单( “删除” ))
回复:JSL代码清除选定的数据表内容非常感谢! 字符数越少越好,尤其是在我打字的时候。 。 。
回复:JSL代码清除选定的数据表内容伊恩的功能不错! 为了进一步简化它,您可以避免使用 Empty() 单独处理不同的数据类型。 它适用于数字列和字符列。
For(c = 1, c <= N Items(selCols), c++, Column(dt, selCols[c])[selRows] = Empty());
回复:JSL代码清除选定的数据表内容一个简单但有潜在风险的方法是使用 MainMenu() 来调用删除命令在编辑菜单。 这是有风险的,因为它会删除活动窗口中选择的任何内容。 因此,在复杂的脚本中,请确保跟踪命令运行时哪个窗口将位于顶部。
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Select Rows([5, 7, 8, 10]);
Column("name") << Set Selected(1);
Column("height") << Set Selected(1);
dt << Bring Window To Front;
Main Menu("Delete");
回复:JSL代码清除选定的数据表内容像这样的东西:
NamesDefaultToHere(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Set up a selection of cells
dt << Select Rows( [5, 7, 8, 10] );
Column (dt, "name" ) << Set Selected ( 1 );
Column (dt, "sex" ) << Set Selected ( 1 );
// Function to set currently selected cells to '.' or ""
clearSelectedCells =
Function({dt}, {Default Local},
selCols = dt << getSelectedColumns;
selRows = dt << getSelectedRows;
for(c=1, c<=NItems(selCols), c++,
dType = Column(dt, selCols[c]) << getDataType;
if (dType == "Numeric",
Column(dt, selCols[c])[selRows] = .
,
Column(dt, selCols[c])[selRows] = ""
);
);
);
// Use the function
clearSelectedCells(dt);