Array
Шаблон Array
Минимальный шаблон
<Array>
<!-- Источник массива -->
<Source></Source>
<!-- Получение индекса первого элемента. -->
<Filter>
<Not>
<And>
<Or>
<Filter Type="Equal">
<!-- или Field (для DC) или Index (для массивов)-->
<Field></Field>
<Index></Index>
<DataType Type=""></DataType>
<Value></Value>
</Filter>
</Or>
</And>
</Not>
</Filter>
<!-- Уникальные элементы в массиве. Если теги On не указаны, используется первый элемент -->
<Distinct>
<On Index="" />
</Distinct>
<!-- Сортировка. Если теги By не указаны, используется первый элемент и сортируется по возрастанию -->
<Order>
<By Index="" Type="Asc" />
<By Index="" Type="Desc" />
</Order>
<!-- Создать новый массив на основе существующего. Если Items.Count == 1 то возвращает одномерный массив -->
<Select>
<Items>
<!-- Элемент массива -->
<Item Type="Index"></Item>
<!-- Выбор из словаря -->
<Item Type="Field"><!-- название элемента словаря --></Item>
<!-- Скалярное значение -->
<Item Type="Value"></Item>
<!-- Порядковый номер элемента массива -->
<Item Type="Number" Start="0"></Item>
<!-- Форматирование значений -->
<Item Type="Format"></Item>
<!-- Работа с вложенными массивами -->
<Item Type="Action">
<Index><!-- индекс элемента массива --></Index>
<Actions><!-- цепочка действий. Доступны все действия над массивами--></Actions>
</Item>
<!-- Расчет выражения -->
<Item Type="Expression">
<!-- В выражении могут использоваться элементы массива ([0]) и дополнительные значения ({0}).-->
<!-- Дополнительно можно добавить переменную Index -->
<Expression>{0} > 0</Expression>
<Items>
<!-- Дополнительные значения -->
<Item></Item>
</Items>
</Item>
<!-- Подстановка значений -->
<Item>
<Index><!-- индекс элемента массива --></Index>
<Value><!-- таблица значений --></Value>
</Item>
</Items>
</Select>
</Array>Описание Array
Значение, которое будет передано в команду при выполнении.
В тэге <Source> указывается любое универсальное значение, с которым выполняются операции указанные после тэга <Source> - Operation1, Operation2. Операций может быть неограниченное количество. При этом операции будут выполняться последовательно в порядке объявления: для первой операции (Operation1) используется значение из тэга <Source>, для последующих операций - результат предыдущей операции.
Все операции можно разделить на группы:
Изменение
Агрегация
Поиск
Соединение
Выборка из массива
Преобразование
Сортировка
Изменение
Add
Добавляет элемент или элементы в массив.
При добавлении элементов используются следующие правила:
Матрица добавляется в Матрицу Строки из матрицы, указанной в тэге
<Value>, добавляются в конец матрицы из тэга<Source>.
Массив добавляется в Матрицу В массив из тэга
<Value>добавляются пустые элементы, чтобы длина массива соответствовала наибольшей длине строки матрицы, указанной в тэге<Source>, и полученный массив добавляются в конец матрицы.
Скаляр добавляется в Матрицу Скаляр из тэга
<Value>преобразуется в массив с длиной соответствующей наибольшей длине строки матрицы, указанной в тэге<Source>, и полученный массив добавляются в конец матрицы.
Матрица добавляется в Массив Первый столбец матрицы, указанной в тэге
<Value>, преобразуется в массив и добавляется в конец массива из тэга<Source>.
Массив добавляется в Массив Массив из тэга
<Value>добавляется в конец массива, указанного в тэге<Source>.
Скаляр добавляется в Массив Скаляр из тэга
<Value>добавляется в конец массива, указанного в тэге<Source>.
Во всех случаях, когда в качестве значения тэга
<Source>указан скаляр, будет генерироваться ошибка TypeMismatch.
InsertAt
Добавляет элемент или элементы в массив в указанную позицию.
При добавлении элементов используются следующие правила:
Матрица добавляется в Матрицу Строки из матрицы, указанной в тэге
<Value>, добавляются в конец матрицы из тэга<Source>.
Массив добавляется в Матрицу В массив из тэга
<Value>добавляются пустые элементы, чтобы длина массива соответствовала наибольшей длине строки матрицы, указанной в тэге<Source>, и полученный массив добавляются в конец матрицы.
Скаляр добавляется в Матрицу Скаляр из тэга
<Value>преобразуется в массив с длиной соответствующей наибольшей длине строки матрицы, указанной в тэге<Source>, и полученный массив добавляются в конец матрицы.
Матрица добавляется в Массив Первый столбец матрицы, указанной в тэге
<Value>, преобразуется в массив и добавляется в конец массива из тэга<Source>.
Массив добавляется в Массив Массив из тэга
<Value>добавляется в конец массива, указанного в тэге<Source>.
Скаляр добавляется в Массив Скаляр из тэга
<Value>добавляется в конец массива, указанного в тэге<Source>.
Во всех случаях, когда в качестве значения тэга
<Source>указан скаляр, будет генерироваться ошибка TypeMismatch.
Update
Обновляет элемент в массиве/матрице в указанной позиции.
При обновлении элементов используются следующие правила:
Массив добавляется в Матрицу В массив из тэга
<Value>добавляются пустые элементы, чтобы длина массива соответствовала наибольшей длине строки матрицы, указанной в тэге<Source>, и полученный массив записывается в элемент с индексом<Index>.
Скаляр добавляется в Матрицу Скаляр из тэга
<Value>преобразуется в массив с длиной соответствующей наибольшей длине строки матрицы, указанной в тэге<Source>, и полученный массив записывается в элемент с индексом<Index>.
Матрица добавляется в Массив Берет первый элемент первой строки матрицы, указанной в тэге
<Value>, и записывается в элемент с индексом<Index>массива из тэга<Source>.
Массив добавляется в Массив Берется первый элемент массива из тэга
<Value>и записывается в элемент с индексом<Index>массива, указанном в тэге<Source>.
Скаляр добавляется в Массив Скаляр из тэга
<Value>записывается в элемент с индексом<Index>массива, указанного в тэге<Source>.
Во всех случаях, когда в качестве значения тэга
<Source>указан скаляр, будет генерироваться ошибка TypeMismatch.
Remove
Удаляет элемент(ы) по индексу или индексам.
Если в качестве значения тэга <Source> указан скаляр, то будет генерироваться ошибка TypeMismatch.
Агрегация
Aggregate
Вычисляет значения по формулам.
В выражении <Expression> могут использоваться элементы исходного массива (указываются в квадратных скобках []) или дополнительные значения, перечисленные в тэге <Items> (указываются в фигурных скобках {}). Также доступна переменная {Result}, в которой хранится значение, вычисленное для прошлого элемента.
Если элементов Item в Aggregate/Items несколько, то возвращается массив результатов агрегации. Если один, то скалярное значение.
Если в качестве значения тэга <Source> указан скаляр, то будет генерироваться ошибка TypeMismatch.
Count
Считает количество элементов в массиве.
Если в качестве значения тэга <Source> указан скаляр, то будет генерироваться ошибка TypeMismatch.
Max
Находит максимальный элемент в массиве или в столбце матрицы.
В атрибуте Type задаётся один из типов.
В необязательном атрибуте Index для матриц указывается индекс столбца, в котором будет происходить поиск максимального элемента. Если атрибут не указан, то используется значение 0.
Если в качестве значения тэга <Source> указан скаляр, то будет генерироваться ошибка TypeMismatch.
Min
Находит минимальный элемент в массиве или в столбце матрицы.
В атрибуте Type задаётся один из типов.
В необязательном атрибуте Index для матриц указывается индекс столбца, в котором будет происходить поиск минимального элемента. Если атрибут не указан, то используется значение 0.
Если в качестве значения тэга <Source> указан скаляр, то будет генерироваться ошибка TypeMismatch.
Sum
Находит сумму элементов в массиве или в столбце матрицы.
В атрибуте Type задаётся один из типов.
В необязательном атрибуте Index для матриц указывается индекс столбца, для которого будет вычисляться сумма элементов. Если атрибут не указан, то используется значение 0.
Если в качестве значения тэга <Source> указан скаляр, то будет генерироваться ошибка TypeMismatch.
Поиск
IndexOf
Возвращает индекс первого элемента массива удовлетворяющего условию.
В необязательном атрибуте Type тэга <IndexOf> указывается тип сравнения значений. По умолчанию используется фильтр Equal.
Тэг <Field> применяется для выборки из массива словарей. В атрибуте Name указывается название поля словаря, по которому будет происходить проверка условия.
Тэг <Index> применяется для выборки из одномерного массива или матрицы. Для матриц в атрибуте Value указывается индекс элемента строки, по которому будет проверка условия.
Тэг <DataType> задаёт тип элемента. По умолчанию используется тип StringDataType.
В зависимости от типа фильтра тэги <Value> или <DataType> могут отсутствовать. Например, в фильтрах IsNull, IsNotNull.
Типы сравнения значений
Equal
Сравнение значений на равенство
NotEqual
Сравнение значений на неравенство
Greater
Сравнение значений на "больше": элемент массива больше указанного значения
GreaterOrEqual
Сравнение значений на "больше или равно": элемент массива больше или равен указанному значению
Less
Сравнение значений на "меньше": элемент массива меньше указанного значения
LessOrEqual
Сравнение значений на "меньше или равно": элемент массива меньше или равен указанному значению
Contains
Сравнение значений на "содержит": элемент массива содержит указанное значение, при этом все значения преобразуется в строку
NotContains
Сравнение значений на "не содержит": элемент массива не содержит указанное значение, при этом все значения преобразуется в строку
In
Сравнение значений на "входит": элемент массива входит в указанный массив
NotIn
Сравнение значений на "не входит": элемент массива не входит в указанный массив
Overlap
Сравнение значений на "пересекается": массив из элемента исходного массива имеет общие элементы с указанным массивом
NotOverlap
Сравнение значений на "не пересекается": массив из элемента исходного массива не имеет общие элементы с указанным массивом
MatchSearch
Сравнение значений на "удовлетворяет поисковой строке". Поисковая строка может состоять из слов, разделенных пробелами и символами "+", "*" и "?":
пробел означает "ИЛИ";
"+" означает "И";
"*" означает любое количество любых символов;
"?" означает ровно один символ.
NotMatchSearch
Сравнение значений на "не удовлетворяет поисковой строке".
Поисковая строка может состоять из слов, разделенных пробелами и символами "+", "*" и "?":
пробел означает "ИЛИ";
"+" означает "И";
"*" означает любое количество любых символов;
"?" означает ровно один символ.
ContainedIn
Сравнение значений на "входит": элемент массива входит в указанное значение, при этом все значения преобразуется в строку
NotContainedIn
Сравнение значений на "не входит": элемент массива не входит в указанное значение, при этом все значения преобразуется в строку
IsNull
Сравнение на Null
IsNotNull
Сравнение на "не Null"
Nested
Составной фильтр. Для соединения вложенных фильтров (<Filter>) доступны тэги <And>, <Or>, <Not>
Если в качестве значения тэга <Source> указан скаляр, то будет генерироваться ошибка TypeMismatch.
Filter
Возвращает элементы массива, удовлетворяющие условию.
В необязательном атрибуте Type тэга <Filter> указывается тип фильтра. По умолчанию используется фильтр Equal.
Тэг <Field> применяется для выборки из массива словарей. В атрибуте Name указывается название поля словаря, по которому будет происходить проверка условия.
Тэг <Index> применяется для выборки из одномерного массива или матрицы. Для матриц в атрибуте Value указывается индекс элемента строки, по которому будет проверка условия.
Тэг <DataType> задаёт тип элемента. По умолчанию используется тип StringDataType.
В зависимости от типа фильтра тэги <Value> или <DataType> могут отсутствовать. Например, в фильтрах IsNull, IsNotNull.
Типы фильтров
Equal
Сравнение значений на равенство
NotEqual
Сравнение значений на неравенство
Greater
Сравнение значений на "больше": элемент массива больше указанного значения
GreaterOrEqual
Сравнение значений на "больше или равно": элемент массива больше или равен указанному значению
Less
Сравнение значений на "меньше": элемент массива меньше указанного значения
LessOrEqual
Сравнение значений на "меньше или равно": элемент массива меньше или равен указанному значению
Contains
Сравнение значений на "содержит": элемент массива содержит указанное значение, при этом все значения преобразуется в строку
NotContains
Сравнение значений на "не содержит": элемент массива не содержит указанное значение, при этом все значения преобразуется в строку
In
Сравнение значений на "входит": элемент массива входит в указанный массив
NotIn
Сравнение значений на "не входит": элемент массива не входит в указанный массив
Overlap
Сравнение значений на "пересекается": массив из элемента исходного массива имеет общие элементы с указанным массивом
NotOverlap
Сравнение значений на "не пересекается": массив из элемента исходного массива не имеет общие элементы с указанным массивом
MatchSearch
Сравнение значений на "удовлетворяет поисковой строке". Поисковая строка может состоять из слов, разделенных пробелами и символами "+", "*" и "?":
пробел означает "ИЛИ";
"+" означает "И";
"*" означает любое количество любых символов;
"?" означает ровно один символ.
NotMatchSearch
Сравнение значений на "не удовлетворяет поисковой строке".
Поисковая строка может состоять из слов, разделенных пробелами и символами "+", "*" и "?":
пробел означает "ИЛИ";
"+" означает "И";
"*" означает любое количество любых символов;
"?" означает ровно один символ.
ContainedIn
Сравнение значений на "входит": элемент массива входит в указанное значение, при этом все значения преобразуется в строку
NotContainedIn
Сравнение значений на "не входит": элемент массива не входит в указанное значение, при этом все значения преобразуется в строку
IsNull
Сравнение на Null
IsNotNull
Сравнение на "не Null"
Nested
Составной фильтр. Для соединения вложенных фильтров доступны тэги <And>, <Or>, <Not>
Если в качестве значения тэга <Source> указан скаляр, то будет генерироваться ошибка TypeMismatch.
Соединение
Join
Соединяет исходную матрицу с внешней матрицей по выбранным ключам.
Аналог JOIN из SQL.
В тэге <Keys> указываются индексы элементов, по которым исходная и внешняя матрицы будут соединяться.
В атрибуте Index указывается положительное целочисленное значение, а в атрибуте Type задаётся один из типов.
Количество <Inner> и <Outer> индексов в тэге <Keys>должно совпадать.
В тэге <Result> указываются индексы элементов исходной и/или внешней матрицы, которые будут добавлены в результирующую матрицу.
Если в качестве значения тэга <Source> указан скаляр, то будет генерироваться ошибка TypeMismatch.
LeftJoin
Соединяет исходную матрицу с внешней матрицей по выбранным ключам, используя все элементы исходной матрицы.
Аналог LEFT JOIN из SQL.
В тэге <Keys> указываются индексы элементов, по которым исходная и внешняя матрицы будут соединяться.
В атрибуте Index указывается положительное целочисленное значение, а в атрибуте Type задаётся один из типов.
Количество <Inner> и <Outer> индексов в тэге <Keys>должно совпадать.
В тэге <Result> указываются индексы элементов исходной и/или внешней матрицы, которые будут добавлены в результирующую матрицу.
Если в качестве значения тэга <Source> указан скаляр, то будет генерироваться ошибка TypeMismatch.
RightJoin
Соединяет исходную матрицу с внешней матрицей по выбранным ключам, используя все элементы внешней матрицы.
Аналог RIGHT JOIN из SQL.
В тэге <Keys> указываются индексы элементов, по которым исходная и внешняя матрицы будут соединяться.
В атрибуте Index указывается положительное целочисленное значение, а в атрибуте Type задаётся один из типов.
Количество <Inner> и <Outer> индексов в тэге <Keys>должно совпадать.
В тэге <Result> указываются индексы элементов исходной и/или внешней матрицы, которые будут добавлены в результирующую матрицу.
Если в качестве значения тэга <Source> указан скаляр, то будет генерироваться ошибка TypeMismatch.
FullJoin
Соединяет исходную матрицу с внешней матрицей по выбранным ключам, используя все элементы исходной и внешней матриц.
Аналог FULL JOIN из SQL.
В тэге <Keys> указываются индексы элементов, по которым исходная и внешняя матрицы будут соединяться.
В атрибуте Index указывается положительное целочисленное значение, а в атрибуте Type задаётся один из типов.
Количество <Inner> и <Outer> индексов в тэге <Keys>должно совпадать.
В тэге <Result> указываются индексы элементов исходной и/или внешней матрицы, которые будут добавлены в результирующую матрицу.
Если в качестве значения тэга <Source> указан скаляр, то будет генерироваться ошибка TypeMismatch.
Concat
Объединяет два массива с сохранением дубликатов.
При объединении элементов используются следующие правила:
Матрица объединяется с Матрицей В каждую строку матрицы из тэга
<Concat>добавляются пустые элементы, чтобы длина строки соответствовала наибольшей длине строки матрицы, указанной в тэге<Source>, и полученная матрица объединяется с матрицей из тэга<Source>.
Массив объединяется с Матрицей Массив из тэга
<Concat>преобразуется в матрицу. В каждую строку новой матрицы добавляются пустые элементы, чтобы длина строки соответствовала наибольшей длине строки матрицы, указанной в тэге<Source>, и полученная матрица объединяется с матрицей из тэга<Source>.
Скаляр объединяется с Матрицей Скаляр из тэга
<Concat>преобразуется в матрицу. В единственную строку новой матрицы добавляются пустые элементы, чтобы длина строки соответствовала наибольшей длине строки матрицы, указанной в тэге<Source>, и полученная матрица объединяется с матрицей из тэга<Source>.
Матрица объединяется с Массивом Матрица из тэга
<Concat>преобразуется в массив, при этом берутся первые элементы каждой строки. Полученный массив объединяется с массивом из тэга<Source>.
Массив объединяется с Массивом Массив из тэга
<Concat>объединяется с массивом из тэга<Source>.
Скаляр объединяется с Массивом Скаляр из тэга
<Concat>преобразуется в массив и объединяется с массивом из тэга<Source>.
Во всех случаях, когда в качестве значения тэга
<Source>указан скаляр, будет генерироваться ошибка TypeMismatch.
Union
Объединяет два массива без сохранения дубликатов.
При объединении элементов используются следующие правила:
Матрица объединяется с Матрицей В каждую строку матрицы из тэга
<Union>добавляются пустые элементы, чтобы длина строки соответствовала наибольшей длине строки матрицы, указанной в тэге<Source>, и полученная матрица объединяется с матрицей из тэга<Source>.
Массив объединяется с Матрицей Массив из тэга
<Union>преобразуется в матрицу. В каждую строку новой матрицы добавляются пустые элементы, чтобы длина строки соответствовала наибольшей длине строки матрицы, указанной в тэге<Source>, и полученная матрица объединяется с матрицей из тэга<Source>.
Скаляр объединяется с Матрицей Скаляр из тэга
<Union>преобразуется в матрицу. В единственную строку новой матрицы добавляются пустые элементы, чтобы длина строки соответствовала наибольшей длине строки матрицы, указанной в тэге<Source>, и полученная матрица объединяется с матрицей из тэга<Source>.
Матрица объединяется с Массивом Матрица из тэга
<Union>преобразуется в массив, при этом берутся первые элементы каждой строки. Полученный массив объединяется с массивом из тэга<Source>.
Массив объединяется с Массивом Массив из тэга
<Union>объединяется с массивом из тэга<Source>.
Скаляр объединяется с Массивом Скаляр из тэга
<Union>преобразуется в массив и объединяется с массивом из тэга<Source>.
Во всех случаях, когда в качестве значения тэга
<Source>указан скаляр, будет генерироваться ошибка TypeMismatch.
Group
Группирует элементы массива по указанным индексам. Если в исходном массиве отсутствует элемент с индексом, то вместо него используется значение Null.
Элементов <By> может быть неограниченное количество.
Если в качестве значения тэга <Source> указан скаляр, то будет генерироваться ошибка TypeMismatch.
Zip
Соединяет строки двух массивов таким образом, что первый элемент исходного массива соединяется с первым элементом массива, второй со вторым и т.д.
При объединении элементов используются следующие правила:
Матрица объединяется с Матрицей В конец каждой строки исходной матрицы добавляются элементы из соответствующей строки матрицы, указанной в тэге
<Zip>.
Массив объединяется с Матрицей В конец каждой строки исходной матрицы добавляется соответствующий элемент массива, указанного в тэге
<Zip>.
Скаляр объединяется с Матрицей Скаляр из тэга
<Zip>добавляется в конец первой строки исходной матрицы, остальные строки матрицы отбрасываются.
Матрица объединяется с Массивом Матрица из тэга
<Zip>преобразуется в массив, при этом берутся первые элементы каждой строки. Полученный массив объединяется с массивом из тэга<Source>, при этом элементы массивов образуют строки новой матрицы.
Массив объединяется с Массивом Элемент массив из тэга
<Zip>объединяется с соответствующим элементом массива из тэга<Source>так, что образуют строку новой матрицы.
Скаляр объединяется с Массивом Скаляр из тэга
<Zip>преобразуется в массив, и элементы полученного массива соединяются с элементами массива из тэга<Source>.
Во всех случаях, когда в качестве значения тэга
<Source>указан скаляр, будет генерироваться ошибка TypeMismatch.
Выборка из массива
ElementAt
Возвращает элемент массива по заданному индексу. Если индекс элемента отсутствует в массиве, то операция вернёт Null.
Если в качестве значения тэга <Source> указан скаляр, то будет генерироваться ошибка TypeMismatch.
Field
Формирует массив из массива словарей.
Из каждого словаря достает элемент по ключу, имя которого указано в атрибуте Name тэга <Field>. Если ключ отсутствует в словаре, то возвращается Null.
Если в качестве значения тэга <Source> указан не массив словарей, то выбрасывается исключение TypeMismatch.
First
Возвращает первый элемент массива или матрицы. Если массив пустой, то возвращается Null.
Если в качестве значения тэга <Source> указан скаляр, то будет генерироваться ошибка TypeMismatch.
Last
Возвращает последний элемент массива или матрицы. Если массив пустой, то возвращается Null.
Если в качестве значения тэга <Source> указан скаляр, то будет генерироваться ошибка TypeMismatch.
Skip
Пропускает указанное количество элементов и возвращает оставшиеся элементы.
Если в качестве значения тэга <Source> указан скаляр, то будет генерироваться ошибка TypeMismatch.
Take
Возвращает указанное количество начальных элементов из исходного массива или матрицы.
Если в качестве значения тэга <Source> указан скаляр, то будет генерироваться ошибка TypeMismatch.
Преобразование
DataTypeFormat
Преобразует элементы массива в строку с использованием формата указанного типа.
Если в тэге <Source> указана матрица, то будут браться первые элементы всех строк, а затем преобразовываться в строку заданного формата.
DataTypeConvert
Приводит элементы массива к заданному типу.
Если в тэге <Source> указана матрица, то все ее элементы будут приводиться к заданному типу.
Distinct
Возвращает уникальные элементы массива.
Для выборки строк в матрице можно указать индекс столбца, в котором будет проходить проверка уникальности:
Тэгов <On> может быть любое количество. Если тэги <On> отсутствуют, то выборка строк происходит по первому столбцу.
Если необходимо проверить все столбцы матрицы, то можно использовать необязательный атрибут AllIndices:
Если указаны и атрибут AllIndices и тэги <On>, то преимущество отдается атрибуту.
Если в качестве значения тэга <Source> указан скаляр, то будет генерироваться ошибка TypeMismatch.
Select
Преобразует массив в другой массив с помощью селекторов.
В тэге <Items> указываются селекторы, которые последовательно применяются к каждому элементу исходного массива (для матриц элементом является строка матрицы). Из значений селекторов формируется новый массив или матрица.
Если в качестве значения тэга <Source> указан скаляр, то будет генерироваться ошибка TypeMismatch.
Поддерживаются селекторы следующих видов:
Index - Выбирает элемент из исходного массива или матрицы.
Field - Выбор элемент из словаря.
Value - Подставляет константное значение.
Number - Подставляет порядковый номер элемента. В необязательном атрибуте
Startможно задать начальное значение последовательности. По умолчанию используется 0.
Expression - Вычисляет выражение на основе данных массива и дополнительных переменных. Тэгов
<Item>может быть любое количество. В выражении<Expression>могут использоваться элементы исходного массива (указываются в квадратных скобках[]) или дополнительные значения, перечисленные в тэге<Items>(указываются в фигурных скобках{}).
Format - Форматирует элементы массива в строку. В строке формата элементы исходного массива доступны по индексу и указываются в фигурных скобках
{}.
Action - Элемент на основе вложенного массива. В тэге
<Actions>указываются операции по работе с массивами аналогично тэгу<Array>. Исходным массивом для первой операции будет элемент массива с индексом из тэга<Index>.
Substitution - Выбор значения из таблицы подстановки. В качестве таблицы подстановки должна быть матрица, состоящая из двух столбцов. В первом столбце должен быть ключ, по которому будет идти подстановка, а во втором - значение, которое будет использоваться при подстановке.
SelectMany
Объединяет строки матрицы в одномерный массив.
Если в качестве значения тэга <Source> указан скаляр, то будет генерироваться ошибка TypeMismatch.
StringJoin
Форматирует входящее значение в строку.
Обязательный атрибут Separator используется для задания разделителя элементов массива или элементов строки матрицы.
Необязательный атрибут LineSeparator используется для задания разделителя строк в матрице. По умолчанию используется значение, указанное в атрибуте Separator.
StringSplit
Преобразует входное значение в строку, которую затем разделяет по заданному разделителю.
Обязательный атрибут Separator используется для задания разделителя, по которому строка будет разделена.
Так как тэг <Source> всегда возвращает массив, то необходимо использовать тэг <First> (или любой другой способ), чтобы получить элемент массива, которой будет преобразовываться в строку и разбиваться по заданному разделителю.
Если в качестве значения тэга <Source> указано не скалярное значение, то будет генерироваться ошибка TypeMismatch.
ToDictionary
Преобразует массив в массив словарей.
Тэгов <Key> может быть произвольное количество.
В атрибуте Name указывается название ключа словаря.
В атрибуте Index указывается индекс элемента массива, который будет записан в словарь по ключу Name.
Если в качестве значения тэга <Source> указан скаляр, то будет генерироваться ошибка TypeMismatch.
ToTable
Преобразует массив или скалярное значение в матрицу.
Преобразование происходит по следующим правилам:
Массив преобразуется в матрицу Создается матрица с количеством строк равным количеству элементов входного массива, и каждый элемент массива пишется в отдельную строку матрицы.
Скаляр преобразуется в матрицу Создается матрица из одной строки, в которую пишется входное скалярное значение.
ToArray
Преобразует входное значение в массив, если значение скаляр, для массивов возвращает исходное значение.
Сортировка
Order
Сортирует элементы массива и матрицы по указанным индексам.
Тэгов <By> может быть неограниченное количество.
В атрибуте Index указывается индекс элемента строки матрицы, по которому будет происходить сортировка. Если в исходном матрице отсутствует элемент с указанным индексом, то такое условие сортировки будет игнорироваться.
В необязательном атрибуте Type указывается тип сортировки: Asc для сортировки элементов по возрастанию (значение по умолчанию) или Desc для сортировки по убыванию.
Если в качестве значения тэга <Source> указан скаляр, то будет генерироваться ошибка TypeMismatch.
Sort
Сортирует элементы одномерного массива.
Если в качестве значения тэга <Source> указан скаляр или матрица, то будет генерироваться ошибка TypeMismatch.
Last updated