todictword

Назначение

Приводит аргумент к значению заданного словарного поля.

Синтаксис

todictword(тип_словаря, $аргумент, dictionary:=имя_словаря, MatchColumn:=имя_колонки, field:=имя_поля)

или

todictword(тип_словаря, dictionary:=имя_словаря, Имя_Колонки:=$аргумент, field:=имя_поля)

Примечание

Возможны два варианта синтаксиса.

  • В первом случае искомое выражение указывается как обязательный аргумент $argument, а колонки словаря, по которым нужно искать соответствия, указываются в параметре MatchColumn.

В этом режиме можно искать по нескольким колонкам словаря. В таком случае их нужно указать через вертикальную черту: MatchColumn:=Derivative|Name.

Напимер, если необходимо вывести поле Region из стандартного словаря Geoadministrative, сравнив значение аргумента $variable с колонкой Derivative того же словаря, нужно написать такой запрос:

todictword(GeoAdministrative, $variable, dictionary:=Default, MatchColumn:=Derivative, field:=Region)

  • Второй вариант - это упрощенный более компактный синтаксис. В этом случае в качестве именованного параметра нужно записать имя колонки, по которой будет искаться соответствие, и присвоить ей значение искомого выражения (Derivative:=$x). В этом режиме можно искать только по одной колонке словаря.

Тогда запрос из первого примера будет иметь следующий вид: todictword(GeoAdministrative, dictionary:=Default, Derivative:=$variable, field:=Region)

Примечание

Если имя словаря не указано, функция использует все подключенные словари данной категории. Также в параметре dictionary можно указывать несколько словарей через вертикальную черту: dictionary:=X|Y.

Аргументы

Функция принимает несколько обязательных аргументов.

Аргумент

Пояснение

тип_словаря

Задает тип словаря.

$аргумент

Именованная переменная, которую необходимо преобразовать к полю словаря.

MatchColumn

Колонка, с которой сравнивается именованная переменная $аргумент.

field

Результирующее поле, которое нужно вывести в качестве атрибута.

Функция также принимает следующие опциональные именованные параметры:

Параметр

Пояснение

dictionary

Задает название словаря.

mode:=all/none/first

В случае нескольких подходящих записей в словаре, позволяет сделать выбор между ними (по умолчанию mode:=first).

Примечание

Если не указано название словаря, то функция будет работать с первым словарем указанной категории. Чтобы избежать такое поведение, нужно указать название словаря.

Возвращаемое значение

Строковое значение.

Примеры

Данные

XPDL-правило

Результат

Подмосковная деревня Коровино

rule: r1

{

query: {phrase({подмосковная}:variable, деревня, Коровино)}:m

result: Match = $m

attribute:Region = todictword(GeoAdministrative, dict_name:=Default, MatchColumn:=Derivative, $variable, field:=Region)

}

Московская область

Функция позволяет сравнивать именованную переменную и словарную ячейку напрямую:

Данные

XPDL-правило

Результат

Подмосковная деревня Коровино

rule: r2

{

query: {phrase({подмосковная}:variable, деревня, Коровино)}:m

result: Match = $m

attribute:Region = todictword(GeoAdministrative, dict_name:=Default, Derivative:=$variable, field:=Region)

}

Московская область

Функция может преобразовать переменную, к которой применены другие форматирующие функции, например, нормализация по форме или регистру:

Данные

XPDL-правило

Результат

Подмосковная деревня Коровино

rule: r3

{

query: {phrase({подмосковная}:variable, деревня, Коровино)}:m

result: Match = $m

attribute:Region = todictword(GeoAdministrative, dict_name:=Default, Derivative:=tolower(norm($variable)), field:=Derivative)

}

подмосковный