# FieldAttributes

Sets the formatting of a field. The properties of *qFieldAttributes* and the formatting mechanism are described below.

### Formatting mechanism

The formatting mechanism depends on the type set in *qType,* as shown below:

Information note

In case of inconsistencies between the type and the format pattern, the format pattern takes precedence over the type.

### Type is DATE, TIME, TIMESTAMP or INTERVAL

The following applies:

* If a format pattern is defined in *qFmt* , the formatting is as defined in *qFmt* .
* If *qFmt* is empty, the formatting is defined by the number interpretation variables included at the top of the script ( *TimeFormat* , *DateFormat* , *TimeStampFormat* ).
* The properties *qDec* , *qThou* , *qnDec* , *qUseThou* are not used.

### Type is INTEGER

The following applies:

* If a format pattern is defined in *qFmt* , the engine looks at the values set in *qDec* and *qThou* . If these properties are not defined, the formatting mechanism uses the number interpretation variables included at the top of the script ( *DecimalSep* and *ThousandSep* ).
* If no format pattern is defined in *qFmt* , no formatting is applied. The properties *qDec* , *qThou* , *qnDec* , *qUseThou* and the number interpretation variables defined in the script are not used .

### Type is REAL

The following applies:

* If a format pattern is defined in *qFmt* , the engine looks at the values set in *qDec* and *qThou* . If these properties are not defined, the engine uses the number interpretation variables included at the top of the script ( *DecimalSep* and *ThousandSep* ).
* If no format pattern is defined in *qFmt* , and if the value is almost an integer value (for example, 14,000012), the value is formatted as an integer. The properties *qDec* , *qThou* , *qnDec* , *qUseThou* are not used.
* If no format pattern is defined in *qFmt* , and if *qnDec* is defined and not 0, the property *qDec* is used. If *qDec* is not defined, the variable *DecimalSep* defined at the top of the script is used.
* If no format pattern is defined in *qFmt* , and if *qnDec* is 0, the number of decimals is 14 and the property *qDec* is used. If *qDec* is not defined, the variable *DecimalSep* defined at the top of the script is used.

### Type is FIX

The following applies:

* If a format pattern is defined in *qFmt* , the engine looks at the values set in *qDec* and *qThou* . If these properties are not defined, the engine uses the number interpretation variables included at the top of the script ( *DecimalSep* and *ThousandSep* ).
* If no format pattern is defined in *qFmt* , the properties *qDec* and *qnDec* are used. If *qDec* is not defined, the variable *DecimalSep* defined at the top of the script is used.

### Type is MONEY

The following applies:

* If a format pattern is defined in *qFmt* , the engine looks at the values set in *qDec* and *qThou* . If these properties are not defined, the engine uses the number interpretation variables included at the top of any script ( *MoneyDecimalSep* and *MoneyThousandSep* ).
* If no format pattern is defined in *qFmt* , the engine uses the number interpretation variables included at the top of the script ( *MoneyDecimalSep* and *MoneyThousandSep* ).

### Type is ASCII

No formatting, *qFmt* is ignored.

## Properties

| Name | Description | Type |
| --- | --- | --- |
| qType | Type of the field.<br>Default is U.<br><br>One of:<br><br><ul><li>U or UNKNOWN</li><li>A or ASCII</li><li>I or INTEGER</li><li>R or REAL</li><li>F or FIX</li><li>M or MONEY</li><li>D or DATE</li><li>T or TIME</li><li>TS or TIMESTAMP</li><li>IV or INTERVAL</li></ul> | String |
| qnDec | Number of decimals.<br>Default is 10. | Integer |
| qUseThou | Defines whether or not a thousands separator must be used.<br>Default is 0. | Integer |
| qFmt | Defines the format pattern that applies to *qText* .<br>Is used in connection to the type of the field (parameter **qType** ).<br>For more information, see *Formatting mechanism*.<br>Example: *YYYY-MM-DD* for a date. | String |
| qDec | Defines the decimal separator.<br>Example: **.** | String |
| qThou | Defines the thousand separator (if any).<br>Is used if **qUseThou** is set to 1.<br>Example: **,** | String |