Претензии к ФМ или ожидания, у кого что осталось

Практические советы по работе с FileMaker, типичные задачи и их решения. У вас вопрос? Пишите сюда.
andrey volkov
Сообщения: 338
Зарегистрирован: 11 сен 2017, 13:42
Откуда: Санкт-Петербург

Претензии к ФМ или ожидания, у кого что осталось

Сообщение andrey volkov » 27 янв 2020, 17:03

Что-то мало нас здесь осталось.
Этот пост будет своеобразной "переписью населения".
Давайте напишем, кто чего недополучил в файлмейкере несмотря на многие доработки и новые фичи.

Нечто значительное, что мешает работе и что ускользнуло от внимания разработчиков.
Начну:
1) управление транзакциями. Возможность выполнять группу команд как одну логическую команду. То есть если в конце группы команд выявляется ошибка, то должна быть возможность откатить все команды этой группы.

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

Re: Претензии к ФМ или ожидания, у кого что осталось

Сообщение Alexei Sytch » 03 фев 2020, 13:09

Андрей, ожиданий много, и прежде всего с "популярностью" продукта, активным продвижением его со стороны Claris и позиционированием его на русскоязычном пространстве. Продукт очень хороший, но совершенно не раскрученный.

Из хотелок - из коробки:
1) Добавить готовых режимов данных: не хватает "Calendar View", Card View, Kanban View, Print Preview, TreeViews с возможностью редактирования (режим этикеток можно было бы использовать и для редактирования и просмотра)
2) Расширить режимы просмотра данных: 1) List View/ Table View / Form View - было бы не плохо их комбинировать, как выбор Part для Layout, переменная высота строки в ListView
2) Сквозная система навигации а-ля корешки листов Excel без необходимости дублировать ее на каждом layout
3) При смене таблицы-контекста в layout не хватает автоматической замены ссылок на поля (сейчас приходится обнолять через танцы с бубном или в ручную)
4) Импорт JSON с автоматическим созданим необходимоых таблиц (и XML) - а-ля как сделала BaseElement
5) Графики оставляют желать лучшего, нужны интерактивные и более настраиваемые
6) Встроенные регулярные выражения
7) Улучшение форм для печати таблиц, особенно много страничных. Проблемы - "висячие строки и заголовки" и вертикальные линии.
Линии нужно выверять с точностью до пикселя (чтобы они сжимались)- сделать одни раз просто, но простая правка, например, изменить размер колонки, приводит к тому, что изменять надо размер поля колонки, шапки на первом заголовке, шапки на последующих заголовках.
8) Отсутствие функций для работы с русским текстом (морфология, склонения) - или Plugin
9) квадратный мир инструментов Layout уже устарел, не зватает произвольных полигонов.
10) Progress Bar...
11) прямой доступ к объектам страциы в WebViewer (как в JavaScript) и переменным JS
12) Интерактивные карты :)
13) Dublicate Record со связанными запиcями

В общем-то все хотелки имеют свое решение и обходные способы, но было бы здорово их "иметь" сразу из коробки.

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

Re: Претензии к ФМ или ожидания, у кого что осталось

Сообщение andrey volkov » 03 фев 2020, 16:09

о, я здесь не один!Здорово!

2-1, 4, 5, 7 - полностью поддерживаю!
2-2) Сквозная система навигации а-ля корешки листов Excel без необходимости дублировать ее на каждом layout
Можете поподробнее рассказать, что имеется в виду?

10 - Progress Bar действительно ли нужен? Я пробовал использовать плагиновый прогресс бар, понял, что он не особо информативен и не настолько требуется, чтобы заморачиваться с настройкой.
11) прямой доступ к объектам страницы в WebViewer (как в JavaScript) и переменным JS
12) Интерактивные карты :)
можете пояснить?
1) Добавить готовых режимов данных: не хватает "Calendar View", Card View, Kanban View, Print Preview, TreeViews с возможностью редактирования (режим этикеток можно было бы использовать и для редактирования и просмотра)
можете более подробно описать, что это и зачем?
=============

Сейчас осознал, что мне крайне необходим триггер на удаление записей. Чтобы залогировать сам факт удаления

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

Re: Претензии к ФМ или ожидания, у кого что осталось

Сообщение Alexei Sytch » 05 фев 2020, 13:59

