There would be three different forms and one agent:
- The agent would read the post back and create/update the document with the field values
- Basic web form shell – would contain the style sheets and the agents for saving and lookups to determine the fields. It would contain a table with two columns when rendered, the first column would be the field description and the second would be the value.
- Form definition – would define the title and the dynamic form alias.
- Field form – Defines the fields that appear on the form. Here is the list of the fields and a brief description
| Form | Multi-value selection of the forms that the field would appear on |
| Order | A number field that would determine what order the field would appear in |
| Enabled | Yes/No |
| Description | Shown in the first column of the table |
| Name | Name used to store the value on the Notes document |
| Visible | Yes/No |
| Editable | Yes/No |
| Default Value | If editable, Use Formula language to determine value |
| Computed Value | If not editable, Use Formula language to determine value |
| Type | Type of field: drop down, list box, check box, radio button, Text, number, Date, Multi-line text |
| Type Attributes | |
| HTML attributes | Style, width, rows … |
| Show calendar selector | Yes/No – Shows the calendar icon next to the field (Date Only) |
| Columns | The number of columns displayed ( check box, radio button) |
| Lookup | Only available for drop down, list box, check box, radio button |
| Reference Lookup Name | The name of the reference lookup (See:http://www.chadsmiley.com/ReferenceLookup for more detail) for more detail) |
| View | Name of the view |
| Filter | For Lookups the value to limit the results (Formula allowed) |
| Return Column/Field Name | The value to return |
| Return Mapping | The field to set when result is returned (Formula allowed) |
| Format (Regular Expressions) | Used for values like numbers, and dates |
| Format Message | Message when value does not match expression, this would be used on the blur of the field |
| Validate | Used for values like numbers, and dates |
| Validate Message | Message when value does not match expression, when trying to submit |
| Goto Field | Yes/No |
| Goto Field Name | If validation failed this would be used to set the focus of the field that failed |
The Form field would now point at the basic web shell form but there would be a second field maybe called FormDynamic that would be used to look up the dynamic form and field information. When composing a new form the URL would look as follows which would load the Team defined fields:
SomeDatabase.nsf?DynamicFormShell?OpenForm&DynamicForm=Team
I would greatly appreciate any feedback/comments on this initial design.
144
Really Informative. Thanks For the great blog.