gdmn icon indicating copy to clipboard operation
gdmn copied to clipboard

Настройка параметров атрибутов для визуального отображения

Open gsbelarus opened this issue 5 years ago • 1 comments

Данные параметры будут браться как значения по-умолчанию при настройке гридов и диалоговых окон.

Для всех атрибутов:

  1. видимость
  2. маска
  3. выравнивание (влево, вправо)

Для числовых:

  1. формат вывода

Для дат, времени:

  1. формат вывода.

Для булевских:

  1. Название для true и false значений.

gsbelarus avatar Aug 01 '19 15:08 gsbelarus

  1. числа, даты, булевские значения при выводе на экран или печать преобразуются в строки в соответствии с заданными форматами.
  2. в операционной системе пользователь устанавливает предпочитаемые им форматы для чисел, денежных единиц и дат. cм. объект Intl.
  3. в подавляющем большинстве случаев нас устроят дефолтные форматы из операционной системы.
  4. в редких случаях, формат для конкретного атрибута может отличаться. Например, если это содержание драгметаллов, то его надо выводить с 6-ю знаками после десятичной точки, в то время как в целом, для чисел, в операционной системе может быть установлено 2 знака.
  5. формат может быть перекрыт пользователем на уровне отображения (в гриде, отчете). Например, некоторый отчет всегда может печататься в целых рублях, независимо от того, что в операционной системе для денежных единиц установлен вывод с точностью до копеек.
  6. мы хотим максимально минимизировать действия пользователя/внедренца по настройке форматов вывода. форматы должны применяться в следующей последовательности: формат на уровне отображения (грид, отчет) -- формат на уровне атрибута сущности -- формат на уровне операционной системы.
  7. возникает вопрос, для тех редких случаев, когда формат для атрибута отличается от формата по-умолчанию, где его хранить? можно добавить поле в класс атрибута и считывать/записывать его из at_ таблиц, но в большинстве случаев это поле будет undefined, что приведет к бесполезному расходу памяти, особенно учитывая, что атрибутов в большой er модели может быть много.
  8. другой вариант -- привязать специфический формат к семантической категории.
  9. особняком тут стоит форматирование булевских выражений, которые можно рассматривать как частный случай малого множества из двух элементов. Надо выяснить, реализована ли у нас поддержка малых множеств на стороне бэка?

Вывод

  1. Пока не трогаем бэк. Анализируем все возможные варианты.
  2. Для вывода чисел/дат на экран сначала применяем формат, определённый на уровне грида/отчета, а если он не задан, то дефолтные настройки операционной системы.
  3. При создании атрибутов, экранные элементы для задания форматов пока оставим, но никак не будем их учитывать при формировании запросов на бэк.

gsbelarus avatar Aug 08 '19 11:08 gsbelarus