Интерфейсы в кларионовских приложениях

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7327
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Интерфейсы в кларионовских приложениях

Сообщение Игорь Столяров »

Когда нет полного и красивого решения вопроса - приходится идти на какой-либо компромисс ... :(
Ну нет в LIST полноценного много-строчного поля TEXT ... И никто его не придумает. :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4560
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Интерфейсы в кларионовских приложениях

Сообщение finsoftrz »

По ходу обсуждения пришла мысль сделать кнопки со стандартными ответами, типа принято, согласен, спасибо, не надо и т.п. Наподобии телеграмм. Для сервиса быстрых сообщений очень удобно.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7327
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Интерфейсы в кларионовских приложениях

Сообщение Игорь Столяров »

finsoftrz писал(а): 25 Февраль 2022, 8:58 типа принято, согласен, спасибо, не надо и т.п.
Можно даже усугубить и сделать их программируемыми.
Что бы можно было заменить текст сообщений. :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4560
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Интерфейсы в кларионовских приложениях

Сообщение finsoftrz »

Мне кажется, это лишнее усложнение. Вот такой вариант. Жмем на кнопку, текст с нее попадает в сообщение и сразу event:accepted на ОК.

mess2.png
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

Интерфейсы в кларионовских приложениях

Сообщение RaFaeL »

Тут лучше словарь с выбором, чтобы можно было заполнять самостоятельно
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4560
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Интерфейсы в кларионовских приложениях

Сообщение finsoftrz »

Словарь есть - кнопка "..." справа от текста.
C6/C11, ШВС, tps/btrieve.
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Интерфейсы в кларионовских приложениях

Сообщение kreator »

finsoftrz писал(а): 24 Февраль 2022, 18:07 Я экспериментировал. Сообщение, разбитое на несколько, воспринимается визуально нормально, как единое целое. Можно еще было дополнительным маркером продолжения метить. На мое восприятие, лучше сразу развернуть. Пусть будет делом вкуса. :-)
Ну чего ж тут нормально-то? Но одной строчке "д", на другой - "линное". Дичь!!!
We are hard at work… for you. :)
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Интерфейсы в кларионовских приложениях

Сообщение kreator »

Игорь Столяров писал(а): 24 Февраль 2022, 16:54
finsoftrz писал(а): 24 Февраль 2022, 16:45 броуз многострочный текст произвольной длины
Обсуждали этот вариант. Речь идёт о псевдо-многострочности.
Опеределяем ширину колонки и дробим текст по пробелам на несколько (FIX) кол-во строк ...

P/S: Господа ! Сегодня не самый весёлый день - давайти обсуждать темы мирно. Все. Вместе. :)
Неужели это сложно? На самом деле всё ещё проще. И 1С в общем случае показывает псевдомногострочность. И нетовский лист (ДП давно писал) также работает (могу ошибаться).
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4560
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Интерфейсы в кларионовских приложениях

Сообщение finsoftrz »

kreator писал(а): 25 Февраль 2022, 13:40
finsoftrz писал(а): 24 Февраль 2022, 18:07 Я экспериментировал. Сообщение, разбитое на несколько, воспринимается визуально нормально, как единое целое. Можно еще было дополнительным маркером продолжения метить. На мое восприятие, лучше сразу развернуть. Пусть будет делом вкуса. :-)
Ну чего ж тут нормально-то? Но одной строчке "д", на другой - "линное". Дичь!!!
У Вас предложение посередине обрывается, остальное посмотреть что-то нажимать надо. Может, там одно слово не поместилось. Еще большая дичь для такой задачи, не находите? Не поддерживает нативно кларион многострочный вывод текста в броузе, поэтому приходится идти на какие-то компромиссы в любом случае. Не понимаю, что Вы так бурно реагируете, как будто у Вас что-то отнимают.
C6/C11, ШВС, tps/btrieve.
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Интерфейсы в кларионовских приложениях

