Number Formatting
XML Publisher
supports two methods for specifying the number format:
·
Microsoft Word’s Native
number format mask.
Oracle’s
format-number function.
·
Native XSL format-number
function
Use only one of these
methods. If the number format mask is specified using both methods, the data
will be formatted twice, causing unexpected behavior. The group separator and
the number separator will be set at runtime based on the template locale. This
is applicable for both the Oracle format mask and the MS format mask.
To use the Oracle
format mask or the Microsoft format mask, the numbers in your data source must
be in a raw format, with no formatting applied (for example: 1000.00).
To format numeric values,
use Microsoft Word’s field formatting features available from the Text Form
Field Options dialog box. The following graphic displays an example:
To
apply a number format to a form field:
1. Open
the Form Field Options dialog box for the placeholder field.
2. Set
the Type to Number.
3. Select
the appropriate Number format from the list of options.
The
following table lists the supported Microsoft format mask definitions:
Symbol
|
Location
|
Meaning
|
0
|
Number
|
Digit. Each explicitly set
0 will appear, if no other number occupies the position.
Example:
Format mask: 00.0000
Data: 1.234
Display: 01.2340
|
#
|
Number
|
Digit. When set to #, only
the incoming data is displayed.
Example:
Format mask: ##.####
Data: 1.234
Display: 1.234
|
.
|
Number
|
Determines the position of
the decimal separator. The decimal separator symbol used will be determined
at runtime based on template locale.
For example:
Format mask: #,##0.00
Data: 1234.56
Display for English
locale: 1,234.56
Display for German locale:
1.234,56
|
,
|
Number
|
Determines the placement
of the grouping separator. The grouping separator symbol used will be
determined at runtime based on template locale.
For example:
Format mask: #,##0.00
Data: 1234.56
Display for English
locale: 1,234.56
Display for German locale:
1.234,56
|
-
|
Number
|
Determines placement of
minus sign for negative numbers.
|
E
|
Number
|
Separates mantissa and
exponent in a scientific notation.
Example:
0.###E+0 plus sign always
shown for positive numbers
0.###E-0 plus sign not
shown for positive numbers
|
;
|
Subpattern boundary
|
Separates positive and
negative subpatterns. See Note below.
|
%
|
Prefix or Suffix
|
Multiply by 100 and show
as percentage
|
’
|
Prefix or Suffix
|
Used to quote special
characters in a prefix or suffix.
|
Note:
Sub pattern boundary: A pattern contains a positive and negative sub pattern,
for example, "#,##0.00;(#,##0.00)". Each sub pattern has a prefix,
numeric part, and suffix. The negative sub pattern is optional. If absent, the
positive sub pattern prefixed with the localized minus sign ("-" in
most locales) is used as the negative sub pattern. That is, "0.00"
alone is equivalent to "0.00;-0.00". If there is an explicit negative
sub pattern, it serves only to specify the negative prefix and suffix. The number
of digits, minimal digits, and other characteristics are all the same as the
positive pattern. That means that "#,##0.0#;(#)" produces precisely
the same behavior as "#,##0.0#;(#,##0.0#)".
Example: -
Here we are using same RTF which we
had used in IF STATEMENT.
RTF looks
Now we are going to format the
number of Inv_Amt using the Microsoft Number format Mask which is shown below
for that give double click on Inv_Amt then we can see below window
In the above picture we can see there
is one option as Type change it to Number which is show below
From the above picture we can see there
is one option as Number format which
has some number formats which is shown below
Here we have to give default number
also which is shown below.
Select one of the above formats
according to our requirement. Here we are selecting third option which is shown
below
Click on ‘OK’
Now we
have to publish the report
Click on Template Builder => Preview =>
HTML/PDF/Excel/RTF (any format).
We can get below output
From the above picture we can see the Number
format of the Invoice_Amount what
ever we had given in the Number format option.
To apply the Oracle format
mask to a form field:
1. Open
the Form Field Options dialog box for the placeholder field.
2. Set
the Type to "Regular text".
3. In
the Form Field Help Text field, enter the mask definition according to the
following example:
<?format-number:fieldname;’999G999D99’?>
where fieldname is the XML tag name of the data element you are formatting and
999G999D99 is the mask definition.
The following graphic shows an example Form Field Help Text dialog entry for
the data element "empno":
Example: -
Here also we are going to
take same RTF which we had taken in the IF
STATEMENT which is shown below
Just
give double click on Inv Amt then click on Add
Help Text there we have to give XML
format which is shown below
Click
on ‘OK’
Now we
have to publish the report
Click on Template Builder => Preview =>
HTML/PDF/Excel/RTF (any format).
We can get below output
From the above output we can
see that Invoice_Amount is formatted into a specified format which we had
mentioned in XML format.
The following table lists
the supported Oracle number format mask symbols and their definitions:
Symbol
|
Meanings
|
0
|
Digit. Each explicitly set
0 will appear, if no other number occupies the position. Example: Format
mask: 00.0000 Data: 1.234 Display: 01.2340
|
9
|
Digit. When set to 9, only
the incoming data is displayed. Example: Format mask: 99.9999 Data: 1.234
Display: 1.234
|
C
|
Returns the ISO currency
symbol in the specified position.
|
D
|
Determines the placement
of the decimal separator. The decimal separator symbol used will be
determined at runtime based on template locale. For example: Format mask:
9G999D99 Data: 1234.56 Display for English locale: 1,234.56 Display for
German locale: 1.234,56
|
EEEE
|
Returns a value in
scientific notation.
|
G
|
Determines the placement
of the grouping (thousands) separator. The grouping separator symbol used will
be determined at runtime based on template locale. For example: Format mask:
9G999D99 Data: 1234.56 Display for English locale: 1,234.56 Display for
German locale: 1.234,56
|
L
|
Returns the local currency
symbol in the specified position.
|
MI
|
Displays negative value
with a trailing "-".
|
PR
|
Displays negative value
enclosed by <>
|
PT
|
Displays negative value
enclosed by ()
|
S (before number)
|
Displays positive value
with a leading "+" and negative values with a leading "-"
|
S (after number)
|
Displays positive value
with a trailing "+" and negative value with a trailing
"-"
|