天天看点

PDMS原生类BLOCK

BLOCK

BLOCK是PDMS提供的原生类。该类通常不独立使用,主要是配合ARRAY的Evaluate方法使用,用于返回一个经过计算的数组。

sample

// 实例化
!oBlock = object BLOCK('Express 表达式')

// 计算数组对象
var !aZoneList coll all ZONE for ce

// 获取数组的名称,并全部转换为小写字母
!aZoneNameList = !aZoneList.Evaluate(object BLOCK('!aZoneList[!EVALINDEX].Dbref().Name.LowCase()'))
           

Note

  • BLOCK的参数是字符串型
  • !EVALINDEX

    是固定的写法,不能使用其他变量名代替

数组排序

利用BLOCK实现自定义的排序规则。

// 原数组
!aS[1] = 'A-002'
!aS[2] = 'A-001'
!aS[3] = 'A-101'

// 利用后三位作为排序规则
!aSortCondition = !aS.Evaluate(object BLOCK('!aS[!EVALINDEX].Substring(-1,-3)'))

// 获取排序后的索引
!aSortIndex = !aSortCondition.SortedIndices()
q var !aS.ReIndex(!aSortIndex)

// 结果
!aS[1] = 'A-001'
!aS[2] = 'A-002'
!aS[3] = 'A-101'
           

继续阅读