Profile Detail
Profile Details allows the netFORUM developer to place almost any kind of content directly on a Profile Form, including other Forms, Child forms, HTML, IFrames, TabStrips for Tabs, Alternate Profile Forms, and .NET web controls.
Uses
Based on the content type of the Profile Detail, the use and purpose of a Profile Detail will change.
Described below are each of the different content type:
Child Form
The Child Form content type places a Child form on a Profile, and, if the Profile has Tabs, on a specific Tab.
The main values needed to set for this content type are:
- Child Form -- which Child Form to show. By default, only child forms belonging to the profile form are shown. Check the show me all child forms checkbox to see every child form in netFORUM; see #Sharing Child Forms with Multiple Parent Forms below for more.
- Tab -- which Tab to place the Child Form on, if the Profile has Tabs.
- Layout Row - this is the integer order that will stack the child forms vertically from top to bottom on the Form or on the Tab (if there is a Tab).
Once you turn a form into a profile form, the tab order on the child forms becomes non-applicable (except in the actual Toolkit when seeing the list of child forms for a given form).
To move a child form from one Tab to another, see Moving Child Form to Different Tab.
Sharing Child Forms with Multiple Parent Forms
A Profile page can display Child Forms that belong to other forms.
For example, the child forms that display A-Score information on the Individual profile form are also on the Organization, Chapter and Constituent profile pages. Rather than duplicating the same child form repeatedly, you can instead define the child form once and show it on any profiles you need.
This can be advantageous if several profile forms need to display what is essentially an identical child form. If you share the same child form across two or more profile pages, then you can minimize your long term maintenance because you'll need to manage only one child form, not multiples ones; this is especially useful if you need to tweak the Child Form Select SQL by adding a new column or correcting a mistake. A single child form can even be shared across multiple profile pages of the different Objects, as long as:
- Any parsed values can be interpreted by the different Objects of the Forms.
- The data in those parsed values mean the same thing across different objects.
- The data and columns to display in the child form is identical for all the profile pages.
For example, you may have a table with a cst_key column that can hold data for Individuals, Organizations and Chapters. You want to show this data on a child form on the Individual, Organization and Chapter child forms. You can do this as long as the Child Form SQL parsed value uses WHERE zzz_cst_key={cst_key} instead of {ind_cst_key}.
Another example is a child form containing Prices of a Product. This child form could be used by any of the various Product profile pages of different Product Types.
To do this, add a Profile Detail for each profile form, all pointing to the same Child Form.
If you have GoTo links on the child form, you'll need Child Form Override Links to ensure the GoTo arrow goes to the right kind form, depending on the data for the particular row.
A non-profile form with child forms, however, will show only its own child forms.
Form
This content type places a Form on a Profile Form. The most common practice is to have one "major" profile form (this is most often the original form of an Object), and then have a second "detail" for that is used only as the display-only form that is placed on a profile form. This "detail" form may have one (or more) hyperlink(s) that pop open other pages or launch processes.
The usual naming convention is to put the word "detail" at the end of the form description to designate the purpose of the form.
The nearby screen shot shows the "detail" form that is overlaid on the Individual profile page.
HTML
This content type simply places HTML on the form.
iFrame
This content puts an iFrame on the page, by putting a URL in the content path.
The iFrame content type allows you to insert an external web page into the space in the profile detail. The functionality of this content type may be adequate, but more control can be achieved by inserting an iFrame into an #HTML content type.
Control (ASCX)
netFORUM ships with one specialized control called ListControl (iWeb).
See iWebControlClass for tips on developing User Controls.
TabStrip
If your profile form has tabs, then you must add a "TabStrip" profile detail. The row order will place the tab on the page
Alternate Profile Forms
Alternate Profile Forms enable switching the main content form of a Profile Page from one form to another. This feature is useful for allowing a user a different main view of a record. On the Individual form, for example, the user may swap between the main Individual content form and the Constituent content form; see Individuals#Alternate_Profiles_Tab for examples of this feature in use.
Report Viewer
Graphically-rendered reports embedded on dynamic profile pages are called Dashboards. Each report can be clicked to drill further down to List pages to get more informative data about the report. Administrators can configure and create templates for report formats while users may configure their dashboards to view which reports and design they want to see for each module dashboard available.
To render a dashboard in a profile detail, chose the Report Viewer content type and select the report. The report drop-down list only contains Reports that have the enable dashboard flag selected.
Controls
- layout row and layout column - the row and column will order the profile details on the overall form. The row will order vertically, the column horizontally. You can have one profile detail span one or more rows by setting the rowspan or colspan properties. These fields work just like HTML table rows (<TR>) and table data/cells (<TD>).
- no display - In netFORUM 2011 a tab may be marked as no display indicating that it should not be shown by default, however, these tabs are available for users using the personalization feature when adding a new tab.