totable

Назначение

Извлекает элемент таблицы, в котором был найден аргумент.

Синтаксис

totable(элемент_таблицы, $группа)

Аргументы

Функция принимает два обязательных аргумента. Первый аргумент элемент_таблицы указывает имя раздела таблицы, который необходимо извлечь. Этот аргумент принимает значения, перечисленные в таблице ниже.

Значение

Пояснение

table

текст всей таблицы, включая имя;

table_name

имя таблицы;

row_text

текст всей строки (значения всех ячеек, разделенные пробелом);

row_name

имя строки (значение крайней левой ячейки строки);

col_text

текст всего столбца (значения всех ячеек, разделенные пробелом);

col_name

имя столбца (значение верхней ячейки столбца столбца);

cell_text

значение ячейки;

cell_unit

единицы измерения ячейки (если задано).

cell_factor

масштабный коэффициент ячейки.

table_num

номер таблицы.

row_num

номер строки.

col_num

номер столбца.

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

Параметр

Пояснение

first:=<numeral>

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

last:=<numeral>

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

separator:=<string>

Для разделения найденных аргументов можно указать пользовательский разделитель. По умолчанию разделитель равен ";".

table_level:=<numeral>

Задает уровень таблиц. По умолчанию уровень не задан.

nested:=<string>

Определяет диапазон поиска внутри/вне/внутри и вне вложенных таблиц. Возможные значения: «yes»/«no»/«any»; по умолчанию - «any».

has_nested:=<string>

Уточняет, имеет ли таблица вложенные таблицы. Возможные значения: «yes»/«no»/«any»; по умолчанию - «any».

parent_table:=<string>

Определяет, выводить ли результат для родительской таблицы (родительской считается таблица на один уровень выше). Возможные значения: «yes»/«no»/«any»; по умолчанию - «no».

default:=<string>

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

Примечания

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

  • У параметров first и last есть два алгоритма работы. В случае таблиц первого уровня и имен этих таблиц эти параметры работают в рамках документа. Для всех остальных значений неименованного параметра они действуют только в рамках одной таблицы.

  • При использовании first и last в неименованных параметрах cell_unit и cell_factor выводятся значения cell_unit и cell_factor для соседних ячеек в таблице при их наличии.

  • При использовании параметров first и last в случае разрывного аргумента пересекающиеся элементы, входящие в результат, выводятся только один раз.

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

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

Примеры

totable(row_name, first:=-1, last:=-1, $m) приводит имя строки, предшествующей строке, в которой была найдена именованная группа $m. Если именованная группа находится в пятой строке, в результат будет выведено имя четвертой строки.

Примечание

Если именованная группа $m находится в первой строке таблицы, то ничего не будет выводиться в результат, так как предыдущая строка отсутствует.

totable(row_name) приводит результат к именам всех строк в таблице.

totable(row_name, first:=10, $m) запрос некорректный, так как не задан параметр last.

totable(row_name, first:=-10, $m) запрос корректный, так как значение параметра last по умолчанию больше заданного значения параметра first.

totable(row_name, first:=-100, last:=100, $m) если именованная группа $m находится в первой строке таблицы, состоящей из пяти строк, его значение будет приведено к именам пяти строк этой таблицы.

totable(col_name, $cell) если применить эту функцию к ячейке, содержащей только вложенную таблицу, то значения выводятся как для основной, так и для дочерней таблицы и агрегируется.

totable(col_name, table_level:=1, $cell) выводит в результат значение таблицы верхнего уровня.

totable(col_name, nested:=yes, $cell) выводит в результат значение вложенной таблицы. Стоит учесть, что если вложенных таблиц несколько, результат будет выведен для всех. В таком случае лучше указать параметр table_level.

totable(col_name, table_level:=2, $cell) выводит в результат значение вложенной таблицы второго уровня.

totable(col_name, has_nested:=no, $cell) выводит в результат значение вложенной таблицы последнего уровня, у которой нет своих вложенных таблиц.