美国国旗

美国政府的官方网站

树查看器宏语法

概述

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的演示

现场演示

您可以在现场演示中使用上述任何示例。您可能需要放大并导航树,以便清楚地观察结果。

范围

  1. 实现使用自定义颜色运行多个宏
  2. 演示如何检索每个不同宏的结果集(节点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)

有关更多信息,请参阅:

上次更新时间:2017-03-10T16:02:29-05:00