Андрей, доброго времени суток!
2-2) Сквозная система навигации а-ля корешки листов Excel без необходимости дублировать ее на каждом layout
Можете поподробнее рассказать, что имеется в виду?
Здесь все просто: у нас есть элементы для построения системы навигации - Buttorn Bar Tool
Есть Navigation Part в Layout. Navigation Part надо создавать на каждом Layout, изменять ее размер, копировать в точное местро на нее Button Bar, выделять активный сегмент (вручную или автоматом). Если добавили еще одну кнопку в Button Bar - надо пройтись по всем Layout и поменять все там.
Navigation Part имеет удобное свойство для организации навигации -- она не изменяет свой масштаб. Если изменить ее поведение в FileMaker так, что все, что на на ней размещено, показывается на всех Layout с Navigation Part, то создавать сквозную навигацию станет значительно проще. Достаточно будет разместить Buttor Bar в Navigation Part и он автоматически продублируется в нужных Layout
10 - Progress Bar действительно ли нужен? Я пробовал использовать плагиновый прогресс бар, понял, что он не особо информативен и не настолько требуется, чтобы заморачиваться с настройкой.
Я тоже пробовал Plugin, и решение от 24u, есть еще модуль на Modular Filemaker. Впечатление - много мороки, хотя и ничего сложного, но не в один клик. ИМХО Прогресс бар для длинных операций все-таки нужен. Даже с точки зрения диагностики ошибок или замера времени: если что-то не так, разговор с пользователем более осмысленный, так как он понимает, что делает система и в какой момен идет ошибка. По аналогии с встроенным диалоговым окном в FileMaker - достаточно ограниченное -- нет автоизменения размера, ввести можно только три записи , но в 90% этих возможностей хватает. По аналогии и встроенное средство для индикации процесса было бы востребовано в большинстве простых случаев.

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

1) "Calendar View", Card View, Kanban View, Print Preview, TreeViews 
Лучше один раз увидеть - есть такой проект AirTable : Calendar View, Kandan View и Gallery view. Например, для Calendar View достаточно выбрать поле с датой и поле с подписью и все, Вид типа Календарь можно использовать, Galery View это как режим печати этикеток в FileMaker только с работает для просмотра.
https://support.airtable.com/hc/en-us/a ... 382448dc41

Опять же все это ИМХО.

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

Re: Претензии к ФМ или ожидания, у кого что осталось

Сообщение andrey volkov » 06 фев 2020, 05:40

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

> Здесь все просто: у нас есть элементы для построения системы навигации - Buttorn Bar Tool
Есть Navigation Part в Layout. Navigation Part надо создавать на каждом Layout, изменять ее размер, копировать в точное местро на нее Button Bar, выделять активный сегмент (вручную или автоматом). Если добавили еще одну кнопку в Button Bar - надо пройтись по всем Layout и поменять все там.
Navigation Part имеет удобное свойство для организации навигации -- она не изменяет свой масштаб. Если изменить ее поведение в FileMaker так, что все, что на на ней размещено, показывается на всех Layout с Navigation Part, то создавать сквозную навигацию станет значительно проще. Достаточно будет разместить Buttor Bar в Navigation Part и он автоматически продублируется в нужных Layout
Так сделайте все это средствами файлмейкера.
Вы можете сделать прозрачный баттон-бар на максимальное количество кнопок. Допустим, их будет 15
Надписи в баттон-барах вычисляются, вы можете вычислять их на лету.
0) кнопки в баттон-барах вы нумеруете от 1 до 15 (имя объекта).
1) Вам потребуется таблица, в которой вы храните список ВСЕХ макетов, их русское название (для кнопки, для навигации), LayoutID, параметры доступа.
2) вы записываете на старте в глобальную переменную в JSON список названий нужных для глобальной навигации макетов в формате номер кнопки - название кнопки - ид макета.
А второй JSON - инверсия первого: LayoutID - номер по списку.
3) по номеру кнопки вычисляется ее название. Вы делаете это для всех 15 кнопок. Если в вашем списке кнопок глобальной навигации всего 6 пунктов, то отобразятся названия 6 кнопок, остальные не вычислятся.
4) Активная кнопка баттон-бара вычисляется из второго JSON: вычисляете LayuotID макета, получаете по нему порядковый номер в списке и если этот номер совпадает с именем кнопки баттон-бара, она становится "активной".
5) Клик на кнопку обрабатываете одним скриптом. Параметр - порядковый номер кнопки. Из JSON вы получите по номеру кнопки LayoutID. Потом кастом функцией ( см. fmteam.ru) получаете актуальный Layout number и переходите на этот макет по номеру макета. В этот скрипт можно вписать раздел, по которому вы проверяете привилегии пользователя на доступ к макету.

JSON можно генерировать не только на старте, но и на лету. Например, при переходе на макет, которого нет в списке глобальной навигации, вы этот макет аккуратно в JSON дописываете и соответствующая ему кнопка появляется в глобальном меню. Можно уйти с этого макета, а потом вернуться к нему снова уже через кнопку глобального меню. Если у вас таким образом дописалось 15 кнопок, а вы переходите на 16-й уникальный макет, то перезаписываете 15 кнопку. Любые правила, и все это на лету

У меня в информационной системе несколько десятков страниц и пользователи с различными ролями. Для каждой роли предусмотрено собственное глобальное меню. Человек входит в систему и видит только те разделы, которые нужны ему в его работе ( а все прочие страницы видит на стартовой странице, при желании может перейти куда ему нужно).
Кроме того, сделана возможность выбрать любое глобальное меню из списка. Можно выбрать стандартное меню, минимальное меню, меню для определенной роли, индивидуальное (личное) меню. Короче, можно переключаться, все динамически меняется.
Так что "для творчества все условия созданы"

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

