Методы #
AddTag #
Overview
Добавляет дочерний тег к заданному родительскому тегу.
AddTag ( TagLabel String , TagId String , ParentTagPathFromRoot String ) : String
Возвращаемое значение
Тип: String
Возвращает Id добавленного тега, например, 'fa0234'. Если добавить тег не удалось, то возвращает пустую строку.
Параметры
TagLabel | String | Название тега на текущем языке, например, 'Тег1'.
|
TagId | String | Идентификатор тега (узла графа). Строка длинной не более 32 символов. Идентификато содержит цифры от 0 до 9 и латинские буквы 'a', 'b', 'c', 'd', 'e' и 'f'. В идентификаторе, определенном пользователем, должен присутствовать хотя бы один буквенный символ. Например, 'fa0234'. Идентификатор должн быть уникальным. Если равен пустой строке, то для добавляемого тега автоматически создается уникальный идентификатор. |
ParentTagPathFromRoot | String | Путь от корневого тега. Путь до родительского тега, к которому добавляют дочерний тег, например, 's1sfa0234s54e6ds' |
VBScript:
if ag.err.ErrorCode = 0 then 'в родительском узле дерева тегов "s1sb3es" создаем новый тег с названием "НовыйТег" с Id="fa124" id1 = ag.tags.AddTag("НовыйТег", "fa124", "s1sb3es") 'для созданного тега создаем два дочерних тега ag.tags.AddTag "Tag27", "fa125", "s1sb3es" & id1 & "s" 'Идентификатор нового узла "fa125" ag.tags.AddTag "Tag28", "", "s1sb3es" & id1 & "s" 'Идентификатор узла будет создан автоматически end if
В результате в узле ‘s1sb3es’ будет создана ветвь с корневым узлом [НовыйТег]:
{узел с путем от корневого тега (с "адресом") 's1sb3es'} [НовыйТег] [Tag27] [Tag28]
AddCsv #
Overview
Добавляет ветвь тегов из файла к заданному родительскому тегу.
AddCsv ( FilePath String , ParentTagPathFromRoot String , Mode String )
Параметры
FilePath | String | Путь к файлу. CSV-файл, в котором описана ветвь импортируемых тегов. |
ParentTagPathFromRoot | String | Путь от корневого тега. Путь до родительского тега, к которому будет добавлена ветвь тегов из файла, например, 's1sfa0234s54e6ds' |
Mode | String | Выполняемое действие.
Mode='Id_Lang_Tags' - добавление тегов из CSV файла:
Столбец 1: ID тега.
Столбец 2: язык тега.
Столбец 3: название тега.
Столбец 4: название тега, дочернего по отношению к последнему по предыдущим строкам тегу в предыдущем столбце.
Столбец N: название тега, дочернего по отношению к последнему по предыдущим строкам тегу в предыдущем столбце.
Если в базе данных уже имеется тег с таким названием, то экземпляр такого тега включается в указанное положение дерева тегов.
Mode='Tags' - добавление тегов из CSV файла:
В каждой строке CSV-файла заполнено значение только для одного столбца, номер заполненного столбца - это глубина вложенности дочернего тега.
Столбец 1: название тега на текущем языке.
Столбец 2: название тега, дочернего по отношению к последнему по предыдущим строкам тегу в предыдущем столбце на текущем языке.
Столбец N: название тега, дочернего по отношению к последнему по предыдущим строкам тегу в предыдущем столбце на текущем языке.
Если в базе данных уже имеется тег с таким идентификатором, то (1) для этого тега добавляется новое или заменяется существующее название на указанном языке и (2) экземпляр такого тега включается в указанное положение дерева тегов.
Отличие формата CSV-файла при использовании Mode='Id_Lang_Tags' от CSV-файла для Mode='Tags' в первых двух столбцах, в которых указаны идентификаторы и язык импортируемых тегов.
|
Пример импортируемого файла ‘TagsTree-f2.csv’ в формате ‘Id_Lang_Tags’:
bfca689236894f0090b709da0bc3d45d;Russian;Тег25;; 2865af20168c4f15a1a97b3314f8d9bd;Russian;;a11; 6b8d560097de4a82aef6a72a5fcc40be;Russian;;;a111 3489efd43d214690b661ba15ade76069;Russian;;;a112 a253b32cbd3747478cb60daa49029b31;Russian;;a12; 142d4031306a412c8873c22399e82b6b;Russian;;;a121 a856ffc40cf24fac9df9b6420aef8031;Russian;;;a122
Этот csv-файл соответствует формату ввода/вывода верви дерева тегов на лист рабочей книги приложения almaGRID:
VBScript
'принимаем теги из файла "TagsTree-f2.csv" в модель в узел дерева тегов "s1sb3ec4a89dca34036a83e0961c89f56d3s" if ag.err.ErrorCode = 0 then ag.tags.AddCsv ScriptDir & "\TagsTree-f2.csv", "s1sb3ec4a89dca34036a83e0961c89f56d3s", "Id_Lang_Tags" end if
В результате выполнения скрипта в узле ‘s1sb3ec4a89dca34036a83e0961c89f56d3s’ создается ветвь с корневым узлом [Тег25]:
{узел с путем от корневого тега (с "адресом") 's1sb3ec4a89dca34036a83e0961c89f56d3s'} [Тег25] [a11] [a111] [a112] [a12] [a121] [a122]
AttachArrow #
Overview
Добавляет перед путем тега префикс '=>' (признак конца дуги).
AttachArrow ( TagPath String , [OnlyLastTagId Boolean = True ] ) : String
Возвращаемое значение
Тип: String
Возвращает путь составного тега, образованного служебным тегом '=>' (Id='000455') и заданным тегом. Возвращает пустую строку, если TagPath равен пустой строке.
Параметры
TagPath | String | Путь тега, перед которым будет добавлен префикс '=>''.
|
OnlyLastTagId | Boolean | Необязательный параметр. Значение по умолчанию True . Если True, то добавляет префикс '=>' только к последнему тегу в пути TagPath.
|
VBScript
path1 = ag.tags.AttachArrow(path0)
DeployTag #
Overview
Создает набор дочерних тегов для TagPath.
DeployTag ( UniqueTagPath String , TagLabel String , ChildLevel Integer , Selector String ) : TagSet
Возвращаемое значение
Тип: TagSet
Дочерние теги для TagPath, отобранные в соответствии с заданными правилами.
Параметры
UniqueTagPath | String | Уникальный путь к тегу в дереве тегов. Такой путь встречается в дереве тегов только один раз. Может использоваться для однозначного определения положения тега в дереве тегов. Состоит из одного или последовательности нескольих TagId, разделенных символом 's'. Начинается и завершается символом 's'. Например, 'sb123sb456s'.
|
TagLabel | String | Название тега на текущем языке, например, 'Тег1'. Если задан UniqueTagPath, то TagLabel игнорируется. |
ChildLevel | Integer | Количество дочерних уровней по дереву тегов. Для первого дочернего уровня относительно TagPath значение ChildLevel=1.
|
Selector | String | Селектор отбора тегов с дочерних уровней:
'LastOne' - теги на ChildLevel дочернем уровне. 'LastTwo' - теги, представленные путями от ChildLevel-1 до ChildLevel дочернего уровня. 'LastThree' - теги, представленные путями от ChildLevel-2 до ChildLevel дочернего уровня. 'LastFour' - теги, представленные путями от ChildLevel-3 до ChildLevel дочернего уровня. 'LastFive' - теги, представленные путями от ChildLevel-4 до ChildLevel дочернего уровня. 'EndOne' - теги, завершающие ветви дерева тегов и являющиеся потомками узла TagPath не более, чем на ChildLevel уровне. 'EndOrLastOne' - теги на ChildLevel дочернем уровне, или теги, завершающие ветви дерева тегов и являющиеся потомками узла TagPath не более, чем на ChildLevel уровне. 'AnyOne' - любой потомок узла TagPath до уровня ChildLevel. 'ArrowLastOne' - теги на ChildLevel дочернем уровне, к пути которых добавлен префикс '=>' (признак конца дуги). 'ArrowEndOrLastOne' - теги, отвечающие условиям селектора EndOrLastOne, к путям которых добавлен префикс '=>' (признак конца дуги). 'ArrowAnyOne' - любой потомок узла TagPath до уровня ChildLevel, к пути которого добавлен префикс '=>' (признак конца дуги).
|
VBScript
set TagSet1 = ag.tags.DeployTag(path0, "", 2, "LastOne")
DisattachArrow #
Overview
Удаляет префикс '=>' (признак конца дуги) из пути тега.
DisattachArrow ( TagPath String ) : String
Возвращаемое значение
Тип: String
Возвращает путь тега, в котором отсутствует служебный тегом '=>' (Id='000455').
Параметры
TagPath | String | Путь тега, из которого будет исключен префикс '=>''.
|
VBScript
path1 = ag.tags.DisattachArrow(path0)
EdgesFromTree #
Overview
Создает виртуальные связи графа, которые не сохраняются в базу данных, на основе иерархии дерева тегов.
EdgesFromTree ( TagPath String , TagLabel String , FromChildLevel Integer , ToChildLevel Integer , ToChildLevel Double ) : ObjCollection
Возвращаемое значение
Тип: ObjCollection
Набор объектов - дуг графа с заданным значением.
Параметры
TagPath | String | Путь к тегу в дереве тегов. Состоит из одного или последовательности нескольих TagId, разделенных символом 's'. Начинается и завершается символом 's'. Например, 'sb123sb456s'.
|
TagLabel | String | Название тега на текущем языке, например, 'Тег1'. Если задан TagPath, то TagLabel игнорируется. |
FromChildLevel | Integer | Уровень дочерних тегов, из которых будут исходить создаваемые дуги. Для первого дочернего уровня относительно TagPath значение ChildLevel=1.
|
ToChildLevel | Integer | Уровень дочерних тегов, на которых будут заканчиваться создаваемые дуги. Для первого дочернего уровня относительно TagPath значение ChildLevel=1.
|
ToChildLevel | Double | Значение создаваемых дуг.
|
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) 'Дополняем найденные связи дугами по иерархии дерева отказов: от 'листьев' к 'корню' For ChildLevel = 1 To 12 oc1.AddRange (ag.tags.EdgesFromTree(BaseTagPath, "", ChildLevel, ChildLevel - 1, 1)) Next
EvalTag #
Overview
Выполняет скрипт, сохраненный в теге с TagId.
EvalTag ( TagId String , [TagLabel String = '' ], [Args Dictionary = null ] ) : Variant
Возвращаемое значение
Тип: Variant
Результат выполнения скрипта (объект Result).
Параметры
TagId | String | Идентификатор тега (узла графа). Строка длинной не более 32 символов. Идентификато содержит цифры от 0 до 9 и латинские буквы 'a', 'b', 'c', 'd', 'e' и 'f'. В идентификаторе, определенном пользователем, должен присутствовать хотя бы один буквенный символ. Например, 'fa0234'. Идентификатор должн быть уникальным.
|
TagLabel | String | Необязательный параметр. Значение по умолчанию '' . Название тега на текущем языке, например, 'Тег1'. Если задан TagId, то TagLabel игнорируется. |
Args | Dictionary | Необязательный параметр. Значение по умолчанию null . Именованный список Dictionary аргументов, который будет передан вызываемым скриптам. Список пар 'ИмяОбъекта'-'ЭкземплярОбъекта'.
|
VBScript
'если не нужно получить значение, вычесленное в скрипте ag.tags.EvalTag "aeca38b6b2824a27b4238f1f012d55f2", "", ag.app.NewObject("Dictionary", Array("g1", g1)) 'если нужно получить значение, вычесленное в скрипте Set Res = ag.tags.EvalTag("aeca38b6b2824a27b4238f1f012d55f2", "", ag.app.NewObject("Dictionary", Array("g1", g1)))
GetChildIds #
Overview
Возвращает коллекцию строк TagId дочерних узлов тега, путь до которого от корня дерева TagPathFromRoot.
GetChildIds ( TagPathFromRoot String ) : List
Возвращаемое значение
Тип: List
Коллекция строк TagId.
Параметры
TagPathFromRoot | String | Путь от корня дерева тегов. Такой путь является уникальным. Может использоваться для однозначного определения положения тега в дереве тегов. Состоит из одного или последовательности нескольих TagId, разделенных символом 's'. Начинается и завершается символом 's'. Например, 'sb123sb456s'.
|
VBScript
if ag.err.ErrorCode = 0 then set list_id = ag.tags.GetChildIds("s1sb3ec4a89dca34036a83e0961c89f56d3s") for each id in list_id ag.MsgBox id next end if
GetChildPaths #
Overview
Возвращает пути дочерних тегов.
GetChildPaths ( TagPathFromRoot String ) : List
Возвращаемое значение
Тип: List
Коллекция строк TagPath дочерних узлов для для узла с путем от корня TagPathFromRoot.
Параметры
TagPathFromRoot | String | Путь от корня дерева тегов. Такой путь является уникальным. Может использоваться для однозначного определения положения тега в дереве тегов. Состоит из одного или последовательности нескольих TagId, разделенных символом 's'. Начинается и завершается символом 's'. Например, 'sb123sb456s'.
|
VBScript
if ag.err.ErrorCode = 0 then set list_path = ag.tags.GetChildPaths("s1sb3ec4a89dca34036a83e0961c89f56d3s") for each path in list_path ag.MsgBox path next end if
GetId #
Overview
Возвращает TagId тега по его названию или пустую строку, если название не найдено на текущем языке.
GetId ( TagLabel String ) : String
Возвращаемое значение
Тип: String
TagId тега или пустая строка, если название не найдено на текущем языке.
Параметры
TagLabel | String | Название тега на текущем языке, например, 'Тег1'.
|
VBScript
if ag.err.ErrorCode = 0 then 'обращаемся к тегу по его id, и используем для название тега, сохраненную в переменной скрипта label = ag.tags.GetLabel("b3ec4a89dca34036a83e0961c89f56d3") ag.MsgBox "[" & label & "]" id = ag.tags.GetID(label) ag.MsgBox id 'обращаемся к тегу по названию, заданному в скрипте id = ag.tags.GetID("Риски НИОКР") ag.MsgBox id end if
GetLabel #
Overview
Возвращает название тега на текущем языке базы данных.
GetLabel ( TagId String ) : String
Возвращаемое значение
Тип: String
Название тега на текущем языке базы данных.
Параметры
TagId | String | Идентификатор тега (узла графа). Строка длинной не более 32 символов. Идентификато содержит цифры от 0 до 9 и латинские буквы 'a', 'b', 'c', 'd', 'e' и 'f'. В идентификаторе, определенном пользователем, должен присутствовать хотя бы один буквенный символ. Например, 'fa0234'. Идентификатор должн быть уникальным.
|
VBScript
if ag.err.ErrorCode = 0 then 'обращаемся к тегу по его id, и используем для название тега, сохраненную в переменной скрипта label = ag.tags.GetLabel("b3ec4a89dca34036a83e0961c89f56d3") ag.MsgBox "[" & label & "]" id = ag.tags.GetID(label) ag.MsgBox id 'обращаемся к тегу по названию, заданному в скрипте id = ag.tags.GetI("Риски НИОКР") ag.MsgBox id end if
GetLabelAnyLanguage #
Overview
Возвращает название тега на текущем или другом доступном языке базы данных в виде массива.
GetLabelAnyLanguage ( TagId String ) : String()
Возвращаемое значение
Тип: String()
Массив из двух элементов:
Res(0) - название языка, или пустая строка, если название не найдено,
Res(1) - название тега, или пустая строка, если название не найдено.
Параметры
TagId | String | Идентификатор тега (узла графа). Строка длинной не более 32 символов. Идентификато содержит цифры от 0 до 9 и латинские буквы 'a', 'b', 'c', 'd', 'e' и 'f'. В идентификаторе, определенном пользователем, должен присутствовать хотя бы один буквенный символ. Например, 'fa0234'. Идентификатор должн быть уникальным.
|
VBScript
if ag.err.ErrorCode = 0 then Dim arr arr = ag.tags.GetLabelAnyLanguage(CurrentTagGUID) if arr(0) <> "" then ag.MsgBox "На языке '" & arr(0) & "' название тега '" & arr(1) & "'" end if end if
IdCountInPath #
Overview
Возвращает количество TagId в TagPath.
IdCountInPath ( TagPath String ) : Integer
Возвращаемое значение
Тип: Integer
Количество TagId в TagPath.
Параметры
TagPath | String | Путь к тегу в дереве тегов. Состоит из одного или последовательности нескольих TagId, разделенных символом 's'. Начинается и завершается символом 's'. Например, 'sb123sb456s'.
|
VBScript
ag.MsgBox ag.tags.IdCountInPath("sb123sb456sb789s") 'отобразит "3"
IdFromPath #
Overview
Возвращает TagId из TagPath по его индексу.
IdFromPath ( TagPath String , [Index Integer = -1 ] ) : String
Возвращаемое значение
Тип: String
TagId.
Параметры
TagPath | String | Путь к тегу в дереве тегов. Состоит из одного или последовательности нескольих TagId, разделенных символом 's'. Начинается и завершается символом 's'. Например, 'sb123sb456s'.
|
Index | Integer | Необязательный параметр. Значение по умолчанию -1 . Индекс TagId в TagPath. Первый TagId имеет индекс 0. Если Index отрицательный, то отсчет ведется от конца TagPath. Последний TagId имеет индекс -1.
|
VBScript
ag.MsgBox ag.tags.IdFromPath("sb123sb456sb789s", 1) 'отобразит "b456"
IdToPath #
Overview
Возвращает TagPath из единственного TagId.
IdToPath ( TagId String ) : String
Возвращаемое значение
Тип: String
TagPath.
Параметры
TagId | String | Идентификатор тега (узла графа). Строка длинной не более 32 символов. Идентификато содержит цифры от 0 до 9 и латинские буквы 'a', 'b', 'c', 'd', 'e' и 'f'. В идентификаторе, определенном пользователем, должен присутствовать хотя бы один буквенный символ. Например, 'fa0234'. Идентификатор должн быть уникальным.
|
VBScript
ag.MsgBox ag.tags.IdToPath("b123")
'отобразит "sb123s"
InputFromList #
Overview
Возвращает TagId тега, выбранного пользователем из списка TagSet.
InputFromList ( TagSet TagSet , [Prompt String = '' ] ) : String
Возвращаемое значение
Тип: String
TagPath.
Параметры
TagSet | TagSet | Коллекция тегов.
|
Prompt | String | Необязательный параметр. Значение по умолчанию '' . Приглашение, которое будет показано пользователю в диалоговом окне.
|
VBScript
BaseTagPath = "sb123sb456s" 'Запрашиваем у пользователя значение N = ag.InputBox("Введите наибольшую глубину дочерних уровней (от 2 до 5)", "", 5) 'выполняем проверку введенного пользователем значения If N >= 2 and N <= 10 then 'Создаем список выбора тегов из дочерних тегов BaseTagPath, завершающих ветви, или лежащих на N-м дочернем уровне Set ts1 = ag.tags.DeployTag(BaseTagPath, "", N, "EndOrLastOne") 'Показываем пользователю список и принимаем его выбор s = ag.tags.InputFromList(ts1, "Выберите тег из списка") 'выводим назание тега, выбранного пользователем ag.MsgBox ag.tags.PathToLabels(s)(0) Else ag.MsgBox "Некорректное значение", vbExclamation End If
InputFromTree #
Overview
Возвращает TagId тега, выбранного пользователем из ветви дерева тегов TagSet.
InputFromTree ( UniqueTagPath String , TagLabel String , Prompt String ) : String
Возвращаемое значение
Тип: String
TagPath.
Параметры
UniqueTagPath | String | Уникальный путь к тегу в дереве тегов. Такой путь встречается в дереве тегов только один раз. Может использоваться для однозначного определения положения тега в дереве тегов. Состоит из одного или последовательности нескольих TagId, разделенных символом 's'. Начинается и завершается символом 's'. Например, 'sb123sb456s'. Корневой узел ветви, которая будет показана пользователю для выбора тега. |
TagLabel | String | Название тега на текущем языке, например, 'Тег1'. Если задан UniqueTagPath, то TagLabel игнорируется. |
Prompt | String | Приглашение, которое будет показано пользователю в диалоговом окне.
|
VBScript
BaseTagPath = "sb123sb456s" 'Показываем пользователю ветвь дерева тегов, растущую из BaseTagPath и принимаем его выбор s = ag.tags.inputFromTree(BaseTagPath, "", "Выберите тег из ветви") 'выводим идентификатор тега, выбранного пользователем ag.MsgBox s
LabelToPaths #
Overview
Возвращает список TagPath соответствующий названию тегов TagLabel.
LabelToPaths ( TagLabel String ) : List
Возвращаемое значение
Тип: List
Список TagPath.
Параметры
TagLabel | String | Название тега на текущем языке, например, 'Тег1'. Допускается указывать группу названий тегов, разделенных AND, Если указано одно название тега (простое или составное), то в возвращаемом списке один элемент. |
VBScript
ag.MsgBox ag.tags.LabelToPaths("[Проекты][Модель1]")(0)
PathExists #
Overview
Определяет присутствие пути TagPath в дереве тегов текущей базы данных.
PathExists ( TagPath String ) : Boolean
Возвращаемое значение
Тип: Boolean
Возвращает True, если путь TagPath присутствует в дереве тегов текущей базы данных и False в противном случае.
Параметры
TagPath | String | Путь к тегу в дереве тегов. Состоит из одного или последовательности нескольих TagId, разделенных символом 's'. Начинается и завершается символом 's'. Например, 'sb123sb456s'.
|
VBScript
if ag.err.ErrorCode = 0 then res = ag.tags.PathExists "sb123sb345s" If not res then ag.MsgBox.Echo "Путь отсутствует в дереве тегов" end if end if
PathToLabels #
Overview
Возвращает список TagLabel соответствующий TagPath.
PathToLabels ( TagPathOrId String ) : List
Возвращаемое значение
Тип: List
Список TagLabel.
Параметры
TagPathOrId | String | Путь тега TagPath или идентификатор TagId. Допускается указывать несколько путей, разделенных AND, например, 'sb123sb456sANDsb789s'. Если указан один путь, то в возвращаемом списке один элемент. |
VBScript
ag.MsgBox ag.tags.PathToLabels("sb123sb456s")(0)
RemoveTag #
Overview
Удаляет ветвь из дерева тегов текущей базы.
RemoveTag ( TagPathFromRoot String ) : Boolean
Возвращаемое значение
Тип: Boolean
Возвращает True, если путь TagPathFromRoot присутствует в дереве тегов текущей базы данных и теги ветви не привязаны ни к одному объекту базы данных, False в противном случае.
Параметры
TagPathFromRoot | String | Путь от корня дерева тегов. Такой путь является уникальным. Может использоваться для однозначного определения положения тега в дереве тегов. Состоит из одного или последовательности нескольих TagId, разделенных символом 's'. Начинается и завершается символом 's'. Например, 'sb123sb456s'. Путь удаляемого тега. |
VBScript
if ag.err.ErrorCode = 0 then ag.tags.RemoveTag "sb123sb456s" end if
RemoveTags #
Overview
Удаляет ветви из дерева тегов текущей базы.
RemoveTags ( TagPathFromRootList List ) : Boolean
Возвращаемое значение
Тип: Boolean
Возвращает True, если пути из TagPathFromRootList присутствует в дереве тегов текущей базы данных и теги ветвей не привязаны ни к одному объекту базы данных, False в противном случае.
Параметры
TagPathFromRootList | List | Коллекция путей к ветвям, которые будут удалены.
|
VBScript
if ag.err.ErrorCode = 0 then set TagPaths = ag.App.NewObject("List") TagPaths.Add "s1s56a4s4e32s" TagPaths.Add "s1s56a4s3d34s" TagPaths.Add "s1s56a4se5f3s" ag.tags.RemoveTags TagPaths end if