# Field types

> Overview of IS Tools field types: Text, Number, Date, Note, Checkbox, Relation, Multi-value, Drop-down, File, Date time, Link, and system-defined fields.

[Application configuration](application_configuration.md) > [Data model editor](data_model_editor.md) > [Fields](fields.md) > Field types

The available types of fields are:

## Text

Can store a single line of text, up to 1000 characters in length. The contents are stored in UTF-8 format, and therefore allow the entire Unicode character set to be used. However, the font used to display the text in the web browser of the client computer must contain the corresponding characters, in order for the text to be displayed properly. This is generally true of operating systems like Windows Vista and Windows 7. The client computer must also have the correct IME (Input Method Editor) installed, for the user to be able to type text in a given script or character set. For instance, typing in non-Latin scripts (e.g., Chinese or Japanese) on English versions of the Windows operating systems typically requires the installation of the corresponding IME.

> **Note:**
> 
> If a text containing line breaks or carriage returns is pasted into a text box, the text is truncated at the first line break/carriage return.

## Number

Stores a single numeric value, as an integer or decimal value. It accepts up to 11 digits (including separators). Decimal numbers are automatically rounded up to 3 digits, i.e., if you enter 3.141592653, the field will display 3.142 instead, but if you enter 3.9999, it’ll be displayed as 4. Note that this is a visual improvement: the full number is still available in edit mode and when being copied or exported.  
The thousand and decimal separators are also set in an automatic way, according to your [language](user_settings.md#language) (unless a specific [Number format](number_format.md) is set):

-   Grouping spaces are removed.

-   If both "," and "." separators exist, the last separator is the decimal and all earlier separators will be grouping.

-   If only one separator exists:

    -   If it appears more than once, then all will be grouping.

    -   Otherwise:

        -   If the locale uses decimal "," (e.g., sv‑SE), a single comma is treated as decimal.

        -   If the locale uses decimal "." (e.g., en‑US), a single dot is treated as decimal.

        -   For the other separator, a 3‑digit‑after heuristic is used to decide grouping vs decimal.

## Date

Stores a date value. The format of the date is determined by the mask set by the current user in the [User settings](user_settings.md) form. Entered dates (i.e., on forms and via imports) that are earlier than January 1, 1900 will be converted as text when displayed in reports due to the Excel limitation on the date system.

## Note

Stores a single- or multi-line text with a maximum length of 4,000 characters. The restrictions for the **Text** type also apply to **Note**. In a form, this field can be temporarily extended in size by dragging its bottom-right corner. Supports [Markdown](markdown.md) if the **Display as formatted text** property is set in [Form designer](form_designer.md).

## Checkbox

Its only possible values are checked (logical _True_) or unchecked (logical _False_).

## Relation

This data type is used to create a [forward relation](tables.md#_relations_between_tables) (relation many-to-one) between records of tables (from the table where this field is created, pointing to a target table). In a form, this field type is displayed similarly as a drop-down, containing a list of the record names of the **Parent table**. The list of records shown in this field may be [filtered](form_designer/set_a_fixed_filter_to_a_section.md) and [displayed with additional field values](form_designer/display_field_values_in_the_selector_relation_fields_on_sections.md) by the administrator during the configuration of forms.

## Multi-value

This is a container of multiple fields of the same type, as a result of setting up a [many-to-many relationship](many_to_many_relationship.md) or [one-to-many relationship](one_to_many_relationship.md), e.g., a list of child records can be displayed here. Be aware that clicking the X icons next to these values will delete their records.

> **Tip:**
> 
> Use the Multi-value with **File** field as the source to upload multiple files at once, where every file will be automatically related to new child records.

## Drop-down

This data type has an associated list of possible values. Its content is manually entered by the application administrator.

## File

This provides the framework for associating a file with this field, storing up to 500 MB. Click to download the content.

If S3 storage is used, and the Show file history property in Form designer is checked, the File field will have the functionality to pop up a **File history** log where users can download previously uploaded versions of the file. Ask our Support team if you are unsure about the type of storage your application has.

Note that the content of a File field can also be downloaded from a link that can be shared with members of the application (e.g., via [e-mail](set_actions/send_a_mail.md), [notification](set_actions/send_a_notification.md) or [SMS](set_actions/send_an_sms.md)), provided they have the appropriate access rights. There are two ways to obtain this link:

1.  Use the following syntax,

    ```
    https://{server}/istools/apps/{appId}/tables/{tableId}/records/{recordId}/fielddata/{fieldId}
    ```

    where the parameters can be found as follows:

    -   The _server_ and _appId_ can be seen in the URL of any open application form.

    -   The _tableId_ and _fieldId_ can be seen in [Tables](tables.md) and [Fields](fields.md), respectively, in the Data model editor.

    -   The _recordId_ can be obtained via [IQL in Forms](iql_in_forms.md) (e.g., with `set @var = recordId` on **Run on select**, or with `set :caption = RecordId` on **Behavior** of a Label in a section).

2.  Temporarily place a [Media](form_designer_components.md#_media) component associated with the File field in question in any desired form. Open the form, right-click the Media component, and click **Copy link address**. Paste this link exactly as is, for example:

    ```
    https://swe02.istools.com/istools/apps/1801/tables/1/records/100551/fielddata/100500
    ```

## Date time

In addition to a date value, this data type also allows storing of a time value. Note that the IS Tools platform does not allow a time value alone (without an associated date value) to be stored. The format of the date time is determined by the mask set by the current user in the [User settings](user_settings.md) form.

## Link

This type stores a link to a network or Internet resource, e.g., a link to a web page _[http://www.istools.com](http://www.istools.com)_. The _http://_ protocol is implied if no other protocol is specified followed by colon and double slash, e.g., _ftp://_, and no validation is performed on spaces or special characters. In both cases, a single line of text up to 300 characters in length can be stored (including the implicit _http:// protocol_ of the latter case). Note also that the system does not verify whether the resources pointed to by Link fields actually exist or are accessible.

## System defined fields

IS Tools also contains a set of fields that are automatically stored and maintained by the system, and most of them can be added while configuring the application forms and reports:

-   **Record created date**. Stores the **Date** where the current record was created (either by imports or by the **Create new** button in forms).

-   **Record created time**. Similar to the field above, but it also registers the time.

-   **Record updated date**. Stores the **Date** where the current record was last updated (either by imports or by the **Save** button in forms).

-   **Record updated time**. Similar to the one above, but also registering the time.

-   **Record created username**. Of type **Text**, stores the user account who created the record.

-   **Record created real name**. Of type **Text**, stores the full name of the user who created the record.

-   **Record updated username**. Of type **Text**, stores the account of the user who last updated the record.

-   **Record updated real name**. Of type **Text**, stores the full name of the user who last updated the record.

-   **Record name**. Of type **Text**, this is the name given by the user or a generated series, depending on the properties set in **Details** of the table in the [Data model editor](tables.md#record_name_policy).

-   **Record ID**. Of type **Number**, this is the identifier number given by the system.

-   **Record group**. Of type **Drop-down**, this is the [default group](tables.md#default_record_group) defined for the table. Otherwise, it is [set by the user on the form](application_forms.md#save_record_group).

-   **Table**, to which the record belongs. Of type **Drop-down**.

> **Note:**
> 
> Some of the system defined fields can be used as functions in [IQL](iql.md) for forms and for rules.
