ЭЛЕМЕНТЫ ШАБЛОНОВ
Элементы шаблонов предлагают формат масок для просмотра и/или редактирования переменных. Элементы шаблонов можно использовать как параметры для описания переменных типа STRING, ENTRY, или STRING OPTION в SCREEN-структурах; как параметры операторов STRING в REPORT-структурах; как параметры некоторых процедур и функций Клариона; или, как параметры описаний STRING, CSTRING и PSTRING. Есть семь типов элементов шаблонов: числовые и валюта, научная нотация, дата, время, образец, key-in template и строки.
Шаблоны
чисел и валюты
@N[валюта][знак][заполнение]размер[группирование][места][валюта][знак][B]
@N | Все шаблоны чисел и валюты начинаются с @N. |
валюта | Либо знак доллара ($) либо строковая константа, заключенная в тильды (~). Если есть признак знака и нет признака заполнения, то символ валюты будет "плавать" возле старшей левой цифры. Если же есть признак заполнения, то символ валюты остается в крайней левой позиции. Если символ валюты стоит после размера и группирования, то он будет располагаться в конце показываемого числа. |
знак | Задает формат вывода отрицательных чисел. Если тире стоит перед ЗАПОЛНЕНИЕМ и РАЗМЕРом, то отрицательные числа будут выводиться с ведущим знаком "минус". Если же тире идет после РАЗМЕРа, ГРУППИРОВАНИя, places, и ВАЛЮТы, то числа будут выводиться с хвостовым минусом. Если в обоих позициях, предназначенных для ЗНАКа стоят скобки, то отрицательные числа будут выводиться без минуса, но заключенными в скобки. |
заполнение | Указывает вид ведущих нулей нули, пробелы или звездочки (*). Если ЗАПОЛНЕНИЕ опущено, то ведущие пробелы подавляются. 0 Ведущие нули выводятся, ГРУППИРОВАНИЕ подавлено Вместо нулей пробелы, ГРУППИРОВАНИЕ подавлено * Вместо ведущих нулей выводятся звездочки |
размер | РАЗМЕР требуется, чтобы указать общее число значащих цифр для вывода, включая количество цифр в признаке МЕСТА и всех символов форматирования. |
группирование | Признак ГРУППИРОВАНИЯ (кроме запятой, которая принимается по умолчанию) может быть помещен справа от РАЗМЕРА, для указания разделитель групп из трех цифр. |
. | Порождает точки |
- | Порождает тире |
_ | Порождает пробелы (НЕ подчеркивания!) |
места |
Задает символ десятичного разделителя и число цифр в дробной части. Число цифр в дробной части должно быть меньше, чем РАЗМЕР. Десятичным разделителем может быть точка (.), слабое ударение ('), или буква "v" (только для описания формата хранения STRING-полей, а не для вывода). . Точка порождает точку как десятичный разделитель ` Слабое ударение порождает запятую как десятичный разделитель. v НЕ порождает десятичный разделитель (только для хранения STRING-полей) |
B | Если значение нулевое, то число выводится в виде пробелов. |
Элементы шаблонов чисел и валюты форматируют числа для вывода на экран или в отчет. Если значение больше, чем можно вывести в текущем шаблоне, такое значение выводится в виде строки из звездочек.
Пример:
Число | Результат | Формат |
@N9 | 4,550,000 | Девять цифр, группирование запятыми (по умолчанию) |
@N_9B | 4550000 | Девять цифр, без группирования, ведущие нули выводятся как пробелы |
@N09 | 004550000 | Девять цифр, ведущие нули выводятся |
@N*9 | ***45,000 | Девять цифр, заполнение звездочками, группирование запятыми |
@N9_ | 4 550 000 | Девять цифр, группирование пробелами |
@N9. | 4.550.000 | Девять цифр, группирование точками |
Десятич. дробь |
Результат | Формат |
@N9.2 | 4,550.75 | Две цифры в дробной части, десятичный разделитель - точка |
@N_9.2B | 4550.75 | То же, без группирования, если ноль, то выводится строка пробелов. |
@N_9'2 | 4550,75 | Две цифры в дробной части, десятичный разделитель запятая |
@N9.'2 | 4.550,75 | Десятичный разделитель запятая, группирование точками |
@N9_'2 | 4 550,75 | Десятичный разделитель запятая, группирование пробелами |
Со знаком | Результат | Формат |
@N-9.2B | 2,347.25 | Ведущий минус, если ноль, то вывести пустую строку |
@N9.2- | 2,347.25- | Хвостовой минус |
@N(10.2) | (2,347.25) | Вывести в скобках, если отрицательное |
Знак доллара |
Результат | Формат |
@N$9.2B | $2,347.25 | Ведущий знак доллара, вывести пустую строку, если ноль |
@N$10.2- | $2,347.25- | Ведущий знак доллара, хвостовой минус, если отрицательное |
@N$(11.2) | $(2,347.25) | Ведущий знак доллара, вывести в скобках, если отрицательное |
Национальные валюты |
Результат | Формат |
@N12_'2~ F~ | 1 5430,50 F | Франция |
@N~L. ~12' | L.1.430.050 | Италия |
@N~L~12.2 | L1,240.50 | Великобритания |
@N~kr~12'2 | kr1.430,50 | Норвегия |
@N~DM~12'2 | DM1.430,50 | Германия |
@N12_'2~ mk~ | 1 430,50 mk | Финляндия |
@N12'2~ kr~ | 1,430.50 kr | Швеция |
Только хранение
Шаблоны:
Variablel STRING(@N_6v2) !Шесть байт хранятся БЕЗ десятич-
!ного разделителя
CODE
Variablel="1234.56" !Храним в виде '123456'
SHOW(1,1,Variablel,@N_7.2)
!Выводим с десятичн. точкой: '1234.56'