Страница 1 из 1

Формульное поле для разных типов

Добавлено: 17 фев 2018, 09:47
Евгений
Сейчас формульное поле предназначено для работы только с числовыми данными. Полученное значение выравнивается по правому краю, при выборе формульного поля в фильтре принимаются только числовые значения.

При этом имеется нештатная возможность возвращать в формульное поле строковые значения:

Код: Выделить всё

if([ИД_поля]=0, 'нуль', [ИД_поля] * 3,1415)
Хотелось бы использовать в формульном поле и другие типы данных, строки, дату, списки выбора. Возможно ли это реализовать?

Re: Формульное поле для разных типов

Добавлено: 17 фев 2018, 12:46
support
Любые типы полей уже можно использовать в формулах. Еще не успел обновить документацию.

Re: Формульное поле для разных типов

Добавлено: 17 фев 2018, 14:19
Евгений
Использовать-то можно. Любой тип поля возвращается либо как строка для текстовых полей, либо как число для всех остальных (дата, список). Проблема в том, что в фильтрах при выборе формульного поля, значения для него можно указать только числовые. Не принимаются ни строки, ни функции.

Re: Формульное поле для разных типов

Добавлено: 17 фев 2018, 14:58
support
Ага, так речь идет о фильтрах... а можно практический пример такого фильтра?

Re: Формульное поле для разных типов

Добавлено: 06 мар 2018, 05:37
Евгений
И не только для фильтра! Поиск по формульному полю тоже не работает.

Для чего мне нужно формульное поле с поддержкой строк и списков значений. У меня есть 3 сущности на верхнем уровне:

- Места хранения
- Оборудование
- Перемещение

Перемещение содержит поля "Оборудование" и "Место хранения", оба типа Сущность. Записи в Перемещениях хранят историю передвижения оборудования с места на место. Но выбрать из Перемещений текущее расположение какого-либо оборудования очень неудобно. А выбрать всё оборудование, которое в текущий момент хранится на каком-либо месте, просто невозможно. Хотя это задача очень распространённая и должна решаться элементарно.

Тогда я добавил в сущность Оборудование поле "Последнее место хранения" типа формула, в котором вызываю хранимую процедуру. А хранимка делает отбирает из базы последнюю по дате запись о перемещении этого оборудования и возвращает строковое название последнего места хранения. Но такое формульное поле не позволяет в списке делать по нему поиск или устанавливать фильтр.

(пробовал другие варианты решения этой задачи, они ещё хуже)