закрыть
Создание шаблона
 

Данные можно отображать не только "как есть", но и "как надо", для чего используются специальные форматы отображения. В данном генераторе отчетов можно использовать форматы отображения языка программирования "Си", формат встроенного языка программирования "СП Бухгалтерия", а также ряд дополнительных форматов, разработанных специально для данного генератора.

Внимание - при вводе формата следует учитывать регистр букв. Т.е. имеет принципиальное значение большие или маленькие буквы. Это единственное место в данном генераторе отчетов, где учитывается регистр букв. В остальных местах регистр букв значения не имеет.

В самом общем виде формат отображения также имеет свой формат:

%[flags] [width] [.precision] [{h | l | I64 | L}]type

Т.е. если использовать формат отображения, то обязательным для использования является смвол "%" и единственная буква, отображающая тип данных (type), например %f Все другие части контролируют другие аспекты формата отображения, такие как:

flags - символ или набор символов, которые управляют выравниванием, отображением знака, фактом отображения ведущих нулей. Допустимо использовать комбинацию флагов

width - минимальное количество отображаемых символов.

.precision - максимальное количество отображаемых символов всего или части значения, или минимальное значение для целочисленных типов данных

{h | l | I64 | L} - это опции определяющие максимально допустимые размерности для некоторых типов полей

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

Форматы отображения языка программирования "Си" представлены на дополнительном файле Format.rtf. Здесь будет рассмотрена только наиболее общеупотребительная часть значений указанных флагов этого языка

Некоторые значения опции type и что именно у них ограничивает опция .precision

Обозначение Тип Влияние .precision(т.е. число после точки в выражении формата)
d Целое Минимальное количество знаков. Недостающее добавляется слева нулями. Не ограничивает число, если количество знаков больше указанного
X Целое в 16-ричном формате Минимальное количество знаков. Недостающее добавляется слева нулями. Не ограничивает число, если количество знаков больше указанного
f Дробное Максимальное количество знаков после запятой. Недостающее добавляется справа нулями. Если количество знаков после запятой больше указанного, то лишнее отбрасывается.
s Символьная Максимальное количество печатаемых знаков. Если количество знаков в символьной строке больше указанного, то лишнее отбрасывается.

Некоторые значения опции Flags

Значение Описание
- Выравнивание значения по левому краю. По умолчанию (т.е. если знак "минус" не указан) выравнивание происходит по правому краю
+ Всегда отображать знак числового значения. По умолчанию (т.е. если знак "плюс" не указан) знак отображается только у отрицательных чисел
0 Если количество знаков в числе меньше, чем указано в опции width, то недостающее количество знаков отображается в виде ведущих нулей. По умолчанию (т.е. если знак "ноль" не указан), то недостающее количество символов ничем не дополняется. Данный символ игнорируется в комбинации со знаком "минус" (т.е. при выравнивании по левому краю) и при отображении целочисленных типов данных
Пробел В данном генераторе отчетов наличие пробела указывает на то, что нулевые значения печатать не надо.

Примеры использования форматов данных в данном генераторе отчета. Следует заметить, что в примерах использованы ряд специфических форматов разработанных специально для данного генератора отчетов. Такие форматы помечены символом "*"