Сообщение kreator »

Все мессенджеры обрывают на половине. Это уже тренд. Наверно так удобно. Миллиарды установок. Зачем колесо изобретать? Оно уже изобретено.
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4560
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Интерфейсы в кларионовских приложениях

Сообщение finsoftrz »

Если нужен мессенджер, то можно поставить какой-то обычный, действительно, зачем колесо изобретать? У меня используется система быстрого обмена сообщениями, это несколько иная заточка функционала. Пришло сообщение, его надо увидеть все сразу и реагировать. История сообщений сохраняется на случай уточнения, что было, но обычно не так часто кого интересует. Не нужна группировка по отправителям с обрубками одного из сообщений. Я писал, что не уверен, есть ли выравнивание по словам. Видимо, отказался от этого, чтобы уменьшить количество строк у длинного текста. Вопрос, разумеется, рассматривался. Решение компромиссное. Если бы я знал вариант лучше по совокупности характеристик, то использовал. Покручу, конечно, еще, раз вопрос всплыл. Спасибо за обсуждение. Только надо поменьше эмоций.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4560
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Интерфейсы в кларионовских приложениях

Сообщение finsoftrz »

kreator писал(а): 25 Февраль 2022, 13:40
finsoftrz писал(а): 24 Февраль 2022, 18:07 Я экспериментировал. Сообщение, разбитое на несколько, воспринимается визуально нормально, как единое целое. Можно еще было дополнительным маркером продолжения метить. На мое восприятие, лучше сразу развернуть. Пусть будет делом вкуса. :-)
Ну чего ж тут нормально-то? Но одной строчке "д", на другой - "линное". Дичь!!!
В общем, "уговорили", сделал все таки выравнивание по словам.
Чисто технически можно вместо list динамически создавать text контролы на регионе (и изменять размер региона для прокрутки), чтобы "как в мессенджерах" было, но это, на мое восприятие, чрезмерно для задачи. Потом, можно глюки словить в многооконном контексте. В кларионе, даже в 6 версии рантайма, отклонений от стандартных накатанных схем работы в интерфейсной части лучше избегать, как показывает опыт.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4560
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Интерфейсы в кларионовских приложениях

Сообщение finsoftrz »

Интересный эксперимент, как повод для размышлений. Включил пару месяцев назад на 2 серверах (примерно по 15 пользователей на каждом) манифест у приложения. С неделю назад отключил, вернул к классическому виду. И при включении, и при выключении манифеста реакция пользователей была нулевая, как будто и не заметили.
Чисто на мое субъективное восприятие (я периодически тоже подключаюсь к этим серверам для уточнения каких-то вопросов), после включения манифеста было прикольно. Кнопки синеют при наведении, прогресс сплошной зеленый вместо синих кубиков, более четкая прорисовка контролов. Когда выключил, то как-то легче все восприниматься стало, большая фокусировка внимания на собственно информации, без отвлечения внимания на подкорке. Возможно дело привычки, возможно не только.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7327
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Интерфейсы в кларионовских приложениях

Сообщение Игорь Столяров »

В папке ftp://***/_Icons + Icon Tools/AxialisIconGenerator/
обновлён список лицензий, доступны новые коллекции иконок.
Используем трофейный дизайн для импортозамещения ! ;)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4560
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Интерфейсы в кларионовских приложениях

Сообщение finsoftrz »

