About the JSON code for a portal-type form

The value of the persistent variable PortalSetup that is used to control the contents and layout of a portal-type shell form must be in JSON code. Here is a representative example of this type of code:

"colWidth":"170",
  "rowHeight":"130",
  "gutter":"10",
  "onLayoutChanged":"OnLayout",
    "forms":[ 
       {
	          "form":"FormA",
           "width":"260px",
           "height":"120px"
        },
        {   
          "form":"FormB"
	         },
        { 
	          "form":"FormC",
           "width":"220px",
           "height":"420px",
           "top":"50px",
           "left":"1px"
        }
    ]
}
	 

This table lists and describes the variable properties you can use to create the JSON code:

Variable property Description / Comments
colWidth This property sets the width of the layout columns, in pixels.

Subforms are aligned horizontally to this in the grid.

If not specified, the default value of this property is 170 pixels.

rowHeight This property sets the height of the layout rows, in pixels.

Subforms are aligned vertically to this in the grid.

If not specified, the default value of this property is 130 pixels.

gutter This property sets the minimum space allowed between subforms, in pixels. This property applies to both vertical and horizontal spacing.

If not specified, the default value of this property is 10 pixels.

onLayoutChanged This property is the name of a form script method that takes a single parameter (string): OnLayout

This property is invoked whenever forms are moved around in the user control and the order is changed.

id

name

These properties are used only when the onLayoutChanged method is invoked.

This is because the form script is passed a parameter that contains a JSON string indicating the ID and name of each form in order, using this format:

[{"id":"bob","name":"PanelTest1"},

{"id":"sue","name":"PanelTest2"},

{"id":"joe","name":"PanelTest1"}]

backColor This property sets the background color for the user control component. Use RGB color settings in hexadecimal format; for example, #FFFFFF.
forms This section of the code specifies what forms are to be displayed and in what order.

Note that all forms to be displayed are listed inside a set of square brackets following this key word. Inidividual form designations are enclosed with curly braces.

form This property designates a form to be displayed.

You must use the actual form name, and not the form caption.

width

height

These properties designate the size of the form as it is to be displayed inside the user control.

If not specified, the size is taken from the form definition.

top

left

These properties specify the initial placement of the subform within the user control.

These settings are normally unnecessary. When not used, forms flowwithin the user control container in the specified order. When these settings are used, the normal order and other layout anomalies can occur.

Notes

As with most programming languages, pay special attention to the use of curly braces and other punctuation marks in the JSON code.

It is not necessary to declare the coding language in this case, because the user control URL is expecting it.