Возвращает символьную строку, полученную из исходного выражения, преобразованного в соответствие с указанными или стандартными правилами преобразования.
![]() |
---|
Использование функции TRANSFORM( ) для преобразования большого отрицательного числа, имеющего десятичные знаки может привести к неожиданным результатам, из-за числовых преобразований. Вместо данной функции в этих случаях рекомендуется использовать обычную функцию STR( ), для преобразования больших отрицательных чисел. |
TRANSFORM(eExpression, [cFormatCodes]) |
Параметры
- eExpression
-
Определяет некоторое выражение, которое требуется преобразовать в символьную строку по заданному или стандартному Формату.
- cFormatCodes
-
Определяет строку Правил преобразования.
![]() |
---|
В следующей таблице описаны допустимые форматные правила, используемые в данном параметре cFormatCodes. |
cFormatCodes | Краткое Описание | ||||||
---|---|---|---|---|---|---|---|
@B | Выровненные слева, числовые данные (без ведущих нулей и пробелов) | ||||||
@C | Добавляются символы "CR" (справа) для положительных чисел типа Currency / Numeric, обозначает Credit (Кредит). | ||||||
@D | Выполняет преобразование данных типа Date / DateTime, в соответствие с текущим форматом SET DATE.... | ||||||
@E | Выполняет преобразование данных типа Date / DateTime - BRITISH date format (дд/мм/гггг). | ||||||
@L | Заполняет числовые данные лидирующими нулями. | ||||||
@R | Выполняет преобразование по указанной Маске, или Шаблону. Символы шаблона могут не включаться в результирующую символьную строку. Данное преобразование используется только для символьных и числовых данных. Символы Шаблона могут состоять из:
| ||||||
@T |
Исключает лидирующие и замыкающие пробелы из результирующей символьной строки. | ||||||
@X | Добавляет символы "DB" (справа) для отрицательных чисел форматов currency / numeric, обозначает Debit (Дебит). | ||||||
@YL | Используется длинный формат для данных типа Date (с указанием Тысячелетия и Века: ГГГГ.мм.дд). | ||||||
@YS | Используется короткий формат для данных типа Date (без тысячелетия и века: ГГ.мм.дд). | ||||||
@Z | Если исходное выражение = 0, то оно преобразуется в пробел. |
||||||
@( |
Отрицательные числа форматов currency / numeric заключаются в круглые скобки. | ||||||
@^ |
Представляет данные типов currency / numeric в формат с "плавающей точкой" (-1.2300000E+2). | ||||||
@0 | Выполняет преобразование числовых данных в шестнадцатеричное представление (0xA1B5H8). Исходное выражение должно быть положительным и меньшим, чем 4,294,967,296. | ||||||
@! | Символы нижнего регистра преобразуются в верхний регистр. | ||||||
@$ | Добавляет для данных типа currency / numeric символ денежной единицы, который определяется системной командой SET CURRENCY. По-умолчанию, данный символ разиещается перед или сразу после преобразуемого выражения. Символы денежной единицы, разделители тысяч и символ десятичной точки могут быть изменены при помощи соответствующих системных команд: SET CURRENCY, SET SEPARATOR, SET POINT. | ||||||
X | Определяет ширину (длину) символьного выражения. Например, если cFormatCodes = 'XX', возвращается только 2 символа. | ||||||
Y | Преобразует логическое True (.T.) или False (.F.) соответственно в Y (Yes) / N (No). | ||||||
! |
Преобразует соответствующий символ строки в верхний регистр. | ||||||
. | Определяет местоположение десятичной точки в числовых данных. |
||||||
, |
Определяет местоположение разделителей триад (тысяч), слева от десятичной точки, для числовых данных. | ||||||
9 | Определяет ширину или длину строки, состоящей из цифр. Например, если cFormatCodes = '999.99', то в результирующей строке будет три цифры слева и две цифры справа от десятичной очки.
В следующем примере демонстрируется необходимость создание соответствующих форматов преобразования данных, и результаты отображения преобразованных данных числового типа (***.**).
В тех случаях, когда преобразуемое число не умещается в предложенных формат преобразования, система Visual FoxPro пытается разместить полученный результат в заданном формате по следующим правилам:
|
Дополнительную информацию смотрите в разделах: InputMask, свойство и Format, свойство.
Если параметр определения формата преобразования cFormatCodes отсутствует, Visual FoxPro пытается выполнить стандартные преобразования различных типов данных для исходного выражения eExpression. В следующей далее таблице подробно описываются Правила стандартных преобразований.
Тип Данных | Краткое описание Преобразования | ||||||||
---|---|---|---|---|---|---|---|---|---|
Blob | Результирующая строка имеет вид шестнадцатеричного представления двоичных данных, без специфического для таких случаев префикса (0х). Например, результатом может быть строка "FE0AF2":
Применяется для двоичных данных, TRANSFORM( ) игнорирует форматирующие коды, за исключением случаев определяющих ширину результата (длину). Например, для представленных примеров результатом будет строка "FE0A":
Для форматирующих кодов, определяющих ширину (длину) результирующей строки имеется ограничение в 255 символов. | ||||||||
Character |
Преобразование не выполняется (уже символьный тип данных). |
||||||||
Currency | Преобразование денежных единиц в соответствие с установками в закладке Regional, Options dialog box. | ||||||||
Date | Соответствует преобразованию функции DTOC( ) (по формату SET DATE...) . | ||||||||
DateTime |
Соответствует преобразованию функции TTOC( ), соответственно формату SET DATE.... | ||||||||
General |
Возвращает строку "Gen" для полей типа General, содержащих реальные графические объекты, или строку "gen" для пустых полей типа General (не содержащих графические объекты). | ||||||||
Logical |
Преобразует логические выражения True (.T.) и False (.F.) в соответствующие строки символов: ".T." и ".F." . | ||||||||
Memo |
Преобразование не выполняется (тип уже символьный). | ||||||||
Numeric (включая Double, Float, или Integer тип данных) | Исключает лидирующие нули и пробелы, а также завершающие нули, находящиеся справа от десятичной точки. Если исходное число является целым, то десятичная точка не указывается в результирующей строке. Например, число 4.0 преобразуется в строку "4" Если исходное число больше нуля, но меньше единицы, в результирующей строке появляется лидирующий ноль. Например, число .4 преобразуется в строку "0.4". | ||||||||
Object | Возвращается строка символов "(Object)". | ||||||||
Varbinary | Результирующая строка имеет вид шестнадцатеричного представления двоичных данных, без стандартного шестнадцатеричного префикса (0х). Например, результатом следующего далее преобразования будет символьная строка "FEOAF2":
Для двоичных данных функция TRANSFORM( ) игнорирует другие форматирующие коды, за исключением символов, определяющих ширину (длину) результирующей строки. Например, для следующих далее преобразований результатом будет строка символов: "FE0A":
|
Возвращаемое
значение
Символьного типа. TRANSFORM( ) возвращает символьную строку, полученную из исходного выражения по заданным или стандартным правилам преобразования.
Пример
![]() | |
---|---|
STORE 12.34 TO gnPrice |