Button properties
-
- Сообщения: 106
- Зарегистрирован: 21 сен 2017, 18:48
- Откуда: Минск
Re: Button properties
я для себя (возможно извращенно )эту логику понимаю так -- "?" - ошибка -- в Filemaker это обычный текстовый результат (Который показывается в неподходящем формате (так как там где-то еще код ошибки)
А дальше, когда этот результат подставляется логическое выражение идет автоматическое преобразование
полученного результата в Boolean как если бы запускалась функция GetAsBoolean с полученным результатом
так как по определению GetAsBoolean для текста с числом(код ошибки) возвращает 1 то логическое выражение от оценки неправильной формулы получается равным 1. Повторюсь, это моя извращенная интерпретация
Если в логическом выражении добавить обертку из функции EvaluationError( ), например EvaluationError( Evaluate(expression) ) - тогда будет интуитивно понятно возвращать 0 если ошибок нет
А дальше, когда этот результат подставляется логическое выражение идет автоматическое преобразование
полученного результата в Boolean как если бы запускалась функция GetAsBoolean с полученным результатом
так как по определению GetAsBoolean для текста с числом(код ошибки) возвращает 1 то логическое выражение от оценки неправильной формулы получается равным 1. Повторюсь, это моя извращенная интерпретация
Если в логическом выражении добавить обертку из функции EvaluationError( ), например EvaluationError( Evaluate(expression) ) - тогда будет интуитивно понятно возвращать 0 если ошибок нет
-
- Сообщения: 338
- Зарегистрирован: 11 сен 2017, 13:42
- Откуда: Санкт-Петербург
Re: Button properties
Код: Выделить всё
GetAsBoolean("aaa") = 0
и даже знак вопроса в сочетании с символами алфавита тоже является логически Ложью
просто знак вопроса "?" равно Истина
похоже, знак вопроса - какой-то особый символ со своими правилами.
что-то я забыл об этой функции, а она в данном случае полезна весьма. Различает ситуации, когда вычисление невозможно, потому что отсутствует реляция к полю. Либо вычисление невозможно, потому что имя таблицы или поля в выражении передано неправильно, то есть такие объекты отсутствуют.Если в логическом выражении добавить обертку из функции EvaluationError( ), например EvaluationError( Evaluate(expression) ) - тогда будет интуитивно понятно возвращать 0 если ошибок нет
-
- Сообщения: 338
- Зарегистрирован: 11 сен 2017, 13:42
- Откуда: Санкт-Петербург
Re: Button properties
возникла неожиданная догадка
в одном числовом поле у меня проставлен знак вопроса. Типа сумма не известна, нужно уточнить. Хорошо, что скрипт воспринял "?" как положительное число. А то запись была бы удалена. Знак вопроса - это как бы "на этом месте должно быть число, но пока не известно какое"
Если такое поле участвует в калькуляции, то любое сочетание с другим валидным числом тоже дает знак вопроса, то есть сразу видно, что в формуле что-то не то подсунуто. Поиском знак вопроса элементарно находится...
Удобно.
Нет, не так. Это чертовски удобно
в одном числовом поле у меня проставлен знак вопроса. Типа сумма не известна, нужно уточнить. Хорошо, что скрипт воспринял "?" как положительное число. А то запись была бы удалена. Знак вопроса - это как бы "на этом месте должно быть число, но пока не известно какое"
Если такое поле участвует в калькуляции, то любое сочетание с другим валидным числом тоже дает знак вопроса, то есть сразу видно, что в формуле что-то не то подсунуто. Поиском знак вопроса элементарно находится...
Удобно.
Нет, не так. Это чертовски удобно
-
- Сообщения: 106
- Зарегистрирован: 21 сен 2017, 18:48
- Откуда: Минск
Re: Button properties
действительно -- ЭТО ОЧЕНЬ (!!!) интересно подмечено чтоandrey volkov писал(а): ↑25 фев 2018, 06:09просто знак вопроса "?" равно Истина
похоже, знак вопроса - какой-то особый символ со своими правилами.
Код: Выделить всё
GetAsBoolean("?") = 1
If( "?" ; "Истина" ; "Ложь") -- вернет "Истина"
Case( "?" ; "Истина"; "Ложь") -- вернет "Истина"
Код: Выделить всё
Choose ( "?" ; "result0"; "result1") --- вернет "?"
-
- Сообщения: 338
- Зарегистрирован: 11 сен 2017, 13:42
- Откуда: Санкт-Петербург
Re: Button properties
Прикольно ведет себя Sum("?"; 2) и ("?" + 2)
короче, нужно быть ОЧЕНЬ осторожными
короче, нужно быть ОЧЕНЬ осторожными
-
- Сообщения: 338
- Зарегистрирован: 11 сен 2017, 13:42
- Откуда: Санкт-Петербург
Re: Button properties
в общем, столкнулся я снова с этим кейсом. Он занимательныйА собственно зачем это нужно конкретно?
Дано: есть кнопка, она может быть расположена рядом с полем-контейнером. Может быть более одной кнопки на макете, расположение произвольное
Есть макет, который при нажатии кнопки должен открываться рядом с ней в режиме Card. Что-то типа имитации контекстного меню.
Задача: кард должен открыться рядом с кнопкой. Если скрипт знает имя кнопки, то он может вычислить и ее положение и рассчитать координаты нового окна. Вопрос в том, как скрипт узнает имя кнопки. Получается, что кроме как передать имя кнопки в параметр, ничего сделать нельзя.
А хотелось бы
Re: Button properties
ну что у вас кнопок миллион? почему через параметр так не кошерно?
-
- Сообщения: 338
- Зарегистрирован: 11 сен 2017, 13:42
- Откуда: Санкт-Петербург
Re: Button properties
да нет проблем передать в скрипт два параметра.почему через параметр так не кошерно
просто заинтересовался этим моментом. Либо что-то есть такое, либо ничего такого нет
-
- Сообщения: 338
- Зарегистрирован: 11 сен 2017, 13:42
- Откуда: Санкт-Петербург
Re: Button properties
Аркадий, вы как всегда заставляете напрягать мозг и думать в правильном направлении.
Конечно же в данном случае нужно именовать не кнопку, а поле-контейнер, и только его имя передавать в параметре.
Спасибо за пинок
Конечно же в данном случае нужно именовать не кнопку, а поле-контейнер, и только его имя передавать в параметре.
Спасибо за пинок