Substitute Form

Substitute Form Related Metadata

If you substitute a baseline form, certain metadata from the baseline form will still get "pulled into" your substitute form. See the following examples:

Child Forms

  • If there are new Child Forms that you want to add, then add them to your baseline form and lock. If it is a profile form, then you also need to add the Profile Detail for your new childform to the baseline form and lock.
  • If there are childforms you want to delete, and the form is not a Profile page, then lock the childform then hide/disable it from baseline form (do not delete it). If it is a profile form, then instead lock and hide/disable the profile detail for the childform in the baseline form; it is better to hide/disable the Profile Detail (and not lock the Child form) because then the child form will still get updated by upgrades in case you ever want to show the child form again.

Form Links

  • If there are new Form Links you want to add, then add them to the baseline form and lock.
  • If there are form links you want to delete, then lock and hide them from baseline form.

Search Controls

  • If there are new Search Controls you want to add, then add them to the baseline form and lock.
  • If there are search columns you want to delete, then lock and hide them from baseline form.

Profile Tabs

  • If the baseline form you are substituting is a Profile Form, and you want to add new profile tabs, then add them on baseline form. )For netForum versions before January2005 add them on your substitute form; please also see 2 to be added later)
  • If the baseline form you are substituting is a profile form, and you want to delete profile tabs, then lock and hide them from your baseline form. (For netForum versions before January2005, delete from your substitute form.)

Dynamic Profile Details

  • If the baseline form you are substituting is a profile form, and you want to add new Profile Details (most commonly, references to child forms on a specific tab), then add them on baseline form. (For netForum versions before January2005 add them on your substitute form; please also see 2.)
  • If the baseline form you are substituting is a profile form, and you want to delete dynamic profile details, then lock and hide them from baseline form. (For netForum versions before January2005 delete from your substitute form.)

Lookups and Lookup Cross-References

  • If there are new Lookups you want to add, then add them to your substitute form.
  • If there are lookups you want to delete, then delete them from your substitute form.

Extensions

  • If there are new Form Extensions that you need to add, then add them to your substitute form. (So all the baseline extensions are inherited from the baseline form, but if there are any additional ones, they will be on your substitute.) Then you need to add the extension controls onto your substitute form as usual in the Form Designer.

Substituting Profile Forms

Generally, you should never substitute a Profile Form. Certain key functionality is likely to break.

Keep in mind that a profile page is essentially a container for a detail form, a tab strip, and multiple child forms; each of these ingredients of the container is a profile detail.

This is illustrated in the nearby image.

  • The red box illustrates that the overall profile form is itself a Form.
  • The green box depicts the detail form, which is a Profile Detail of the form type; this is a designed form. Technically, this is usually a different form from the profile form itself.
  • The blue box is a profile detail of the tab type. The actual tabs are setup in the tab area of the form setup page in the Toolkit.
  • The orange box shows Child Forms, which are configured as profile details.

It is very common to substitute the detail form of a profile page; the detail form is the nearby example in blue. The detail form is the form that is represented by the profile detail with the content type of form. This is the view-only form that has the edit links, icons, etc.

If this detail form is substituted, then you can tell this right away when you click the edit content form icon (not the design icon which pops up the Form Designer. If you scan down the child forms, you will see form substitute and form substitutes child form. The first shows any subsitute forms, the second shows the baseline form that the current form is substituting. If both child forms are empty, then the form is not substituted; it is either a baseline form or is a non-substituted custom form. Additionally, if you did substitute the form, you hopefully named the form something like ABCDE Individual Detail (substitute).

Put another way, if you have substituted a form, and you are then viewing it through the module, then anytime you click the edit content form or design form links, netFORUM will open up the substitute form, not the baseline form. What this means is that if you want to get to the baseline form, you must do so by finding it in the Toolkit module, not from the regular modules.

Alternates to Substitution

What do you do if the form you want to substitute (because you want to add or modify form controls on it) is a profile form?

As stated above, there is no easy way to do this.

One workaround is to design the baseline form, add Form Controls as needed, and lock just those controls, but don't lock the overall form. Generally, Abila does not recommend this approach since it adds to your list of potential upgrade issues if/when the form changes in the baseline build.

A better alternate from a maintenace standpoint is to create a two page Wizard. Page 1 of the wizard is the baseline form; this page will have a "Validate" Wizard Form Button that will take you to Page 2. Page 2 is a form that has the additional controls that you want to add, and Page 2 will have a SaveWizard Form Button; this button should have a destination url to go to the profile form after the record is saved. To launch the Wizard, go to the "Add" Group Item Link and change the destination to be your new Wizard, or add a new Group Item Link for your Wizard and hide the baseline group item link so users won't get to it.

The advantage to the Wizard approach is that if/when the baseline form changes in an upgrade, any such changes are reflected automatically in the wizard.

FAQ

Q. When looking at a page in iWeb -- for instance, the individual profile page -- what is the easiest way to tell if it is a baseline Form or a substitute form?

A. Profile forms can be misleading because when you try to Design the form or edit the content form, you may actually be viewing the detail form referenced by the profile detail with the form content type.

A case in point is the Individual Profile page. If you look at the URL, you will see the querystring parameter:

FormKey=B772881D-D704-40F3-92B6-09B13A50FCC9

To tell if this form has been substituted, you should actually navigate to that form from within the Toolkit module; you can also get to the form via the Super Search by entering the FormKey.

Next, look on the Primary tab and look at the substitute form child forms to see if it has been subsituted.

Q. Once we determine that a form was substituted, what is the proper method to un-substitute the form -- that is, how do we drop the substitute and switch back to the baseline form?

A. The easiest way to do this is leave the substitute form alone but delete the form substitute relationship from the child form of the Form; doing so will sever the link between the baseline and substitute form. This way, you can keep your substitute form in case you need to go back to it. If you think you really don't need the old substitute form, then you might want to delete it to avoid confusing people.