Пример   Описание
Число с дробной частью.
По умолчанию, такие числа отображаются с 2 знаками после запятой, при этом нулевые значения вообще не отображаются.
[%.2f:Platezh]   Отобразить только 2 знака после запятой не ограничивая количество знаков в целой части. При этом нулевые значения обязательно отображать.
[% .2f:Platezh] * В отличии от предыдущего варианта, между символом "%" и точкой стоит пробел. Отобразить только 2 знака после запятой не ограничивая количество знаков в целой части. При этом нулевые значения не отображать.
[%.0f:Platezh]   Отобразить только целую часть числа (ноль знаков после запятой) не ограничивая количество знаков в целой части. При этом нулевые значения обязательно отображать.
[%.2f руб:Platezh]   Отобразить только 2 знака после запятой не ограничивая количество знаков в целой части. При этом нулевые значения обязательно отображать, а после числа добавить слово " руб". В приципе, того же самого результата можно добиться используя следующий формат вывода [%.2f:Platezh] руб
[%5.2f:Platezh]   Отобразить только 2 знака после запятой при этом общее количество отображаемых знаков (включая запятую) не должно быть меньше 5. Т.е. значения больше 99.99 благополучно отобразятся, а если количество знаков меньше 5, то недостающее будет дополнено ведущими пробелами (слева). Целую часть в значении формата можно использовать для выравнивания числовых данных при шрифте Courier. Например, формат [%20.2f:Platezh] означает, что под число отводится минимум 20 символов, причем недостающее будет дополнено пробелами слева, т.е. выравнивание по правому краю.
[%05.2f:Platezh]   Отобразить только 2 знака после запятой при этом общее количество отображаемых знаков (включая запятую) не должно быть меньше 5. Т.е. значения больше 99.99 благополучно отобразятся, а если количество знаков меньше 5, то недостающее будет дополнено не пробелами, как в предыдущем случае, а ведущими нулями. Напимер, число 1.2 будет отображено как 01.20
[%-5.2f:Platezh]   Отобразить только 2 знака после запятой при этом общее количество отображаемых знаков (включая запятую) не должно быть меньше 5. Т.е. значения больше 99.99 благополучно отобразятся, а если количество знаков меньше 5, то недостающее будет дополнено пробелами справа.
[%SP:Platezh] * Отобразить указанную сумму прописью (словами) на русском языке. Т.е. вместо числа 5.25 будет выведено "Пять рублей 25 копеек"
[%SPU:Platezh] * Отобразить указанную сумму прописью (словами) на украинском языке. Т.е. вместо числа 5.25 будет выведено "П'ять грiвней 25 копiйок"
Целое число.
По умолчанию, такие числа отображаются "как есть". Т.е. как целое число. Однако при использовании в выражениях результат выражения всегда отображается как Double
[%d:Amount]   Отобразить "как есть". Т.е. как целое число
[%+d:Amount]   Отобразить знак перед числом, даже если число положительное. Например, при значении Amount=10 будет отображено +10
[%.10d:Amount]   Если количество знаков в числе меньше 10, то недостающее дополнить слева нулями
[%010d:Amount]   Если количество знаков в числе меньше 10, то недостающее дополнить слева нулями. Абсолютный аналог предыдущей записи, только формат записан немного по другому
[%XH:Amount]   Отобразить значение Amount в 16-ричной системе исчисления, дописав справа символ "Н". Например, при значении Amount=123 отобразится значени 7BH
Символьное.
По умолчанию, у символьных данных отбрасываются ведущие и концевые пробелы.
[%s:Text]   Отобразить текстовую строку "как есть" с ведущими и концевыми пробелами (если есть)
[%.14s:Text]   Отобразить только первые 14 символов текстовой строки, а остальные отбросить
[%60.14s:Text]   Отобразить только первые 14 символов текстовой строки, а остальные отбросить. После чего дополнить полученный результат до 60 символов пробелами слева (т.е. сделать "выравнивание" по правому краю)
Дата и время
По умолчанию, поля типа Date отображаются в формате ДД.ММ.ГГГГ. т.е. например 31.12.2001. К отображению даты и времени относятся также некоторые зарезервированные слова.
[%dt:Date] * Отобразить дату в формате ДД.ММ.ГГГГ т.е. например 31.12.2001
[%dt2:Date] * Отобразить дату в формате ДД.ММ.ГГ т.е. например 31.12.01
[%dts:Date] * Отобразить дату в виде строки, т.е. например "31 декабря 2001 г"
[%tm:Amount] * Исходя из предположение, что имеющееся целочисленное значение - это количество минут отобразить это число как время. Например, при значении Amount=345 отобразится 05:45
Логическое
По умолчанию, если логическое поле имеет значени "Истина", то оно отображается в виде символа звездочки "*", если "Ложь", то никак не отображается
[%lg1:Flag] * "Истина" отображается как слово "Да", а "Ложь" как слово "Нет"
[%lg2:Flag] * "Истина" отображается как символ "+", а "Ложь" как символ "-"