Re: Претензии к ФМ или ожидания, у кого что осталось

Сообщение andrey volkov » 06 фев 2020, 07:14

По аналогии и встроенное средство для индикации процесса было бы востребовано в большинстве простых случаев.
я пробовал BaseElements. В любом случае и в любой разработке для прогресса требуется всегда совершать некоторые манипуляции, записывать шаг, обновлять прогресс бар. Муторно. особенно сложно в циклах: непонятно, на каком шаге нужно обновить прогресс-бар.
То есть здесь приходится что-то такое выдумывать и это невыразимо занудно.
По большому счету прогрессбар можно сделать и средствами файлмейкера. Это плашка, залитая сплошным цветом или градиентом. А поверх плашки можно положить поле с репетициями, которые будут последовательно становиться прозрачными по условию. Смотрится очень красиво.
Все это можно разместить на макете и отобразить float window
Тогда прорисовку прогресс-бара можно будет осуществлять одним скриптом универсальным. Типа Progress Next Step.
Ну, а в самом скрипте, в котором нужно прогресс отслеживать, придется использовать две команды

Perform Script ["Progress Next Step", Parameters:]
Select Window [$curwindow]

Один раз сделаете, "на всю жизнь" хватит
Можно передавать в параметре: текущая позиция в цикле/общее количество шагов в цикле, а в скрипте уже будет происходить вычисление, следует закрашивать очередной квадратик (и отображать окно прогресс бар) или нет.

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

Re: Претензии к ФМ или ожидания, у кого что осталось

Сообщение andrey volkov » 06 фев 2020, 07:18

Лучше один раз увидеть - есть такой проект AirTable
Огромное спасибо за ссылку. Такой прилив вдохновения!
Календарь ведь можно и средствами файлмейкера делать. А вот привязывать его к определенному полю определенной таблицы - это суперидея.

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

Re: Претензии к ФМ или ожидания, у кого что осталось

Сообщение Alexei Sytch » 10 фев 2020, 21:36

Андрей, спасибо за "технологию" навигации. Очень интересно было сравнить. Я остановился для себя на меню из повторяющихся полей (подход олдскульный :) ). Есть таблица с глобальными полями с повторениями. В ней двух уровневое меню и основные команды для макета (добавить, удалить). Для каждого элемента меню задается Название, Иконка, макет на который надо переключиться и скрипт, который надо после переключения на этот макет вызвать. На каждый макет копируются 4 повторяющихся поля с повторениями от 1 до 12 - Кнопки главной навигации, иконки главной навигации, меню 2 уровня и названия и иконки. При нажатии на псевдокнопку запускается триггер который всегда вычисляет Get(CalculationRepetionNumber) и этот номер используется для подсветки активных элементов навигации (через глобальное поле "Выбранный элемент основной навигации и Выбранный элемент дополнительной навигации.) и для вычисления повторения, в котором хранится команда перехода к layout и скрипт, который надо запустить. Например MainLayout | ShowPositive. Неактивные элементы делаются прозрачными.

Что мне удобно: упрощает и ускоряет создание сложной сквозной навигации, можно использовать и менять иконки в навигации, подсвечивать активное меню значком, менять местами элементы меню, и использовать навигацию для перехода к конкретным записям, можно сделать кнопки разной ширины и комбинировать кнопки с иконкой и без иконки, подсказки к кнопкам, можно использовать show repetitions from ___ to____

Минусы -- если открывается несколько окон в одном приложении в каждом будет одинаковое меню, переход на другой layout в одном окне поменяет меню в остальных окнах. Вход - в использовании plugin который позволяет задавать переменные не только Global и Local но и WindowVariable. Копировать все равно надо на каждый layout.

Ну и конечно то что это решение "не из коробки". В каждый файл этот "модуль" надо отдельно копировать - таблицу, скрипты, layout элементы.

Еще одна супер идея про AirTable - сделать модуль синхронизации c Filemaker.

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

Re: Претензии к ФМ или ожидания, у кого что осталось

Сообщение andrey volkov » 11 фев 2020, 04:37

Минусы -- если открывается несколько окон в одном приложении в каждом будет одинаковое меню
в чем проявляется "одинаковость"?

я еще хотел выпытать про Javascript . Как используется и зачем доступ к переменным?
И про интерактивные карты. Я так понимаю, это из разряда веб-технологий, а они вроде бы с файлмейкером смыкаются через fmp протокол. Не так?

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

Re: Претензии к ФМ или ожидания, у кого что осталось

Сообщение andrey volkov » 11 фев 2020, 04:39

еще я жажду, когда сделают так, чтобы при экспорте в Excel можно было опционально задать Заголовки столбцов или хотя бы подцеплять их из field description

Ответить