Недавно возникла необходимость предоставить пользователю возможность выбрать цвет и запомнить его значение в шестнадцатиричной форме в строковом реквизите.
Решить задачу можно разными способами. Например, можно рядом со строковым реквизитом разместить гиперссылку на какой-нибудь ресурс в интернете, позволяющий выбрать цвет и посмотреть его значение в шестнадцатиричном виде (getcolor.ru, colorpicker.com и т.п.). Далее, пользователь должен вручную перенести значение цвета в нужный строковый реквизит. Такой способ не совсем удобен для пользователя и требует у него наличие доступа к интернет. Чтобы решить эту проблему был разработан набор компонент для возможности визуального выбора цвета в строковых реквизитах. Выбранный цвет автоматически переводится в шестнадцатиричную форму и заносится значением в данный реквизит.
Для того, чтобы появилась возможность визуального выбора цвета, необходимо в событии "Выбор из справочника" строкового реквизита вызвать функцию TDAInputColorRequisite с предопределенными параметрами:
TDAInputColorRequisite(Requisite; InputValue; SelectMode)
Справка к функции TDAInputColorRequisite:
При выборе реквизита появляется диалог:
Пример использования:
Разработку для DIRECTUM 5.2 можно взять тут:
Прикреплен файл: ColorPicker.zip
А какая бизнес-задача решается таким функционалом в контексте Директума? Чет не могу придумать
Андрей, например, в диалогах настройки стилей отображения записей справочников или задач и заданий. Чуть попозже покажу, что получилось. :)
Основная "фишка" решения в том, что тут не используются промежуточные файлы, а html-контент пишется напрямую в веб-контрол. Идею подглядел в обсуждениях к какой-то статье несколько месяцев назад, к сожалению, найти ее повторно не смог.
=) Наверно вот эта статья http://club.directum.ru/post/Sozdat-dialog-legko-i-prosto.aspx
Александр, все верно, это она. Именно ваш комментарий и натолкнул на нужную мысль :)
Можно такую штуку для настройки раскраски записей справочников прикрутить
Анна, все верно. Именно для этого и понадобился такой реквизит. Чуть попозже выложу остальное :)
Перезалил разработку на клаб
Авторизуйтесь, чтобы написать комментарий