| UDefField_Id | Primary key | PK | No |
| ownerTable_id | ID of owning table (contact, person, project) - this is not the actual tableNumber, rather it’s an enum | UShort | No |
| tabOrder | Tab order value, sets the field processing sequence | UShort | No |
| fieldType | Field type: 0 = leadtext only, 1 = Edit, 2 = CheckBox, 3 = dropdown, 4 = listbox | UShort | No |
| listTableId | The table ID of the source table for lists: kTableAssoc, kTableContInt or whatever | TableNumber | Yes |
| UDListDefinition_id | List to use for populating dropdown or listbox | FK UDListDefinition | No |
| columnId | The ID of the database column this field corresponds to | FieldId | No |
| textLength | Length (in characters) of a text field, 0 for other types | UShort | Yes |
| fieldDefault | Optional default value for String fields | String(254) | Yes |
| indexed | Is this field indexed? 0 if no, index no. if yes | Bool | Yes |
| mandatory | 0 = no, 1 = yes (field must be filled out) | Bool | No |
| readOnly | 0 = read/write, 1 = readonly (don’t combine with mandatory 8-) ) | UShort | Yes |
| tooltip | Optional tooltip text for this field | String(254) | Yes |
| fieldLabel | The label (lead text) | String(254) | Yes |
| labelLeft | X pixel coordinate of label | UShort | Yes |
| labelTop | Y pixel coordinate of label | UShort | Yes |
| labelWidth | label width in pixels, 0 = ‘enough’ (from font) | UShort | Yes |
| labelHeight | label height in pixels, 0 = ‘enough’ (from font) | UShort | Yes |
| fieldLeft | X pixel coordinate of field | UShort | Yes |
| fieldTop | Y pixel coordinate of field | UShort | Yes |
| fieldWidth | field width in pixels, 0 = ‘enough’ (from font) | UShort | Yes |
| fieldHeight | field height in pixels, 0 = ‘enough’ (from font) | UShort | Yes |
| version | Definition version number; ALL fields get new version whenever layout is updated. | UShort | Yes |
| lastVersionId | UDefFieldId this field had in the previous version, 0 = field is new in this version | FK UDefField | Yes |
| page1LineNo | Line no on View Page 1, used if MDO flags are OFF. 0 = this field is not visible on page 1 | UShort | Yes |
| registered | Registered when | UtcDateTime | No |
| registered_associate_id | Registered by whom | FK associate | No |
| updated | Last updated when | UtcDateTime | No |
| updated_associate_id | Last updated by whom | FK associate | No |
| updatedCount | Number of updates made to this record | UShort | No |
| udefIdentity | Unique number used to track field identity across layout changes | Id | Yes |
| hideLabel | Hide the label if 1 | Bool | Yes |
| justification | Justification - 0 = default, left, right, center | Enum UdefJustification | Yes |
| progId | Programmatic ID, for use by software that needs to find a particular field. Carried over like udefIdentity across generations. Use a Company.Product.Field format to avoid naming conflicts; the Company name SuperOffice is reserved. | String(254) | Yes |
| formatMask | Formatting mask, can be whatever the controls understand (currently nothing :-)) | String(254) | Yes |
| shortLabel | Short name to be used in Archive headings and on page 1. If blank, the fieldLabel will be used everywhere. | String(254) | Yes |