# 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 field 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 in a proper way. 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 on edition 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‑digits‑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](https://support.microsoft.com/en-us?correlationid=22ede289-4054-4c85-bc20-5e581f8954b0&ui=en-us&rs=en-us&ad=us) on date system.

## Note

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

## 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#%3Cem%3Erelations_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 similar as a drop-down, containing a list of the \_record names of the **Target** table (also known as "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.md#_display_field_values_in_the_record_selector_relation_fields_on_sections) by the administrator during configuration of form (valid only for [new generation of forms](application_forms.md)).

## Multi-value

This is a container of multiple fields of 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 crosses of these values will delete their records.

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

## 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 to this field, storing up to 500 MB. Click to download the content.

In case an 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 previous versions of the file uploaded can be downloaded. Ask our Support team if you have doubts 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 [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 opened 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 form you like. Open the form, right-click on the Media, 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 the storage 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 made regarding 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 contains as well a set of fields that are automatically stored and maintained by the system. They are known as **System defined fields** and most of them can be added while configuring 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 one above, but also registering 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 account of the user 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 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 to. Of type **Drop-down**.

> **Note:**
> 
> Some of the system defined fields can be used as functions in IQL for forms and for rules.
