- Default input and display mask
- In a window or page
- In a report
- Custom input masks
- Currency controls
- Differences between the Numeric type and the Currency type
- Currency + Euro control
The Numeric or Currency control: Input or display masks
WINDEV, WINDEV Mobile and WEBDEV propose two types of masks:
- the input masks that define the characters that can be typed in the controls found in a window or in a page. Sometimes, these masks can also be used to modify the case (uppercase/lowercase characters) of the values assigned to the window controls or to the page controls by programming.
- the display masks that define the characters that can be printed in the controls found in a report.
Default input and display mask
In a window or page
By default, the input mask corresponds to the one defined for the project: the details defined in the parameters for managing the numeric controls, the currencies, ... for the project are automatically taken into account.
Reminder: These parameters are defined for each language in the "Languages" tab of project description: on the "Project" pane, in the "Project" group, click "Description".
In a report
By default, the input mask:
- 999 999,99 is associated with a numeric control.
- +99 999 999,99 is associated with a Currency control.
- +999 999,99 $ is associated with a Currency + Euro control.
For the Numeric and Currency controls, the input/display masks are defined by the following characters:
- '9': digit,
- '.': dot,
- ',': comma,
- '+': plus sign (to allow the signed numbers),
- '-': minus sign used at the end of string to display the negative numbers. To display the "-" sign at the end of string no matter whether the number is positive or negative, specify "--".
- ' ': space,
- '0': on the left of the mask, in order for the number to be automatically filled with zeros (on the left),
- '%': percentage. The value displayed (assigned by programming for example) is multiplied by 100 and the % symbol is displayed.
To display the % symbol without multiplying by 100, all you have to do is double the % symbol (for example: "99.99%%").
Important: in the earlier version of WINDEV 9, WEBDEV 9 or WINDEV Mobile 9 (version 90028 or earlier), if you were using the % character in your input masks, this one is automatically doubled for compatibility reasons.
Mask 99.99%, value entered: 19.6, value displayed: 19,6%, valued handled by programming: 0,196.
Mask 99.99%%, value entered: 19.6, value displayed: 19,6%, valued handled by programming: 19.6.
- '()': brackets, to display negative numbers.
Advanced custom format: You also have the ability to define:
- the format of positive numbers
- the format of negative numbers
- the value if 0
- the value if NULL
The format of this type of input/display mask is as follows:
<Format of positive numbers>;<Format of negative numbers>;<Value if 0>;<Value if NULL>
You can specify a color using [<Color>] next to the desired mask. <Color> can correspond to:
- one of the following constants: Red, Green, Blue, Black, White, Yellow, Orange
- an hexadecimal value in "#BBGGRR" format.
- The '09.999, 99' mask will return a result in the following format '02.458.35'.
- Use the "999 999,000" mask to display "0" in an empty control instead of "0,0000".
- The '999 999-' mask will return a result in the following format '1 234-'.
- The '(999 999)' mask will display "(1 234)" and "1 234".
- The '999 999;-999 999[Red];0;<NULL>' mask displays '-1 234' in red.
The display masks take into account the decimal separator, the thousand separator and the currency symbol defined for the language (in the Windows parameters). In programming, regardless of the current language:
- the space (' ') is replaced by the thousand separator
- the comma (',') is replaced by the decimal separator
- the dollar ("$") is replaced by the currency symbol ($$ allows you to avoid this substitution).
Differences between the Numeric type and the Currency type
The masks proposed for the Currency controls have the same type as the numeric masks. The difference is found in the precision: the currencies have 17 significant digits for the integer part and up to 6 digits for the decimal part.
Currency + Euro control
The dollar character ("$") can be added into the mask to display:
- the ' ' symbol if the current currency is the Euro.
- the caption of the currency (defined in the exchange table by eInitCurrency) if the currency differs from the Euro.
For example: The '999,99 $' mask will display '250,25
' if the current currency is the Euro and '250,25 GBP' if the current currency is the Pound Sterling.
Remark: "$$" allows you to force the use of the symbol $.
- The "++++" value will be displayed in the control if the following conditions are fulfilled:
For example, if the mask is '99.999' and if the value assigned by programming is '123456', the value "++++" will be displayed in the control.
- assignment by programming.
- number of digits in the integer part greater than the number of digits in the integer part of the mask.
- The decimal part will be rounded if the following conditions are fulfilled:
For example, if the mask is '99.999,99' and if the value assigned by programming is '12345,159', the value "12345,16" will be displayed in the control.
- assignment by programming.
- number of digits in the decimal part greater than the number of digits in the decimal part of the mask.
Unit examples (WINDEV): Advanced input mask
This page is also available for…