Свойства #
CommonTags #
Описание
Общие теги объектов, находящихся в коллекции.
CommonTags : List
Значение свойства (ReadOnly)
Тип: List
Коллекция путей тегов.
VBScript
set CommonTagsList = ObjCollection1.CommonTags
Count #
Описание
Количество элементов, содержащихся в коллекции.
Count : Integer
Значение свойства (ReadOnly)
Тип: Integer
Количество элементов.
VBScript
LastItem = ObjCollection1(ObjCollection1.Count-1) MsgBox ObjCollection1.Count
Item #
Описание
Элемент коллекции по указанному индексу.
Item ( Index Integer ) : Obj
Значение свойства
Тип: Obj
Экземпляр объекта базы данных.
Параметры
Index | Integer | Отсчитываемый от нуля индекс списка.
|
VBScript
set FirstObj = ObjCollection1.Item(0) set FirstObj = ObjCollection1(0)
ObjIds #
Описание
Создает копию коллекции ObjId объектов коллекции.
ObjIds : List
Значение свойства (ReadOnly)
Тип: List
Коллекция строк ObjId объектов коллекции.
VBScript
s = "" for each ObjId in ObjCollection1.ObjIds s = s & ObjId & " " next MsgBox s
Методы #
Add #
Описание
Добавляет объект базы данных в конец коллекции. Если в коллекции уже содержтся объект с таким же ObjId или набором тегов (см. параметр ReplaceObjWithSameTags), то он заменяется на добавляемый объект.
Add ( Obj Obj , [ReplaceObjWithSameTags Boolean = True ] )
Параметры
Obj | Obj | Объект базы данных.
|
ReplaceObjWithSameTags | Boolean | Необязательный параметр. Значение по умолчанию True . Если True, то проверка присутствия добавляемого объекта в коллекции выполняется как по свойству Obj.ObjId, так и набора тегов объекта Obj.TagPaths.
|
VBScript
ObjCollection1.Add(Obj1)
AddRange #
Описание
Добавляет элементы указанной коллекции в конец списка. Если в коллекции уже содержатся объекты с такими же ObjID или набором тегов (см. параметр ReplaceObjWithSameTags), то они заменяются на добавляемые объекты.
AddRange ( ObjCollection1 ObjCollection , [ReplaceObjWithSameTags Boolean = True ] )
Параметры
ObjCollection1 | ObjCollection | Коллекция объектов, которые будут добавлены в конец списка.
|
ReplaceObjWithSameTags | Boolean | Необязательный параметр. Значение по умолчанию True . Если True, то проверка присутствия добавляемого объекта в коллекции выполняется как по свойству Obj.ObjId, так и набора тегов объекта Obj.TagPaths.
|
VBScript
ObjCollection1.AddRange(ObjCollection2)
Clear #
Описание
Удаляет все элементы коллекции.
Clear
VBScript
ObjCollection1.Clear
CreateGraph #
Описание
Создает граф из объектов коллекции.
CreateGraph ( [PrmXML String = '' ], [tsStart TagSet = null ], [tsFinish TagSet = null ] ) : Graph
Возвращаемое значение
Тип: Graph
Экземпляр графа.
Параметры
PrmXML | String | Необязательный параметр. Значение по умолчанию '' . Строка параметров в виде <prm name1='value1' name2='value2' ... nameN='valueN'/> Параметры: maxChainsLength - Integer - максимальная длина пути (цепочки на графе). Значение по умолчанию: 100000. createChains - Boolean. Если True, то в графе будет создана коллекция цепочек ChainCollection (см. свойство Graph.Chains). Если False - то коллекция цепочек будет пустой. Значение по умолчанию: False. autoAttachArrowToFinishTags - Boolean. Если True, то к каждому тегу коллекции tsFinish будет добавлен префикс '=>' (признак конца дуги). Значение по умолчанию: True. |
tsStart | TagSet | Необязательный параметр. Значение по умолчанию null . Коллекция тегов, которые в графе будут узлам в которых будут начинаться пути (цепочки) на графе.
|
tsFinish | TagSet | Необязательный параметр. Значение по умолчанию null . Коллекция тегов, которые в графе будут узлам в которых будут завершаться пути (цепочки) на графе.
|
Комментарии
Если будет задан только один из параметров tsStart или tsFinish, то возникнет ошибка.
Если onlyChainedNodes=True и/или createChains=True, то обязательно задание параметров tsStart и tsFinish.
VBScript
BaseTagPath = "sda4a3eff52294e35bf864aa4915e78fasdf132ca656bd44b5a6be88f8402b0e4as" 'Создаем правила поиска в базе данных связей между узлами дерева тегов. Set ts1 = ag.app.NewObject("TagSet") ts1.Add BaseTagPath, "", 10, "AnyOne" ts1.Add BaseTagPath, "", 10, "ArrowAnyOne" 'Ищем дуги (связи между узлами) в базе данных. Set oc1 = ag.objects.Aggregate(ts1) 'Создаем набор начальных узлов из 'листьев' дерева тегов Set tsStart = ag.tags.DeployTag(BaseTagPath, "", 100, "EndOne") 'Создаем набор конечных узлов. В данном случае он состоит из единственного 'корневого' тега. Set tsFinish = ag.app.NewObject("TagSet", Array("sdf132ca656bd44b5a6be88f8402b0e4as")) 'Создаем связанный, направленный граф Set g1 = oc1.CreateGraph("<prm maxChainsLength='100' />", tsStart, tsFinish)
ObjById #
Описание
Объект коллекции с указанным идентификатором.
ObjById ( ObjId String ) : Obj
Возвращаемое значение
Тип: Obj
Экземпляр объекта базы данных или null, если такого объекта в коллекции нет.
Параметры
ObjId | String | Идентификатор объекта базы данных (дуги графа). Строка длинной не более 32 символов. Идентификато содержит цифры от 0 до 9 и латинские буквы 'a', 'b', 'c', 'd', 'e' и 'f'. В идентификаторе, определенном пользователем, должен присутствовать хотя бы один буквенный символ. Например, 'fa0234'. Идентификатор должн быть уникальным.
|
VBScript
Set Obj1 = ObjCollection1.ObjById("af123")
Remove #
Описание
Удаляет объект базы данных из коллекции.
Remove ( Obj Obj ) : Boolean
Возвращаемое значение
Тип: Boolean
True, если операция выполнена без ошибок; в противном случае False. Этот метод также возвращает False, если элемент не найден в коллекции.
Параметры
Obj | Obj | Объект базы данных.
|
VBScript
'удаляем 2-й объект из коллекции MsgBox ObjCollection1.Remove(ObjCollection1(1))
RemoveByIds #
Описание
Удаляет из коллекции объекты по их идентификаторам.
RemoveByIds ( ObjIds Array )
Параметры
ObjIds | Array | Массив String идентификаторов объектов. Если в коллекции отсутствует объект с указанным ObjId, то такой ObjId игнорируется.
|
VBScript
ObjCollection1.RemoveByIds Array("af123", "cd456")
RemoveByTags #
Описание
Удаляет из коллекции объекты, хотя бы один из тегов которых входит в заданный список.
RemoveByTags ( TagSet1 TagSet , [AlsoWithArrows Boolean = True ] ) : Boolean
Возвращаемое значение
Тип: Boolean
True, если операция выполнена без ошибок; в противном случае False
Параметры
TagSet1 | TagSet | Список тегов.
|
AlsoWithArrows | Boolean | Необязательный параметр. Значение по умолчанию True . Если True, то также из коллекции будут удалены объекты с тегами из ts, к которым добавлен префикс '=>'.
|
VBScript
ObjCollection1.RemoveByTags ts1
RemoveRange #
Описание
Удаляет из коллекции объекты, входящие в заданный список.
RemoveRange ( ObjCollection1 ObjCollection ) : Boolean
Возвращаемое значение
Тип: Boolean
True, если операция выполнена без ошибок; в противном случае False.
Параметры
ObjCollection1 | ObjCollection | Список объектов.
|
VBScript
ObjCollection1.RemoveRange oc1
Пример #
Пример использования ‘ObjCollection’ #
VBScript
'подключаемся к базе данных almaGRID как пользователь "Administrator", с паролем "111" с использованием языка модели "Russian" if ag.err.ErrorCode = 0 then ag.database.AprjOpen "test.aprj", "Administrator", "111", "Russian" end if 'В базе данных находятся объекты 'Теги Значения ObjID '[a1]AND[a11] 1 a121 '[a1]AND[a12] 2 a122 '[a1]AND[a13] 3 a123 '[b1]AND[b11] 44 b121 '[b1]AND[b12] 45 b122 'ищем объекты базы данных модели, содержащие тег "a1" set ObjCollection1 = ag.objects.Find("<prm><tag label='a1'/></prm>") 'ищем объекты базы данных модели, содержащие тег "b1" set ObjCollection2 = ag.objects.Find("<prm><tag label='b1'/></prm>") 'выводим ObjID первой коллекции в цикле "for each" s = "" for each Obj in ObjCollection1 s = s & Obj.ObjID & " " next ag.app.MsgBox s '-> a121 a122 a123 'выводим ObjValue второй коллекции в цикле "for" s = "" for i = 0 to ObjCollection2.Count -1 s = s & ObjCollection2.Item(i).ObjValue & " " next ag.app.MsgBox s '-> 44 45 'добавляем объекты второй коллекции к первой ObjCollection1.AddRange(ObjCollection2) ag.app.Msgbox ObjCollection1.Count '-> 5 'выводим теги объектов коллекции s = "" for each Obj in ObjCollection1 s = s & Obj.TagLabels.Item(0) & " " & Obj.TagLabels.Item(1) & chr(13) next ag.app.MsgBox s '-> [a1] [a11] ' [a1] [a12] ' [a1] [a13] ' [b1] [b11] ' [b1] [b12] 'удаляем 2-й объект из коллекции ag.app.MsgBox ObjCollection1.Remove(ObjCollection1(1)) 'выводим ObjValue коллекции s = "" for each ObjID in ObjCollection1.ObjIDs s = s & ObjID & " " next ag.app.MsgBox s '-> a121 a123 b121 b122