Интересная идея пришла на днях. Речь про скрытие лишней информации в окнах. Когда появляется потенциальный клиент, ему для ознакомления обычно делается настройка программы, приближенная к его потребностям, чтобы у него не возникало когнитивного диссонанса от избыточного функционала. Делается это достаточно быстро с помощью параметрических настроек. Но далеко не все, что хотелось бы скрыть, можно решить таким путем. Когда-то ребята, популяризировавшие Аксапту, писали о возможности скрывать контролы в окне как о продвинутом механизме, упрощающем внедрение. Тогда я подумал, технология у них другая, если буду давать просто скрывать, то возникнет конфликт с параметрическими настройками и системой распределения прав доступа. И только на днях сложилось. Кажется все просто, когда знаешь как, почему раньше в голову не пришло. Смысл в том, чтобы не просто дать возможность скрывать любые контролы, а создать окно возможностей. Это известная технология, которую можно применить и в данном случае. Фактически делаем контрол шаблон, в котором задаем список контролов окна, которые можно скрыть, и действия, которые для этого надо применить. Соблюдая некоторую аккуратность, избегаем конфликтов с параметрическими настройками программы и системой распределения прав доступа. Получаем дополнительный механизм, который по мере потребностей можно расширять в разных окнах приложения. Для реализации потребовалось в свой класс управления окном добавить структуру и несколько свойств и методов. Пара процедур для интеграции с базой данных и, собственно, контрол шаблон.
windhide1.jpg
Контрол шаблон это захайденная по умолчанию кнопка с привязанной к ней комбинацией клавиш для запуска. В Action шаблона задается список контролов, которые можем скрывать через настройку в программе.
Три варианта скрытия Окно, Меню, Запрос. Вариант Окно просто приводит к скрытию указанного контрола. Есть некоторые нюансы. В частности, если хотим скрывать entry поле, то достаточно указать только его, промпт программа сможет определить и скрыть автоматически. Вариант Меню позволяет скрывать пункты в popup меню, которые могут быть привязаны к кнопке типа Печать, Обработка или к контекстному меню списка. У меня обычно пункты меню ссылаются на захайденные кнопки, чтобы отключить, используется соглашение о переименовании кнопок в "...". Такое переименование и будет происходить, если указать вариант Меню. Вариант Запрос напрямую ничего не делает с контролами, но позволяет вызывать метод проверки установки в разных местах кода и скрывать сразу блоки контролов. Например, для ввода ссылки на какой-то элемент справочника у меня обычно используется специальный контрол шаблон, состоящий из 5 обычных контролов. В Action у него есть строка с условием скрытия, сразу позволяющая скрыть все входящие в его состав обычные контролы. Правило такое, что скрывать можно такие контролы только тогда, когда не выбрана ссылка. Таким образом, мы можем вывести в настройку основной его контрол и вариант Запрос, а в Action контрол шаблона выбора ссылки прописать проверки наличия ссылки и включения настройки.
В строке Обработка можно прописать какой-то код, который выполнится сразу после того, как скроем нужные контролы. Например, применяем настройку для параметров отчета и хотим скрыть какие-то из них. Чтобы они не влияли на построение отчетов, очищаем их значения, устраняя потенциальные вопросы по итогам отчета.
windhide2.jpg
Академический пример скрытия реквизита "Формат обмена", который является entry полем. Отмечаем его в настройке и жмем Записать, сохраняя настройку в базе данных. Настройка сохраняется отдельно для каждой роли. Кнопку контрол шаблона я расхайдил для наглядности. Результат на скриншоте ниже. Контрол не будет показываться до тех пор, пока не изменится настройка.
windhide3.jpg
В качестве дополнительного сервиса в окне настройки кнопка временного отключения применения настройки, по типу, как в дизайнере окон в среде с11 можно включать и отключать показ захайденных контролов. Отметить и снять отметку со всех, выгрузить настройку в файл и загрузить настройку из файла. В списке ролей пользователей можно выгрузить и загрузить настройки всех окон для роли.
При подобном подходе образуются пустые места в окне. Я думаю, это разумный компромисс. Окна одинаковые, пустое место обозначает наличие дополнительного функционала, настраивается быстро. Если подвешивать оконный дизайнер с возможностью изменения позиции контролов, то это может привести к конфликту с параметрическими настройками, сложнее настраивать и поддерживать. То есть уже несколько другая архитектура.
C6/C11, ШВС, tps/btrieve.
Ответить