Шаблон берет поисковый запрос, ищет совпадения в таблице по заданным параметрам, и если находит — подставляет в нужное поле текущей таблицы ID найденной записи.
В шаблоне можно настроить фильтры и другие параметры поиска.
Шаблон можно использовать если, например, нужно найти неоплаченные счета, которые были обработаны выбранным менеджером за последние 3 месяца.
Или если есть задача подобрать спецтехнику по заданным характеристикам или подобрать мастера по нужным параметрам на определенное время.
Функционал доступен начиная с версии 3.0.5.23004.
Например, есть две таблицы:
Таблица счетов с полями: Номер счета, Имя клиента, ID клиента
Таблица клиентов с полями: ID клиента, Имя
Задача - по полю "Имя клиента" из таблицы счетов искать совпадение в таблице клиентов по полю "Имя". Если совпадение найдено, подставить ID клиента из таблицы клиентов в соответствующее поле таблицы счетов.
Номер счета | Имя клиента | ID клиента |
---|---|---|
001 | Иван Иванов | (пусто) |
ID клиента | Имя |
---|---|
123 | Иван Иванов |
Номер счета | Имя клиента | ID клиента |
---|---|---|
001 | Иван Иванов | 123 |
В таблицу "Заявки" приходят заявки с сайта для аренды спецтехники с параметрами модели, грузоподъёмности. Нужно подобрать технику, подходящую по заданным параметрам и доступную на нужную дату.
При решении задачи будем использовать:
Разберем настройку шаблона на основе примера, описанного выше.
Настройки вычисления
Перейдите в настройки таблицы, в которой нужно выполнить вычисление. Во вкладке "Вычисления" нажмите кнопку "Добавить вычисление", выберите "Текущая таблица".
На странице настройки вычисления введите понятное описание вычисления. Если необходимо, задайте условия.
Если в вычислении вы не используете php-код, оставьте режим конструктора.
Выберите шаблон "Поиск в связанной таблице" (он находится в выпадающем списке в блоке "Связаная таблица").
Настройки шаблона
Следует настроить параметры в следующей последовательности:
Шаг 1. Выберите связанную таблицу, в которой будет производиться поиск связанной записи.
Шаг 2. Укажите поле текущей таблицы, значение которого будет сравниваться с полем связанной таблицы.
Шаг 3. Укажите поле связанной таблицы. Это поле должно совпадать по типу со типом выбранного поля текущей таблицы.
Шаг 3. Выберите поле связи — это параметр отображается только в том случае, если в текущей таблице есть два поля, которые связаны с выбранной связанной таблицей.
Шаг 4. Если необходимо добавить дополнительные условия для поиска в связанной таблице используйте фильтр в связанной таблице. Он позволит сузить выбор записей по заданным критериям.
Шаг 5. Оператор сравнения. Выберите правило сравнения между полями ("равно", "содержит"). В данном случае используется "равно".
Шаг 6. Укажите направление поиска:
Прямое — результаты будут отсортированы по ID в порядке возрастания.
Обратное — результаты будут отсортированы по ID в обратном порядке.
Шаг 7. Обязательно ли наличие одной подходящей записи — этот параметр определяет, должна ли находиться хотя бы одна запись, соответствующая характеристикам поиска.
Если несколько записей подходят по критериям поиска и нужно вручную перебрать эти записи, в этом случае выберите "Нет". Например, если под критерии поиска подходят несколько автомобилей или несколько счетов.
Важно! Если выберите "Нет", в этом случае поле связи должно быть типа "связь + множественный выбор".
Шаг 8. Поле для записи значений. Выберите поле, в которое будет записан результат поиска — ID найденной записи (или записей, если в шаги 7 было выбрано "Нет"). Выберите поле типа "текст многострочное" с включенным параметром "Применять HTML форматирование".
Учитывать предыдущий результат поиска. Укажите, нужно ли при поиске учитывать ранее найденные значения.
Важно! Если необходимо задать несколько условий поиска, каждое из них добавляется путём добавления нового шаблона в рамках текущего вычисления.
Результат
Вычисление для примера 2 будет выглядеть следующим образом:
После срабатывания вычисления в таблицу "Заявки" в поля "Результаты", "Спецтехника" будут добавлены ссылки на записи с подходящей по искомым харк спецтехникой.