Формат отображения поля Назад В начало Вперед

Формат отображения поля заключается в квадратные скобки и состоит из указания точности и /или строки формата вывода. Точность может указываться статически или динамически.

<формат-поля> = [
  [ <статическая-точность> | <динамическая-точность> ]
  [, <формат>]  ]

<статическая-точность> - ширина колонки в символах в виде P.N, где P - общее количество символов, N - количество символов для дробной части. По умолчанию используется значение размера поля, заданного при описании логической таблицы.

<динамическая-точность> - идентификатор группы точности:

double1 : [prec1], noProtect;

Этому идентификатору ставится в соответствие число знаков после запятой (точность). Для задания точности служит функция SetPrecisionGroup.

Для получения текущего значения сделана функция GetPrecisionGroup.

Если Вы задали для поля группу точности, а функцию SetPrecisionGroup не вызвали, поле будет иметь только целую часть.

<формат> - формат поля. Описание форматов для чисел, дат и времени приведено в приложении "Строка формата для функций преобразования". По умолчанию берется для даты "DD/MM/YY" для времени "HH/MM/SS/SSS".

Для числовых полей при наличии формата и отсутствии в нем опции округления сделано автоматическое округление в браузере и скрине с выдачей соответствующего предупреждения. Для принудительного подавления округления необходимо в формат добавить опцию '\i':

У неактивной строки ввода можно задать формат с использованием символов "@" и "&". На месте этих символов вставляются символы исходной строки. Прочие символы при выводе строки отображаются как есть, а при вводе строки пропускаются. Причем при использовании символов "@" связывание идет слева на право, а при использовании символов "&" - справа налево.

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

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

Если класс точности меньше чем заданное в формате количество знаков дробной части, то последние знаки из формата откидываются. Например, если задан формат "...~888888р", то при классе точности 3 получим "...~888р", при 2 - "...~88р", при 0 - "...р".

Если класс точности больше, чем заданное в формате количество знаков дробной части, то к последнему символу дробной части добавляется нужное количество символов, причём, добавляется тот же последний символ. Например, если задан формат "...~88р", а класс точности 4, получим "...~8888р", если формат "...~99р", класс точности 4, получим "...~9999р".

Если в формате символы дробной части не присутствуют, вставляется 8 после разделителя.

Если в формате нет разделителя - вставляется разделитель по умолчанию и 8 после последней цифры целой части.

В параметрах cfg-файла в секции Common имеется параметр DefaultFormat типа string. Этот параметр задает формат, который будет установлен во всех полях интерфейса, отображающих вещественные числа (типы double и single), у которых не задан формат отображения ни разработчиком (напрямую или через API конфигуратора), ни пользователем (конфигурированием интерфейса).

Примеры

[14, 'DD/MM/YYYY'] - с заданием размера и формата для даты.

[, 'HH/MM'] - с заданием формата для времени.

[, '@@@.@@.@'] - строка "abcde" отображается "abc.de".

[, '&&&.&&.&'] - строка "abcde" отображается "ab.cd.e".

[, '667.88'] - число 10.8888 отображается как 10.89.

[, '667.88\i'] - число 10.8888 отображается как 10.88.

[12], protect, skip

При установленной группе точности:

SetPrecisionGroup ('testPrec', 5);

В зависимости от формата поля число 55.555 будет отображено следующим образом:

[testPrec, '\2p666^88'] = 55.55500
[testPrec, '\2p666~88'] = 55.55500
[testPrec, '\2p666^99'] = 55.555
[testPrec, '\2p666~99'] = 55.555
[testPrec, '\0p666^'  ] = 55.55500
[testPrec, '\0p666~'  ] = 55.55500
[testPrec, '\0p666'   ] = 55.55500
[testPrec, '\0p666'   ] = 55.55500
[testPrec, '\2p666~89'] = 55.555

При установленном

DefaultFormat='\2p[|-]366`666`666`666`666.88'

Число 1234567855.55555555 будет отображено:

[testPrec] = 1`234`567`855.55600
[16.3] = 1`234`567`855.556

Версия

Начиная с Атлантис 3.03.22, Атлантис 5.1.36 при наличии класса точности и строки формата отображения поля приоритет имеет класс точности.