{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}
{sub-section:description|text=}{sub-section}\\ 

{table:id=|class=servoy sSummary}{colgroup}{column:width=80px|padding=0px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Constants Summary{th}{tr}{table}\\ 

{table:id=|class=servoy sSummary}{colgroup}{column:width=80px|padding=0px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Property Summary{th}{tr}{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}[#name]
The name of the form.{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}[#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}[#onRecordSelection]
The method that is triggered each time a record is selected.{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}[String]{td}{td}[#serverName]
Get the server name used by this form.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#tableName]
The \[name of the table/SQL view\].{td}{tr}{tbody}{table}\\ 

{table:id=|class=servoy sSummary}{colgroup}{column:width=80px|padding=0px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Method Summary{th}{tr}{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}[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}[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}[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}[JSMethod]{td}{td}[#getMethod]\(name)
Gets an existing form method for the given name.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]\[]{td}{td}[#getMethods]\()
Returns all existing form methods for this form.{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}[JSVariable]{td}{td}[#getVariable]\(name)
Gets an existing form variable for the given name.{td}{tr}{tbody}{tbody}{tr}{td}[JSVariable]\[]{td}{td}[#getVariables]\()
An array consisting of all form variables for this form.{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}[#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]\(height)
Creates a new Footer part on the form.{td}{tr}{tbody}{tbody}{tr}{td}[JSPart]{td}{td}[#newHeaderPart]\(height)
Creates a new Header part on the form.{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}[JSMethod]{td}{td}[#newMethod]\(code)
Creates a new form JSMethod \- based on the specified code.{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}[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}[#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}[JSVariable]{td}{td}[#newVariable]\(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}[JSVariable]{td}{td}[#newVariable]\(name, type, defaultValue)
Creates a new form JSVariable \- based on the name of the variable object , the  type  and it's default value , uses the SolutionModel JSVariable constants.{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}[#removeMethod]\(name)
Removes a  form JSMethod \- based on the specified code.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#removeVariable]\(name)
Removes a form JSVariable \- based on the name of the variable object.{td}{tr}{tbody}{table}\\ 

{table:id=constant|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Constants Details{th}{tr}{table}\\ 

{table:id=property|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Property Details{th}{tr}{tbody:id=dataSource|class=node}{tr:id=name}{td}h6.dataSource{td}{tr}{tr:id=des}{td}{sub-section:dataSource_des|trigger=button|text=}{sub-section}{sub-section:dataSource_des|trigger=none|class=sIndent}The names of the database server and table that this form is linked to.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:dataSource_snc|trigger=button|text=}{sub-section}{sub-section:dataSource_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:dataSource_prs|trigger=button|text=}{sub-section}{sub-section:dataSource_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:dataSource_ret|trigger=button|text=}{sub-section}{sub-section:dataSource_ret|trigger=none|class=sIndent}[String]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:dataSource_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:dataSource_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:dataSource_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:dataSource_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:dataSource_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:dataSource_sam|trigger=none}{code:language=javascript}
var myForm = solutionModel.newForm('newForm', 'db:/a_server/a_table', 'aStyleName', false, 800, 600)
myForm.dataSource = 'db:/anotherServerName/anotherTableName'
{code}{sub-section}{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}{sub-section:name_des|trigger=button|text=}{sub-section}{sub-section:name_des|trigger=none|class=sIndent}The name of the form.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:name_snc|trigger=button|text=}{sub-section}{sub-section:name_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:name_prs|trigger=button|text=}{sub-section}{sub-section:name_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:name_ret|trigger=button|text=}{sub-section}{sub-section:name_ret|trigger=none|class=sIndent}[String]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:name_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:name_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:name_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:name_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:name_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:name_sam|trigger=none}{code:language=javascript}
var form = solutionModel.newForm('myForm',myDatasource,null,true,800,600);
var formName = form.name;
application.output(formName);
{code}{sub-section}{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}{sub-section:onHide_des|trigger=button|text=}{sub-section}{sub-section:onHide_des|trigger=none|class=sIndent}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).{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:onHide_snc|trigger=button|text=}{sub-section}{sub-section:onHide_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:onHide_prs|trigger=button|text=}{sub-section}{sub-section:onHide_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:onHide_ret|trigger=button|text=}{sub-section}{sub-section:onHide_ret|trigger=none|class=sIndent}[JSMethod]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:onHide_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:onHide_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:onHide_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:onHide_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:onHide_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:onHide_sam|trigger=none}{code:language=javascript}
form.onShow = form.newMethod('function onShow(firstShow, event) { application.output("onShow intercepted on " + event.getFormName() + ". first show? " + firstShow); return false; }');
form.onHide = form.newMethod('function onHide(event) { application.output("onHide blocked on " + event.getFormName()); return false; }');
{code}{sub-section}{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}{sub-section:onLoad_des|trigger=button|text=}{sub-section}{sub-section:onLoad_des|trigger=none|class=sIndent}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){sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:onLoad_snc|trigger=button|text=}{sub-section}{sub-section:onLoad_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:onLoad_prs|trigger=button|text=}{sub-section}{sub-section:onLoad_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:onLoad_ret|trigger=button|text=}{sub-section}{sub-section:onLoad_ret|trigger=none|class=sIndent}[JSMethod]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:onLoad_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:onLoad_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:onLoad_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:onLoad_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:onLoad_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:onLoad_sam|trigger=none}{code:language=javascript}
form.onLoad = form.newMethod('function onLoad(event) { application.output("onLoad intercepted on " + event.getFormName()); }');
form.onUnLoad = form.newMethod('function onUnLoad(event) { application.output("onUnLoad intercepted on " + event.getFormName()); }');
{code}{sub-section}{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}{sub-section:onRecordSelection_des|trigger=button|text=}{sub-section}{sub-section:onRecordSelection_des|trigger=none|class=sIndent}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.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:onRecordSelection_snc|trigger=button|text=}{sub-section}{sub-section:onRecordSelection_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:onRecordSelection_prs|trigger=button|text=}{sub-section}{sub-section:onRecordSelection_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:onRecordSelection_ret|trigger=button|text=}{sub-section}{sub-section:onRecordSelection_ret|trigger=none|class=sIndent}[JSMethod]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:onRecordSelection_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:onRecordSelection_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:onRecordSelection_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:onRecordSelection_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:onRecordSelection_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:onRecordSelection_sam|trigger=none}{code:language=javascript}
form.onRecordEditStart = form.newMethod('function onRecordEditStart(event) { application.output("onRecordEditStart intercepted on " + event.getFormName()); }');
form.onRecordEditStop = form.newMethod('function onRecordEditStop(record, event) { application.output("onRecordEditStop intercepted on " + event.getFormName() + ". record is: " + record); }');
form.onRecordSelection = form.newMethod('function onRecordSelection(event) { application.output("onRecordSelection intercepted on " + event.getFormName()); }');
{code}{sub-section}{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}{sub-section:onShow_des|trigger=button|text=}{sub-section}{sub-section:onShow_des|trigger=none|class=sIndent}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.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:onShow_snc|trigger=button|text=}{sub-section}{sub-section:onShow_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:onShow_prs|trigger=button|text=}{sub-section}{sub-section:onShow_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:onShow_ret|trigger=button|text=}{sub-section}{sub-section:onShow_ret|trigger=none|class=sIndent}[JSMethod]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:onShow_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:onShow_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:onShow_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:onShow_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:onShow_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:onShow_sam|trigger=none}{code:language=javascript}
form.onShow = form.newMethod('function onShow(firstShow, event) { application.output("onShow intercepted on " + event.getFormName() + ". first show? " + firstShow); return false; }');
form.onHide = form.newMethod('function onHide(event) { application.output("onHide blocked on " + event.getFormName()); return false; }');
{code}{sub-section}{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}{sub-section:serverName_des|trigger=button|text=}{sub-section}{sub-section:serverName_des|trigger=none|class=sIndent}Get the server name used by this form.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:serverName_snc|trigger=button|text=}{sub-section}{sub-section:serverName_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:serverName_prs|trigger=button|text=}{sub-section}{sub-section:serverName_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:serverName_ret|trigger=button|text=}{sub-section}{sub-section:serverName_ret|trigger=none|class=sIndent}[String]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:serverName_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:serverName_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:serverName_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:serverName_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:serverName_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:serverName_sam|trigger=none}{code:language=javascript}
var form = solutionModel.newForm('myForm',myDatasource,null,true,800,600);
form.serverName = 'anotherServerName';
var theServerName = form.serverName;
application.output(theServerName);
{code}{sub-section}{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}{sub-section:tableName_des|trigger=button|text=}{sub-section}{sub-section:tableName_des|trigger=none|class=sIndent}The \[name of the table/SQL view\].\[the name of the database server connection\] the form is based on.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:tableName_snc|trigger=button|text=}{sub-section}{sub-section:tableName_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:tableName_prs|trigger=button|text=}{sub-section}{sub-section:tableName_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:tableName_ret|trigger=button|text=}{sub-section}{sub-section:tableName_ret|trigger=none|class=sIndent}[String]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:tableName_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:tableName_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:tableName_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:tableName_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:tableName_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:tableName_sam|trigger=none}{code:language=javascript}
var aForm = solutionModel.newForm('newForm1', myDatasource, null, true, 800, 600);
aForm.tableName = 'anotherTableOfMine'
if (forms['newForm1'].controller.find())
{
	columnTextDataProvider = '=aSearchedValue'
	columnNumberDataProvider = '>10';
	forms['newForm1'].controller.search()
}
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}\\ 

{table:id=function|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Method Details{th}{tr}{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}{sub-section:getButton_des|trigger=button|text=}{sub-section}{sub-section:getButton_des|trigger=none|class=sIndent}Returns a JSButton that has the given name.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getButton_snc|trigger=button|text=}{sub-section}{sub-section:getButton_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getButton_prs|trigger=button|text=}{sub-section}{sub-section:getButton_prs|trigger=none|class=sIndent}\{[String]} name -- the specified name of the button
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getButton_ret|trigger=button|text=}{sub-section}{sub-section:getButton_ret|trigger=none|class=sIndent}[JSButton] -- a JSButton object{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getButton_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getButton_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getButton_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getButton_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getButton_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getButton_sam|trigger=none}{code:language=javascript}
var btn = myForm.getButton("hello");
application.output(btn.text);
{code}{sub-section}{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}{sub-section:getButtons_des|trigger=button|text=}{sub-section}{sub-section:getButtons_des|trigger=none|class=sIndent}Returns all JSButtons of this form, including the ones without a name.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getButtons_snc|trigger=button|text=}{sub-section}{sub-section:getButtons_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:getButtons_prs|trigger=button|text=}{sub-section}{sub-section:getButtons_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getButtons_ret|trigger=button|text=}{sub-section}{sub-section:getButtons_ret|trigger=none|class=sIndent}[JSButton]\[] -- the list of all JSbuttons on this forms{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getButtons_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getButtons_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getButtons_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getButtons_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getButtons_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getButtons_sam|trigger=none}{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}{sub-section}{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}{sub-section:getComponent_des|trigger=button|text=}{sub-section}{sub-section:getComponent_des|trigger=none|class=sIndent}Returns a JSComponent that has the given name; if found it will be a JSField, JSLabel, JSButton, JSPortal, JSBean or JSTabPanel.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getComponent_snc|trigger=button|text=}{sub-section}{sub-section:getComponent_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getComponent_prs|trigger=button|text=}{sub-section}{sub-section:getComponent_prs|trigger=none|class=sIndent}\{[String]} name -- the specified name of the component
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getComponent_ret|trigger=button|text=}{sub-section}{sub-section:getComponent_ret|trigger=none|class=sIndent}[JSComponent] -- a JSComponent object (might be a JSField, JSLabel, JSButton, JSPortal, JSBean or JSTabPanel){sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getComponent_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getComponent_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getComponent_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getComponent_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getComponent_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getComponent_sam|trigger=none}{code:language=javascript}
var frm = solutionModel.getForm("myForm");
var cmp = frm.getComponent("componentName");
application.output("Component type and name: " + cmp);
{code}{sub-section}{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}{sub-section:getComponents_des|trigger=button|text=}{sub-section}{sub-section:getComponents_des|trigger=none|class=sIndent}Returns a array of all the JSComponents that a form has; they are of type JSField,JSLabel,JSButton,JSPortal,JSBean or JSTabPanel.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getComponents_snc|trigger=button|text=}{sub-section}{sub-section:getComponents_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:getComponents_prs|trigger=button|text=}{sub-section}{sub-section:getComponents_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getComponents_ret|trigger=button|text=}{sub-section}{sub-section:getComponents_ret|trigger=none|class=sIndent}[JSComponent]\[] -- an array of all the JSComponents on the form.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getComponents_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getComponents_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getComponents_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getComponents_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getComponents_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getComponents_sam|trigger=none}{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}{sub-section}{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}{sub-section:getField_des|trigger=button|text=}{sub-section}{sub-section:getField_des|trigger=none|class=sIndent}The field with the specified name.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getField_snc|trigger=button|text=}{sub-section}{sub-section:getField_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getField_prs|trigger=button|text=}{sub-section}{sub-section:getField_prs|trigger=none|class=sIndent}\{[String]} name -- the specified name of the field
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getField_ret|trigger=button|text=}{sub-section}{sub-section:getField_ret|trigger=none|class=sIndent}[JSField] -- a JSField object{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getField_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getField_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getField_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getField_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getField_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getField_sam|trigger=none}{code:language=javascript}
var form = solutionModel.getForm("myForm");
var field = form.getField("myField");
application.output(field.dataProviderID);
{code}{sub-section}{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}{sub-section:getFields_des|trigger=button|text=}{sub-section}{sub-section:getFields_des|trigger=none|class=sIndent}Returns all JSField objects of this form, including the ones without a name.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getFields_snc|trigger=button|text=}{sub-section}{sub-section:getFields_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:getFields_prs|trigger=button|text=}{sub-section}{sub-section:getFields_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getFields_ret|trigger=button|text=}{sub-section}{sub-section:getFields_ret|trigger=none|class=sIndent}[JSField]\[] -- all JSField objects of this form{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getFields_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getFields_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getFields_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getFields_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getFields_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getFields_sam|trigger=none}{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}{sub-section}{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}{sub-section:getLabel_des|trigger=button|text=}{sub-section}{sub-section:getLabel_des|trigger=none|class=sIndent}Returns a JSLabel that has the given name.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getLabel_snc|trigger=button|text=}{sub-section}{sub-section:getLabel_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getLabel_prs|trigger=button|text=}{sub-section}{sub-section:getLabel_prs|trigger=none|class=sIndent}\{[String]} name -- the specified name of the label
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getLabel_ret|trigger=button|text=}{sub-section}{sub-section:getLabel_ret|trigger=none|class=sIndent}[JSLabel] -- a JSLabel object (or null if the label with the specified name does not exist){sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getLabel_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getLabel_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getLabel_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getLabel_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getLabel_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getLabel_sam|trigger=none}{code:language=javascript}
var frm = solutionModel.getForm("myForm");
var label = frm.getLabel("myLabel");
application.output(label.text);
{code}{sub-section}{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}{sub-section:getLabels_des|trigger=button|text=}{sub-section}{sub-section:getLabels_des|trigger=none|class=sIndent}Returns all JSLabels of this form (not including its super form), including the ones without a name.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getLabels_snc|trigger=button|text=}{sub-section}{sub-section:getLabels_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:getLabels_prs|trigger=button|text=}{sub-section}{sub-section:getLabels_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getLabels_ret|trigger=button|text=}{sub-section}{sub-section:getLabels_ret|trigger=none|class=sIndent}[JSLabel]\[] -- all JSLabels on this form{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getLabels_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getLabels_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getLabels_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getLabels_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getLabels_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getLabels_sam|trigger=none}{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}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getMethod|class=node}{tr:id=name}{td}h6.getMethod{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSMethod]{span}{span:id=iets|style=float: left; font-weight: bold;}getMethod{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{tr:id=des}{td}{sub-section:getMethod_des|trigger=button|text=}{sub-section}{sub-section:getMethod_des|trigger=none|class=sIndent}Gets an existing form method for the given name.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getMethod_snc|trigger=button|text=}{sub-section}{sub-section:getMethod_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getMethod_prs|trigger=button|text=}{sub-section}{sub-section:getMethod_prs|trigger=none|class=sIndent}\{[String]} name -- the specified name of the method
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getMethod_ret|trigger=button|text=}{sub-section}{sub-section:getMethod_ret|trigger=none|class=sIndent}[JSMethod] -- a JSMethod object (or null if the method with the specified name does not exist){sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getMethod_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getMethod_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getMethod_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getMethod_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getMethod_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getMethod_sam|trigger=none}{code:language=javascript}
var frm = solutionModel.getForm("myForm");
var method = frm.getMethod("myMethod");
application.output(method.code);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getMethods|class=node}{tr:id=name}{td}h6.getMethods{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSMethod]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getMethods{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}{sub-section:getMethods_des|trigger=button|text=}{sub-section}{sub-section:getMethods_des|trigger=none|class=sIndent}Returns all existing form methods for this form.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getMethods_snc|trigger=button|text=}{sub-section}{sub-section:getMethods_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:getMethods_prs|trigger=button|text=}{sub-section}{sub-section:getMethods_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getMethods_ret|trigger=button|text=}{sub-section}{sub-section:getMethods_ret|trigger=none|class=sIndent}[JSMethod]\[] -- all form methods for the form{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getMethods_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getMethods_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getMethods_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getMethods_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getMethods_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getMethods_sam|trigger=none}{code:language=javascript}
var frm = solutionModel.getForm("myForm");
var methods = frm.getMethods();
for (var m in methods)
	application.output(methods[m].getName());
{code}{sub-section}{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}{sub-section:getPart-Number_des|trigger=button|text=}{sub-section}{sub-section:getPart-Number_des|trigger=none|class=sIndent}Gets a part of the form from the given type (see JSPart constants).{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getPart-Number_snc|trigger=button|text=}{sub-section}{sub-section:getPart-Number_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getPart-Number_prs|trigger=button|text=}{sub-section}{sub-section:getPart-Number_prs|trigger=none|class=sIndent}\{[Number]} type -- The type of the part to retrieve.
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getPart-Number_ret|trigger=button|text=}{sub-section}{sub-section:getPart-Number_ret|trigger=none|class=sIndent}[JSPart] -- A JSPart instance representing the retrieved form part.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getPart-Number_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getPart-Number_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getPart-Number_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getPart-Number_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getPart-Number_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getPart-Number_sam|trigger=none}{code:language=javascript}
form.getPart(JSPart.HEADER).background = 'red';
form.getPart(JSPart.LEADING_SUBSUMMARY, 160).background = 'red';
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getVariable|class=node}{tr:id=name}{td}h6.getVariable{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSVariable]{span}{span:id=iets|style=float: left; font-weight: bold;}getVariable{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{tr:id=des}{td}{sub-section:getVariable_des|trigger=button|text=}{sub-section}{sub-section:getVariable_des|trigger=none|class=sIndent}Gets an existing form variable for the given name.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getVariable_snc|trigger=button|text=}{sub-section}{sub-section:getVariable_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getVariable_prs|trigger=button|text=}{sub-section}{sub-section:getVariable_prs|trigger=none|class=sIndent}\{[String]} name -- the specified name of the variable
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getVariable_ret|trigger=button|text=}{sub-section}{sub-section:getVariable_ret|trigger=none|class=sIndent}[JSVariable] -- a JSVariable object{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getVariable_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getVariable_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getVariable_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getVariable_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getVariable_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getVariable_sam|trigger=none}{code:language=javascript}
var frm = solutionModel.getForm("myForm");
	var fvariable = frm.getVariable("myVarName");
	application.output(fvariable.name + " has the default value of " + fvariable.defaultValue);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getVariables|class=node}{tr:id=name}{td}h6.getVariables{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSVariable]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getVariables{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}{sub-section:getVariables_des|trigger=button|text=}{sub-section}{sub-section:getVariables_des|trigger=none|class=sIndent}An array consisting of all form variables for this form.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getVariables_snc|trigger=button|text=}{sub-section}{sub-section:getVariables_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:getVariables_prs|trigger=button|text=}{sub-section}{sub-section:getVariables_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getVariables_ret|trigger=button|text=}{sub-section}{sub-section:getVariables_ret|trigger=none|class=sIndent}[JSVariable]\[] -- an array of all variables on this form{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getVariables_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getVariables_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getVariables_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getVariables_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getVariables_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getVariables_sam|trigger=none}{code:language=javascript}
var frm = solutionModel.getForm("myForm");
var variables = frm.getVariables();
for (var i in variables)
	application.output(variables[i].name);
{code}{sub-section}{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}{sub-section:newButton_des|trigger=button|text=}{sub-section}{sub-section:newButton_des|trigger=none|class=sIndent}Creates a new button on the form with the given text, place, size and JSMethod as the onAction event triggered action.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:newButton_snc|trigger=button|text=}{sub-section}{sub-section:newButton_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:newButton_prs|trigger=button|text=}{sub-section}{sub-section:newButton_prs|trigger=none|class=sIndent}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
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:newButton_ret|trigger=button|text=}{sub-section}{sub-section:newButton_ret|trigger=none|class=sIndent}[JSButton] -- a new JSButton object{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:newButton_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newButton_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:newButton_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newButton_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:newButton_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newButton_sam|trigger=none}{code:language=javascript}
var form = solutionModel.newForm('newForm1', myDatasource, null, true, 800, 600);
var method = form.newMethod('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}{sub-section}{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}{sub-section:newCheck_des|trigger=button|text=}{sub-section}{sub-section:newCheck_des|trigger=none|class=sIndent}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.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:newCheck_snc|trigger=button|text=}{sub-section}{sub-section:newCheck_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:newCheck_prs|trigger=button|text=}{sub-section}{sub-section:newCheck_prs|trigger=none|class=sIndent}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
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:newCheck_ret|trigger=button|text=}{sub-section}{sub-section:newCheck_ret|trigger=none|class=sIndent}[JSField] -- a new JSField object on the form with the displayType of CHECK (checkbox){sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:newCheck_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newCheck_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:newCheck_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newCheck_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:newCheck_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newCheck_sam|trigger=none}{code:language=javascript}
var form = solutionModel.newForm('newForm1', myDatasource, null, true, 800, 600);
var calendar = form.newCheck(myDataProvider, 100, 100, 200, 200);
forms['newForm1'].controller.show();
{code}{sub-section}{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}{sub-section:newComboBox_des|trigger=button|text=}{sub-section}{sub-section:newComboBox_des|trigger=none|class=sIndent}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.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:newComboBox_snc|trigger=button|text=}{sub-section}{sub-section:newComboBox_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:newComboBox_prs|trigger=button|text=}{sub-section}{sub-section:newComboBox_prs|trigger=none|class=sIndent}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
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:newComboBox_ret|trigger=button|text=}{sub-section}{sub-section:newComboBox_ret|trigger=none|class=sIndent}[JSField] -- a new JSField object on the form with the displayType of COMBOBOX{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:newComboBox_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newComboBox_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:newComboBox_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newComboBox_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:newComboBox_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newComboBox_sam|trigger=none}{code:language=javascript}
var form = solutionModel.newForm('newForm1', myDatasource, null, true, 800, 600);
var calendar = form.newComboBox(myDataProvider, 100, 100, 200, 200);
forms['newForm1'].controller.show();
{code}{sub-section}{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}{sub-section:newField_des|trigger=button|text=}{sub-section}{sub-section:newField_des|trigger=none|class=sIndent}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.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:newField_snc|trigger=button|text=}{sub-section}{sub-section:newField_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:newField_prs|trigger=button|text=}{sub-section}{sub-section:newField_prs|trigger=none|class=sIndent}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
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:newField_ret|trigger=button|text=}{sub-section}{sub-section:newField_ret|trigger=none|class=sIndent}[JSField] -- a new JSField object (of the specified display type){sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:newField_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newField_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:newField_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newField_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:newField_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newField_sam|trigger=none}{code:language=javascript}
var form = solutionModel.newForm('newForm1', myDatasource, null, true, 800, 600);
var variable = form.newVariable('myVar', JSVariable.TEXT);
variable.defaultValue = "'This is a default value (with triple quotes)!'";
var field = form.newField(variable, JSField.TEXT_FIELD, 100, 100, 200, 200);
forms['newForm1'].controller.show();
{code}{sub-section}{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;}\(height){span}{td}{tr}{tr:id=des}{td}{sub-section:newFooterPart_des|trigger=button|text=}{sub-section}{sub-section:newFooterPart_des|trigger=none|class=sIndent}Creates a new Footer part on the form.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:newFooterPart_snc|trigger=button|text=}{sub-section}{sub-section:newFooterPart_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:newFooterPart_prs|trigger=button|text=}{sub-section}{sub-section:newFooterPart_prs|trigger=none|class=sIndent}\{[Number]} height -- The height of the new part
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:newFooterPart_ret|trigger=button|text=}{sub-section}{sub-section:newFooterPart_ret|trigger=none|class=sIndent}[JSPart] -- A JSPart instance corresponding to the newly created Footer form part.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:newFooterPart_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newFooterPart_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:newFooterPart_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newFooterPart_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:newFooterPart_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newFooterPart_sam|trigger=none}{code:language=javascript}
var footer = form.newFooterPart(440);
{code}{sub-section}{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;}\(height){span}{td}{tr}{tr:id=des}{td}{sub-section:newHeaderPart_des|trigger=button|text=}{sub-section}{sub-section:newHeaderPart_des|trigger=none|class=sIndent}Creates a new Header part on the form.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:newHeaderPart_snc|trigger=button|text=}{sub-section}{sub-section:newHeaderPart_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:newHeaderPart_prs|trigger=button|text=}{sub-section}{sub-section:newHeaderPart_prs|trigger=none|class=sIndent}\{[Number]} height -- The height of the new part
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:newHeaderPart_ret|trigger=button|text=}{sub-section}{sub-section:newHeaderPart_ret|trigger=none|class=sIndent}[JSPart] -- A JSPart instance corresponding to the newly created Header form part.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:newHeaderPart_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newHeaderPart_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:newHeaderPart_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newHeaderPart_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:newHeaderPart_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newHeaderPart_sam|trigger=none}{code:language=javascript}
var header = form.newHeaderPart(80);
{code}{sub-section}{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}{sub-section:newLabel-String_Number_Number_Number_Number_des|trigger=button|text=}{sub-section}{sub-section:newLabel-String_Number_Number_Number_Number_des|trigger=none|class=sIndent}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.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:newLabel-String_Number_Number_Number_Number_snc|trigger=button|text=}{sub-section}{sub-section:newLabel-String_Number_Number_Number_Number_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:newLabel-String_Number_Number_Number_Number_prs|trigger=button|text=}{sub-section}{sub-section:newLabel-String_Number_Number_Number_Number_prs|trigger=none|class=sIndent}\{[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
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:newLabel-String_Number_Number_Number_Number_ret|trigger=button|text=}{sub-section}{sub-section:newLabel-String_Number_Number_Number_Number_ret|trigger=none|class=sIndent}[JSLabel] -- a JSLabel object{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:newLabel-String_Number_Number_Number_Number_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newLabel-String_Number_Number_Number_Number_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:newLabel-String_Number_Number_Number_Number_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newLabel-String_Number_Number_Number_Number_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:newLabel-String_Number_Number_Number_Number_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newLabel-String_Number_Number_Number_Number_sam|trigger=none}{code:language=javascript}
var form = solutionModel.newForm('newForm1', myDatasource, null, true, 800, 600);
var label = form.newLabel('The text on the label', 140, 140, 50, 20);
forms['newForm1'].controller.show();
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newMethod|class=node}{tr:id=name}{td}h6.newMethod{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSMethod]{span}{span:id=iets|style=float: left; font-weight: bold;}newMethod{span}{span:id=iets|style=float: left;}\(code){span}{td}{tr}{tr:id=des}{td}{sub-section:newMethod_des|trigger=button|text=}{sub-section}{sub-section:newMethod_des|trigger=none|class=sIndent}Creates a new form JSMethod \- based on the specified code.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:newMethod_snc|trigger=button|text=}{sub-section}{sub-section:newMethod_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:newMethod_prs|trigger=button|text=}{sub-section}{sub-section:newMethod_prs|trigger=none|class=sIndent}\{[String]} code -- the specified code for the new method
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:newMethod_ret|trigger=button|text=}{sub-section}{sub-section:newMethod_ret|trigger=none|class=sIndent}[JSMethod] -- a new JSMethod object for this form{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:newMethod_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newMethod_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:newMethod_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newMethod_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:newMethod_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newMethod_sam|trigger=none}{code:language=javascript}
var form = solutionModel.newForm('newForm1', myDatasource, null, true, 800, 600);
var method = form.newMethod('function aMethod(event){application.output("Hello world!");}');
var button = myListViewForm.newButton('Show message!',50,50,100,30,method);
forms['newForm1'].controller.show();
{code}{sub-section}{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}{sub-section:newPassword_des|trigger=button|text=}{sub-section}{sub-section:newPassword_des|trigger=none|class=sIndent}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.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:newPassword_snc|trigger=button|text=}{sub-section}{sub-section:newPassword_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:newPassword_prs|trigger=button|text=}{sub-section}{sub-section:newPassword_prs|trigger=none|class=sIndent}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
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:newPassword_ret|trigger=button|text=}{sub-section}{sub-section:newPassword_ret|trigger=none|class=sIndent}[JSField] -- a new JSField object on the form with the displayType of PASSWORD{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:newPassword_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newPassword_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:newPassword_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newPassword_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:newPassword_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newPassword_sam|trigger=none}{code:language=javascript}
var form = solutionModel.newForm('newForm1', myDatasource, null, true, 800, 600);
var pass = form.newPassword(scopes.globals.aVariable, 100, 100, 70, 30);
forms['newForm1'].controller.show();
{code}{sub-section}{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}{sub-section:newRadios_des|trigger=button|text=}{sub-section}{sub-section:newRadios_des|trigger=none|class=sIndent}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.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:newRadios_snc|trigger=button|text=}{sub-section}{sub-section:newRadios_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:newRadios_prs|trigger=button|text=}{sub-section}{sub-section:newRadios_prs|trigger=none|class=sIndent}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
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:newRadios_ret|trigger=button|text=}{sub-section}{sub-section:newRadios_ret|trigger=none|class=sIndent}[JSField] -- a JSField object with the displayType of RADIOS (radio buttons){sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:newRadios_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newRadios_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:newRadios_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newRadios_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:newRadios_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newRadios_sam|trigger=none}{code:language=javascript}
var form = solutionModel.newForm('newForm1', myDatasource, 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}{sub-section}{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}{sub-section:newTextArea_des|trigger=button|text=}{sub-section}{sub-section:newTextArea_des|trigger=none|class=sIndent}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.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:newTextArea_snc|trigger=button|text=}{sub-section}{sub-section:newTextArea_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:newTextArea_prs|trigger=button|text=}{sub-section}{sub-section:newTextArea_prs|trigger=none|class=sIndent}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
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:newTextArea_ret|trigger=button|text=}{sub-section}{sub-section:newTextArea_ret|trigger=none|class=sIndent}[JSField] -- a JSField object with the displayType of TEXT_AREA{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:newTextArea_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newTextArea_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:newTextArea_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newTextArea_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:newTextArea_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newTextArea_sam|trigger=none}{code:language=javascript}
var form = solutionModel.newForm('newForm1',myDatasource,null,true,800,600);
var globalVar = solutionModel.newGlobalVariable('globals', 'myGlobal',JSVariable.TEXT);
globalVar.defaultValue = "'Type your text in here'";
var textArea = form.newTextArea(globalVar,100,100,300,150);
forms['newForm1'].controller.show();
{code}{sub-section}{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}{sub-section:newTextField_des|trigger=button|text=}{sub-section}{sub-section:newTextField_des|trigger=none|class=sIndent}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.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:newTextField_snc|trigger=button|text=}{sub-section}{sub-section:newTextField_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:newTextField_prs|trigger=button|text=}{sub-section}{sub-section:newTextField_prs|trigger=none|class=sIndent}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
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:newTextField_ret|trigger=button|text=}{sub-section}{sub-section:newTextField_ret|trigger=none|class=sIndent}[JSField] -- a JSField object with the displayType of TEXT_FIELD{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:newTextField_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newTextField_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:newTextField_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newTextField_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:newTextField_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newTextField_sam|trigger=none}{code:language=javascript}
var form = solutionModel.newForm('newForm1',myDatasource,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('globals', 'myGlobal',JSVariable.TEXT);
//x.defaultValue = "'Text from a global variable'";
//or a form jsvariable as the dataprovider 
//x = form.newVariable('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}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newVariable-String_Number|class=node}{tr:id=name}{td}h6.newVariable{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSVariable]{span}{span:id=iets|style=float: left; font-weight: bold;}newVariable{span}{span:id=iets|style=float: left;}\(name, type){span}{td}{tr}{tr:id=des}{td}{sub-section:newVariable-String_Number_des|trigger=button|text=}{sub-section}{sub-section:newVariable-String_Number_des|trigger=none|class=sIndent}Creates a new form JSVariable \- based on the name of the variable object and the number type, uses the SolutionModel JSVariable constants.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:newVariable-String_Number_snc|trigger=button|text=}{sub-section}{sub-section:newVariable-String_Number_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:newVariable-String_Number_prs|trigger=button|text=}{sub-section}{sub-section:newVariable-String_Number_prs|trigger=none|class=sIndent}\{[String]} name -- the specified name of the variable
\{[Number]} type -- the specified type of the variable (see Solution Model \-> JSVariable node constants)
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:newVariable-String_Number_ret|trigger=button|text=}{sub-section}{sub-section:newVariable-String_Number_ret|trigger=none|class=sIndent}[JSVariable] -- a JSVariable object{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:newVariable-String_Number_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newVariable-String_Number_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:newVariable-String_Number_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newVariable-String_Number_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:newVariable-String_Number_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newVariable-String_Number_sam|trigger=none}{code:language=javascript}
var form = solutionModel.newForm('newForm1', myDatasource, null, true, 800, 600);
var variable = form.newVariable('myVar', JSVariable.TEXT , "'This is a default value (with triple quotes)!'");
//or variable = form.newVariable('myVar', JSVariable.TEXT)
//variable.defaultValue = "'This is a default value (with triple quotes)!'" // setting the default value after the variable is created requires form recreation
//variable.defaultValue = "{a:'First letter',b:'Second letter'}"   
var field = form.newField(variable, JSField.TEXT_FIELD, 100, 100, 200, 200);
forms['newForm1'].controller.show();
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newVariable-String_Number_String|class=node}{tr:id=name}{td}h6.newVariable{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSVariable]{span}{span:id=iets|style=float: left; font-weight: bold;}newVariable{span}{span:id=iets|style=float: left;}\(name, type, defaultValue){span}{td}{tr}{tr:id=des}{td}{sub-section:newVariable-String_Number_String_des|trigger=button|text=}{sub-section}{sub-section:newVariable-String_Number_String_des|trigger=none|class=sIndent}Creates a new form JSVariable \- based on the name of the variable object , the  type  and it's default value , uses the SolutionModel JSVariable constants.

This method does not require the form to be destroyed and recreated. Use this method if you want to change the form's model without destroying the runtime form</b>{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:newVariable-String_Number_String_snc|trigger=button|text=}{sub-section}{sub-section:newVariable-String_Number_String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:newVariable-String_Number_String_prs|trigger=button|text=}{sub-section}{sub-section:newVariable-String_Number_String_prs|trigger=none|class=sIndent}\{[String]} name -- the specified name of the variable
\{[Number]} type -- the specified type of the variable (see Solution Model \-> JSVariable node constants)
\{[String]} defaultValue -- the default value as a javascript expression string
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:newVariable-String_Number_String_ret|trigger=button|text=}{sub-section}{sub-section:newVariable-String_Number_String_ret|trigger=none|class=sIndent}[JSVariable] -- a JSVariable object{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:newVariable-String_Number_String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newVariable-String_Number_String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:newVariable-String_Number_String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newVariable-String_Number_String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:newVariable-String_Number_String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newVariable-String_Number_String_sam|trigger=none}{code:language=javascript}
var form = solutionModel.newForm('newForm1', myDatasource, null, true, 800, 600);
var variable = form.newVariable('myVar', JSVariable.TEXT , "'This is a default value (with triple quotes)!'");
//or variable = form.newVariable('myVar', JSVariable.TEXT)
//variable.defaultValue = "'This is a default value (with triple quotes)!'" // setting the default value after the variable is created requires form recreation
//variable.defaultValue = "{a:'First letter',b:'Second letter'}"   
var field = form.newField(variable, JSField.TEXT_FIELD, 100, 100, 200, 200);
forms['newForm1'].controller.show();
{code}{sub-section}{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}{sub-section:removeButton_des|trigger=button|text=}{sub-section}{sub-section:removeButton_des|trigger=none|class=sIndent}Removes a JSButton that has the specified name. Returns true if removal was successful, false otherwise.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:removeButton_snc|trigger=button|text=}{sub-section}{sub-section:removeButton_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:removeButton_prs|trigger=button|text=}{sub-section}{sub-section:removeButton_prs|trigger=none|class=sIndent}\{[String]} name -- the specified name of the JSButton to be removed
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:removeButton_ret|trigger=button|text=}{sub-section}{sub-section:removeButton_ret|trigger=none|class=sIndent}[Boolean] -- true if the JSButton has been removed; false otherwise{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:removeButton_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeButton_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:removeButton_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeButton_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:removeButton_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeButton_sam|trigger=none}{code:language=javascript}
var form = solutionModel.newForm('newFormX',myDatasource,null,true,800,600);
var b1 = form.newButton('This is button1',100,100,200,50,null);
b1.name = 'b1';
var jsmethod = form.newMethod("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}{sub-section}{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}{sub-section:removeComponent_des|trigger=button|text=}{sub-section}{sub-section:removeComponent_des|trigger=none|class=sIndent}Removes a component (JSLabel, JSButton, JSField, JSPortal, JSBean, JSTabpanel) that has the given name. It is the same as calling "if(!removeLabel(name) &amp;&amp; !removeButton(name) ....)".
Returns true if removal was successful, false otherwise.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:removeComponent_snc|trigger=button|text=}{sub-section}{sub-section:removeComponent_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:removeComponent_prs|trigger=button|text=}{sub-section}{sub-section:removeComponent_prs|trigger=none|class=sIndent}\{[String]} name -- the specified name of the component to be deleted
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:removeComponent_ret|trigger=button|text=}{sub-section}{sub-section:removeComponent_ret|trigger=none|class=sIndent}[Boolean] -- true if component has been successfully deleted; false otherwise{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:removeComponent_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeComponent_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:removeComponent_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeComponent_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:removeComponent_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeComponent_sam|trigger=none}{code:language=javascript}
var form = solutionModel.newForm('newFormX','db:/server1/parent_table',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('scopes.globals.myGlobalVariable',JSField.TEXT_FIELD,100,300,200,50);
jsfield.name = 'jsf';
var relation = solutionModel.newRelation('parentToChild','db:/server1/parent_table','db:/server1/child_table',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','db:/server1/child_table',null,false,400,300);
childOne.newField('child_table_id', JSField.TEXT_FIELD,10,10,100,20);
var childTwo = solutionModel.newForm('childTwo','server1','other_table',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.newMethod("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}{sub-section}{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}{sub-section:removeField_des|trigger=button|text=}{sub-section}{sub-section:removeField_des|trigger=none|class=sIndent}Removes a JSField that has the given name. Returns true if removal was successful, false otherwise.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:removeField_snc|trigger=button|text=}{sub-section}{sub-section:removeField_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:removeField_prs|trigger=button|text=}{sub-section}{sub-section:removeField_prs|trigger=none|class=sIndent}\{[String]} name -- the specified name of the JSField to remove
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:removeField_ret|trigger=button|text=}{sub-section}{sub-section:removeField_ret|trigger=none|class=sIndent}[Boolean] -- true is the JSField has been successfully removed; false otherwise{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:removeField_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeField_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:removeField_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeField_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:removeField_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeField_sam|trigger=none}{code:language=javascript}
var form = solutionModel.newForm('newFormX',myDatasource,null,true,800,600);
var jsfield = form.newField(scopes.globals.myGlobalVariable,JSField.TEXT_FIELD,100,300,200,50);
jsfield.name = 'jsf';
var jsmethod = form.newMethod("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}{sub-section}{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}{sub-section:removeLabel_des|trigger=button|text=}{sub-section}{sub-section:removeLabel_des|trigger=none|class=sIndent}Removes a JSLabel that has the given name. Returns true if removal successful, false otherwise{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:removeLabel_snc|trigger=button|text=}{sub-section}{sub-section:removeLabel_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:removeLabel_prs|trigger=button|text=}{sub-section}{sub-section:removeLabel_prs|trigger=none|class=sIndent}\{[String]} name -- the specified name of the JSLabel to be removed
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:removeLabel_ret|trigger=button|text=}{sub-section}{sub-section:removeLabel_ret|trigger=none|class=sIndent}[Boolean] -- true if the JSLabel with the given name has successfully been removed; false otherwise{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:removeLabel_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeLabel_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:removeLabel_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeLabel_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:removeLabel_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeLabel_sam|trigger=none}{code:language=javascript}
var form = solutionModel.newForm('newFormX',myDatasource,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.newMethod("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}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=removeMethod|class=node}{tr:id=name}{td}h6.removeMethod{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}removeMethod{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{tr:id=des}{td}{sub-section:removeMethod_des|trigger=button|text=}{sub-section}{sub-section:removeMethod_des|trigger=none|class=sIndent}Removes a  form JSMethod \- based on the specified code.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:removeMethod_snc|trigger=button|text=}{sub-section}{sub-section:removeMethod_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:removeMethod_prs|trigger=button|text=}{sub-section}{sub-section:removeMethod_prs|trigger=none|class=sIndent}\{[String]} name -- the specified name of the method
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:removeMethod_ret|trigger=button|text=}{sub-section}{sub-section:removeMethod_ret|trigger=none|class=sIndent}[Boolean] -- true if method was removed successfully , false otherwise{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:removeMethod_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeMethod_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:removeMethod_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeMethod_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:removeMethod_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeMethod_sam|trigger=none}{code:language=javascript}
var form = solutionModel.newForm('newForm1', null, null, true, 800, 600);
var hello = form.newMethod('function aMethod(event){application.output("Hello world!");}');
var removeMethod = form.newMethod('function removeMethod(event){ \
									solutionModel.getForm(event.getFormName()).removeMethod("aMethod"); \
									forms[event.getFormName()].controller.recreateUI();\
									}');
var button1 = form.newButton('Call method!',50,50,120,30,hello);
var button2 = form.newButton('Remove Mehtod!',200,50,120,30,removeMethod);
forms['newForm1'].controller.show();
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=removeVariable|class=node}{tr:id=name}{td}h6.removeVariable{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}removeVariable{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{tr:id=des}{td}{sub-section:removeVariable_des|trigger=button|text=}{sub-section}{sub-section:removeVariable_des|trigger=none|class=sIndent}Removes a form JSVariable \- based on the name of the variable object.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:removeVariable_snc|trigger=button|text=}{sub-section}{sub-section:removeVariable_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:removeVariable_prs|trigger=button|text=}{sub-section}{sub-section:removeVariable_prs|trigger=none|class=sIndent}\{[String]} name -- the specified name of the variable
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:removeVariable_ret|trigger=button|text=}{sub-section}{sub-section:removeVariable_ret|trigger=none|class=sIndent}[Boolean] -- true if removed, false otherwise (ex: no var with that name){sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:removeVariable_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeVariable_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:removeVariable_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeVariable_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:removeVariable_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeVariable_sam|trigger=none}{code:language=javascript}
var form = solutionModel.newForm('newForm1', null, null, true, 800, 600);
var variable = form.newVariable('myVar', JSVariable.TEXT);
variable.defaultValue = "'This is a default value (with triple quotes)!'";
//variable.defaultValue = "{a:'First letter',b:'Second letter'}"
var field = form.newField(variable, JSField.TEXT_FIELD, 100, 100, 200, 200);
forms['newForm1'].controller.show();

variable = form.removeVariable('myVar');
application.sleep(4000);
forms['newForm1'].controller.recreateUI();
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}