{hidden}
DO NOT EDIT THE CONTENT OF THIS PAGE DIRECTLY, UNLESS YOU KNOW WHAT YOU'RE DOING.
		THE STRUCTURE OF THE CONTENT IS VITAL IN BEING ABLE TO EXTRACT CHANGES FROM THE PAGE AND MERGE THEM BACK INTO SERVOY SOURCE{hidden}
\\ 

{table:id=|class=servoy sSummary}{colgroup}{column:padding=0px|width=80px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Constants Summary{th}{tr}{tbody}{tr}{td}[Number]{td}{td}[#DEFAULT_ENCAPSULATION]
The constants to set or get the encapsulation property of a JSForm.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#HIDE_CONTROLLER_ENCAPSULATION]
The constants to set or get the encapsulation property of a JSForm.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#HIDE_DATAPROVIDERS_ENCAPSULATION]
The constants to set or get the encapsulation property of a JSForm.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#HIDE_ELEMENTS_ENCAPSULATION]
The constants to set or get the encapsulation property of a JSForm.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#HIDE_FOUNDSET_ENCAPSULATION]
The constants to set or get the encapsulation property of a JSForm.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#LIST_VIEW]
The constants to set or get the view property of a JSForm.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#LOCKED_LIST_VIEW]
The constants to set or get the view property of a JSForm.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#LOCKED_RECORD_VIEW]
The constants to set or get the view property of a JSForm.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#LOCKED_TABLE_VIEW]
The constants to set or get the view property of a JSForm.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#MODULE_PRIVATE_ENCAPSULATION]
The constants to set or get the encapsulation property of a JSForm.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#PRIVATE_ENCAPSULATION]
The constants to set or get the encapsulation property of a JSForm.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#RECORD_VIEW]
The constants to set or get the view property of a JSForm.{td}{tr}{tbody}{table}\\ 

{table:id=|class=servoy sSummary}{colgroup}{column:padding=0px|width=80px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Property Summary{th}{tr}{tbody}{tr}{td}[String]{td}{td}[#borderType]
The type, color and style of border of the component.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#dataSource]
The names of the database server and table that this form is linked to.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#defaultPageFormat]
The default page format for the form.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#encapsulation]
{td}{tr}{tbody}{tbody}{tr}{td}[JSForm]{td}{td}[#extendsForm]
A JSForm instance representing the super form of this form, if this form has a super form.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#initialSort]
The default sort order only when the form loads.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#name]
The name of the form.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#namedFoundSet]
Property that tells the form to use a named foundset instead of the default foundset.{td}{tr}{tbody}{tbody}{tr}{td}[JSForm]{td}{td}[#navigator]
The navigator (previously named "controller")
that is used to control/navigate to the form.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onDeleteAllRecordsCmd]
The method that overrides the Servoy menu item Select > Delete All.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onDeleteRecordCmd]
The method that overrides the Servoy menu item Select > Delete Record (or keyboard shortcut).{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onDrag]
The method that is triggered when (non Design Mode) dragging occurs.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onDragEnd]
The method that is triggered when (non Design Mode) dragging end occurs.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onDragOver]
The method that is triggered when (non Design Mode) dragging over a component occurs.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onDrop]
The method that is triggered when (non Design Mode) dropping occurs.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onDuplicateRecordCmd]
The method that overrides the Servoy menu item Select > Duplicate Record (or keyboard shortcut).{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onElementFocusGained]
The method that is triggered when focus is gained by a component inside the form.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onElementFocusLost]
The method that gets triggered when focus is lost by a component inside the form.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onFindCmd]
The method that overrides the Servoy menu item Select > Find (or keyboard shortcut) in Data (ready) mode.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onHide]
The method that is triggered when another form is being activated.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onInvertRecordsCmd]
The method that overrides the Servoy menu item Select > Invert Records.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onLoad]
The method that is triggered when a form is loaded/reloaded from the repository; used to alter elements, set globals, hide toolbars, 
etc; onShow method can also be assigned.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onNewRecordCmd]
The method that overrides the Servoy menu item Select > New Record (or keyboard shortcut).{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onNextRecordCmd]
The method that overrides the Servoy menu item Select > Next Record.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onOmitRecordCmd]
The method that overrides the Servoy menu item Select > Omit Record.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onPreviousRecordCmd]
The method that overrides the Servoy menu item Select > Previous Record.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onPrintPreviewCmd]
The method that overrides the Servoy menu item File > Print Preview.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onRecordEditStart]
The method that is triggered when a user clicks into a column on the form.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onRecordEditStop]
The method that is triggered when a record is being saved.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onRecordSelection]
The method that is triggered each time a record is selected.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onRender]
The method that is executed when the component is rendered.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onResize]
The method that gets triggered when resize occurs.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onSearchCmd]
The method that overrides the Servoy menu item Select > Search (or keyboard shortcut) in Find mode.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onShow]
The method that is triggered EVERY TIME the form is displayed; an argument must be passed to the method if this is the first time the form is displayed.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onShowAllRecordsCmd]
The method that overrides the Servoy menu item Select > Show All (or keyboard shortcut).{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onShowOmittedRecordsCmd]
The method that overrides the Servoy menu item Select > Show Omitted Records.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onSortCmd]
The method that overrides the Servoy menu item Select > Sort.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#onUnLoad]
The method that is triggered when a form is unloaded from the repository.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#paperPrintScale]
The percentage value the printed page is enlarged or reduced to; the size of the printed form 
is inversely proportional.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#scrollbars]
Scrollbar options for the vertical and horizontal scrollbars.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#serverName]
Get the server name used by this form.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#showInMenu]
When set, the form is displayed under the Window menu.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#styleClass]
The Cascading Style Sheet (CSS) class name applied to the form.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#styleName]
The name of the Servoy style that is being used on the form.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#tableName]
The \[name of the table/SQL view\].{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#titleText]
The text that displays in the title bar of the form window.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#transparent]
When set, the form is transparent.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#view]
The default form view mode.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#width]
The width of the form in pixels.{td}{tr}{tbody}{table}\\ 

{table:id=|class=servoy sSummary}{colgroup}{column:padding=0px|width=80px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Method Summary{th}{tr}{tbody}{tr}{td}[JSBean]{td}{td}[#getBean]\(name)
Returns a JSBean that has the given name.{td}{tr}{tbody}{tbody}{tr}{td}[JSBean]\[]{td}{td}[#getBeans]\()
Returns all JSBeans of this form.{td}{tr}{tbody}{tbody}{tr}{td}[JSBean]\[]{td}{td}[#getBeans]\(returnInheritedElements)
Returns all JSBeans of this form.{td}{tr}{tbody}{tbody}{tr}{td}[JSPart]{td}{td}[#getBodyPart]\()
Retrieves the Body part of the form.{td}{tr}{tbody}{tbody}{tr}{td}[JSButton]{td}{td}[#getButton]\(name)
Returns a JSButton that has the given name.{td}{tr}{tbody}{tbody}{tr}{td}[JSButton]\[]{td}{td}[#getButtons]\()
Returns all JSButtons of this form, including the ones without a name.{td}{tr}{tbody}{tbody}{tr}{td}[JSButton]\[]{td}{td}[#getButtons]\(returnInheritedElements)
Returns all JSButtons of this form, including the ones without a name.{td}{tr}{tbody}{tbody}{tr}{td}[JSComponent]{td}{td}[#getComponent]\(name)
Returns a JSComponent that has the given name; if found it will be a JSField, JSLabel, JSButton, JSPortal, JSBean or JSTabPanel.{td}{tr}{tbody}{tbody}{tr}{td}[JSComponent]\[]{td}{td}[#getComponents]\()
Returns a array of all the JSComponents that a form has; they are of type JSField,JSLabel,JSButton,JSPortal,JSBean or JSTabPanel.{td}{tr}{tbody}{tbody}{tr}{td}[JSComponent]\[]{td}{td}[#getComponents]\(returnInheritedElements)
Returns a array of all the JSComponents that a form has; they are of type JSField,JSLabel,JSButton,JSPortal,JSBean or JSTabPanel.{td}{tr}{tbody}{tbody}{tr}{td}[JSField]{td}{td}[#getField]\(name)
The field with the specified name.{td}{tr}{tbody}{tbody}{tr}{td}[JSField]\[]{td}{td}[#getFields]\()
Returns all JSField objects of this form, including the ones without a name.{td}{tr}{tbody}{tbody}{tr}{td}[JSField]\[]{td}{td}[#getFields]\(returnInheritedElements)
Returns all JSField objects of this form, including the ones without a name.{td}{tr}{tbody}{tbody}{tr}{td}[JSPart]{td}{td}[#getFooterPart]\()
Retrieves the Footer part of the form.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#getFormMethod]\(name)
Gets an existing form method for the given name.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]\[]{td}{td}[#getFormMethods]\()
Returns all existing form methods for this form.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]\[]{td}{td}[#getFormMethods]\(returnInheritedElements)
Returns all existing form methods for this form.{td}{tr}{tbody}{tbody}{tr}{td}[JSVariable]{td}{td}[#getFormVariable]\(name)
Gets an existing form variable for the given name.{td}{tr}{tbody}{tbody}{tr}{td}[JSVariable]\[]{td}{td}[#getFormVariables]\()
An array consisting of all form variables for this form.{td}{tr}{tbody}{tbody}{tr}{td}[JSVariable]\[]{td}{td}[#getFormVariables]\(returnInheritedElements)
An array consisting of all form variables for this form.{td}{tr}{tbody}{tbody}{tr}{td}[JSPart]{td}{td}[#getHeaderPart]\()
Retrieves the Header part of the form.{td}{tr}{tbody}{tbody}{tr}{td}[JSLabel]{td}{td}[#getLabel]\(name)
Returns a JSLabel that has the given name.{td}{tr}{tbody}{tbody}{tr}{td}[JSLabel]\[]{td}{td}[#getLabels]\()
Returns all JSLabels of this form (not including its super form), including the ones without a name.{td}{tr}{tbody}{tbody}{tr}{td}[JSLabel]\[]{td}{td}[#getLabels]\(returnInheritedElements)
Returns all JSLabels of this form (optionally including it super forms labels), including the ones without a name.{td}{tr}{tbody}{tbody}{tr}{td}[JSPart]{td}{td}[#getLeadingGrandSummaryPart]\()
Retrieves the Leading Grand Summary part of the form.{td}{tr}{tbody}{tbody}{tr}{td}[JSPart]\[]{td}{td}[#getLeadingSubSummaryParts]\()
Gets an array of the Leading Subsummary parts of the form, ordered by their height from top == 0 to bottom.{td}{tr}{tbody}{tbody}{tr}{td}[JSPart]{td}{td}[#getPart]\(type)
Gets a part of the form from the given type (see JSPart constants).{td}{tr}{tbody}{tbody}{tr}{td}[JSPart]{td}{td}[#getPart]\(type, height)
Gets a part of the form from the given type (see JSPart constants).{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#getPartYOffset]\(type)
Returns the Y offset of a given part (see JSPart) of the form.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#getPartYOffset]\(type, height)
Returns the Y offset of a given part (see JSPart) of the form.{td}{tr}{tbody}{tbody}{tr}{td}[JSPart]\[]{td}{td}[#getParts]\()
Gets all the parts from the form (not including the parts of the parent form), ordered by there height (lowerbound) property, from top == 0 to bottom.{td}{tr}{tbody}{tbody}{tr}{td}[JSPart]\[]{td}{td}[#getParts]\(returnInheritedElements)
Gets all the parts from the form (optionally also from the parent form), ordered by there height (lowerbound) property, from top == 0 to bottom.{td}{tr}{tbody}{tbody}{tr}{td}[JSPortal]{td}{td}[#getPortal]\(name)
Returns a JSPortal that has the given name.{td}{tr}{tbody}{tbody}{tr}{td}[JSPortal]\[]{td}{td}[#getPortals]\()
Returns all JSPortal objects of this form (not including the ones from the parent form), including the ones without a name.{td}{tr}{tbody}{tbody}{tr}{td}[JSPortal]\[]{td}{td}[#getPortals]\(returnInheritedElements)
Returns all JSPortal objects of this form (optionally also the ones from the parent form), including the ones without a name.{td}{tr}{tbody}{tbody}{tr}{td}[JSTabPanel]{td}{td}[#getTabPanel]\(name)
Returns a JSTabPanel that has the given name.{td}{tr}{tbody}{tbody}{tr}{td}[JSTabPanel]\[]{td}{td}[#getTabPanels]\()
Returns all JSTabPanels of this form (not including the ones from the parent form), including the ones without a name.{td}{tr}{tbody}{tbody}{tr}{td}[JSTabPanel]\[]{td}{td}[#getTabPanels]\(returnInheritedElements)
Returns all JSTabPanels of this form (optionally the ones from the parent form), including the ones without a name.{td}{tr}{tbody}{tbody}{tr}{td}[JSPart]{td}{td}[#getTitleFooterPart]\()
Retrieves the Title Footer part of the form.{td}{tr}{tbody}{tbody}{tr}{td}[JSPart]{td}{td}[#getTitleHeaderPart]\()
Retrieves the Title Header part of the form.{td}{tr}{tbody}{tbody}{tr}{td}[JSPart]{td}{td}[#getTrailingGrandSummaryPart]\()
Retrieves the Trailing Grand Summary part of the form.{td}{tr}{tbody}{tbody}{tr}{td}[JSPart]\[]{td}{td}[#getTrailingSubSummaryParts]\()
Gets an array of the Trailing Subsummary parts of the form, ordered by their height from top == 0 to bottom.{td}{tr}{tbody}{tbody}{tr}{td}[UUID]{td}{td}[#getUUID]\()
Returns the UUID of this form.{td}{tr}{tbody}{tbody}{tr}{td}[JSBean]{td}{td}[#newBean]\(name, className, x, y, width, height)
Creates a new JSBean object on the form \- including the name of the JSBean object; the classname the JSBean object is based on, the "x" and "y" position of the JSBean object in pixels, as well as the width and height of the JSBean object in pixels.{td}{tr}{tbody}{tbody}{tr}{td}[JSButton]{td}{td}[#newButton]\(text, x, y, width, height, jsmethod)
Creates a new button on the form with the given text, place, size and JSMethod as the onAction event triggered action.{td}{tr}{tbody}{tbody}{tr}{td}[JSField]{td}{td}[#newCalendar]\(dataprovidername/jsvariable, x, y, width, height)
Creates a new JSField object on the form with the displayType of CALENDAR \- including the dataprovider/JSVariable of the JSField object, the "x" and "y" position of the JSField object in pixels, as well as the width and height of the JSField object in pixels.{td}{tr}{tbody}{tbody}{tr}{td}[JSField]{td}{td}[#newCheck]\(dataprovidername/jsvariable, x, y, width, height)
Creates a new JSField object on the form with the displayType of CHECK (checkbox) \- including the dataprovider/JSVariable of the JSField object, the "x" and "y" position of the JSField object in pixels, as well as the width and height of the JSField object in pixels.{td}{tr}{tbody}{tbody}{tr}{td}[JSField]{td}{td}[#newComboBox]\(dataprovidername/jsvariable, x, y, width, height)
Creates a new JSField object on the form with the displayType of COMBOBOX \- including the dataprovider/JSVariable of the JSField object, the "x" and "y" position of the JSField object in pixels, as well as the width and height of the JSField object in pixels.{td}{tr}{tbody}{tbody}{tr}{td}[JSField]{td}{td}[#newField]\(dataprovidername/jsvariable, displaytype, x, y, width, height)
Creates a new JSField object on the form \- including the dataprovider/JSVariable of the JSField object, the "x" and "y" position of the JSField object in pixels, as well as the width and height of the JSField object in pixels.{td}{tr}{tbody}{tbody}{tr}{td}[JSPart]{td}{td}[#newFooterPart]\()
Creates a new Footer part on the form.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#newFormMethod]\(code)
Creates a new form JSMethod \- based on the specified code.{td}{tr}{tbody}{tbody}{tr}{td}[JSVariable]{td}{td}[#newFormVariable]\(name, type)
Creates a new form JSVariable \- based on the name of the variable object and the number type, uses the SolutionModel JSVariable constants.{td}{tr}{tbody}{tbody}{tr}{td}[JSPart]{td}{td}[#newHeaderPart]\()
Creates a new Header part on the form.{td}{tr}{tbody}{tbody}{tr}{td}[JSField]{td}{td}[#newHtmlArea]\(dataprovidername/jsvariable, x, y, width, height)
Creates a new JSField object on the form with the displayType of HTML\_AREA \- including the dataprovider/JSVariable of the JSField object, the "x" and "y" position of the JSField object in pixels, as well as the width and height of the JSField object in pixels.{td}{tr}{tbody}{tbody}{tr}{td}[JSField]{td}{td}[#newImageMedia]\(dataprovidername/jsvariable, x, y, width, height)
Creates a new JSField object on the form with the displayType of IMAGE\_MEDIA \- including the dataprovider/JSVariable of the JSField object, the "x" and "y" position of the JSField object in pixels, as well as the width and height of the JSField object in pixels.{td}{tr}{tbody}{tbody}{tr}{td}[JSLabel]{td}{td}[#newLabel]\(txt, x, y, width, height)
Creates a new JSLabel object on the form \- including the text of the label, the "x" and "y" position of the label object in pixels, the width and height of the label object in pixels.{td}{tr}{tbody}{tbody}{tr}{td}[JSLabel]{td}{td}[#newLabel]\(txt, x, y, width, height, action)
Creates a new JSLabel object on the form \- including the text of the label, the "x" and "y" position of the label object in pixels, the width and height of the label object in pixels and a JSMethod action such as the method for an onAction event.{td}{tr}{tbody}{tbody}{tr}{td}[JSPart]{td}{td}[#newLeadingGrandSummaryPart]\()
Creates a new Leading Grand Summary part on the form.{td}{tr}{tbody}{tbody}{tr}{td}[JSPart]{td}{td}[#newLeadingSubSummaryPart]\()
Creates a new Leading Subsummary part on the form.{td}{tr}{tbody}{tbody}{tr}{td}[JSPart]{td}{td}[#newPart]\(type, height)
Creates a new part on the form.{td}{tr}{tbody}{tbody}{tr}{td}[JSField]{td}{td}[#newPassword]\(dataprovidername/jsvariable, x, y, width, height)
Creates a new JSField object on the form with the displayType of PASSWORD \- including the dataprovider/JSVariable of the JSField object, the "x" and "y" position of the JSField object in pixels, as well as the width and height of the JSField object in pixels.{td}{tr}{tbody}{tbody}{tr}{td}[JSPortal]{td}{td}[#newPortal]\(name, relation, x, y, width, height)
Creates a new JSPortal object on the form \- including the name of the JSPortal object; the relation the JSPortal object is based on, the "x" and "y" position of the JSPortal object in pixels, as well as the width and height of the JSPortal object in pixels.{td}{tr}{tbody}{tbody}{tr}{td}[JSField]{td}{td}[#newRadios]\(dataprovidername/jsvariable, x, y, width, height)
Creates a new JSField object on the form with the displayType of RADIOS (radio buttons) \- including the dataprovider/JSVariable of the JSField object, the "x" and "y" position of the JSField object in pixels, as well as the width and height of the JSField object in pixels.{td}{tr}{tbody}{tbody}{tr}{td}[JSField]{td}{td}[#newRtfArea]\(dataprovidername/jsvariable, x, y, width, height)
Creates a new JSField object on the form with the displayType of RTF\_AREA (enables more than one line of text to be displayed in a field) \- including the dataprovider/JSVariable of the JSField object, the "x" and "y" position of the JSField object in pixels, as well as the width and height of the JSField object in pixels.{td}{tr}{tbody}{tbody}{tr}{td}[JSTabPanel]{td}{td}[#newTabPanel]\(name, x, y, width, height)
Creates a new JSTabPanel object on the form \- including the name of the JSTabPanel object, the "x" and "y" position of the JSTabPanel object in pixels, as well as the width and height of the JSTabPanel object in pixels.{td}{tr}{tbody}{tbody}{tr}{td}[JSField]{td}{td}[#newTextArea]\(dataprovidername/jsvariable, x, y, width, height)
Creates a new JSField object on the form with the displayType of TEXT\_AREA \- including the dataprovider/JSVariable of the JSField object, the "x" and "y" position of the JSField object in pixels, as well as the width and height of the JSField object in pixels.{td}{tr}{tbody}{tbody}{tr}{td}[JSField]{td}{td}[#newTextField]\(dataprovidername/jsvariable, x, y, width, height)
Creates a new JSField object on the form with the displayType of TEXT\_FIELD \- including the dataprovider/JSVariable of the JSField object, the "x" and "y" position of the JSField object in pixels, as well as the width and height of the JSField object in pixels.{td}{tr}{tbody}{tbody}{tr}{td}[JSPart]{td}{td}[#newTitleFooterPart]\()
Creates a new Title Footer part on the form.{td}{tr}{tbody}{tbody}{tr}{td}[JSPart]{td}{td}[#newTitleHeaderPart]\()
Creates a new Title Header part on the form.{td}{tr}{tbody}{tbody}{tr}{td}[JSPart]{td}{td}[#newTrailingGrandSummaryPart]\()
Creates a new Trailing Grand Summary part on the form.{td}{tr}{tbody}{tbody}{tr}{td}[JSPart]{td}{td}[#newTrailingSubSummaryPart]\()
Creates a new Trailing Subsummary part on the form.{td}{tr}{tbody}{tbody}{tr}{td}[JSField]{td}{td}[#newTypeAhead]\(dataprovidername/jsvariable, x, y, width, height)
Creates a new JSField object on the form with the displayType of TYPE\_AHEAD \- including the dataprovider/JSVariable of the JSField object, the "x" and "y" position of the JSField object in pixels, as well as the width and height of the JSField object in pixels.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#removeBean]\(name)
Removes a JSBean that has the specified name.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#removeButton]\(name)
Removes a JSButton that has the specified name.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#removeComponent]\(name)
Removes a component (JSLabel, JSButton, JSField, JSPortal, JSBean, JSTabpanel) that has the given name.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#removeField]\(name)
Removes a JSField that has the given name.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#removeLabel]\(name)
Removes a JSLabel that has the given name.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#removePart]\(type)
Removes a JSPart of the given type.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#removePart]\(type, height)
Removes a JSPart of the given type.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#removePortal]\(name)
Removes a JSPortal that has the given name.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#removeTabPanel]\(name)
Removes a JSTabPanel that has the given name.{td}{tr}{tbody}{table}\\ 

{table:id=constant|class=servoy sDetail}{colgroup}{column:padding=0px|width=100%}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Constants Details{th}{tr}{tbody:id=DEFAULT_ENCAPSULATION|class=node}{tr:id=name}{td}h6.DEFAULT_ENCAPSULATION{td}{tr}{tr:id=des}{td}The constants to set or get the encapsulation property of a JSForm. 
They are as follows: JSForm.DEFAULT\_ENCAPSULATION, JSForm.PRIVATE\_ENCAPSULATION, JSForm.MODULE\_PRIVATE\_ENCAPSULATION, JSForm.HIDE\_DATAPROVIDERS\_ENCAPSULATION, JSForm.HIDE\_FOUNDSET\_ENCAPSULATION, JSForm.HIDE\_CONTROLLER\_ENCAPSULATION, JSForm.HIDE\_ELEMENTS\_ENCAPSULATION{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var myDefaultForm = solutionModel.newForm('newForm1', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myDefaultForm.encapsulation = JSForm.DEFAULT_ENCAPSULATION;

	var myPrivateForm = solutionModel.newForm('newForm2', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myPrivateForm.encapsulation = JSForm.PRIVATE_ENCAPSULATION;

	var myModulePrivateForm = solutionModel.newForm('newForm3', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myModulePrivateForm.encapsulation = JSForm.MODULE_PRIVATE_ENCAPSULATION;

 var myHideDataprovidersForm = solutionModel.newForm('newForm4', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myHideDataprovidersForm.encapsulation = JSForm.HIDE_DATAPROVIDERS_ENCAPSULATION;

 var myHideFoundsetForm = solutionModel.newForm('newForm5', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myHideFoundsetForm.encapsulation = JSForm.HIDE_FOUNDSET_ENCAPSULATION;

 var myHideControllerForm = solutionModel.newForm('newForm6', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myHideControllerForm.encapsulation = JSForm.HIDE_CONTROLLER_ENCAPSULATION;

	var myHideElementsForm = solutionModel.newForm('newForm7', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myHideElementsForm.encapsulation = JSForm.HIDE_ELEMENTS_ENCAPSULATION;
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=HIDE_CONTROLLER_ENCAPSULATION|class=node}{tr:id=name}{td}h6.HIDE_CONTROLLER_ENCAPSULATION{td}{tr}{tr:id=des}{td}The constants to set or get the encapsulation property of a JSForm. 
They are as follows: JSForm.DEFAULT\_ENCAPSULATION, JSForm.PRIVATE\_ENCAPSULATION, JSForm.MODULE\_PRIVATE\_ENCAPSULATION, JSForm.HIDE\_DATAPROVIDERS\_ENCAPSULATION, JSForm.HIDE\_FOUNDSET\_ENCAPSULATION, JSForm.HIDE\_CONTROLLER\_ENCAPSULATION, JSForm.HIDE\_ELEMENTS\_ENCAPSULATION{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var myDefaultForm = solutionModel.newForm('newForm1', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myDefaultForm.encapsulation = JSForm.DEFAULT_ENCAPSULATION;

	var myPrivateForm = solutionModel.newForm('newForm2', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myPrivateForm.encapsulation = JSForm.PRIVATE_ENCAPSULATION;

	var myModulePrivateForm = solutionModel.newForm('newForm3', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myModulePrivateForm.encapsulation = JSForm.MODULE_PRIVATE_ENCAPSULATION;

 var myHideDataprovidersForm = solutionModel.newForm('newForm4', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myHideDataprovidersForm.encapsulation = JSForm.HIDE_DATAPROVIDERS_ENCAPSULATION;

 var myHideFoundsetForm = solutionModel.newForm('newForm5', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myHideFoundsetForm.encapsulation = JSForm.HIDE_FOUNDSET_ENCAPSULATION;

 var myHideControllerForm = solutionModel.newForm('newForm6', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myHideControllerForm.encapsulation = JSForm.HIDE_CONTROLLER_ENCAPSULATION;

	var myHideElementsForm = solutionModel.newForm('newForm7', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myHideElementsForm.encapsulation = JSForm.HIDE_ELEMENTS_ENCAPSULATION;
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=HIDE_DATAPROVIDERS_ENCAPSULATION|class=node}{tr:id=name}{td}h6.HIDE_DATAPROVIDERS_ENCAPSULATION{td}{tr}{tr:id=des}{td}The constants to set or get the encapsulation property of a JSForm. 
They are as follows: JSForm.DEFAULT\_ENCAPSULATION, JSForm.PRIVATE\_ENCAPSULATION, JSForm.MODULE\_PRIVATE\_ENCAPSULATION, JSForm.HIDE\_DATAPROVIDERS\_ENCAPSULATION, JSForm.HIDE\_FOUNDSET\_ENCAPSULATION, JSForm.HIDE\_CONTROLLER\_ENCAPSULATION, JSForm.HIDE\_ELEMENTS\_ENCAPSULATION{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var myDefaultForm = solutionModel.newForm('newForm1', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myDefaultForm.encapsulation = JSForm.DEFAULT_ENCAPSULATION;

	var myPrivateForm = solutionModel.newForm('newForm2', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myPrivateForm.encapsulation = JSForm.PRIVATE_ENCAPSULATION;

	var myModulePrivateForm = solutionModel.newForm('newForm3', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myModulePrivateForm.encapsulation = JSForm.MODULE_PRIVATE_ENCAPSULATION;

 var myHideDataprovidersForm = solutionModel.newForm('newForm4', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myHideDataprovidersForm.encapsulation = JSForm.HIDE_DATAPROVIDERS_ENCAPSULATION;

 var myHideFoundsetForm = solutionModel.newForm('newForm5', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myHideFoundsetForm.encapsulation = JSForm.HIDE_FOUNDSET_ENCAPSULATION;

 var myHideControllerForm = solutionModel.newForm('newForm6', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myHideControllerForm.encapsulation = JSForm.HIDE_CONTROLLER_ENCAPSULATION;

	var myHideElementsForm = solutionModel.newForm('newForm7', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myHideElementsForm.encapsulation = JSForm.HIDE_ELEMENTS_ENCAPSULATION;
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=HIDE_ELEMENTS_ENCAPSULATION|class=node}{tr:id=name}{td}h6.HIDE_ELEMENTS_ENCAPSULATION{td}{tr}{tr:id=des}{td}The constants to set or get the encapsulation property of a JSForm. 
They are as follows: JSForm.DEFAULT\_ENCAPSULATION, JSForm.PRIVATE\_ENCAPSULATION, JSForm.MODULE\_PRIVATE\_ENCAPSULATION, JSForm.HIDE\_DATAPROVIDERS\_ENCAPSULATION, JSForm.HIDE\_FOUNDSET\_ENCAPSULATION, JSForm.HIDE\_CONTROLLER\_ENCAPSULATION, JSForm.HIDE\_ELEMENTS\_ENCAPSULATION{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var myDefaultForm = solutionModel.newForm('newForm1', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myDefaultForm.encapsulation = JSForm.DEFAULT_ENCAPSULATION;

	var myPrivateForm = solutionModel.newForm('newForm2', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myPrivateForm.encapsulation = JSForm.PRIVATE_ENCAPSULATION;

	var myModulePrivateForm = solutionModel.newForm('newForm3', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myModulePrivateForm.encapsulation = JSForm.MODULE_PRIVATE_ENCAPSULATION;

 var myHideDataprovidersForm = solutionModel.newForm('newForm4', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myHideDataprovidersForm.encapsulation = JSForm.HIDE_DATAPROVIDERS_ENCAPSULATION;

 var myHideFoundsetForm = solutionModel.newForm('newForm5', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myHideFoundsetForm.encapsulation = JSForm.HIDE_FOUNDSET_ENCAPSULATION;

 var myHideControllerForm = solutionModel.newForm('newForm6', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myHideControllerForm.encapsulation = JSForm.HIDE_CONTROLLER_ENCAPSULATION;

	var myHideElementsForm = solutionModel.newForm('newForm7', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myHideElementsForm.encapsulation = JSForm.HIDE_ELEMENTS_ENCAPSULATION;
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=HIDE_FOUNDSET_ENCAPSULATION|class=node}{tr:id=name}{td}h6.HIDE_FOUNDSET_ENCAPSULATION{td}{tr}{tr:id=des}{td}The constants to set or get the encapsulation property of a JSForm. 
They are as follows: JSForm.DEFAULT\_ENCAPSULATION, JSForm.PRIVATE\_ENCAPSULATION, JSForm.MODULE\_PRIVATE\_ENCAPSULATION, JSForm.HIDE\_DATAPROVIDERS\_ENCAPSULATION, JSForm.HIDE\_FOUNDSET\_ENCAPSULATION, JSForm.HIDE\_CONTROLLER\_ENCAPSULATION, JSForm.HIDE\_ELEMENTS\_ENCAPSULATION{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var myDefaultForm = solutionModel.newForm('newForm1', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myDefaultForm.encapsulation = JSForm.DEFAULT_ENCAPSULATION;

	var myPrivateForm = solutionModel.newForm('newForm2', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myPrivateForm.encapsulation = JSForm.PRIVATE_ENCAPSULATION;

	var myModulePrivateForm = solutionModel.newForm('newForm3', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myModulePrivateForm.encapsulation = JSForm.MODULE_PRIVATE_ENCAPSULATION;

 var myHideDataprovidersForm = solutionModel.newForm('newForm4', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myHideDataprovidersForm.encapsulation = JSForm.HIDE_DATAPROVIDERS_ENCAPSULATION;

 var myHideFoundsetForm = solutionModel.newForm('newForm5', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myHideFoundsetForm.encapsulation = JSForm.HIDE_FOUNDSET_ENCAPSULATION;

 var myHideControllerForm = solutionModel.newForm('newForm6', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myHideControllerForm.encapsulation = JSForm.HIDE_CONTROLLER_ENCAPSULATION;

	var myHideElementsForm = solutionModel.newForm('newForm7', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myHideElementsForm.encapsulation = JSForm.HIDE_ELEMENTS_ENCAPSULATION;
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=LIST_VIEW|class=node}{tr:id=name}{td}h6.LIST_VIEW{td}{tr}{tr:id=des}{td}The constants to set or get the view property of a JSForm. 
They are as follows: JSForm.LIST\_VIEW, JSForm.LOCKED\_LIST\_VIEW, JSForm.LOCKED\_RECORD\_VIEW, JSForm.LOCKED\_TABLE\_VIEW, JSForm.RECORD\_VIEW.{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var myListViewForm = solutionModel.newForm('newForm1', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myListViewForm.view = JSForm.LIST_VIEW;

	var myLockedListViewForm = solutionModel.newForm('newForm2', 'myServer', 'myTable', 'myStyleName', false, 800, 600);	
	myLockedListViewForm.view = JSForm.LOCKED_LIST_VIEW;
	
	var myLockedRecordViewForm = solutionModel.newForm('newForm3', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myLockedRecordViewForm.view = JSForm.LOCKED_RECORD_VIEW;

	var myLockedTableViewForm = solutionModel.newForm('newForm4', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myLockedTableViewForm.view = JSForm.LOCKED_TABLE_VIEW;
	
	var myRecordViewForm = solutionModel.newForm('newForm5', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myRecordViewForm.view = JSForm.RECORD_VIEW;
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=LOCKED_LIST_VIEW|class=node}{tr:id=name}{td}h6.LOCKED_LIST_VIEW{td}{tr}{tr:id=des}{td}The constants to set or get the view property of a JSForm. 
They are as follows: JSForm.LIST\_VIEW, JSForm.LOCKED\_LIST\_VIEW, JSForm.LOCKED\_RECORD\_VIEW, JSForm.LOCKED\_TABLE\_VIEW, JSForm.RECORD\_VIEW.{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var myListViewForm = solutionModel.newForm('newForm1', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myListViewForm.view = JSForm.LIST_VIEW;

	var myLockedListViewForm = solutionModel.newForm('newForm2', 'myServer', 'myTable', 'myStyleName', false, 800, 600);	
	myLockedListViewForm.view = JSForm.LOCKED_LIST_VIEW;
	
	var myLockedRecordViewForm = solutionModel.newForm('newForm3', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myLockedRecordViewForm.view = JSForm.LOCKED_RECORD_VIEW;

	var myLockedTableViewForm = solutionModel.newForm('newForm4', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myLockedTableViewForm.view = JSForm.LOCKED_TABLE_VIEW;
	
	var myRecordViewForm = solutionModel.newForm('newForm5', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myRecordViewForm.view = JSForm.RECORD_VIEW;
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=LOCKED_RECORD_VIEW|class=node}{tr:id=name}{td}h6.LOCKED_RECORD_VIEW{td}{tr}{tr:id=des}{td}The constants to set or get the view property of a JSForm. 
They are as follows: JSForm.LIST\_VIEW, JSForm.LOCKED\_LIST\_VIEW, JSForm.LOCKED\_RECORD\_VIEW, JSForm.LOCKED\_TABLE\_VIEW, JSForm.RECORD\_VIEW.{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var myListViewForm = solutionModel.newForm('newForm1', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myListViewForm.view = JSForm.LIST_VIEW;

	var myLockedListViewForm = solutionModel.newForm('newForm2', 'myServer', 'myTable', 'myStyleName', false, 800, 600);	
	myLockedListViewForm.view = JSForm.LOCKED_LIST_VIEW;
	
	var myLockedRecordViewForm = solutionModel.newForm('newForm3', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myLockedRecordViewForm.view = JSForm.LOCKED_RECORD_VIEW;

	var myLockedTableViewForm = solutionModel.newForm('newForm4', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myLockedTableViewForm.view = JSForm.LOCKED_TABLE_VIEW;
	
	var myRecordViewForm = solutionModel.newForm('newForm5', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myRecordViewForm.view = JSForm.RECORD_VIEW;
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=LOCKED_TABLE_VIEW|class=node}{tr:id=name}{td}h6.LOCKED_TABLE_VIEW{td}{tr}{tr:id=des}{td}The constants to set or get the view property of a JSForm. 
They are as follows: JSForm.LIST\_VIEW, JSForm.LOCKED\_LIST\_VIEW, JSForm.LOCKED\_RECORD\_VIEW, JSForm.LOCKED\_TABLE\_VIEW, JSForm.RECORD\_VIEW.{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var myListViewForm = solutionModel.newForm('newForm1', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myListViewForm.view = JSForm.LIST_VIEW;

	var myLockedListViewForm = solutionModel.newForm('newForm2', 'myServer', 'myTable', 'myStyleName', false, 800, 600);	
	myLockedListViewForm.view = JSForm.LOCKED_LIST_VIEW;
	
	var myLockedRecordViewForm = solutionModel.newForm('newForm3', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myLockedRecordViewForm.view = JSForm.LOCKED_RECORD_VIEW;

	var myLockedTableViewForm = solutionModel.newForm('newForm4', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myLockedTableViewForm.view = JSForm.LOCKED_TABLE_VIEW;
	
	var myRecordViewForm = solutionModel.newForm('newForm5', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myRecordViewForm.view = JSForm.RECORD_VIEW;
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=MODULE_PRIVATE_ENCAPSULATION|class=node}{tr:id=name}{td}h6.MODULE_PRIVATE_ENCAPSULATION{td}{tr}{tr:id=des}{td}The constants to set or get the encapsulation property of a JSForm. 
They are as follows: JSForm.DEFAULT\_ENCAPSULATION, JSForm.PRIVATE\_ENCAPSULATION, JSForm.MODULE\_PRIVATE\_ENCAPSULATION, JSForm.HIDE\_DATAPROVIDERS\_ENCAPSULATION, JSForm.HIDE\_FOUNDSET\_ENCAPSULATION, JSForm.HIDE\_CONTROLLER\_ENCAPSULATION, JSForm.HIDE\_ELEMENTS\_ENCAPSULATION{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var myDefaultForm = solutionModel.newForm('newForm1', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myDefaultForm.encapsulation = JSForm.DEFAULT_ENCAPSULATION;

	var myPrivateForm = solutionModel.newForm('newForm2', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myPrivateForm.encapsulation = JSForm.PRIVATE_ENCAPSULATION;

	var myModulePrivateForm = solutionModel.newForm('newForm3', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myModulePrivateForm.encapsulation = JSForm.MODULE_PRIVATE_ENCAPSULATION;

 var myHideDataprovidersForm = solutionModel.newForm('newForm4', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myHideDataprovidersForm.encapsulation = JSForm.HIDE_DATAPROVIDERS_ENCAPSULATION;

 var myHideFoundsetForm = solutionModel.newForm('newForm5', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myHideFoundsetForm.encapsulation = JSForm.HIDE_FOUNDSET_ENCAPSULATION;

 var myHideControllerForm = solutionModel.newForm('newForm6', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myHideControllerForm.encapsulation = JSForm.HIDE_CONTROLLER_ENCAPSULATION;

	var myHideElementsForm = solutionModel.newForm('newForm7', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myHideElementsForm.encapsulation = JSForm.HIDE_ELEMENTS_ENCAPSULATION;
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=PRIVATE_ENCAPSULATION|class=node}{tr:id=name}{td}h6.PRIVATE_ENCAPSULATION{td}{tr}{tr:id=des}{td}The constants to set or get the encapsulation property of a JSForm. 
They are as follows: JSForm.DEFAULT\_ENCAPSULATION, JSForm.PRIVATE\_ENCAPSULATION, JSForm.MODULE\_PRIVATE\_ENCAPSULATION, JSForm.HIDE\_DATAPROVIDERS\_ENCAPSULATION, JSForm.HIDE\_FOUNDSET\_ENCAPSULATION, JSForm.HIDE\_CONTROLLER\_ENCAPSULATION, JSForm.HIDE\_ELEMENTS\_ENCAPSULATION{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var myDefaultForm = solutionModel.newForm('newForm1', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myDefaultForm.encapsulation = JSForm.DEFAULT_ENCAPSULATION;

	var myPrivateForm = solutionModel.newForm('newForm2', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myPrivateForm.encapsulation = JSForm.PRIVATE_ENCAPSULATION;

	var myModulePrivateForm = solutionModel.newForm('newForm3', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myModulePrivateForm.encapsulation = JSForm.MODULE_PRIVATE_ENCAPSULATION;

 var myHideDataprovidersForm = solutionModel.newForm('newForm4', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myHideDataprovidersForm.encapsulation = JSForm.HIDE_DATAPROVIDERS_ENCAPSULATION;

 var myHideFoundsetForm = solutionModel.newForm('newForm5', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myHideFoundsetForm.encapsulation = JSForm.HIDE_FOUNDSET_ENCAPSULATION;

 var myHideControllerForm = solutionModel.newForm('newForm6', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myHideControllerForm.encapsulation = JSForm.HIDE_CONTROLLER_ENCAPSULATION;

	var myHideElementsForm = solutionModel.newForm('newForm7', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myHideElementsForm.encapsulation = JSForm.HIDE_ELEMENTS_ENCAPSULATION;
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=RECORD_VIEW|class=node}{tr:id=name}{td}h6.RECORD_VIEW{td}{tr}{tr:id=des}{td}The constants to set or get the view property of a JSForm. 
They are as follows: JSForm.LIST\_VIEW, JSForm.LOCKED\_LIST\_VIEW, JSForm.LOCKED\_RECORD\_VIEW, JSForm.LOCKED\_TABLE\_VIEW, JSForm.RECORD\_VIEW.{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var myListViewForm = solutionModel.newForm('newForm1', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myListViewForm.view = JSForm.LIST_VIEW;

	var myLockedListViewForm = solutionModel.newForm('newForm2', 'myServer', 'myTable', 'myStyleName', false, 800, 600);	
	myLockedListViewForm.view = JSForm.LOCKED_LIST_VIEW;
	
	var myLockedRecordViewForm = solutionModel.newForm('newForm3', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myLockedRecordViewForm.view = JSForm.LOCKED_RECORD_VIEW;

	var myLockedTableViewForm = solutionModel.newForm('newForm4', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myLockedTableViewForm.view = JSForm.LOCKED_TABLE_VIEW;
	
	var myRecordViewForm = solutionModel.newForm('newForm5', 'myServer', 'myTable', 'myStyleName', false, 800, 600);
	myRecordViewForm.view = JSForm.RECORD_VIEW;
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}\\ 

{table:id=property|class=servoy sDetail}{colgroup}{column:padding=0px|width=100%}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Property Details{th}{tr}{tbody:id=borderType|class=node}{tr:id=name}{td}h6.borderType{td}{tr}{tr:id=des}{td}The type, color and style of border of the component.{td}{tr}{tr:id=ret}{td}*Returns*\\ [String]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
//HINT: To know exactly the notation of this property set it in the designer and then read it once out through the solution model.
var field = form.newField('my_table_text', JSField.TEXT_FIELD, 10, 10, 100, 20);
field.borderType = solutionModel.createBorder(1,'#ff0000');;
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=dataSource|class=node}{tr:id=name}{td}h6.dataSource{td}{tr}{tr:id=des}{td}The names of the database server and table that this form is linked to.{td}{tr}{tr:id=ret}{td}*Returns*\\ [String]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var myForm = solutionModel.newForm('newForm', 'aServer', 'aTable', 'aStyleName', false, 800, 600)
	myForm.dataSource = 'db:/anotherServerName/anotherTableName'
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=defaultPageFormat|class=node}{tr:id=name}{td}h6.defaultPageFormat{td}{tr}{tr:id=des}{td}The default page format for the form.{td}{tr}{tr:id=ret}{td}*Returns*\\ [String]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.getForm("someForm");
application.output(form.defaultPageFormat);
form.defaultPageFormat = solutionModel.createPageFormat(612,792,72,72,72,72,SM_ORIENTATION.PORTRAIT,SM_UNITS.PIXELS)
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=encapsulation|class=node}{tr:id=name}{td}h6.encapsulation{td}{tr}{tr:id=des}{td}Replace with description{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var myForm = solutionModel.newForm('newForm1', 'myServer', 'myTable', null, true, 800, 600);
myForm.encapsulation = JSForm.HIDE_CONTROLLER_ENCAPSULATION;
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=extendsForm|class=node}{tr:id=name}{td}h6.extendsForm{td}{tr}{tr:id=des}{td}A JSForm instance representing the super form of this form, if this form has a super form.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSForm]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var subForm = solutionModel.newForm('childForm','myServer','myTable',null,true,800,600);
var superForm = solutionModel.newForm('childForm','myServer','myTable',null,true,800,600);
subForm.extendsForm = superForm;
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=initialSort|class=node}{tr:id=name}{td}h6.initialSort{td}{tr}{tr:id=des}{td}The default sort order only when the form loads.
This is applied each time an internal SQL query is being executed (find, find\-all, open form); and is only executed when no other manual sort has been performed on the foundset.{td}{tr}{tr:id=ret}{td}*Returns*\\ [String]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('myForm','myServer','myTable',null,true,800,600);
form.initialSort = "column1 desc, column2 asc, column3 asc";
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=name|class=node}{tr:id=name}{td}h6.name{td}{tr}{tr:id=des}{td}The name of the form.{td}{tr}{tr:id=ret}{td}*Returns*\\ [String]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('myForm','myServer','myTable',null,true,800,600);
var formName = form.name;
application.output(formName);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=namedFoundSet|class=node}{tr:id=name}{td}h6.namedFoundSet{td}{tr}{tr:id=des}{td}Property that tells the form to use a named foundset instead of the default foundset.
When "separate" as special value is specified the form will always create a copy of assigned foundset and therefor become separated from other foundsets{td}{tr}{tr:id=ret}{td}*Returns*\\ [String]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
// form with separate foundset
	var frmSeparate = solutionModel.newForm('products_separate', 'example_data', 'products', null, true, 640, 480);
	frmSeparate.newLabel("Separate FoundSet",10,10,200,20);
	frmSeparate.newField('categoryid',JSField.TEXT_FIELD,10,40,200,20);
	frmSeparate.newField('productname',JSField.TEXT_FIELD,10,70,200,20);
	frmSeparate.namedFoundSet = 'separate';
	forms['products_separate'].controller.find();
	forms['products_separate'].categoryid = '=2';
	forms['products_separate'].controller.search();
	// form with empty foundset
	var frmEmpty = solutionModel.newForm('products_empty', 'example_data', 'products', null, true, 640, 480);
	frmEmpty.newLabel("Empty FoundSet",10,10,200,20);
	frmEmpty.newField('categoryid',JSField.TEXT_FIELD,10,40,200,20);
	frmEmpty.newField('productname',JSField.TEXT_FIELD,10,70,200,20);
	frmEmpty.namedFoundSet = 'empty';
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=navigator|class=node}{tr:id=name}{td}h6.navigator{td}{tr}{tr:id=des}{td}The navigator (previously named "controller")
that is used to control/navigate to the form. The navigator is shown at
the left or at the right side of the form, depending on the page orientation. 

The following options are available: 
\-none\- \- no navigator is assigned. 
DEFAULT \- the Servoy default navigator is assigned. 
IGNORE \- the navigator last assigned to a previous form. 
Custom \- a custom navigator based on a selected form.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSForm]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var aForm = solutionModel.newForm('newForm1', 'myServer', 'myTable', null, true, 800, 600);
 // you can also use SM_DEFAULTS.INGORE to just reuse the navigator that is already set, or SM_DEFAULTS.DEFAULT to have the default servoy navigator.
 // here we assign an other new form as the navigator.
	var aNavigator = solutionModel.newForm('navForm', 'myServer', 'myTable', null, false, 800, 600);
 // set the navigators navigator to NONE
	aNavigator.navigator = SM_DEFAULTS.NONE; // Hide the navigator on the form. 
	myListViewForm.navigator = aNavigator;
	application.output(myListViewForm.navigator.name);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onDeleteAllRecordsCmd|class=node}{tr:id=name}{td}h6.onDeleteAllRecordsCmd{td}{tr}{tr:id=des}{td}The method that overrides the Servoy menu item Select > Delete All. 
This property is automatically set to "DEFAULT" (no override) when the form is created.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onNewRecordCmd = form.newFormMethod('function onNewRecordCmd(event) { application.output("onNewRecordCmd intercepted on " + event.getFormName()); }');
form.onDuplicateRecordCmd = form.newFormMethod('function onDuplicateRecordCmd(event) { application.output("onDuplicateRecordCmd intercepted on " + event.getFormName()); }');
form.onDeleteRecordCmd = form.newFormMethod('function onDeleteRecordCmd(event) { application.output("onDeleteRecordCmd intercepted on " + event.getFormName()); }');
form.onDeleteAllRecordsCmd = form.newFormMethod('function onDeleteAllRecordsCmd(event) { application.output("onDeleteAllRecordsCmd intercepted on " + event.getFormName()); }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onDeleteRecordCmd|class=node}{tr:id=name}{td}h6.onDeleteRecordCmd{td}{tr}{tr:id=des}{td}The method that overrides the Servoy menu item Select > Delete Record (or keyboard shortcut). 
This property is automatically set to "DEFAULT" (no override) when the form is created.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onNewRecordCmd = form.newFormMethod('function onNewRecordCmd(event) { application.output("onNewRecordCmd intercepted on " + event.getFormName()); }');
form.onDuplicateRecordCmd = form.newFormMethod('function onDuplicateRecordCmd(event) { application.output("onDuplicateRecordCmd intercepted on " + event.getFormName()); }');
form.onDeleteRecordCmd = form.newFormMethod('function onDeleteRecordCmd(event) { application.output("onDeleteRecordCmd intercepted on " + event.getFormName()); }');
form.onDeleteAllRecordsCmd = form.newFormMethod('function onDeleteAllRecordsCmd(event) { application.output("onDeleteAllRecordsCmd intercepted on " + event.getFormName()); }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onDrag|class=node}{tr:id=name}{td}h6.onDrag{td}{tr}{tr:id=des}{td}The method that is triggered when (non Design Mode) dragging occurs.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onDrag = form.newFormMethod('function onDrag(event) { application.output("onDrag intercepted from " + event.getSource()); }');
form.onDragEnd = form.newFormMethod('function onDragEnd(event) { application.output("onDragEnd intercepted from " + event.getSource()); }');
form.onDragOver = form.newFormMethod('function onDragOver(event) { application.output("onDragOver intercepted from " + event.getSource()); }');
form.onDrop = form.newFormMethod('function onDrop(event) { application.output("onDrop intercepted from " + event.getSource()); }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onDragEnd|class=node}{tr:id=name}{td}h6.onDragEnd{td}{tr}{tr:id=des}{td}The method that is triggered when (non Design Mode) dragging end occurs.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onDrag = form.newFormMethod('function onDrag(event) { application.output("onDrag intercepted from " + event.getSource()); }');
form.onDragEnd = form.newFormMethod('function onDragEnd(event) { application.output("onDragEnd intercepted from " + event.getSource()); }');
form.onDragOver = form.newFormMethod('function onDragOver(event) { application.output("onDragOver intercepted from " + event.getSource()); }');
form.onDrop = form.newFormMethod('function onDrop(event) { application.output("onDrop intercepted from " + event.getSource()); }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onDragOver|class=node}{tr:id=name}{td}h6.onDragOver{td}{tr}{tr:id=des}{td}The method that is triggered when (non Design Mode) dragging over a component occurs.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onDrag = form.newFormMethod('function onDrag(event) { application.output("onDrag intercepted from " + event.getSource()); }');
form.onDragEnd = form.newFormMethod('function onDragEnd(event) { application.output("onDragEnd intercepted from " + event.getSource()); }');
form.onDragOver = form.newFormMethod('function onDragOver(event) { application.output("onDragOver intercepted from " + event.getSource()); }');
form.onDrop = form.newFormMethod('function onDrop(event) { application.output("onDrop intercepted from " + event.getSource()); }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onDrop|class=node}{tr:id=name}{td}h6.onDrop{td}{tr}{tr:id=des}{td}The method that is triggered when (non Design Mode) dropping occurs.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onDrag = form.newFormMethod('function onDrag(event) { application.output("onDrag intercepted from " + event.getSource()); }');
form.onDragEnd = form.newFormMethod('function onDragEnd(event) { application.output("onDragEnd intercepted from " + event.getSource()); }');
form.onDragOver = form.newFormMethod('function onDragOver(event) { application.output("onDragOver intercepted from " + event.getSource()); }');
form.onDrop = form.newFormMethod('function onDrop(event) { application.output("onDrop intercepted from " + event.getSource()); }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onDuplicateRecordCmd|class=node}{tr:id=name}{td}h6.onDuplicateRecordCmd{td}{tr}{tr:id=des}{td}The method that overrides the Servoy menu item Select > Duplicate Record (or keyboard shortcut).
This property is automatically set to "DEFAULT" (no override) when the form is created.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onNewRecordCmd = form.newFormMethod('function onNewRecordCmd(event) { application.output("onNewRecordCmd intercepted on " + event.getFormName()); }');
form.onDuplicateRecordCmd = form.newFormMethod('function onDuplicateRecordCmd(event) { application.output("onDuplicateRecordCmd intercepted on " + event.getFormName()); }');
form.onDeleteRecordCmd = form.newFormMethod('function onDeleteRecordCmd(event) { application.output("onDeleteRecordCmd intercepted on " + event.getFormName()); }');
form.onDeleteAllRecordsCmd = form.newFormMethod('function onDeleteAllRecordsCmd(event) { application.output("onDeleteAllRecordsCmd intercepted on " + event.getFormName()); }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onElementFocusGained|class=node}{tr:id=name}{td}h6.onElementFocusGained{td}{tr}{tr:id=des}{td}The method that is triggered when focus is gained by a component inside the form.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onElementFocusGained = form.newFormMethod('function onElementFocusGained(event) { application.output("onElementFocusGained intercepted from " + event.getSource()); }');
form.onElementFocusLost = form.newFormMethod('function onElementFocusLost(event) { application.output("onElementFocusLost intercepted from " + event.getSource()); }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onElementFocusLost|class=node}{tr:id=name}{td}h6.onElementFocusLost{td}{tr}{tr:id=des}{td}The method that gets triggered when focus is lost by a component inside the form.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onElementFocusGained = form.newFormMethod('function onElementFocusGained(event) { application.output("onElementFocusGained intercepted from " + event.getSource()); }');
form.onElementFocusLost = form.newFormMethod('function onElementFocusLost(event) { application.output("onElementFocusLost intercepted from " + event.getSource()); }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onFindCmd|class=node}{tr:id=name}{td}h6.onFindCmd{td}{tr}{tr:id=des}{td}The method that overrides the Servoy menu item Select > Find (or keyboard shortcut) in Data (ready) mode. 
This property is automatically set to "DEFAULT" (no override) when the form is created.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onFindCmd = form.newFormMethod('function onFindCmd(event) { application.output("onFindCmd intercepted on " + event.getFormName()); }');
form.onSearchCmd = form.newFormMethod('function onSearchCmd(event) { application.output("onSearchCmd intercepted on " + event.getFormName()); }');
form.onShowAllRecordsCmd = form.newFormMethod('function onShowAllRecordsCmd(event) { application.output("onShowAllRecordsCmd intercepted on " + event.getFormName()); }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onHide|class=node}{tr:id=name}{td}h6.onHide{td}{tr}{tr:id=des}{td}The method that is triggered when another form is being activated. 
NOTE: If the onHide method returns false, the form can be prevented from hiding. 
For example, when using onHide with showFormInDialog, the form will not close by clicking the dialog close box (X).{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onShow = form.newFormMethod('function onShow(firstShow, event) { application.output("onShow intercepted on " + event.getFormName() + ". first show? " + firstShow); return false; }');
form.onHide = form.newFormMethod('function onHide(event) { application.output("onHide blocked on " + event.getFormName()); return false; }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onInvertRecordsCmd|class=node}{tr:id=name}{td}h6.onInvertRecordsCmd{td}{tr}{tr:id=des}{td}The method that overrides the Servoy menu item Select > Invert Records. 
This property is automatically set to "DEFAULT" (no override) when the form is created.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onOmitRecordCmd = form.newFormMethod('function onOmitRecordCmd(event) { application.output("onOmitRecordCmd intercepted on " + event.getFormName()); }');
form.onShowOmittedRecordsCmd = form.newFormMethod('function onShowOmittedRecordsCmd(event) { application.output("onShowOmittedRecordsCmd intercepted on " + event.getFormName()); }');
form.onInvertRecordsCmd = form.newFormMethod('function onInvertRecordsCmd(event) { application.output("onInvertRecordsCmd intercepted on " + event.getFormName()); }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onLoad|class=node}{tr:id=name}{td}h6.onLoad{td}{tr}{tr:id=des}{td}The method that is triggered when a form is loaded/reloaded from the repository; used to alter elements, set globals, hide toolbars, 
etc; onShow method can also be assigned.
NOTE: onShow should be used to access current foundset dataproviders; onLoad cannot be used because the foundset data is not loaded until after the form is loaded. 
Also calls to loadRecords() should be done in the onShow method and not in the onLoad method
If you call loadRecords() in the onShow method, you may want to set the namedFoundSet property of the form to 'empty' to prevent the first default form query.
NOTE: the onLoad event bubbles down, meaning that the onLoad is first fired on the parent then on a tab in a tabpanel (and in tab of that tab panels if you are 3 deep){td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onLoad = form.newFormMethod('function onLoad(event) { application.output("onLoad intercepted on " + event.getFormName()); }');
form.onUnLoad = form.newFormMethod('function onUnLoad(event) { application.output("onUnLoad intercepted on " + event.getFormName()); }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onNewRecordCmd|class=node}{tr:id=name}{td}h6.onNewRecordCmd{td}{tr}{tr:id=des}{td}The method that overrides the Servoy menu item Select > New Record (or keyboard shortcut). 
This property is automatically set to "DEFAULT" (no override) when the form is created.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onNewRecordCmd = form.newFormMethod('function onNewRecordCmd(event) { application.output("onNewRecordCmd intercepted on " + event.getFormName()); }');
form.onDuplicateRecordCmd = form.newFormMethod('function onDuplicateRecordCmd(event) { application.output("onDuplicateRecordCmd intercepted on " + event.getFormName()); }');
form.onDeleteRecordCmd = form.newFormMethod('function onDeleteRecordCmd(event) { application.output("onDeleteRecordCmd intercepted on " + event.getFormName()); }');
form.onDeleteAllRecordsCmd = form.newFormMethod('function onDeleteAllRecordsCmd(event) { application.output("onDeleteAllRecordsCmd intercepted on " + event.getFormName()); }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onNextRecordCmd|class=node}{tr:id=name}{td}h6.onNextRecordCmd{td}{tr}{tr:id=des}{td}The method that overrides the Servoy menu item Select > Next Record. 
This property is automatically set to "DEFAULT" (no override) when the form is created.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onPreviousRecordCmd = form.newFormMethod('function onPreviousRecordCmd(event) { application.output("onPreviousRecordCmd intercepted on " + event.getFormName()); }');
form.onNextRecordCmd = form.newFormMethod('function onNextRecordCmd(event) { application.output("onNextRecordCmd intercepted on " + event.getFormName()); }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onOmitRecordCmd|class=node}{tr:id=name}{td}h6.onOmitRecordCmd{td}{tr}{tr:id=des}{td}The method that overrides the Servoy menu item Select > Omit Record. 
This property is automatically set to "DEFAULT" (no override) when the form is created.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onOmitRecordCmd = form.newFormMethod('function onOmitRecordCmd(event) { application.output("onOmitRecordCmd intercepted on " + event.getFormName()); }');
form.onShowOmittedRecordsCmd = form.newFormMethod('function onShowOmittedRecordsCmd(event) { application.output("onShowOmittedRecordsCmd intercepted on " + event.getFormName()); }');
form.onInvertRecordsCmd = form.newFormMethod('function onInvertRecordsCmd(event) { application.output("onInvertRecordsCmd intercepted on " + event.getFormName()); }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onPreviousRecordCmd|class=node}{tr:id=name}{td}h6.onPreviousRecordCmd{td}{tr}{tr:id=des}{td}The method that overrides the Servoy menu item Select > Previous Record. 
This property is automatically set to "DEFAULT" (no override) when the form is created.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onPreviousRecordCmd = form.newFormMethod('function onPreviousRecordCmd(event) { application.output("onPreviousRecordCmd intercepted on " + event.getFormName()); }');
form.onNextRecordCmd = form.newFormMethod('function onNextRecordCmd(event) { application.output("onNextRecordCmd intercepted on " + event.getFormName()); }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onPrintPreviewCmd|class=node}{tr:id=name}{td}h6.onPrintPreviewCmd{td}{tr}{tr:id=des}{td}The method that overrides the Servoy menu item File > Print Preview. 
This property is automatically set to "DEFAULT" (no override) when the form is created.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onPrintPreviewCmd = form.newFormMethod('function onPrintPreviewCmd(event) { application.output("onPrintPreviewCmd intercepted on " + event.getFormName()); }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onRecordEditStart|class=node}{tr:id=name}{td}h6.onRecordEditStart{td}{tr}{tr:id=des}{td}The method that is triggered when a user clicks into a column on the form.
NOTE: There is a small "e" displayed in the lower left side of the Servoy Client screen in the status area at the bottom of the window when the record is being edited.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onRecordEditStart = form.newFormMethod('function onRecordEditStart(event) { application.output("onRecordEditStart intercepted on " + event.getFormName()); }');
form.onRecordEditStop = form.newFormMethod('function onRecordEditStop(record, event) { application.output("onRecordEditStop intercepted on " + event.getFormName() + ". record is: " + record); }');
form.onRecordSelection = form.newFormMethod('function onRecordSelection(event) { application.output("onRecordSelection intercepted on " + event.getFormName()); }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onRecordEditStop|class=node}{tr:id=name}{td}h6.onRecordEditStop{td}{tr}{tr:id=des}{td}The method that is triggered when a record is being saved. 
A record is saved when a user clicks out of it (for example on an empty part of the layout or to another form); can return false (for example as part of a validation) where a condition must be changed to return true. 
NOTE: The name of this property has been changed from onRecordSave.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onRecordEditStart = form.newFormMethod('function onRecordEditStart(event) { application.output("onRecordEditStart intercepted on " + event.getFormName()); }');
form.onRecordEditStop = form.newFormMethod('function onRecordEditStop(record, event) { application.output("onRecordEditStop intercepted on " + event.getFormName() + ". record is: " + record); }');
form.onRecordSelection = form.newFormMethod('function onRecordSelection(event) { application.output("onRecordSelection intercepted on " + event.getFormName()); }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onRecordSelection|class=node}{tr:id=name}{td}h6.onRecordSelection{td}{tr}{tr:id=des}{td}The method that is triggered each time a record is selected. 
If a form is in List view or Special table view \- when the user clicks on it.
In Record view \- after the user navigates to another record using the slider or clicks up or down for next/previous record. 
NOTE: Data and Servoy tag values are returned when the onRecordSelection method is executed.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onRecordEditStart = form.newFormMethod('function onRecordEditStart(event) { application.output("onRecordEditStart intercepted on " + event.getFormName()); }');
form.onRecordEditStop = form.newFormMethod('function onRecordEditStop(record, event) { application.output("onRecordEditStop intercepted on " + event.getFormName() + ". record is: " + record); }');
form.onRecordSelection = form.newFormMethod('function onRecordSelection(event) { application.output("onRecordSelection intercepted on " + event.getFormName()); }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onRender|class=node}{tr:id=name}{td}h6.onRender{td}{tr}{tr:id=des}{td}The method that is executed when the component is rendered.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onRender = form.newFormMethod('function onRender(event) { event.getElement().bgcolor = \'#00ff00\' }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onResize|class=node}{tr:id=name}{td}h6.onResize{td}{tr}{tr:id=des}{td}The method that gets triggered when resize occurs.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onResize = form.newFormMethod('function onResize(event) { application.output("onResize intercepted on " + event.getFormName()); }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onSearchCmd|class=node}{tr:id=name}{td}h6.onSearchCmd{td}{tr}{tr:id=des}{td}The method that overrides the Servoy menu item Select > Search (or keyboard shortcut) in Find mode. 
This property is automatically set to "DEFAULT" (no override) when the form is created.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onFindCmd = form.newFormMethod('function onFindCmd(event) { application.output("onFindCmd intercepted on " + event.getFormName()); }');
form.onSearchCmd = form.newFormMethod('function onSearchCmd(event) { application.output("onSearchCmd intercepted on " + event.getFormName()); }');
form.onShowAllRecordsCmd = form.newFormMethod('function onShowAllRecordsCmd(event) { application.output("onShowAllRecordsCmd intercepted on " + event.getFormName()); }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onShow|class=node}{tr:id=name}{td}h6.onShow{td}{tr}{tr:id=des}{td}The method that is triggered EVERY TIME the form is displayed; an argument must be passed to the method if this is the first time the form is displayed. 

NOTE: onShow can be used to access current foundset dataproviders; onLoad cannot be used because the foundset data is not loaded until after the form is loaded. 

NOTE: the onShow event bubbles down, meaning that the onShow event of a form displayed in a tabPanel is fired after the onShow event of the parent.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onShow = form.newFormMethod('function onShow(firstShow, event) { application.output("onShow intercepted on " + event.getFormName() + ". first show? " + firstShow); return false; }');
form.onHide = form.newFormMethod('function onHide(event) { application.output("onHide blocked on " + event.getFormName()); return false; }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onShowAllRecordsCmd|class=node}{tr:id=name}{td}h6.onShowAllRecordsCmd{td}{tr}{tr:id=des}{td}The method that overrides the Servoy menu item Select > Show All (or keyboard shortcut). 
This property is automatically set to "DEFAULT" (no override) when the form is created.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onFindCmd = form.newFormMethod('function onFindCmd(event) { application.output("onFindCmd intercepted on " + event.getFormName()); }');
form.onSearchCmd = form.newFormMethod('function onSearchCmd(event) { application.output("onSearchCmd intercepted on " + event.getFormName()); }');
form.onShowAllRecordsCmd = form.newFormMethod('function onShowAllRecordsCmd(event) { application.output("onShowAllRecordsCmd intercepted on " + event.getFormName()); }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onShowOmittedRecordsCmd|class=node}{tr:id=name}{td}h6.onShowOmittedRecordsCmd{td}{tr}{tr:id=des}{td}The method that overrides the Servoy menu item Select > Show Omitted Records. 
This property is automatically set to "DEFAULT" (no override) when the form is created.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onOmitRecordCmd = form.newFormMethod('function onOmitRecordCmd(event) { application.output("onOmitRecordCmd intercepted on " + event.getFormName()); }');
form.onShowOmittedRecordsCmd = form.newFormMethod('function onShowOmittedRecordsCmd(event) { application.output("onShowOmittedRecordsCmd intercepted on " + event.getFormName()); }');
form.onInvertRecordsCmd = form.newFormMethod('function onInvertRecordsCmd(event) { application.output("onInvertRecordsCmd intercepted on " + event.getFormName()); }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onSortCmd|class=node}{tr:id=name}{td}h6.onSortCmd{td}{tr}{tr:id=des}{td}The method that overrides the Servoy menu item Select > Sort. 
This property is automatically set to "DEFAULT" (no override) when the form is created.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onSortCmd = form.newFormMethod('function onSortCmd(dataProviderID, asc, event) { application.output("onSortCmd intercepted on " + event.getFormName() + ". data provider: " + dataProviderID + ". asc: " + asc); }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=onUnLoad|class=node}{tr:id=name}{td}h6.onUnLoad{td}{tr}{tr:id=des}{td}The method that is triggered when a form is unloaded from the repository. 
NOTE: Forms can be prevented from being removed from memory by referencing the form object in a global variable or inside an array inside a global variable. Do take care using this technique.
Forms take up memory and if too many forms are in memory and cannot be unloaded, there is a possibility of running out of memory.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.onLoad = form.newFormMethod('function onLoad(event) { application.output("onLoad intercepted on " + event.getFormName()); }');
form.onUnLoad = form.newFormMethod('function onUnLoad(event) { application.output("onUnLoad intercepted on " + event.getFormName()); }');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=paperPrintScale|class=node}{tr:id=name}{td}h6.paperPrintScale{td}{tr}{tr:id=des}{td}The percentage value the printed page is enlarged or reduced to; the size of the printed form 
is inversely proportional. For example, if the paperPrintScale is 50, the printed form will be 
enlarged 200%.{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('myForm','myServer','myTable',null,true,800,600);
if (form.paperPrintScale < 100)
	form.paperPrintScale = 100;
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=scrollbars|class=node}{tr:id=name}{td}h6.scrollbars{td}{tr}{tr:id=des}{td}Scrollbar options for the vertical and horizontal scrollbars. Each of the
vertical and horizontal scrollbars can be configured to display all the time,
to display only when needed or to never display.{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('myForm','myServer','myTable',null,true,1000,600);
form.scrollbars = SM_SCROLLBAR.VERTICAL_SCROLLBAR_NEVER; 
forms['newForm1'].controller.show();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=serverName|class=node}{tr:id=name}{td}h6.serverName{td}{tr}{tr:id=des}{td}Get the server name used by this form.{td}{tr}{tr:id=ret}{td}*Returns*\\ [String]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('myForm','myServer','myTable',null,true,800,600);
form.serverName = 'anotherServerName';
var theServerName = form.getServerName();
application.output(theServerName);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=showInMenu|class=node}{tr:id=name}{td}h6.showInMenu{td}{tr}{tr:id=des}{td}When set, the form is displayed under the Window menu. 
If it is not set, the form will be 'hidden'. 
NOTE: This is only applicable for Servoy Client. Servoy Developer always shows all forms so that
developers have access to all forms within a solution during development.{td}{tr}{tr:id=ret}{td}*Returns*\\ [Boolean]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var aForm = solutionModel.newForm('newForm1', 'myServer', 'myTable', null, true, 800, 600);
	var anotherForm= solutionModel.newForm('newForm2', 'myServer', 'myTable', null, true, 800, 600);
	//using 'anotherForm' as navigator for aForm
	anotherForm.showInMenu = false;
	anotherForm.navigator = null;
	aForm.navigator = anotherForm;
	application.output(aForm.navigator.name);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=styleClass|class=node}{tr:id=name}{td}h6.styleClass{td}{tr}{tr:id=des}{td}The Cascading Style Sheet (CSS) class name applied to the form.{td}{tr}{tr:id=ret}{td}*Returns*\\ [String]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var aForm = solutionModel.newForm('newForm1', 'myServer', 'myTable', null, true, 800, 600);
if (aForm.styleClass == null)
	aForm.styleClass = someStyleClass;
else
	application.output("The Cascading Style Sheet (CSS) class name applied to this form is " + aForm.styleClass);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=styleName|class=node}{tr:id=name}{td}h6.styleName{td}{tr}{tr:id=des}{td}The name of the Servoy style that is being used on the form.{td}{tr}{tr:id=ret}{td}*Returns*\\ [String]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var aForm = solutionModel.newForm('newForm1', 'myServer', 'myTable', null, true, 800, 600);
if (aForm.styleName == null)
	aForm.styleName = someServoyStyleName;
else
	application.output("The name of the Servoy style that is being used on the form is " + aForm.styleName);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=tableName|class=node}{tr:id=name}{td}h6.tableName{td}{tr}{tr:id=des}{td}The \[name of the table/SQL view\].\[the name of the database server connection\] the form is based on.{td}{tr}{tr:id=ret}{td}*Returns*\\ [String]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var aForm = solutionModel.newForm('newForm1', 'myServer', 'myTable', null, true, 800, 600);
	aForm.tableName = 'anotherTableOfMine'
	if (forms['newForm1'].controller.find())
	{
		columnTextDataProvider = '=aSearchedValue'
		columnNumberDataProvider = '>10';
		forms['newForm1'].controller.search()
	}
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=titleText|class=node}{tr:id=name}{td}h6.titleText{td}{tr}{tr:id=des}{td}The text that displays in the title bar of the form window. 
NOTE: Data tags and Servoy tags can be used as part of the title text.{td}{tr}{tr:id=ret}{td}*Returns*\\ [String]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var myForm = solutionModel.newForm('newForm', 'aServer', 'aTable', 'aStyleName', false, 800, 600)
forms['newForm'].controller.show();
if (myForm.titleText == null)
{
	myForm.titleText = "My new title text should be really cool!"
	forms['newForm'].controller.recreateUI();
}
else
	application.output("My text text is already cool");
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=transparent|class=node}{tr:id=name}{td}h6.transparent{td}{tr}{tr:id=des}{td}When set, the form is transparent.{td}{tr}{tr:id=ret}{td}*Returns*\\ [Boolean]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('myForm','myServer','myTable',null,true,1000,800);
	if (form.transparent == false)
	{
		var style = solutionModel.newStyle('myStyle','form { background-color: yellow; }');
		style.text = style.text + 'field { background-color: blue; }';
		form.styleName = 'myStyle';
	}
	var field = form.newField('columnTextDataProvider',JSField.TEXT_FIELD,100,100,100,50);
	forms['myForm'].controller.show();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=view|class=node}{tr:id=name}{td}h6.view{td}{tr}{tr:id=des}{td}The default form view mode. 

The view can be changed using a method at runtime. The following views are available: 
\- Record view 
\- List view 
\- Record view (locked) 
\- List view (locked) 
\- Table View (locked) 

NOTE: Only Table View (locked) uses asynchronized related data loading. 
This feature defers all related foundset data loading to the background \- enhancing 
the visual display of a related foundset.{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var myForm = solutionModel.newForm('newForm1', 'myServer', 'myTable', null, true, 800, 600);
myForm.view = JSForm.RECORD_VIEW;
forms['newForm1'].controller.show();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=width|class=node}{tr:id=name}{td}h6.width{td}{tr}{tr:id=des}{td}The width of the form in pixels.{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var myForm = solutionModel.newForm('newForm1', 'myServer', 'myTable', null, true, 800, 600);
	forms['newForm1'].controller.show();
	myForm.width = 120;
 forms['newForm1'].controller.recreateUI();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}\\ 

{table:id=function|class=servoy sDetail}{colgroup}{column:padding=0px|width=100%}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Method Details{th}{tr}{tbody:id=getBean|class=node}{tr:id=name}{td}h6.getBean{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSBean]{span}{span:id=iets|style=float: left; font-weight: bold;}getBean{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{tr:id=des}{td}Returns a JSBean that has the given name.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} name -- the specified name of the bean
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSBean] -- a JSBean object{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var btn = myForm.getBean("mybean");
application.output(mybean.className);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getBeans|class=node}{tr:id=name}{td}h6.getBeans{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSBean]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getBeans{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Returns all JSBeans of this form.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSBean]\[] -- the list of all JSbuttons on this forms{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var beans = myForm.getBeans();
for (var b in beans)
{
		if (beans[b].name != null) 
			application.output(beans[b].name);
}
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getBeans-Boolean|class=node}{tr:id=name}{td}h6.getBeans{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSBean]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getBeans{span}{span:id=iets|style=float: left;}\(returnInheritedElements){span}{td}{tr}{tr:id=des}{td}Returns all JSBeans of this form.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[Boolean]} returnInheritedElements -- true to also return the elements from parent form
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSBean]\[] -- the list of all JSbuttons on this forms{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var beans = myForm.getBeans();
for (var b in beans)
{
		if (beans[b].name != null) 
			application.output(beans[b].name);
}
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getBodyPart|class=node}{tr:id=name}{td}h6.getBodyPart{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSPart]{span}{span:id=iets|style=float: left; font-weight: bold;}getBodyPart{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Retrieves the Body part of the form.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSPart] -- A JSPart instance corresponding to the Body part of the form.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.getBodyPart().background = 'blue';
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getButton|class=node}{tr:id=name}{td}h6.getButton{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSButton]{span}{span:id=iets|style=float: left; font-weight: bold;}getButton{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{tr:id=des}{td}Returns a JSButton that has the given name.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} name -- the specified name of the button
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSButton] -- a JSButton object{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var btn = myForm.getButton("hello");
application.output(btn.text);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getButtons|class=node}{tr:id=name}{td}h6.getButtons{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSButton]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getButtons{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Returns all JSButtons of this form, including the ones without a name.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSButton]\[] -- the list of all JSbuttons on this forms{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var buttons = myForm.getButtons();
for (var b in buttons)
{
		if (buttons[b].name != null) 
			application.output(buttons[b].name);
		else
			application.output(buttons[b].text + " has no name ");
}
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getButtons-Boolean|class=node}{tr:id=name}{td}h6.getButtons{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSButton]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getButtons{span}{span:id=iets|style=float: left;}\(returnInheritedElements){span}{td}{tr}{tr:id=des}{td}Returns all JSButtons of this form, including the ones without a name.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[Boolean]} returnInheritedElements -- true to also return the elements from parent form
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSButton]\[] -- the list of all JSbuttons on this forms{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var buttons = myForm.getButtons();
for (var b in buttons)
{
		if (buttons[b].name != null) 
			application.output(buttons[b].name);
		else
			application.output(buttons[b].text + " has no name ");
}
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getComponent|class=node}{tr:id=name}{td}h6.getComponent{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSComponent]{span}{span:id=iets|style=float: left; font-weight: bold;}getComponent{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{tr:id=des}{td}Returns a JSComponent that has the given name; if found it will be a JSField, JSLabel, JSButton, JSPortal, JSBean or JSTabPanel.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} name -- the specified name of the component
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSComponent] -- a JSComponent object (might be a JSField, JSLabel, JSButton, JSPortal, JSBean or JSTabPanel){td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var frm = solutionModel.getForm("myForm");
	var cmp = frm.getComponent("componentName");
	application.output("Component type and name: " + cmp);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getComponents|class=node}{tr:id=name}{td}h6.getComponents{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSComponent]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getComponents{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Returns a array of all the JSComponents that a form has; they are of type JSField,JSLabel,JSButton,JSPortal,JSBean or JSTabPanel.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSComponent]\[] -- an array of all the JSComponents on the form.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.getForm("myForm");
	var components = form.getComponents();
	for (var i in components)
		application.output("Component type and name: " + components[i]);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getComponents-Boolean|class=node}{tr:id=name}{td}h6.getComponents{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSComponent]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getComponents{span}{span:id=iets|style=float: left;}\(returnInheritedElements){span}{td}{tr}{tr:id=des}{td}Returns a array of all the JSComponents that a form has; they are of type JSField,JSLabel,JSButton,JSPortal,JSBean or JSTabPanel.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[Boolean]} returnInheritedElements -- true to also return the elements from the parent form
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSComponent]\[] -- an array of all the JSComponents on the form.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.getForm("myForm");
	var components = form.getComponents();
	for (var i in components)
		application.output("Component type and name: " + components[i]);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getField|class=node}{tr:id=name}{td}h6.getField{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSField]{span}{span:id=iets|style=float: left; font-weight: bold;}getField{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{tr:id=des}{td}The field with the specified name.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} name -- the specified name of the field
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSField] -- a JSField object{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.getForm("myForm");
	var field = form.getField("myField");
	application.output(field.dataProviderID);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getFields|class=node}{tr:id=name}{td}h6.getFields{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSField]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getFields{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Returns all JSField objects of this form, including the ones without a name.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSField]\[] -- all JSField objects of this form{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var frm = solutionModel.getForm("myForm");
	var fields = frm.getFields();
	for (var f in fields)
	{
		var fname = fields[f].name;
		if (fname != null)
			application.output(fname);
	}
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getFields-Boolean|class=node}{tr:id=name}{td}h6.getFields{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSField]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getFields{span}{span:id=iets|style=float: left;}\(returnInheritedElements){span}{td}{tr}{tr:id=des}{td}Returns all JSField objects of this form, including the ones without a name.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[Boolean]} returnInheritedElements -- true to also return the elements from the parent form
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSField]\[] -- all JSField objects of this form{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var frm = solutionModel.getForm("myForm");
	var fields = frm.getFields();
	for (var f in fields)
	{
		var fname = fields[f].name;
		if (fname != null)
			application.output(fname);
	}
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getFooterPart|class=node}{tr:id=name}{td}h6.getFooterPart{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSPart]{span}{span:id=iets|style=float: left; font-weight: bold;}getFooterPart{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Retrieves the Footer part of the form.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSPart] -- A JSPart instance corresponding to the Footer part of the form.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.getFooterPart().background = 'magenta';
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getFormMethod|class=node}{tr:id=name}{td}h6.getFormMethod{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSMethod]{span}{span:id=iets|style=float: left; font-weight: bold;}getFormMethod{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{tr:id=des}{td}Gets an existing form method for the given name.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} name -- the specified name of the method
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod] -- a JSMethod object (or null if the method with the specified name does not exist){td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var frm = solutionModel.getForm("myForm");
	var method = frm.getFormMethod("myMethod");
	application.output(method.code);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getFormMethods|class=node}{tr:id=name}{td}h6.getFormMethods{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSMethod]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getFormMethods{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Returns all existing form methods for this form.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]\[] -- all form methods for the form{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var frm = solutionModel.getForm("myForm");
	var methods = frm.getFormMethods();
	for (var m in methods)
		application.output(methods[m].getName());
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getFormMethods-Boolean|class=node}{tr:id=name}{td}h6.getFormMethods{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSMethod]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getFormMethods{span}{span:id=iets|style=float: left;}\(returnInheritedElements){span}{td}{tr}{tr:id=des}{td}Returns all existing form methods for this form.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[Boolean]} returnInheritedElements -- true to also return the elements from the parent form
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod]\[] -- all form methods for the form{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var frm = solutionModel.getForm("myForm");
	var methods = frm.getFormMethods();
	for (var m in methods)
		application.output(methods[m].getName());
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getFormVariable|class=node}{tr:id=name}{td}h6.getFormVariable{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSVariable]{span}{span:id=iets|style=float: left; font-weight: bold;}getFormVariable{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{tr:id=des}{td}Gets an existing form variable for the given name.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} name -- the specified name of the variable
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSVariable] -- a JSVariable object{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var frm = solutionModel.getForm("myForm");
	var fvariable = frm.getFormVariable("myVarName");
	application.output(fvariable.name + " has the default value of " + fvariable.defaultValue);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getFormVariables|class=node}{tr:id=name}{td}h6.getFormVariables{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSVariable]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getFormVariables{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}An array consisting of all form variables for this form.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSVariable]\[] -- an array of all variables on this form{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var frm = solutionModel.getForm("myForm");
	var variables = frm.getFormVariables();
	for (var i in variables)
		application.output(variables[i].name);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getFormVariables-Boolean|class=node}{tr:id=name}{td}h6.getFormVariables{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSVariable]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getFormVariables{span}{span:id=iets|style=float: left;}\(returnInheritedElements){span}{td}{tr}{tr:id=des}{td}An array consisting of all form variables for this form.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[Boolean]} returnInheritedElements -- true to also return the elements from the parent form
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSVariable]\[] -- an array of all variables on this form{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var frm = solutionModel.getForm("myForm");
	var variables = frm.getFormVariables();
	for (var i in variables)
		application.output(variables[i].name);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getHeaderPart|class=node}{tr:id=name}{td}h6.getHeaderPart{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSPart]{span}{span:id=iets|style=float: left; font-weight: bold;}getHeaderPart{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Retrieves the Header part of the form.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSPart] -- A JSPart instance corresponding to the Header part of the form.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.getHeaderPart().background = 'orange';
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getLabel|class=node}{tr:id=name}{td}h6.getLabel{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSLabel]{span}{span:id=iets|style=float: left; font-weight: bold;}getLabel{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{tr:id=des}{td}Returns a JSLabel that has the given name.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} name -- the specified name of the label
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSLabel] -- a JSLabel object (or null if the label with the specified name does not exist){td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var frm = solutionModel.getForm("myForm");
	var label = frm.getLabel("myLabel");
	application.output(label.text);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getLabels|class=node}{tr:id=name}{td}h6.getLabels{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSLabel]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getLabels{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Returns all JSLabels of this form (not including its super form), including the ones without a name.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSLabel]\[] -- all JSLabels on this form{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var frm = solutionModel.getForm("myForm");
	var labels = frm.getLabels();
	for (var i in labels)
	{
		var lname = labels[i].name;
		if (lname != null)
			application.output(lname);
	}
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getLabels-Boolean|class=node}{tr:id=name}{td}h6.getLabels{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSLabel]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getLabels{span}{span:id=iets|style=float: left;}\(returnInheritedElements){span}{td}{tr}{tr:id=des}{td}Returns all JSLabels of this form (optionally including it super forms labels), including the ones without a name.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[Boolean]} returnInheritedElements -- true to also return the elements from parent form
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSLabel]\[] -- all JSLabels on this form{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var frm = solutionModel.getForm("myForm");
	var labels = frm.getLabels();
	for (var i in labels)
	{
		var lname = labels[i].name;
		if (lname != null)
			application.output(lname);
	}
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getLeadingGrandSummaryPart|class=node}{tr:id=name}{td}h6.getLeadingGrandSummaryPart{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSPart]{span}{span:id=iets|style=float: left; font-weight: bold;}getLeadingGrandSummaryPart{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Retrieves the Leading Grand Summary part of the form.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSPart] -- A JSPart instance corresponding to the Leading Grand Summary part of the form.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.getLeadingGrandSummaryPart().background = 'yellow';
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getLeadingSubSummaryParts|class=node}{tr:id=name}{td}h6.getLeadingSubSummaryParts{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSPart]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getLeadingSubSummaryParts{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Gets an array of the Leading Subsummary parts of the form, ordered by their height from top == 0 to bottom.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSPart]\[] -- An array of JSPart instances corresponding to the Leading Subsummary parts of the form.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.getLeadingSubSummaryParts()[0].background = 'green';
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getPart-Number|class=node}{tr:id=name}{td}h6.getPart{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSPart]{span}{span:id=iets|style=float: left; font-weight: bold;}getPart{span}{span:id=iets|style=float: left;}\(type){span}{td}{tr}{tr:id=des}{td}Gets a part of the form from the given type (see JSPart constants).{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[Number]} type -- The type of the part to retrieve.
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSPart] -- A JSPart instance representing the retrieved form part.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.getPart(JSPart.HEADER).background = 'red';
form.getPart(JSPart.LEADING_SUBSUMMARY, 160).background = 'red';
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getPart-Number_Number|class=node}{tr:id=name}{td}h6.getPart{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSPart]{span}{span:id=iets|style=float: left; font-weight: bold;}getPart{span}{span:id=iets|style=float: left;}\(type, height){span}{td}{tr}{tr:id=des}{td}Gets a part of the form from the given type (see JSPart constants). 
Use the height if you want to get a specific LEADING\_SUBSUMMARY or TRAILING\_SUBSUMMARY.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[Number]} type -- The type of the part to retrieve.
\{[Number]} height -- The height of the part to retrieve. Use this parameter when retrieving one of multiple
 	                      Leading/Trailing Subsummary parts.
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSPart] -- A JSPart instance representing the retrieved form part.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.getPart(JSPart.HEADER).background = 'red';
form.getPart(JSPart.LEADING_SUBSUMMARY, 160).background = 'red';
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getPartYOffset-Number|class=node}{tr:id=name}{td}h6.getPartYOffset{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Number]{span}{span:id=iets|style=float: left; font-weight: bold;}getPartYOffset{span}{span:id=iets|style=float: left;}\(type){span}{td}{tr}{tr:id=des}{td}Returns the Y offset of a given part (see JSPart) of the form. This will include 
all the super forms parts if this form extends a form.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[Number]} type -- The type of the part whose Y offset will be returned.
{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number] -- A number holding the Y offset of the specified form part.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
// get the subform
var form = solutionModel.getForm('SubForm');
// get the start offset of the body
var height = form.getPartYOffset(JSPart.BODY);
// place a new button based on the start offset.
form.newButton('mybutton',50,50+height,80,20,solutionModel.getGlobalMethod('test'));
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getPartYOffset-Number_Number|class=node}{tr:id=name}{td}h6.getPartYOffset{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Number]{span}{span:id=iets|style=float: left; font-weight: bold;}getPartYOffset{span}{span:id=iets|style=float: left;}\(type, height){span}{td}{tr}{tr:id=des}{td}Returns the Y offset of a given part (see JSPart) of the form. This will include 
all the super forms parts if this form extends a form. Use the height parameter for 
targetting one of multiple subsummary parts.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[Number]} type -- The type of the part whose Y offset will be returned.
\{[Number]} height -- The height of the part whose Y offset will be returned. This is used when
                        one of multiple Leading/Trailing Sumsummary parts is retrieved.
{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number] -- A number holding the Y offset of the specified form part.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
// get the subform
var form = solutionModel.getForm('SubForm');
// get the start offset of the body
var height = form.getPartYOffset(JSPart.BODY);
// place a new button based on the start offset.
form.newButton('mybutton',50,50+height,80,20,solutionModel.getGlobalMethod('test'));
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getParts|class=node}{tr:id=name}{td}h6.getParts{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSPart]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getParts{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Gets all the parts from the form (not including the parts of the parent form), ordered by there height (lowerbound) property, from top == 0 to bottom.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSPart]\[] -- An array of JSPart instances corresponding to the parts of the form.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var allParts = form.getParts()
for (var i=0; i<allParts.length; i++) {
	if (allParts[i].getPartType() == JSPart.BODY)
		application.output('body Y offset: ' + allParts[i].getPartYOffset());
}
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getParts-Boolean|class=node}{tr:id=name}{td}h6.getParts{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSPart]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getParts{span}{span:id=iets|style=float: left;}\(returnInheritedElements){span}{td}{tr}{tr:id=des}{td}Gets all the parts from the form (optionally also from the parent form), ordered by there height (lowerbound) property, from top == 0 to bottom.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[Boolean]} returnInheritedElements -- true to also return the parts from parent form
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSPart]\[] -- An array of JSPart instances corresponding to the parts of the form.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var allParts = form.getParts()
for (var i=0; i<allParts.length; i++) {
	if (allParts[i].getPartType() == JSPart.BODY)
		application.output('body Y offset: ' + allParts[i].getPartYOffset());
}
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getPortal|class=node}{tr:id=name}{td}h6.getPortal{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSPortal]{span}{span:id=iets|style=float: left; font-weight: bold;}getPortal{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{tr:id=des}{td}Returns a JSPortal that has the given name.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} name -- the specified name of the portal
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSPortal] -- a JSPortal object{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var frm = solutionModel.getForm("myForm");
	var portal = frm.getPortal("myPortal");
 portal.initialSort = 'my_table_text desc';
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getPortals|class=node}{tr:id=name}{td}h6.getPortals{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSPortal]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getPortals{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Returns all JSPortal objects of this form (not including the ones from the parent form), including the ones without a name.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSPortal]\[] -- an array of all JSPortal objects on this form{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var frm = solutionModel.getForm("myForm");
	var portals = frm.getPortals();
	for (var i in portals)
	{
		var p = portals[i];
		if (p.name != null)
			application.output(p.name);
		else
			application.output("unnamed portal detected");
	}
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getPortals-Boolean|class=node}{tr:id=name}{td}h6.getPortals{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSPortal]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getPortals{span}{span:id=iets|style=float: left;}\(returnInheritedElements){span}{td}{tr}{tr:id=des}{td}Returns all JSPortal objects of this form (optionally also the ones from the parent form), including the ones without a name.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[Boolean]} returnInheritedElements -- true to also return the elements from parent form
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSPortal]\[] -- an array of all JSPortal objects on this form{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var frm = solutionModel.getForm("myForm");
	var portals = frm.getPortals();
	for (var i in portals)
	{
		var p = portals[i];
		if (p.name != null)
			application.output(p.name);
		else
			application.output("unnamed portal detected");
	}
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getTabPanel|class=node}{tr:id=name}{td}h6.getTabPanel{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSTabPanel]{span}{span:id=iets|style=float: left; font-weight: bold;}getTabPanel{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{tr:id=des}{td}Returns a JSTabPanel that has the given name.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} name -- the specified name of the tabpanel
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSTabPanel] -- a JSTabPanel object{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var frm = solutionModel.getForm("myForm");
	var tabPanel = frm.getTabPanel("myTabPanel"); 
	var tabs = tabPanel.getTabs(); 
	for (var i=0; i<tabs.length; i++) 
		application.output("Tab " + i + " has text " + tabs[i].text);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getTabPanels|class=node}{tr:id=name}{td}h6.getTabPanels{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSTabPanel]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getTabPanels{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Returns all JSTabPanels of this form (not including the ones from the parent form), including the ones without a name.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSTabPanel]\[] -- an array of all JSTabPanel objects on this form{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var frm = solutionModel.getForm("myForm");
	var tabPanels = frm.getTabPanels();
	for (var i in tabPanels)
	{
		var tp = tabPanels[i];
		if (tp.name != null)
			application.output("Tab " + tp.name + " has text " + tp.text);
		else
			application.output("Tab with text " + tp.text + " has no name");
	}
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getTabPanels-Boolean|class=node}{tr:id=name}{td}h6.getTabPanels{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSTabPanel]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getTabPanels{span}{span:id=iets|style=float: left;}\(returnInheritedElements){span}{td}{tr}{tr:id=des}{td}Returns all JSTabPanels of this form (optionally the ones from the parent form), including the ones without a name.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[Boolean]} returnInheritedElements -- true to also return the elements from parent form
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSTabPanel]\[] -- an array of all JSTabPanel objects on this form{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var frm = solutionModel.getForm("myForm");
	var tabPanels = frm.getTabPanels();
	for (var i in tabPanels)
	{
		var tp = tabPanels[i];
		if (tp.name != null)
			application.output("Tab " + tp.name + " has text " + tp.text);
		else
			application.output("Tab with text " + tp.text + " has no name");
	}
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getTitleFooterPart|class=node}{tr:id=name}{td}h6.getTitleFooterPart{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSPart]{span}{span:id=iets|style=float: left; font-weight: bold;}getTitleFooterPart{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Retrieves the Title Footer part of the form.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSPart] -- A JSPart instance corresponding to the Title Footer part of the form.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.getTitleFooterPart().background = 'gray';
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getTitleHeaderPart|class=node}{tr:id=name}{td}h6.getTitleHeaderPart{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSPart]{span}{span:id=iets|style=float: left; font-weight: bold;}getTitleHeaderPart{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Retrieves the Title Header part of the form.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSPart] -- A JSPart instance corresponding to the Title Header part of the form.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.getTitleHeaderPart().background = 'red';
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getTrailingGrandSummaryPart|class=node}{tr:id=name}{td}h6.getTrailingGrandSummaryPart{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSPart]{span}{span:id=iets|style=float: left; font-weight: bold;}getTrailingGrandSummaryPart{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Retrieves the Trailing Grand Summary part of the form.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSPart] -- A JSPart instance corresponding to the Trailing Grand Summary part of the form.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.getTrailingGrandSummaryPart().background = 'yellow';
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getTrailingSubSummaryParts|class=node}{tr:id=name}{td}h6.getTrailingSubSummaryParts{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSPart]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getTrailingSubSummaryParts{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Gets an array of the Trailing Subsummary parts of the form, ordered by their height from top == 0 to bottom.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSPart]\[] -- An array of JSPart instances corresponding to the Trailing Subsummary parts of the form.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.getTrailingSubSummaryParts()[0].background = 'green';
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getUUID|class=node}{tr:id=name}{td}h6.getUUID{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[UUID]{span}{span:id=iets|style=float: left; font-weight: bold;}getUUID{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Returns the UUID of this form.{td}{tr}{tr:id=ret}{td}*Returns*\\ [UUID]{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form_UUID = myForm.getUUID();
application.output(form_UUID.toString());
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newBean|class=node}{tr:id=name}{td}h6.newBean{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSBean]{span}{span:id=iets|style=float: left; font-weight: bold;}newBean{span}{span:id=iets|style=float: left;}\(name, className, x, y, width, height){span}{td}{tr}{tr:id=des}{td}Creates a new JSBean object on the form \- including the name of the JSBean object; the classname the JSBean object is based on, the "x" and "y" position of the JSBean object in pixels, as well as the width and height of the JSBean object in pixels.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} name -- the specified name of the JSBean object
\{[String]} className -- the class name of the JSBean object
\{[Number]} x -- the horizontal "x" position of the JSBean object in pixels
\{[Number]} y -- the vertical "y" position of the JSBean object in pixels
\{[Number]} width -- the width of the JSBean object in pixels
\{[Number]} height -- the height of the JSBean object in pixels
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSBean] -- a JSBean object{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('newForm1', 'server1', 'table1', null, true, 800, 600);
	var bean = form.newBean('bean','com.servoy.extensions.beans.dbtreeview.DBTreeView',200,200,300,300);
	forms['newForm1'].controller.show();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newButton|class=node}{tr:id=name}{td}h6.newButton{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSButton]{span}{span:id=iets|style=float: left; font-weight: bold;}newButton{span}{span:id=iets|style=float: left;}\(text, x, y, width, height, jsmethod){span}{td}{tr}{tr:id=des}{td}Creates a new button on the form with the given text, place, size and JSMethod as the onAction event triggered action.{td}{tr}{tr:id=prs}{td}*Parameters*\\text -- the text on the button
\{[Number]} x -- the x coordinate of the button location on the form
\{[Number]} y -- the y coordinate of the button location on the form
\{[Number]} width -- the width of the button
\{[Number]} height -- the height of the button
jsmethod -- the method assigned to handle an onAction event
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSButton] -- a new JSButton object{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('newForm1', 'myServer', 'myTable', null, true, 800, 600);
	var method = form.newFormMethod('function onAction(event) { application.output("onAction intercepted on " + event.getFormName()); }');
	var button = form.newButton('myButton', 10, 10, 100, 30, method);
	application.output("The new button: " + button.name + " has the following onAction event handling method assigned " + button.onAction.getName());
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newCalendar|class=node}{tr:id=name}{td}h6.newCalendar{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSField]{span}{span:id=iets|style=float: left; font-weight: bold;}newCalendar{span}{span:id=iets|style=float: left;}\(dataprovidername/jsvariable, x, y, width, height){span}{td}{tr}{tr:id=des}{td}Creates a new JSField object on the form with the displayType of CALENDAR \- including the dataprovider/JSVariable of the JSField object, the "x" and "y" position of the JSField object in pixels, as well as the width and height of the JSField object in pixels.{td}{tr}{tr:id=prs}{td}*Parameters*\\dataprovidername/jsvariable -- the specified dataprovider name/JSVariable of the JSField object
\{[Number]} x -- the horizontal "x" position of the JSfield object in pixels
\{[Number]} y -- the vertical "y" position of the JSField object in pixels
\{[Number]} width -- the width of the JSField object in pixels
\{[Number]} height -- the height of the JSField object in pixels
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSField] -- a new JSField object on the form with the displayType of CALENDAR{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('newForm1', 'myServer', 'myTable', null, true, 800, 600);
	var calendar = form.newCalendar(myDataProvider, 100, 100, 200, 200);
	forms['newForm1'].controller.show();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newCheck|class=node}{tr:id=name}{td}h6.newCheck{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSField]{span}{span:id=iets|style=float: left; font-weight: bold;}newCheck{span}{span:id=iets|style=float: left;}\(dataprovidername/jsvariable, x, y, width, height){span}{td}{tr}{tr:id=des}{td}Creates a new JSField object on the form with the displayType of CHECK (checkbox) \- including the dataprovider/JSVariable of the JSField object, the "x" and "y" position of the JSField object in pixels, as well as the width and height of the JSField object in pixels.{td}{tr}{tr:id=prs}{td}*Parameters*\\dataprovidername/jsvariable -- the specified dataprovider name/JSVariable of the JSField object
\{[Number]} x -- the horizontal "x" position of the JSfield object in pixels
\{[Number]} y -- the vertical "y" position of the JSField object in pixels
\{[Number]} width -- the width of the JSField object in pixels
\{[Number]} height -- the height of the JSField object in pixels
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSField] -- a new JSField object on the form with the displayType of CHECK (checkbox){td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('newForm1', 'myServer', 'myTable', null, true, 800, 600);
	var calendar = form.newCheck(myDataProvider, 100, 100, 200, 200);
	forms['newForm1'].controller.show();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newComboBox|class=node}{tr:id=name}{td}h6.newComboBox{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSField]{span}{span:id=iets|style=float: left; font-weight: bold;}newComboBox{span}{span:id=iets|style=float: left;}\(dataprovidername/jsvariable, x, y, width, height){span}{td}{tr}{tr:id=des}{td}Creates a new JSField object on the form with the displayType of COMBOBOX \- including the dataprovider/JSVariable of the JSField object, the "x" and "y" position of the JSField object in pixels, as well as the width and height of the JSField object in pixels.{td}{tr}{tr:id=prs}{td}*Parameters*\\dataprovidername/jsvariable -- the specified dataprovider name/JSVariable of the JSField object
\{[Number]} x -- the horizontal "x" position of the JSfield object in pixels
\{[Number]} y -- the vertical "y" position of the JSField object in pixels
\{[Number]} width -- the width of the JSField object in pixels
\{[Number]} height -- the height of the JSField object in pixels
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSField] -- a new JSField object on the form with the displayType of COMBOBOX{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('newForm1', 'myServer', 'myTable', null, true, 800, 600);
	var calendar = form.newComboBox(myDataProvider, 100, 100, 200, 200);
	forms['newForm1'].controller.show();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newField|class=node}{tr:id=name}{td}h6.newField{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSField]{span}{span:id=iets|style=float: left; font-weight: bold;}newField{span}{span:id=iets|style=float: left;}\(dataprovidername/jsvariable, displaytype, x, y, width, height){span}{td}{tr}{tr:id=des}{td}Creates a new JSField object on the form \- including the dataprovider/JSVariable of the JSField object, the "x" and "y" position of the JSField object in pixels, as well as the width and height of the JSField object in pixels.{td}{tr}{tr:id=prs}{td}*Parameters*\\dataprovidername/jsvariable -- the specified dataprovider name/JSVariable of the JSField object
displaytype -- the display type of the JSField object (see the Solution Model \-> JSField node for display types)
\{[Number]} x -- the horizontal "x" position of the JSField object in pixels
\{[Number]} y -- the vertical "y" position of the JSField object in pixels
\{[Number]} width -- the width of the JSField object in pixels
\{[Number]} height -- the height of the JSField object in pixels
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSField] -- a new JSField object (of the specified display type){td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('newForm1', 'myServer', 'myTable', null, true, 800, 600);
	var variable = form.newFormVariable('myVar', JSVariable.TEXT);
	variable.defaultValue = "'This is a default value (with tripple quotes)!'";
	var field = form.newField(variable, JSField.TEXT_FIELD, 100, 100, 200, 200);
	forms['newForm1'].controller.show();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newFooterPart|class=node}{tr:id=name}{td}h6.newFooterPart{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSPart]{span}{span:id=iets|style=float: left; font-weight: bold;}newFooterPart{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Creates a new Footer part on the form.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSPart] -- A JSPart instance corresponding to the newly created Footer form part.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var footer = form.newFooterPart(440);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newFormMethod|class=node}{tr:id=name}{td}h6.newFormMethod{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSMethod]{span}{span:id=iets|style=float: left; font-weight: bold;}newFormMethod{span}{span:id=iets|style=float: left;}\(code){span}{td}{tr}{tr:id=des}{td}Creates a new form JSMethod \- based on the specified code.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} code -- the specified code for the new method
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSMethod] -- a new JSMethod object for this form{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('newForm1', 'myServer', 'myTable', null, true, 800, 600);
	var method = form.newFormMethod('function aMethod(event){application.output("Hello world!");}');
	var button = myListViewForm.newButton('Show message!',50,50,100,30,method);
 forms['newForm1'].controller.show();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newFormVariable|class=node}{tr:id=name}{td}h6.newFormVariable{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSVariable]{span}{span:id=iets|style=float: left; font-weight: bold;}newFormVariable{span}{span:id=iets|style=float: left;}\(name, type){span}{td}{tr}{tr:id=des}{td}Creates a new form JSVariable \- based on the name of the variable object and the number type, uses the SolutionModel JSVariable constants.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} name -- the specified name of the variable
\{[Number]} type -- the specified type of the variable (see Solution Model \-> JSVariable node constants)
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSVariable] -- a JSVariable object{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('newForm1', 'myServer', 'myTable', null, true, 800, 600);
	var variable = form.newFormVariable('myVar', JSVariable.TEXT);
	variable.defaultValue = "'This is a default value (with tripple quotes)!'";
	var field = form.newField(variable, JSField.TEXT_FIELD, 100, 100, 200, 200);
	forms['newForm1'].controller.show();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newHeaderPart|class=node}{tr:id=name}{td}h6.newHeaderPart{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSPart]{span}{span:id=iets|style=float: left; font-weight: bold;}newHeaderPart{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Creates a new Header part on the form.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSPart] -- A JSPart instance corresponding to the newly created Header form part.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var header = form.newHeaderPart(80);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newHtmlArea|class=node}{tr:id=name}{td}h6.newHtmlArea{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSField]{span}{span:id=iets|style=float: left; font-weight: bold;}newHtmlArea{span}{span:id=iets|style=float: left;}\(dataprovidername/jsvariable, x, y, width, height){span}{td}{tr}{tr:id=des}{td}Creates a new JSField object on the form with the displayType of HTML\_AREA \- including the dataprovider/JSVariable of the JSField object, the "x" and "y" position of the JSField object in pixels, as well as the width and height of the JSField object in pixels.{td}{tr}{tr:id=prs}{td}*Parameters*\\dataprovidername/jsvariable -- the specified dataprovider name/JSVariable of the JSField object
\{[Number]} x -- the horizontal "x" position of the JSfield object in pixels
\{[Number]} y -- the vertical "y" position of the JSField object in pixels
\{[Number]} width -- the width of the JSField object in pixels
\{[Number]} height -- the height of the JSField object in pixels
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSField] -- a JSField object on the form with the displayType of HTML_AREA{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('newForm1', 'myServer', 'myTable', null, true, 800, 600);
	var textProvider = form.newFormVariable('myVar',JSVariable.TEXT);
	textProvider.defaultValue = "'This is a tripple quotted text!'";
	var htmlArea = myListViewForm.newHtmlArea(textProvider,100,100,100,100);
	forms['newForm1'].controller.show();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newImageMedia|class=node}{tr:id=name}{td}h6.newImageMedia{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSField]{span}{span:id=iets|style=float: left; font-weight: bold;}newImageMedia{span}{span:id=iets|style=float: left;}\(dataprovidername/jsvariable, x, y, width, height){span}{td}{tr}{tr:id=des}{td}Creates a new JSField object on the form with the displayType of IMAGE\_MEDIA \- including the dataprovider/JSVariable of the JSField object, the "x" and "y" position of the JSField object in pixels, as well as the width and height of the JSField object in pixels.{td}{tr}{tr:id=prs}{td}*Parameters*\\dataprovidername/jsvariable -- the specified dataprovider name/JSVariable of the JSField object
\{[Number]} x -- the horizontal "x" position of the JSfield object in pixels
\{[Number]} y -- the vertical "y" position of the JSField object in pixels
\{[Number]} width -- the width of the JSField object in pixels
\{[Number]} height -- the height of the JSField object in pixels
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSField] -- a new JSField object on the form with the displayType of IMAGE_MEDIA{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('newForm1', 'myServer', 'myTable', null, true, 800, 600);
 var myMediaVar = form.newFormVariable("media", JSVariable.MEDIA);
 var imageMedia = form.newImageMedia(myMediaVar,100,100,200,200)
 forms['newForm1'].controller.show();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newLabel-String_Number_Number_Number_Number|class=node}{tr:id=name}{td}h6.newLabel{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSLabel]{span}{span:id=iets|style=float: left; font-weight: bold;}newLabel{span}{span:id=iets|style=float: left;}\(txt, x, y, width, height){span}{td}{tr}{tr:id=des}{td}Creates a new JSLabel object on the form \- including the text of the label, the "x" and "y" position of the label object in pixels, the width and height of the label object in pixels.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} txt -- the specified text of the label object
\{[Number]} x -- the horizontal "x" position of the label object in pixels
\{[Number]} y -- the vertical "y" position of the label object in pixels
\{[Number]} width -- the width of the label object in pixels
\{[Number]} height -- the height of the label object in pixels
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSLabel] -- a JSLabel object{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('newForm1', 'myServer', 'myTable', null, true, 800, 600);
	var label = form.newLabel('The text on the label', 140, 140, 50, 20);
	forms['newForm1'].controller.show();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newLabel-String_Number_Number_Number_Number_Object|class=node}{tr:id=name}{td}h6.newLabel{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSLabel]{span}{span:id=iets|style=float: left; font-weight: bold;}newLabel{span}{span:id=iets|style=float: left;}\(txt, x, y, width, height, action){span}{td}{tr}{tr:id=des}{td}Creates a new JSLabel object on the form \- including the text of the label, the "x" and "y" position of the label object in pixels, the width and height of the label object in pixels and a JSMethod action such as the method for an onAction event.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} txt -- the specified text of the label object
\{[Number]} x -- the horizontal "x" position of the label object in pixels
\{[Number]} y -- the vertical "y" position of the label object in pixels
\{[Number]} width -- the width of the label object in pixels
\{[Number]} height -- the height of the label object in pixels
\{[Object]} action -- the event action JSMethod of the label object
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSLabel] -- a JSLabel object{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('newForm1', 'myServer', 'myTable', null, true, 800, 600);
	var label = form.newLabel('The text on the label', 140, 140, 50, 20);
	forms['newForm1'].controller.show();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newLeadingGrandSummaryPart|class=node}{tr:id=name}{td}h6.newLeadingGrandSummaryPart{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSPart]{span}{span:id=iets|style=float: left; font-weight: bold;}newLeadingGrandSummaryPart{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Creates a new Leading Grand Summary part on the form.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSPart] -- A JSPart instance corresponding to the newly created Leading Grand Summary form part.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var leadingGrandSummary = form.newLeadingGrandSummaryPart(120);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newLeadingSubSummaryPart|class=node}{tr:id=name}{td}h6.newLeadingSubSummaryPart{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSPart]{span}{span:id=iets|style=float: left; font-weight: bold;}newLeadingSubSummaryPart{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Creates a new Leading Subsummary part on the form.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSPart] -- A JSPart instance corresponding to the newly created Leading Subsummary form part.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var leadingSubsummary = form.newLeadingSubSummaryPart(160);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newPart|class=node}{tr:id=name}{td}h6.newPart{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSPart]{span}{span:id=iets|style=float: left; font-weight: bold;}newPart{span}{span:id=iets|style=float: left;}\(type, height){span}{td}{tr}{tr:id=des}{td}Creates a new part on the form. The type of the new part (use one of the JSPart constants)
and its height must be specified.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[Number]} type -- The type of the new part.
\{[Number]} height -- The height of the new part
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSPart] -- A JSPart instance corresponding to the newly created form part.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('myForm', 'example_data', 'my_table', null, false, 1200, 800);
var header = form.newPart(JSPart.HEADER, 100);
header.background = 'yellow';
var body = form.newPart(JSPart.BODY, 700);
body.background = 'green';
var footer = form.newPart(JSPart.FOOTER, 800);
footer.background = 'orange';
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newPassword|class=node}{tr:id=name}{td}h6.newPassword{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSField]{span}{span:id=iets|style=float: left; font-weight: bold;}newPassword{span}{span:id=iets|style=float: left;}\(dataprovidername/jsvariable, x, y, width, height){span}{td}{tr}{tr:id=des}{td}Creates a new JSField object on the form with the displayType of PASSWORD \- including the dataprovider/JSVariable of the JSField object, the "x" and "y" position of the JSField object in pixels, as well as the width and height of the JSField object in pixels.{td}{tr}{tr:id=prs}{td}*Parameters*\\dataprovidername/jsvariable -- the specified dataprovider name/JSVariable of the JSField object
\{[Number]} x -- the horizontal "x" position of the JSfield object in pixels
\{[Number]} y -- the vertical "y" position of the JSField object in pixels
\{[Number]} width -- the width of the JSField object in pixels
\{[Number]} height -- the height of the JSField object in pixels
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSField] -- a new JSField object on the form with the displayType of PASSWORD{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('newForm1', 'myServer', 'myTable', null, true, 800, 600);
 var pass = form.newPassword(globals.aVariable, 100, 100, 70, 30);
 forms['newForm1'].controller.show();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newPortal|class=node}{tr:id=name}{td}h6.newPortal{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSPortal]{span}{span:id=iets|style=float: left; font-weight: bold;}newPortal{span}{span:id=iets|style=float: left;}\(name, relation, x, y, width, height){span}{td}{tr}{tr:id=des}{td}Creates a new JSPortal object on the form \- including the name of the JSPortal object; the relation the JSPortal object is based on, the "x" and "y" position of the JSPortal object in pixels, as well as the width and height of the JSPortal object in pixels.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} name -- the specified name of the JSPortal object
\{[Object]} relation -- the relation of the JSPortal object
\{[Number]} x -- the horizontal "x" position of the JSPortal object in pixels
\{[Number]} y -- the vertical "y" position of the JSPortal object in pixels
\{[Number]} width -- the width of the JSPortal object in pixels
\{[Number]} height -- the height of the JSPortal object in pixels
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSPortal] -- a JSPortal object{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('newForm1', 'server1', 'table1', null, true, 800, 600);
	var relation = solutionModel.newRelation('parentToChild','server1','table1','server2','table2',JSRelation.INNER_JOIN);
	relation.newRelationItem('another_parent_table_id', '=', 'another_child_table_parent_id');
	var portal = form.newPortal('portal',relation,200,200,300,300);
	portal.newField('someColumn',JSField.TEXT_FIELD,200,200,120);
	forms['newForm1'].controller.show();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newRadios|class=node}{tr:id=name}{td}h6.newRadios{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSField]{span}{span:id=iets|style=float: left; font-weight: bold;}newRadios{span}{span:id=iets|style=float: left;}\(dataprovidername/jsvariable, x, y, width, height){span}{td}{tr}{tr:id=des}{td}Creates a new JSField object on the form with the displayType of RADIOS (radio buttons) \- including the dataprovider/JSVariable of the JSField object, the "x" and "y" position of the JSField object in pixels, as well as the width and height of the JSField object in pixels.{td}{tr}{tr:id=prs}{td}*Parameters*\\dataprovidername/jsvariable -- the specified dataprovider name/JSVariable of the JSField object
\{[Number]} x -- the horizontal "x" position of the JSfield object in pixels
\{[Number]} y -- the vertical "y" position of the JSField object in pixels
\{[Number]} width -- the width of the JSField object in pixels
\{[Number]} height -- the height of the JSField object in pixels
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSField] -- a JSField object with the displayType of RADIOS (radio buttons){td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('newForm1', 'myServer', 'myTable', null, true, 800, 600);
	var vlist = solutionModel.newValueList('options',JSValueList.CUSTOM_VALUES); 
	vlist.customValues = "value1\nvalue2\nvalue3"; 
	var radios = form.newRadios('columnDataProvider',100,100,200,200);
	radios.valuelist = vlist;
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newRtfArea|class=node}{tr:id=name}{td}h6.newRtfArea{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSField]{span}{span:id=iets|style=float: left; font-weight: bold;}newRtfArea{span}{span:id=iets|style=float: left;}\(dataprovidername/jsvariable, x, y, width, height){span}{td}{tr}{tr:id=des}{td}Creates a new JSField object on the form with the displayType of RTF\_AREA (enables more than one line of text to be displayed in a field) \- including the dataprovider/JSVariable of the JSField object, the "x" and "y" position of the JSField object in pixels, as well as the width and height of the JSField object in pixels.{td}{tr}{tr:id=prs}{td}*Parameters*\\dataprovidername/jsvariable -- the specified dataprovider name/JSVariable of the JSField object
\{[Number]} x -- the horizontal "x" position of the JSfield object in pixels
\{[Number]} y -- the vertical "y" position of the JSField object in pixels
\{[Number]} width -- the width of the JSField object in pixels
\{[Number]} height -- the height of the JSField object in pixels
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSField] -- a JSField object with the displayType of RTF_AREA{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('newForm1','myServer','myTable',null,true,800,600);
	var rtf_area = form.newRtfArea('columnDataProvider',100,100,100,100);
 forms['newForm1'].controller.show();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newTabPanel|class=node}{tr:id=name}{td}h6.newTabPanel{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSTabPanel]{span}{span:id=iets|style=float: left; font-weight: bold;}newTabPanel{span}{span:id=iets|style=float: left;}\(name, x, y, width, height){span}{td}{tr}{tr:id=des}{td}Creates a new JSTabPanel object on the form \- including the name of the JSTabPanel object, the "x" and "y" position of the JSTabPanel object in pixels, as well as the width and height of the JSTabPanel object in pixels.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} name -- the specified name of the JSTabPanel object
\{[Number]} x -- the horizontal "x" position of the JSTabPanel object in pixels
\{[Number]} y -- the vertical "y" position of the JSTabPanel object in pixels
\{[Number]} width -- the width of the JSTabPanel object in pixels
\{[Number]} height -- the height of the JSTabPanel object in pixels
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSTabPanel] -- a JSTabPanel object{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('parentForm','theServer','parent_table',null,false,640,480); 
	var childOne = solutionModel.newForm('childOne','theServer','child_table',null,false,400,300);
	childOne.newField('child_table_text', JSField.TEXT_FIELD,10,10,100,20); 
	var parentToChild = solutionModel.newRelation('parentToChild','theServer','parent_table','theServer','child_table',JSRelation.INNER_JOIN);
	parentToChild.newRelationItem('parent_table_id','=','child_table_parent_id');
	var childTwo = solutionModel.newForm('childTwo','theServer','my_table',null,false,400,300);
	childTwo.newField('my_table_image', JSField.IMAGE_MEDIA,10,10,100,100); 
 var tabPanel = form.newTabPanel('tabs',10,10,620,460);
 tabPanel.newTab('tab1','Child One',childOne,parentToChild);
 tabPanel.newTab('tab2','Child Two',childTwo);
 forms['parentForm'].controller.show();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newTextArea|class=node}{tr:id=name}{td}h6.newTextArea{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSField]{span}{span:id=iets|style=float: left; font-weight: bold;}newTextArea{span}{span:id=iets|style=float: left;}\(dataprovidername/jsvariable, x, y, width, height){span}{td}{tr}{tr:id=des}{td}Creates a new JSField object on the form with the displayType of TEXT\_AREA \- including the dataprovider/JSVariable of the JSField object, the "x" and "y" position of the JSField object in pixels, as well as the width and height of the JSField object in pixels.{td}{tr}{tr:id=prs}{td}*Parameters*\\dataprovidername/jsvariable -- the specified dataprovider name/JSVariable of the JSField object
\{[Number]} x -- the horizontal "x" position of the JSTabPanel object in pixels
\{[Number]} y -- the vertical "y" position of the JSTabPanel object in pixels
\{[Number]} width -- the width of the JSTabPanel object in pixels
\{[Number]} height -- the height of the JSTabPanel object in pixels
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSField] -- a JSField object with the displayType of TEXT_AREA{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('newForm1','myServer','myTable',null,true,800,600);
	var globalVar = solutionModel.newGlobalVariable('myGlobal',JSVariable.TEXT);
	globalVar.defaultValue = "'Type your text in here'";
	var textArea = form.newTextArea(globalVar,100,100,300,150);
	forms['newForm1'].controller.show();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newTextField|class=node}{tr:id=name}{td}h6.newTextField{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSField]{span}{span:id=iets|style=float: left; font-weight: bold;}newTextField{span}{span:id=iets|style=float: left;}\(dataprovidername/jsvariable, x, y, width, height){span}{td}{tr}{tr:id=des}{td}Creates a new JSField object on the form with the displayType of TEXT\_FIELD \- including the dataprovider/JSVariable of the JSField object, the "x" and "y" position of the JSField object in pixels, as well as the width and height of the JSField object in pixels.{td}{tr}{tr:id=prs}{td}*Parameters*\\dataprovidername/jsvariable -- the specified dataprovider name/JSVariable of the JSField object
\{[Number]} x -- the horizontal "x" position of the JSfield object in pixels
\{[Number]} y -- the vertical "y" position of the JSField object in pixels
\{[Number]} width -- the width of the JSField object in pixels
\{[Number]} height -- the height of the JSField object in pixels
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSField] -- a JSField object with the displayType of TEXT_FIELD{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('newForm1','myServer','myTable',null,true,800,600); 
	//choose the dataprovider or jsvariable you want for the Text Field
	var x = null;
	//global jsvariable as the dataprovider 
 //x = solutionModel.newGlobalVariable('myGlobal',JSVariable.TEXT);
	//x.defaultValue = "'Text from a global variable'";
	//or a form jsvariable as the dataprovider 
	//x = form.newFormVariable('myFormVar',JSVariable.TEXT);
	//x.defaultValue = "'Text from a form variable'";
	var textField = form.newTextField(x,100,100,200,50);
	//or a column data provider as the dataprovider
	//textField.dataProviderID = columnTextDataProvider;
	forms['newForm1'].controller.show();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newTitleFooterPart|class=node}{tr:id=name}{td}h6.newTitleFooterPart{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSPart]{span}{span:id=iets|style=float: left; font-weight: bold;}newTitleFooterPart{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Creates a new Title Footer part on the form.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSPart] -- A JSPart instance corresponding to the newly created Title Footer form part.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var titleFooter = form.newTitleFooterPart(500);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newTitleHeaderPart|class=node}{tr:id=name}{td}h6.newTitleHeaderPart{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSPart]{span}{span:id=iets|style=float: left; font-weight: bold;}newTitleHeaderPart{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Creates a new Title Header part on the form.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSPart] -- A JSPart instance corresponding to the newly created Title Header form part.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var titleHeader = form.newTitleHeaderPart(40);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newTrailingGrandSummaryPart|class=node}{tr:id=name}{td}h6.newTrailingGrandSummaryPart{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSPart]{span}{span:id=iets|style=float: left; font-weight: bold;}newTrailingGrandSummaryPart{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Creates a new Trailing Grand Summary part on the form.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSPart] -- A JSPart instance corresponding to the newly created Trailing Grand Summary form part.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var trailingGrandSummary = form.newTrailingGrandSummaryPart(400);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newTrailingSubSummaryPart|class=node}{tr:id=name}{td}h6.newTrailingSubSummaryPart{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSPart]{span}{span:id=iets|style=float: left; font-weight: bold;}newTrailingSubSummaryPart{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Creates a new Trailing Subsummary part on the form.{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSPart] -- A JSPart instance corresponding to the newly created Trailing Subsummary form part.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var trailingSubsummary = form.newTrailingSubSummaryPart(360);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newTypeAhead|class=node}{tr:id=name}{td}h6.newTypeAhead{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSField]{span}{span:id=iets|style=float: left; font-weight: bold;}newTypeAhead{span}{span:id=iets|style=float: left;}\(dataprovidername/jsvariable, x, y, width, height){span}{td}{tr}{tr:id=des}{td}Creates a new JSField object on the form with the displayType of TYPE\_AHEAD \- including the dataprovider/JSVariable of the JSField object, the "x" and "y" position of the JSField object in pixels, as well as the width and height of the JSField object in pixels.{td}{tr}{tr:id=prs}{td}*Parameters*\\dataprovidername/jsvariable -- the specified dataprovider name/JSVariable of the JSField object
\{[Number]} x -- the horizontal "x" position of the JSfield object in pixels
\{[Number]} y -- the vertical "y" position of the JSField object in pixels
\{[Number]} width -- the width of the JSField object in pixels
\{[Number]} height -- the height of the JSField object in pixels
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSField] -- a JSField object with the displayType of TYPE_AHEAD{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('newForm1','myServer','myTable',null,true,800,600);
	var vlist = solutionModel.newValueList('options',JSValueList.CUSTOM_VALUES);
	vlist.customValues = "value1\nvalue2\nvalue3";
	var typeAhead = form.newTypeAhead(columnTextDataProvider,100,100,300,200);
	typeAhead.valuelist = vlist;
	forms['newForm1'].controller.show();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=removeBean|class=node}{tr:id=name}{td}h6.removeBean{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}removeBean{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{tr:id=des}{td}Removes a JSBean that has the specified name. Returns true if removal was successful, false otherwise.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} name -- the specified name of the JSBean to be removed
{td}{tr}{tr:id=ret}{td}*Returns*\\ [Boolean] -- true if the JSBean has been removed; false otherwise{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.getForm('myform');
 form.removeBean('mybean')
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=removeButton|class=node}{tr:id=name}{td}h6.removeButton{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}removeButton{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{tr:id=des}{td}Removes a JSButton that has the specified name. Returns true if removal was successful, false otherwise.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} name -- the specified name of the JSButton to be removed
{td}{tr}{tr:id=ret}{td}*Returns*\\ [Boolean] -- true if the JSButton has been removed; false otherwise{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('newFormX','myServer','myTable',null,true,800,600);
 var b1 = form.newButton('This is button1',100,100,200,50,null);
 b1.name = 'b1';
 var jsmethod = form.newFormMethod("function removeMe(event) { var form = solutionModel.getForm('newFormX'); if (form.removeButton('b1') == true) application.output('Button has been removed ok'); else application.output('Button could not be deleted'); forms['newFormX'].controller.recreateUI();}");
 var b2 = form.newButton('Click here to remove button1',100,230,200,50,jsmethod);
 b2.name = 'b2';
 forms['newFormX'].controller.show();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=removeComponent|class=node}{tr:id=name}{td}h6.removeComponent{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}removeComponent{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{tr:id=des}{td}Removes a component (JSLabel, JSButton, JSField, JSPortal, JSBean, JSTabpanel) that has the given name. It is the same as calling "if(!removeLabel(name) && !removeButton(name) ....)".
Returns true if removal was successful, false otherwise.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} name -- the specified name of the component to be deleted
{td}{tr}{tr:id=ret}{td}*Returns*\\ [Boolean] -- true if component has been successfully deleted; false otherwise{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('newFormX','myServer','parentTable',null,true,1000,750);
var jsbutton = form.newButton('JSButton to delete',100,100,200,50,null);
jsbutton.name = 'jsb';
var jslabel = form.newLabel('JSLabel to delete',100,200,200,50,null);
jslabel.name = 'jsl';
jslabel.transparent = false;
jslabel.background = 'green';
var jsfield = form.newField('globals.myGlobalVariable',JSField.TEXT_FIELD,100,300,200,50);
jsfield.name = 'jsf';
var relation = solutionModel.newRelation('parentToChild','myServer','parentTable','myServer','childTable',JSRelation.INNER_JOIN);
relation.newRelationItem('parent_table_id', '=', 'child_table_id');
var jsportal = form.newPortal('jsp',relation,100,400,300,300);
jsportal.newField('child_table_id',JSField.TEXT_FIELD,200,200,120);
var childOne = solutionModel.newForm('childOne','myServer','childTable',null,false,400,300);
childOne.newField('child_table_id', JSField.TEXT_FIELD,10,10,100,20);
var childTwo = solutionModel.newForm('childTwo','myServer','someOtherTable',null,false,400,300);
childTwo.newField('some_table_id', JSField.TEXT_FIELD,10,10,100,100); 
var jstabpanel = form.newTabPanel('jst',450,30,620,460);
jstabpanel.newTab('tab1','Child One',childOne,relation);
jstabpanel.newTab('tab2','Child Two',childTwo);
var jsmethod = form.newFormMethod("function removeMe(event) { var form = solutionModel.getForm('newFormX');\n if ((form.removeComponent('jsb') == true) && (form.removeComponent('jsl') == true) && (form.removeComponent('jsf') == true) && (form.removeComponent('jsp') == true) & (form.removeComponent('jst') == true)) application.output('Components removed ok'); else application.output('Some component(s) could not be deleted'); forms['newFormX'].controller.recreateUI();}");
var removerButton = form.newButton('Click here to remove form components',450,500,250,50,jsmethod);
removerButton.name = 'remover';
forms['newFormX'].controller.show();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=removeField|class=node}{tr:id=name}{td}h6.removeField{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}removeField{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{tr:id=des}{td}Removes a JSField that has the given name. Returns true if removal was successful, false otherwise.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} name -- the specified name of the JSField to remove
{td}{tr}{tr:id=ret}{td}*Returns*\\ [Boolean] -- true is the JSField has been successfully removed; false otherwise{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('newFormX','myServer','myTable',null,true,800,600);
var jsfield = form.newField(globals.myGlobalVariable,JSField.TEXT_FIELD,100,300,200,50);
jsfield.name = 'jsf';
var jsmethod = form.newFormMethod("function removeMe(event) { var form = solutionModel.getForm('newFormX');\n if (form.removeComponent('jsf') == true) application.output('Field has been removed ok'); else application.output('Field could not be deleted'); forms['newFormX'].controller.recreateUI();}");
var removerButton = form.newButton('Click here to remove the field',450,500,250,50,jsmethod);
removerButton.name = 'remover';
forms['newFormX'].controller.show();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=removeLabel|class=node}{tr:id=name}{td}h6.removeLabel{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}removeLabel{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{tr:id=des}{td}Removes a JSLabel that has the given name. Returns true if removal successful, false otherwise{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} name -- the specified name of the JSLabel to be removed
{td}{tr}{tr:id=ret}{td}*Returns*\\ [Boolean] -- true if the JSLabel with the given name has successfully been removed; false otherwise{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('newFormX','myServer','myTable',null,true,1000,750);
var jslabel = form.newLabel('JSLabel to delete',100,200,200,50,null);
jslabel.name = 'jsl';
jslabel.transparent = false;
jslabel.background = 'green';
var jsmethod = form.newFormMethod("function removeMe(event) { var form = solutionModel.getForm('newFormX'); if (form.removeComponent('jsl') == true) application.output('Label has been removed'); else application.output('Label could not be deleted'); forms['newFormX'].controller.recreateUI();}");
var removerButton = form.newButton('Click here to remove the green label',450,500,250,50,jsmethod);
removerButton.name = 'remover';
forms['newFormX'].controller.show();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=removePart-Number|class=node}{tr:id=name}{td}h6.removePart{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}removePart{span}{span:id=iets|style=float: left;}\(type){span}{td}{tr}{tr:id=des}{td}Removes a JSPart of the given type.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[Number]} type -- The type of the part that should be removed.
{td}{tr}{tr:id=ret}{td}*Returns*\\ [Boolean] -- True if the part is successfully removed, false otherwise.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.removePart(JSPart.HEADER);
form.removePart(JSPart.LEADING_SUBSUMMARY, 160);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=removePart-Number_Number|class=node}{tr:id=name}{td}h6.removePart{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}removePart{span}{span:id=iets|style=float: left;}\(type, height){span}{td}{tr}{tr:id=des}{td}Removes a JSPart of the given type. The height parameter is for removing one of multiple subsummary parts.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[Number]} type -- The type of the part that should be removed.
\{[Number]} height -- The height of the part that should be removed. This parameter is for 
 					removing one of multiple Leading/Trailing Subsummary parts.
{td}{tr}{tr:id=ret}{td}*Returns*\\ [Boolean] -- True if the part is successfully removed, false otherwise.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
form.removePart(JSPart.HEADER);
form.removePart(JSPart.LEADING_SUBSUMMARY, 160);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=removePortal|class=node}{tr:id=name}{td}h6.removePortal{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}removePortal{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{tr:id=des}{td}Removes a JSPortal that has the given name. Returns true if removal was successful, false otherwise.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} name -- the specified name of the JSPortal to be removed
{td}{tr}{tr:id=ret}{td}*Returns*\\ [Boolean] -- true if the JSPortal has successfully been removed; false otherwise{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('newFormX','myServer','myTable',null,true,800,600);
	var relation = solutionModel.newRelation('parentToChild','myServer','myTable','myServer','myOtherTable',JSRelation.INNER_JOIN);
	relation.newRelationItem('parent_table_id', '=', 'child_table_id');
	var jsportal = form.newPortal('jsp',relation,100,400,300,300);
	jsportal.newField('child_table_id',JSField.TEXT_FIELD,200,200,120);
	var jsmethod = form.newFormMethod("function removeMe(event) { var form = solutionModel.getForm('newFormX');\n if (form.removeComponent('jsp') == true) application.output('Portal removed ok'); else application.output('Portal could not be deleted'); forms['newFormX'].controller.recreateUI();}");
	var removerButton = form.newButton('Click here to remove the portal',450,500,250,50,jsmethod);
	removerButton.name = 'remover';
	forms['newFormX'].controller.show();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=removeTabPanel|class=node}{tr:id=name}{td}h6.removeTabPanel{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}removeTabPanel{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{tr:id=des}{td}Removes a JSTabPanel that has the given name. Returns true if removal was successful, false otherwise.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} name -- the specified name of the JSTabPanel to be removed
{td}{tr}{tr:id=ret}{td}*Returns*\\ [Boolean] -- true is the JSTabPanel has been successfully removed, false otherwise{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var form = solutionModel.newForm('newFormX','myServer','parentTable',null,false,800,600);
var childOne = solutionModel.newForm('childOne','myServer','childTable',null,false,400,300);
childOne.newField('child_table_text', JSField.TEXT_FIELD,10,10,100,20); 
var parentToChild = solutionModel.newRelation('parentToChild','myServer','parentTable','myServer','childTable',JSRelation.INNER_JOIN);
parentToChild.newRelationItem('parent_table_id','=','child_table_id');
var childTwo = solutionModel.newForm('childTwo','myServer','anotherTable',null,false,400,300);
childTwo.newField('columnDataProvider', JSField.TEXT_FIELD,10,10,100,100);
var tabPanel = form.newTabPanel('jst',10,10,620,460);
tabPanel.newTab('tab1','Child One',childOne,parentToChild);
tabPanel.newTab('tab2','Child Two',childTwo);
var jsmethod = form.newFormMethod("function removeMe(event) { var form = solutionModel.getForm('newFormX');\n if (form.removeComponent('jst') == true)\n application.output('TabPanel has been removed ok');\n else\n application.output('TabPanel could not be deleted');\n forms['newFormX'].controller.recreateUI();\n}");
var removerButton = form.newButton('Click here to remove the tab panel',450,500,250,50,jsmethod);
removerButton.name = 'remover';
forms['newFormX'].controller.show();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}