The forms available in the iReForm application are defined in an XML file using the Apple plist (Property List) format and custom tags described in this section. The DocBrowser Document Distribution System server contains an iReForm module where the forms file easily can be edited online.
The form structure is based on Apple property list objects and consists of dictionary objects defining form sections.
A form section object consist of a dictionary object with the following basic elements:
The general information section must be enclosed with <dict></dict> tags and should contain the following fields:
<dict> <key>HEADER</key><string>This section should be filled out to qualify this approach as a Practice Autoland. Any such approach must also be stated in your Pilot Logbook.</string> <key>FOOTER</key><string>If autoland was unsuccessful following data must be submitted.</string> <key>CONDITIONAL</key><string>FIELD1=Yes,FIELD2=No</string> <key>COLLAPSIBLE</key><true/> <key>FIELDS</key><array> dictionary objects defining form fields </array> </dict>
A form section may contain any of the following field dictionary objects:
Each field object can be customized using various settings described below.
The TEXTINPUT field is used to collect short text data and can be restricted to only accept specified text formats.
The following keys can be used in a TEXTINPUT field dictionary object:
| ID | A unique string value to identify this field within the form. This ID should not contain any blank space nor consist only of a number. |
| TYPE | A string value defining the type of field: TEXTINPUT. |
| TITLE | A string value with the title/label associated with this field. |
| REQUIRED | A boolean <true/> or <false/>. True makes this field mandatory for the user to fill in and false makes it optional. |
| VALIDATION | An optional string value containing a regular expression used to validate the input in this field. Extensive information about regular expressions and its syntax is available on internet. A regular expression test environment can be found here. |
| CACHE | A boolean <true/> or <false/>. True stores all entries made by the user in this field. The stored previous entries are presented to the user when clicking a blue arrow next to this field allowing to quickly fill in commonly used information. |
| PLACEHOLDER | An optional string value containing a describing text that will be shown in the input field prior to any user entry. |
| CAPITALIZED | A boolean <true/> or <false/>. True capitalizes any input in this field. |
| INFO | An optional string value containing an explanatory text that will be shown if tapping on the title/label associated with this field. If an info text is available an “!” icon will be shown next to the field title/label. |
| CONDITIONAL | An optional string value containing a comma separated list of fields with corresponding values that must be fulfilled in order to display this field. e g with this condition defined <key>CONDITIONAL</key><string>FIELD1=Yes,FIELD2=No</string> this field will only be shown if the entry in a field with id FIELD1 equals to Yes or the entry in a field with id FIELD2 equals to No. |
A sample TEXTINPUT field dictionary object:
<dict> <key>ID</key><string>ACREG</string> <key>TYPE</key><string>TEXTINPUT</string> <key>TITLE</key><string>Aircraft Registration</string> <key>REQUIRED</key><true/> <key>VALIDATION</key><string>^([A-Z]{1,2})([\-]{1})([A-Z]{3,4})$</string> <key>CACHE</key><true/> <key>PLACEHOLDER</key><string>e g SE-RFR</string> <key>CAPITALIZED</key><true/> </dict>
The FREETEXTINPUT field is used to collect longer text data inputs.
The following keys can be used in a FREETEXTINPUT field dictionary object:
| ID | A unique string value to identify this field within the form. This ID should not contain any blank space nor consist only of a number. |
| TYPE | A string value defining the type of field: FREETEXTINPUT. |
| TITLE | A string value with the title/label associated with this field. |
| REQUIRED | A Boolean <true/> or <false/>. True makes this field mandatory for the user to fill in and false makes it optional. |
| SIZE | An optional integer value defining the vertical size of the freetext field. Default is 50 which equals about two rows of text. |
| INFO | An optional string value containing an explanatory text that will be shown if tapping on the title/label associated with this field. If an info text is available an “!” icon will be shown next to the field title/label. |
| CONDITIONAL | An optional string value containing a comma separated list of fields with corresponding values that must be fulfilled in order to display this field. e g with this condition defined <key>CONDITIONAL</key><string>FIELD1=Yes,FIELD2=No</string> this field will only be shown if the entry in a field with id FIELD1 equals to Yes or the entry in a field with id FIELD2 equals to No. |
A sample FREETEXTINPUT field dictionary object:
<dict> <key>ID</key><string>COMMENTS</string> <key>TYPE</key><string>FREETEXTINPUT</string> <key>TITLE</key><string>Comments</string> <key>REQUIRED</key><false/> <key>SIZE</key><integer>200</integer> </dict>
The DATEINPUT field is used to collect date information. By clicking the blue arrow button next to this field a date picker will be shown.
The following keys can be used in a DATEINPUT field dictionary object:
| ID | A unique string value to identify this field within the form. This ID should not contain any blank space nor consist only of a number. |
| TYPE | A string value defining the type of field: DATEINPUT. |
| TITLE | A string value with the title/label associated with this field. |
| REQUIRED | A boolean <true/> or <false/>. True makes this field mandatory for the user to fill in and false makes it optional. |
| PREPOPULATE | An optional boolean </false> will leave the field blank. Default is to prepopulate DATEINPUT fields with the current date. |
| MINDATE | A string value limiting date selection to dates at or after the given date. Minimum date can be either NOW wihich is the current day, a plain date string using the format set by the FORMAT tag or a +/- followed by an integer number of days to limit the selection to +/- days from the current day (e g +60, which limits the selection to minimum 60 days ahead of the current day). From iReForm v3.8.0 the minimum date can also be controlled by another DATEINPUT field by using the format FIELD:ID. This field will have the minimum date set to date of the field with the given ID. |
| MAXDATE | A string value limiting date selection to dates at or before the minimum date. Minimum date can be either NOW wihich is the current day, a plain date string using the format set by the FORMAT tag or a +/- followed by an integer number of days to limit the selection to +/- days from the current day (e g +60, which limits the selection to maximum 60 days ahead of the current day). From iReForm v3.8.0 the minimum date can also be controlled by another DATEINPUT field by using the format FIELD:ID. This field will have the maximum date set to date of the field with the given ID. |
| FORMAT | A string value with the desired date format used by the field. Valid date format codes can be found here. |
| INFO | An optional string value containing an explanatory text that will be shown if tapping on the title/label associated with this field. If an info text is available an “!” icon will be shown next to the field title/label. |
| CONDITIONAL | An optional string value containing a comma separated list of fields with corresponding values that must be fulfilled in order to display this field. e g with this condition defined <key>CONDITIONAL</key><string>FIELD1=Yes,FIELD2=No</string> this field will only be shown if the entry in a field with id FIELD1 equals to Yes or the entry in a field with id FIELD2 equals to No. |
A sample DATEINPUT field dictionary object:
<dict> <key>ID</key><string>DATE</string> <key>TYPE</key><string>DATEINPUT</string> <key>TITLE</key><string>Date</string> <key>REQUIRED</key><true/> <key>FORMAT</key><string>yyyy-MM-dd</string> </dict>
The TIMEINPUT field is used to collect time information. By clicking the blue arrow button next to this field a time picker will be shown.
The following keys can be used in a TIMEINPUT field dictionary object:
| ID | A unique string value to identify this field within the form. This ID should not contain any blank space nor consist only of a number. |
| TYPE | A string value defining the type of field: TIMEINPUT. |
| TITLE | A string value with the title/label associated with this field. |
| REQUIRED | A boolean <true/> or <false/>. True makes this field mandatory for the user to fill in and false makes it optional. |
| UTC | A boolean <true/> or <false/>. True makes this field default to current UTC time when selecting a time value. |
| INFO | An optional string value containing an explanatory text that will be shown if tapping on the title/label associated with this field. If an info text is available an “!” icon will be shown next to the field title/label. |
| CONDITIONAL | An optional string value containing a comma separated list of fields with corresponding values that must be fulfilled in order to display this field. e g with this condition defined <key>CONDITIONAL</key><string>FIELD1=Yes,FIELD2=No</string> this field will only be shown if the entry in a field with id FIELD1 equals to Yes or the entry in a field with id FIELD2 equals to No. |
A sample TIMEINPUT field dictionary object:
<dict> <key>ID</key><string>TIME</string> <key>TYPE</key><string>TIMEINPUT</string> <key>TITLE</key><string>Time</string> <key>REQUIRED</key><true/> <key>UTC</key><true/> </dict>
The INTEGERINPUT field is used to collect integer values between a given range.
The following keys can be used in an INTEGERINPUT field dictionary object:
| ID | A unique string value to identify this field within the form. This ID should not contain any blank space nor consist only of a number. |
| TYPE | A string value defining the type of field: INTEGERINPUT. |
| TITLE | A string value with the title/label associated with this field. |
| REQUIRED | A boolean <true/> or <false/>. True makes this field mandatory for the user to fill in and false makes it optional. |
| MAX | An integer value containing the maximum value accepted in this field. |
| MIN | An integer value containing the minimum value accepted in this field. |
| PLACEHOLDER | An optional string value containing a describing text that will be shown in the input field prior to any user entry. |
| CACHE | A boolean <true/> or <false/>. True stores all entries made by the user in this field. The stored previous entries are presented to the user when clicking a blue arrow next to this field allowing to quickly fill in common values. |
| INFO | An optional string value containing an explanatory text that will be shown if tapping on the title/label associated with this field. If an info text is available an “!” icon will be shown next to the field title/label. |
| CONDITIONAL | An optional string value containing a comma separated list of fields with corresponding values that must be fulfilled in order to display this field. e g with this condition defined <key>CONDITIONAL</key><string>FIELD1=Yes,FIELD2=No</string> this field will only be shown if the entry in a field with id FIELD1 equals to Yes or the entry in a field with id FIELD2 equals to No. |
A sample INTEGERINPUT field dictionary object:
<dict> <key>ID</key><string>WINDSPEED</string> <key>TYPE</key><string>INTEGERINPUT</string> <key>TITLE</key><string>Wind Speed</string> <key>REQUIRED</key><false/> <key>MAX</key><integer>99</integer> <key>MIN</key><integer>0</integer> <key>PLACEHOLDER</key><string>Knots</string> <key>CACHE</key><false/> </dict>
The FLOATINPUT field is used to collect any value between a given range.
The following keys can be used in an FLOATINPUT field dictionary object:
| ID | A unique string value to identify this field within the form. This ID should not contain any blank space nor consist only of a number. |
| TYPE | A string value defining the type of field: FLOATINPUT. |
| TITLE | A string value with the title/label associated with this field. |
| REQUIRED | A boolean <true/> or <false/>. True makes this field mandatory for the user to fill in and false makes it optional. |
| MAX | A value containing the maximum value accepted in this field. |
| MIN | A value containing the minimum value accepted in this field. |
| PLACEHOLDER | An optional string value containing a describing text that will be shown in the input field prior to any user entry. |
| CACHE | A boolean <true/> or <false/>. True stores all entries made by the user in this field. The stored previous entries are presented to the user when clicking a blue arrow next to this field allowing to quickly fill in common values. |
| INFO | An optional string value containing an explanatory text that will be shown if tapping on the title/label associated with this field. If an info text is available an “!” icon will be shown next to the field title/label. |
| CONDITIONAL | An optional string value containing a comma separated list of fields with corresponding values that must be fulfilled in order to display this field. e g with this condition defined <key>CONDITIONAL</key><string>FIELD1=Yes,FIELD2=No</string> this field will only be shown if the entry in a field with id FIELD1 equals to Yes or the entry in a field with id FIELD2 equals to No. |
A sample FLOATINPUT field dictionary object:
<dict> <key>ID</key><string>DENSITY</string> <key>TYPE</key><string>FLOATINPUT</string> <key>TITLE</key><string>Fuel Density</string> <key>REQUIRED</key><false/> <key>MAX</key><real>0.83</real> <key>MIN</key><real>0.76</real> <key>PLACEHOLDER</key><string>X.XX</string> <key>CACHE</key><false/> </dict>
The YESNOINPUT field is used for simple Yes/No questions.
The following keys can be used in a YESNOINPUT field dictionary object:
| ID | A unique string value to identify this field within the form. This ID should not contain any blank space nor consist only of a number. |
| TYPE | A string value defining the type of field: YESNOINPUT. |
| TITLE | A string value with the title/label associated with this field. |
| REQUIRED | A boolean <true/> or <false/>. True makes this field mandatory for the user to fill in and false makes it optional. |
| INFO | An optional string value containing an explanatory text that will be shown if tapping on the title/label associated with this field. If an info text is available an “!” icon will be shown next to the field title/label. |
| CONDITIONAL | An optional string value containing a comma separated list of fields with corresponding values that must be fulfilled in order to display this field. e g with this condition defined <key>CONDITIONAL</key><string>FIELD1=Yes,FIELD2=No</string> this field will only be shown if the entry in a field with id FIELD1 equals to Yes or the entry in a field with id FIELD2 equals to No. |
A sample YESNOINPUT field dictionary object:
<dict> <key>ID</key><string>TURBULENCE</string> <key>TYPE</key><string>YESNOINPUT</string> <key>TITLE</key><string>Turbulence</string> <key>REQUIRED</key><false/> </dict>
The SEGMENTINPUT field is used to select one of several predefined values.
The following keys can be used in a SEGMENTINPUT field dictionary object:
| ID | A unique string value to identify this field within the form. This ID should not contain any blank space nor consist only of a number. |
| TYPE | A string value defining the type of field: SEGMENTINPUT. |
| TITLE | A string value with the title/label associated with this field. |
| REQUIRED | A boolean <true/> or <false/>. True makes this field mandatory for the user to fill in and false makes it optional. |
| CHOICES | An array containing string values representing the choices to be available. |
| INFO | An optional string value containing an explanatory text that will be shown if tapping on the title/label associated with this field. If an info text is available an “!” icon will be shown next to the field title/label. |
| CONDITIONAL | An optional string value containing a comma separated list of fields with corresponding values that must be fulfilled in order to display this field. e g with this condition defined <key>CONDITIONAL</key><string>FIELD1=Yes,FIELD2=No</string> this field will only be shown if the entry in a field with id FIELD1 equals to Yes or the entry in a field with id FIELD2 equals to No. |
A sample SEGMENTINPUT field dictionary object:
<dict> <key>ID</key><string>TOUCHDOWN</string> <key>TYPE</key><string>SEGMENTINPUT</string> <key>TITLE</key><string>Touchdown Position Accuracy</string> <key>REQUIRED</key><false/> <key>CHOICES</key> <array> <string>Short</string> <string>Normal</string> <string>Long</string> </array> </dict>
The MULTISEGMENTINPUT field (iReForm 3.8+) is used to select some of several predefined values.
The following keys can be used in a MULTISEGMENTINPUT field dictionary object:
| ID | A unique string value to identify this field within the form. This ID should not contain any blank space nor consist only of a number. |
| TYPE | A string value defining the type of field: MULTISEGMENTINPUT. |
| TITLE | A string value with the title/label associated with this field. |
| REQUIRED | A boolean <true/> or <false/>. True makes this field mandatory for the user to fill in and false makes it optional. |
| CHOICES | An array containing string values representing the choices to be available. |
| INFO | An optional string value containing an explanatory text that will be shown if tapping on the title/label associated with this field. If an info text is available an “!” icon will be shown next to the field title/label. |
| CONDITIONAL | An optional string value containing a comma separated list of fields with corresponding values that must be fulfilled in order to display this field. e g with this condition defined <key>CONDITIONAL</key><string>FIELD1=Yes,FIELD2=No</string> this field will only be shown if the entry in a field with id FIELD1 equals to Yes or the entry in a field with id FIELD2 equals to No. |
A sample MULTISEGMENTINPUT field dictionary object:
<dict> <key>ID</key><string>FACTORS</string> <key>TYPE</key><string>MULTISEGMENTINPUT</string> <key>TITLE</key><string>Contributing Factors</string> <key>REQUIRED</key><false/> <key>CHOICES</key> <array> <string>Fatigue</string> <string>Distraction</string> <string>Technical</string> </array> </dict>
The SLIDERINPUT field is used to select a value within a given range.
The following keys can be used in a SLIDERINPUT field dictionary object:
| ID | A unique string value to identify this field within the form. This ID should not contain any blank space nor consist only of a number. |
| TYPE | A string value defining the type of field: SLIDERINPUT. |
| TITLE | A string value with the title/label associated with this field. |
| REQUIRED | A boolean <true/> or <false/>. True makes this field mandatory for the user to fill in and false makes it optional. |
| MAX | An integer value containing the max value of the selectable range. |
| MIN | An integer value containing the min value of the selectable range. |
| INFO | An optional string value containing an explanatory text that will be shown if tapping on the title/label associated with this field. If an info text is available an “!” icon will be shown next to the field title/label. |
| CONDITIONAL | An optional string value containing a comma separated list of fields with corresponding values that must be fulfilled in order to display this field. e g with this condition defined <key>CONDITIONAL</key><string>FIELD1=Yes,FIELD2=No</string> this field will only be shown if the entry in a field with id FIELD1 equals to Yes or the entry in a field with id FIELD2 equals to No. |
A sample SLIDERINPUT field dictionary object:
<dict> <key>ID</key><string>OFFSET</string> <key>TYPE</key><string>SLIDERINPUT</string> <key>TITLE</key><string>Offset from centerline (-L/+R m)</string> <key>REQUIRED</key><false/> <key>MAX</key><integer>30</integer> <key>MIN</key><integer>-30</integer> </dict>
The LISTTINPUT field is used to select from a list of several predefined values.
The following keys can be used in a LISTINPUT field dictionary object:
| ID | A unique string value to identify this field within the form. This ID should not contain any blank space nor consist only of a number. |
| TYPE | A string value defining the type of field: LISTINPUT. |
| TITLE | A string value with the title/label associated with this field. |
| REQUIRED | A boolean <true/> or <false/>. True makes this field mandatory for the user to fill in and false makes it optional. |
| ITEMS | An array containing dictionaries with VALUE and DESCRIPTION tags containing values representing the choices to be available. An item can also be conditionally available by using the same format as for conditionally displaying fields. |
| INFO | An optional string value containing an explanatory text that will be shown if tapping on the title/label associated with this field. If an info text is available an “!” icon will be shown next to the field title/label. |
| CONDITIONAL | An optional string value containing a comma separated list of fields with corresponding values that must be fulfilled in order to display this field. e g with this condition defined <key>CONDITIONAL</key><string>FIELD1=Yes,FIELD2=No</string> this field will only be shown if the entry in a field with id FIELD1 equals to Yes or the entry in a field with id FIELD2 equals to No. |
A sample LISTINPUT field dictionary object:
<dict> <key>ID</key><string>DELAYCODE</string> <key>TYPE</key><string>LISTINPUT</string> <key>TITLE</key><string>Delay Code</string> <key>REQUIRED</key><false/> <key>CHOICES</key> <array> <dict> <key>LABEL</key><string>93</string> <key>DETAIL</key><string>Aircraft Rotation</string> </dict> <dict> <key>LABEL</key><string>99</string> <key>DETAIL</key><string>Specify free text delay reason</string> <key>CONDITIONAL</key><string>FIELD1=Yes</string> </dict> </array> </dict>
The MULTIPLELISTTINPUT field is similar to LISTINPUT but is used to select multiple items from a list of several predefined values.
The following keys can be used in a MULTIPLELISTINPUT field dictionary object:
| ID | A unique string value to identify this field within the form. This ID should not contain any blank space nor consist only of a number. |
| TYPE | A string value defining the type of field: MULTIPLELISTINPUT. |
| TITLE | A string value with the title/label associated with this field. |
| REQUIRED | A boolean <true/> or <false/>. True makes this field mandatory for the user to fill in and false makes it optional. |
| ITEMS | An array containing dictionaries with VALUE and DESCRIPTION tags containing values representing the choices to be available. An item can also be conditionally available by using the same format as for conditionally displaying fields. |
| INFO | An optional string value containing an explanatory text that will be shown if tapping on the title/label associated with this field. If an info text is available an “!” icon will be shown next to the field title/label. |
| CONDITIONAL | An optional string value containing a comma separated list of fields with corresponding values that must be fulfilled in order to display this field. e g with this condition defined <key>CONDITIONAL</key><string>FIELD1=Yes,FIELD2=No</string> this field will only be shown if the entry in a field with id FIELD1 equals to Yes or the entry in a field with id FIELD2 equals to No. |
A sample MULTIPLELISTINPUT field dictionary object:
<dict> <key>ID</key><string>FAULTCODE</string> <key>TYPE</key><string>MULTIPLELISTINPUT</string> <key>TITLE</key><string>Fault Code</string> <key>REQUIRED</key><false/> <key>CHOICES</key> <array> <dict> <key>LABEL</key><string>70</string> <key>DETAIL</key><string>USB Synch Problem</string> </dict> <dict> <key>LABEL</key><string>99</string> <key>DETAIL</key><string>Unknown Error</string> <key>CONDITIONAL</key><string>FIELD1=Yes</string> </dict> </array> </dict>
The TEXTINFO field does not have any input field and is only used to display information to the user.
The following keys can be used in a TEXTINFO field dictionary object:
| TYPE | A string value defining the type of field: TEXTINFO. |
| TEXT | A string value with the text to be displayed. |
| BOLD | A boolean <true/> or <false/>. True makes the text appear in the same bold font as other field labels. False makes the text appear in a smaller “bread”-font. |
| CONDITIONAL | An optional string value containing a comma separated list of fields with corresponding values that must be fulfilled in order to display this field. e g with this condition defined <key>CONDITIONAL</key><string>FIELD1=Yes,FIELD2=No</string> this field will only be shown if the entry in a field with id FIELD1 equals to Yes or the entry in a field with id FIELD2 equals to No. |
A sample TEXTINFO field dictionary object:
<dict> <key>TYPE</key><string>TEXTINFO</string> <key>TEXT</key><string>Text to display</string> <key>BOLD</key><false/> </dict>
The SIGNATUREINPUT field is used to capture a signature image created by touchinput.
The following keys can be used in a SIGNATUREINPUT field dictionary object:
| ID | A unique string value to identify this field within the form. This ID should not contain any blank space nor consist only of a number. |
| TYPE | A string value defining the type of field: SIGNATUREINPUT. |
| TITLE | A string value with the title/label associated with this field. |
| REQUIRED | A boolean <true/> or <false/>. True makes this field mandatory for the user to fill in and false makes it optional. |
| INFO | An optional string value containing an explanatory text that will be shown if tapping on the title/label associated with this field. If an info text is available an “!” icon will be shown next to the field title/label. |
| CONDITIONAL | An optional string value containing a comma separated list of fields with corresponding values that must be fulfilled in order to display this field. e g with this condition defined <key>CONDITIONAL</key><string>FIELD1=Yes,FIELD2=No</string> this field will only be shown if the entry in a field with id FIELD1 equals to Yes or the entry in a field with id FIELD2 equals to No. |
A sample SIGNATUREINPUT field dictionary object:
<dict> <key>ID</key><string>SIGNATURE</string> <key>TYPE</key><string>SIGNATUREINPUT</string> <key>TITLE</key><string>Commanders Signature</string> <key>REQUIRED</key><true/> </dict>
The PHOTOINPUT field is used to capture a photo using the device camera or selecting a photo from the device photo library.
The following keys can be used in a PHOTOINPUT field dictionary object:
| ID | A unique string value to identify this field within the form. This ID should not contain any blank space nor consist only of a number. |
| TYPE | A string value defining the type of field: PHOTOINPUT. |
| TITLE | A string value with the title/label associated with this field. |
| REQUIRED | A boolean <true/> or <false/>. True makes this field mandatory for the user to fill in and false makes it optional. |
| SIZE | A string value of LARGE (1280px), MEDIUM (640px) or SMALL (320px) defining the width of the photo. |
| QUALITY | A string value of HIGH, MEDIUM or LOW defining the quality (JPEG-compression) of the photo. |
| INFO | An optional string value containing an explanatory text that will be shown if tapping on the title/label associated with this field. If an info text is available an “!” icon will be shown next to the field title/label. |
| CONDITIONAL | An optional string value containing a comma separated list of fields with corresponding values that must be fulfilled in order to display this field. e g with this condition defined <key>CONDITIONAL</key><string>FIELD1=Yes,FIELD2=No</string> this field will only be shown if the entry in a field with id FIELD1 equals to Yes or the entry in a field with id FIELD2 equals to No. |
A sample PHOTOINPUT field dictionary object:
<dict> <key>ID</key><string>PHOTO</string> <key>TYPE</key><string>PHOTOINPUT</string> <key>TITLE</key><string>Photo</string> <key>REQUIRED</key><true/> <key>SIZE</key><string>LARGE</string> <key>QUALITY</key><string>HIGH</string> </dict>