树查看器宏语法
概述
Treeviewer宏使用类似SQL的选择语法来查询和选择树中的节点,并允许用户更新这些节点。一种查询语言和一些特定于树的附加函数构成了宏语言的“where”子句。对于选定的每个节点,将执行“do”子句来更新这些节点的属性,包括大小、颜色和展开或折叠节点等。
每个宏有5个部分,每个部分以关键字或单词开头:
宏M1“演示”
VAR(无功功率)color=“[0 255 0]”
对于每个节点
哪里isolation_source=生菜
执行添加到选择集(“莴苣”,颜色);
完成
第1节(MACRO)
“M1”是宏名称,是必需的。宏描述“Demo”可以是一个空字符串,但仍必须提供引号。
第2节(VAR)
定义任意数量的变量,用空格隔开,格式为“name=value”。“VAR”部分是可选的,但如果提供了关键字“VAR“,则必须至少声明一个变量。
第3节(每个)
对于Treeviewer,此部分的内容始终与所示完全一致。
第4节(地点)
这是where子句。插入将选择要更新的节点的类SQL查询。除了常用的AND、OR、NOT和比较操作外,还可以使用下面“函数”中列出的函数。
第5节(DO)
这是Do部分。本节中列出的所有函数都将针对每个选定节点运行。每个命令都必须以分号结束,并且此部分必须以关键字“Done”结束。可用功能如下所示。
功能
“where”子句中可以使用以下函数。函数名不区分大小写,如果函数没有参数,由于解析器的限制,仍然必须传递空字符串。
-
IsLeaf(“”):叶节点返回true,非叶节点返回false
-
子项数(“”):返回节点的子节点数。只包括直系子女,不包括子女中的子女。
-
IsNull(“属性名称”):如果没有为当前节点提供属性“属性名称”,则返回true。请注意,“property-name”必须用引号括起来。
-
日期(“日期时间字符串”,“格式”):采用“format”格式的日期时间字符串,并返回自1970年1月1日午夜UTC以来的整数秒数。当简单的基于字符串的比较不起作用时,允许进行基于日期的比较。有关有效格式,请参阅CTimeFormat。默认格式为“M/D/Y h:M:s”,无需提供尾随值,例如:
日期(target_creation_Date,“M/D/Y h:M:s”)>日期(“06/04/15”,“M/D/Y h:M:s”)
可以将以下函数添加到“do”子句中。“do”子句可以列出由分号分隔的多个函数。“do”子句中的函数区分大小写。
-
SetColor(“颜色描述”):将节点的颜色设置为指定的值,该值可以是RGB格式:“[128 255 64]”、HTML:“#AABBCC”或通用颜色名称,例如“green”。
-
SetSize(大小):将节点半径设置为指定的大小(以像素为单位)。
-
SetProperty(“属性名称”,“属性值”)
:将节点属性“属性名称”设置为值“属性值”。如果这是第一次将名为“property-name”的属性添加到树中,则新属性也将添加到功能字典中。第一个参数应该用引号括起来,因为它是属性名而不是值,例如SetProperty(“creation-date”,“10/12/2016”)
-
添加到SelectionSet(“集合名称”,“集合颜色”):将当前节点添加到选择集“set-name”,并为该集指定颜色“set-color”。如果选择集“set-name”不存在,则会创建它。颜色是可选的,如果没有提供,则会指定默认值。
-
SetMarker(“颜色”,大小):在“颜色”中的颜色和半径等于默认节点半径乘以“大小”的颜色之间为节点分割的饼图样式设置圆形标记。“大小”是可选的。
-
设置边界(“边界-区域参数”):设置节点的边界参数。
示例
树属性名称为红色:
//设置隔离源为生菜的节点的颜色和大小
MACRO M1“注释”
VAR color=“[0 255 255]”lsize=6
对于每个节点
何处(隔离源=生菜)
DO SetColor(颜色);设置大小(lsize);完成
//基于更复杂的where-clause设置节点标记
宏M1“”
对于每个节点
何处((平台=照度a)和(地理_ loc名称=美国)和((距离>11.0)或(收藏者(_B)in(cdc,fda)))
DO SetMarker(“[128 0 0][0 128 0]”,3);完成
//为距离父节点15到20以及geo_loc_name之间的叶节点添加集群ID
//以“WI”结尾
MACRO M2“”
对于每个节点,其中IsLeaf(“”)和距离15.0至20.0之间地理位置_名称像*WI
DO SetProperty(“cluster-id”,502);完成
//可以一起运行三个宏来放置具有不同isolation_source值的节点
//到不同的选择集
MACRO生菜“”
VAR颜色=“[0 255 0]”
对于每个节点
何处(隔离源=生菜)
DO添加到SelectionSet(“set1”,颜色);完成
MACRO文化“
VAR颜色=“[0 255 255]”
对于每个节点,其中(隔离源=文化)
DO添加到SelectionSet(“set2”,颜色);完成
MACRO血液“”
VAR color=“[255 0 0]”
对于每个节点,其中(隔离源=血液)
DO添加到选择集(“set3”,颜色);完成
使用TV宏API的演示
现场演示
您可以在现场演示中使用上述任何示例。您可能需要放大并导航树,以便清楚地观察结果。
范围
- 实现使用自定义颜色运行多个宏
- 演示如何检索每个不同宏的结果集(节点ID列表)
关键用法示例
//处理程序接收所有受影响的节点ID
var receiveAffectedNodeIDs=函数(res)
{
决议。TV_MacroResults.results.forEach(函数(宏){
console.log('macro_name',macro.macro_name);
console.log('受影响的节点ID:');
macro.node_ids.forEach(函数(nd){
console.log('节点id:',nd);
}
)
}
)
};
//获取树查看器对象
var tviewer=TreeView.findAppByIndex(0);
//取消所有应用的宏tviewer.clearMacros();
//将宏应用于树查看器对象tviewer.applyMacros(macro_txt,receiveAffectedNodeID);
//按节点ID获取节点对象
//nodes–带节点ID的逗号分隔字符串
//callback–接收结果的函数
//max_nodes–请求对象的最大数量
tviewer.getNodesObjects=函数(节点,回调,max_nodes)
有关更多信息,请参阅: