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

Показать-скрыть картинку на Layout с IsValidExpression()

Добавлено: 27 мар 2019, 10:13
OlegZ
Появилась у меня задача -- показать на макете либо одну, либо другую картинку в зависимости от простейшей ситуации:
если ширина меньше или равна высоте - "картинкаРАЗ", при других раскладах - "картинкаДВА".
В "behavor" --> "Hide Object When" пишу:

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

IsValidExpression( поле1-поле2 > 0 )
Не работает, хотя по идее всё (кажется) верно.
Помогите разобраться: что не так пошло?
PS. Filemaker-17; картинки вставлены на макет.

Re: Показать-скрыть картинку на Layout с IsValidExpression()

Добавлено: 28 мар 2019, 12:42
Alexei Sytch
IsValidExpression проверяет только правильность синтаксиса формулы (скобки, запятые).
Вместо нее в Hide Object When укажите саму формулу (ссылки на таблицу тоже нужны)

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

Таблица::Поле1 > Таблица::Поле2
Как альтернативный вариант можно использовать вычисляемое поле КартикаТекущая

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

If( Поле 1 > Поле2 ; КартинкаРАЗ; КартинкаДВА )
Выберите для него тип результата вычислений "контейнер", здесь - КартинкаРАЗ и КартинкаДВА - это поля типа контейнер.
В этом случае значки можно будет настраивать

Re: Показать-скрыть картинку на Layout с IsValidExpression()

Добавлено: 29 мар 2019, 08:25
OlegZ
Упс! Действительно, я не внимательно справочник читал.
IsValidExpression
Returns 1 (true) if an expression syntax is correct; otherwise, returns 0 (false).
Спасибо!
PS
Хм... А как часто эта функция м.б. востребована? При самосоставлении "на лету" какого-то выражения? Не представляю.
PPS
И ещё вопрос (не по теме, правда) Filemaker по собственной инициативе сортирует значения в ValueList "from field"? Хотя и не указываю "Re-sort based...". Зачем он это делает? В Custom-то все значения как прибитые на своих местах.

Re: Показать-скрыть картинку на Layout с IsValidExpression()

Добавлено: 29 мар 2019, 10:49
andrey volkov
А как часто эта функция м.б. востребована? При самосоставлении "на лету" какого-то выражения? Не представляю.
Если

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

IsValidExpression ( expression1 )
возвращает 0, то

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

 Evaluate ( expression1 )
возвратит ?
Filemaker по собственной инициативе сортирует значения в ValueList "from field"? ... Зачем он это делает?

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