What this is, and who it is for
When you select a field on the canvas, the properties panel on the right opens with up to six tabs. This page lists every control of every tab, which field types see it, what it does and where it is enforced. Anyone who can open the builder can read the panel (Overview); only a holder of form.design or study.write can change it.
The panel's header shows the kind of field (Data field, Section, Table, Static content), its label and its variable name. With no field selected it says No field selected.
Where to find it
Click a field on the canvas. The tabs shown depend on the type:
| Field | Tabs |
|---|---|
| Text, Text Area, Radio, Dropdown, Multi-Select, Checkbox | Basic, Validation, Logic, Style, CDMS |
| Email, Phone, Number, Range, Scale, Date, Date & Time, Time, Toggle, File Upload | Basic, Validation, Logic, CDMS |
| Section, Heading, Description, Instruction | Basic, Logic, Style |
| Separator | Basic, Logic |
| Table | Basic, Table, Logic, CDMS |
Go to field in the issues list opens the panel on the tab where the problem is fixed.
What you can do
Change any property; it applies to the canvas at once and is saved with the form. Every change is one step of undo (typing is grouped). Nothing on the panel affects data already captured; a change is a change to the design of the version in Build.
Every option
Basic
For a data field
| Control | What it does |
|---|---|
| Field type | Changes the type, with a warning about captured data (Field types) |
| Label | What people read. A field with no label is a warning |
| Variable name | The field's identifier in formulas, rules, exports and the audit trail. Spaces become underscores and letters become capitals as you type. Must be unique on the form. A name that does not start with a letter, has characters other than letters, digits and underscores, or is longer than 8 characters raises a warning (it only matters if the study exports to SDTM or SAS v5 transport, which cap names at 8) |
| Description | Smaller text shown below the label as context for data entry |
| Help text | Shown as a tooltip beside the label |
| Placeholder | Greyed text in an empty box. Offered for Text, Email, Phone, Number, Text Area and Dropdown |
| Default value | Pre-fills the field when a record is opened; it becomes data only when the person saves, and the person saving is recorded as its author. Offered for Text, Text Area, Number, Date, Radio and Dropdown, and hidden when the field has a formula. For a choice it is picked from the options (No default clears it) |
| Options | For Radio, Dropdown and Multi-Select: a label and a value for each option, add, delete, and the Other, specify switch (Field types) |
| Read-only | Shows the field and does not let a person enter it |
| Deprecated | Offered only for a field that exists in a released version. Switching it on asks for a reason and hides the field from people entering data while keeping its data; switching it off restores it |
| Allow field comments | Lets the person add a free-text comment (up to 500 characters) to the field at data entry. Button / section label renames the comment button. A comment box is always available when enabled; it cannot be hidden by a rule |
For a Section: Section label, Variable name (used as the group key in exported data), Description.
For static content: the text (Heading text, Description text or Instruction text) and, for Heading and Description, Sub-text. A Separator has no properties.
For a Table: Table label, Variable name, Description and the Dynamic rows switch (Tables and repeating groups).
Validation
Data fields only. The controls depend on the type: Required (with its own message), then numeric limits and the normal range, the multi-select count, text length and pattern (with presets, a live test box and an error message), the date limits, or the file types and size. At the bottom, When a check fails gives each check of the field a severity: Query, Block or Warn. All of it is on Validation, edit checks and their severities, and the normal range is on Units and normal ranges.
Logic
| Section | Offered for | What it does |
|---|---|---|
| Visibility condition | Every field and every piece of static content | The field is shown only when the condition is true; otherwise it appears as a greyed placeholder with an optional message ("Not available based on current conditions" by default) |
| Calculation formula | Number | Computes the value from other fields (Formulas and calculations) |
| Auto-populate | Checkbox, Toggle | Sets the value to true (and optionally false) when conditions hold |
| Value assignment | Every data field except File Upload | Sets the value when a condition holds; the first matching rule wins (Conditional logic) |
| Comment visibility condition | Only a field whose comments were already set to be conditional | Shown for older designs; new fields have comment boxes that are always available |
Style
| Control | Offered for | Options |
|---|---|---|
| Bold, Italic, Underline | Section and static content | On or off |
| Field width | Every data field | Full width, Half (1/2), Third (1/3), Quarter (1/4) |
| Checkbox position | Checkbox | Left of the label (default) or right of it |
| Options layout | Radio and Multi-Select | Vertical (default), Horizontal, Grid |
| Columns | Section | 1 to 4 columns |
| Highlighted, Bordered | Every field that has the Style tab | On or off |
Table
Only for a Table: Table settings (dynamic rows, maximum rows), then the Columns and Rows lists (Tables and repeating groups).
CDMS
For data fields and tables.
| Control | What it does |
|---|---|
| CDASH / CDISC annotation | A free-text variable name such as VSBLFL or AETERM. It is carried into the data dictionary and the ODM-XML metadata of a design export and into the change summary of an amendment; it maps nothing by itself |
| Unit label and Unit code | For Text and Number: what is shown after the input (kg) and the internal code (KG). See Units and normal ranges |
| Auto-query on missing data | Shown switched on and locked, with the words "a query is automatically raised when this field is left blank". In fact: a query Required value missing is opened for a field that is required and unanswered, while its form is not marked complete; an optional field left blank raises nothing. The switch changes nothing |
| Auto-query on out-of-range | Shown switched on and locked. A value outside a normal range opens a query unless the check's severity is changed to Block or Warn (Validation, edit checks and their severities) |
| SDV required and Critical field (100% SDV) | Marks the field as to be verified against source and as always verified. These two switches are design information: they are exported with the data dictionary and shown in an amendment's summary, but they do not feed the source data verification plan, which is kept on its own screen (SDV Plan) |
Two things a designer might look for are not on this tab: who may resolve a query on the field, and predefined reason codes for queries. The form schema has places for them and no screen sets them, and nothing reads them.
What the parts are called in the code
For readers who meet these names in a log, a test or the source:
| Part | Name in the code | Where it appears |
|---|---|---|
| The six tabs | BasicTab, ValidationTab, LogicTab, StyleTab, TableTab, CDMSTab | The properties panel |
| The field-type picker | FieldTypeControl | Top of the Basic tab |
| The severity chooser | CheckSeverities | When a check fails on the Validation tab, and the column edit checks |
| The normal-range editor | NormalRangeEditor | Validation tab |
| A labelled row | FormRow | Every control with a label and a hint |
| The AI form assistant | AIAssistDialog, with AIBuildingLoader while it works | Toolbar → AI Assist |
| The condition builder | ConditionBuilderDialog | Logic tab, rows, comment rules |
| The formula builder | FormulaBuilderDialog | Logic tab → Calculation formula |
| The table column's formula, value rules and N/A | TableColumnFormulaDialog, TableColumnValueAssignDialog, TableNAConditionDialog | Table tab → a column |
| The library import | ImportFromLibraryDialog | Toolbar → Import |
| The preview | PreviewDialog | Toolbar → Preview |
| The field search | FieldSearchPalette | Ctrl+K |
What the system records
Each change to a property is part of the form's design revision and its audit entry (form.draft_saved). Deprecating a field also records its reason and time. A change made in an amendment is classified by its effect on data already captured (Low, Controlled or Breaking) in the amendment's summary: changing a check's severity is Controlled, a type change on a field with Live data is Breaking.
What you cannot do, and why
- Hide a comment box behind a condition. The comment is part of the record's story; the builder keeps it available whenever comments are enabled.
- Give a Toggle a default value. A toggle starts unanswered on purpose, so a "No" is always an answer given.
- Switch off the automatic queries. They are part of how the system keeps data clean; the way to change what a failing check does is its severity.
Compliance Q&A
A default only pre-fills the box. It becomes data when the person saves the form, and that person is recorded as the author of the value. A Toggle has no default at all, so a Yes or No is never recorded that nobody chose.
Evidence: client builder BasicTab (default value pre-fillsthe person saving is recorded as its author)toggle has no default (F-028, F-039)
Related
Field types · Validation, edit checks and their severities · Conditional logic · Tables and repeating groups · Overview