Формат телефонного номера

Практические советы по работе с FileMaker, типичные задачи и их решения. У вас вопрос? Пишите сюда.
Ответить
artema
Сообщения: 4
Зарегистрирован: 01 дек 2018, 09:29

Формат телефонного номера

Сообщение artema » 14 дек 2018, 10:46

Добрый день.
Каким образом для поля задать формат телефонного номера вида (987) 654-32-10?

В попытках разобраться в этом вопросе удалось лишь после ввода отформатировать строку, т.е. человек вводит сплошной набор цифр, например, 9876543210, а затем скрипт форматирует как нужно в (987) 654-32-10.

Код:
Телефонный формат.JPG
Телефонный формат.JPG (18.65 КБ) 2649 просмотров
Однако требуется, чтобы все скобки и дефисы были проставлены ДО и ВО ВРЕМЯ ввода номера (без возможности их удаления), чтобы у человека было понимание сколько цифр и как вводить номер.

P.S. Как без написания триггеров и скриптов задать к какому следующему полю переходить после нажатия клавиши Tab?
P.S.S. Заранее спасибо за помощь!

Аватара пользователя
Arcady
Администратор
Сообщения: 145
Зарегистрирован: 10 сен 2017, 20:45
Контактная информация:

Re: Формат телефонного номера

Сообщение Arcady » 15 дек 2018, 06:43

Обычно так в ФМ и делают. Пользователь вводит в свободном формате телефонный номер, а на поле "вешается" auto-enter (ну или тригер) который форматирует набор цифр в формат телефонного номера (для этого есть можно использовать одну из многочисленных custom function - посмотрите в интернете)
Ну или заморачиваться и сделать для "разрядов" номера отдельные поля и отслеживать тригером количество введенных символов и авто переход в следующее поле - но не думаю, что это будет удобнее для пользователя.

PS Порядок перехода между полями задается в Set Tab Order меню Layouts
Аркадий Перла.
ТриА. Разработка решений для FileMaker
http://tria.pw

Alexei Sytch
Сообщения: 63
Зарегистрирован: 21 сен 2017, 18:48
Откуда: Минск

Re: Формат телефонного номера

Сообщение Alexei Sytch » 17 дек 2018, 22:16

В логику обработки можно заложить еще автодополнение кода города, кода страны и т.п.

Альтернативный подход -- указывать еще и шаблон (###) ###-##-## для отображения этого номера телефоны (разные для разных стран или городских номеров)
посмотрите, например valueMask ( "0123456789" ; "(###) ###-##-##" ; "#" )
по ссылке https://www.briandunning.com/cf/1643

(или поищите идеи по ключевым словам Phone или Mask )

Alexei Sytch
Сообщения: 63
Зарегистрирован: 21 сен 2017, 18:48
Откуда: Минск

Re: Формат телефонного номера

Сообщение Alexei Sytch » 21 дек 2018, 20:34

Проблема показалась интересной, так как в других программах, есть встроенные средства для ввода по маске.
В FileMaker подсказка для ввода - это основной инструмент, доступный по умолчанию.
Но совсем не сложно организовать ввод по маске, который и визуально будет смотреться очень даже хорошо, и по функционалу будет расширяемый.
phone.PNG
пример 4 в файле
phone.PNG (4.03 КБ) 2587 просмотров
или так
PhonePattern2.PNG
пример 3 в файле
PhonePattern2.PNG (2.29 КБ) 2587 просмотров

Я обобщил 4 варианта организации такого ввода, которые я использовал на практике, в небольшом файле, возможно пригодится кому-то еще
1. Перехват и обработка значений с клавиатуры
2. Использование custom function и шаблонов для форматирования
3. Запуск по триггеру скрипта для форматирования значения custom function
4. Поле с множественными значениями и триггер для перехода NextField
phone.zip
4 способа ввода по маске
(76.06 КБ) 46 скачиваний

andrey volkov
Сообщения: 196
Зарегистрирован: 11 сен 2017, 13:42
Откуда: Санкт-Петербург

Re: Формат телефонного номера

Сообщение andrey volkov » 22 дек 2018, 06:43

Алексей, проверьте первый вариант. Он дает сбой

и, если не сложно, доработайте и допишите, пожалуйста, пятый вариант. Я набросок вставил на место 4-го варианта.
Добавлено новое текстовое поле. Нужно сделать его вычисляемым по формату маски (пробел в маске игнорировать)
Вложения
phone.zip
(76.49 КБ) 42 скачивания

andrey volkov
Сообщения: 196
Зарегистрирован: 11 сен 2017, 13:42
Откуда: Санкт-Петербург

Re: Формат телефонного номера

Сообщение andrey volkov » 24 дек 2018, 04:12

А вот и не получается вычислить маску из шаблона. Поэтому мой вариант следует отбросить
Мне очень понравился вариант 3
Предлагаю разместить файлик с примерами в "Законченных решениях"

Alexei Sytch
Сообщения: 63
Зарегистрирован: 21 сен 2017, 18:48
Откуда: Минск

Re: Формат телефонного номера

Сообщение Alexei Sytch » 24 дек 2018, 16:54

Андрей, спасибо большое за обратную связь.
Я обновил код для варианта 1 (он все равно не идеальный, я привожу его больше для демонстрации подхода)

Добавил вариант 5. Вы абсолютно правы, при преобразовании возникают ньюансы, связанные с тем, что число интервалов между значениями в группе должно быть меньше на один чем число подстановочных символов.
PhonePattern4.PNG
PhonePattern4.PNG (3.17 КБ) 2539 просмотров
В примере 5 добавлена обработка для разделителей групп "(", ")", "-" но решение все равно получилось не таким универсальным, как пример 3.

Кроме этого я добавил несколько примеров оформления варианта 4, чтобы лучше продемонстрировать плюсы оформления
PhonePatter3.PNG
PhonePatter3.PNG (1.64 КБ) 2539 просмотров
(при том что основной минус для некоторых ситуаций - жесткая фиксация формата сохраняется). Имхо, вариант больше подойдет для различных кодов ИНН, ОКУД, ОКВЭД. Для номеров телефонов важно оставлять возможность ввести номер в нестандартном формате. (либо оставлять дополнительное поля для ввода номера телефона в произвольном формате)
phone-V2.zip
(82.54 КБ) 39 скачиваний
Последний раз редактировалось Alexei Sytch 14 янв 2019, 19:18, всего редактировалось 1 раз.

andrey volkov
Сообщения: 196
Зарегистрирован: 11 сен 2017, 13:42
Откуда: Санкт-Петербург

Re: Формат телефонного номера

Сообщение andrey volkov » 26 дек 2018, 04:46

Алексей, в примере номер 5 вычисление формата в "подложке" можно сделать не в самом поле, а в плейсхолдере.

Давайте разместим файлик в "Решениях", чтобы в будущем облегчить поиск

Alexei Sytch
Сообщения: 63
Зарегистрирован: 21 сен 2017, 18:48
Откуда: Минск

Re: Формат телефонного номера

Сообщение Alexei Sytch » 27 дек 2018, 11:28

Андрей, если не сложно, пришлите мне небольшой пример, можно в личку, чтобы лучше понять идею оформления, я подправлю файлик перед тем как выложить в "Решениях". Посмотрел в Вики сколько разных форматов телефонных номеров в разных странах и даже в рамках одной страны и задумался, стоит ли овчинка выделки для обычной CRM или адресной книги (имеется ввиду жесткое ограничение формата). Как пользователь я бы наверное хотел увидеть и редактировать рекомендуемый формат для ввода , но при необходимости удалить его и ввести в своем виде.

Ответить