Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
{hiddendiv:style=display:none}
DO NOT EDIT THE CONTENT OF THIS PAGE DIRECTLY (EXCEPT INSIDE THE DIV BELOW WITH ID=DESCRIPTION), UNLESS YOU KNOW WHAT YOU'RE DOING.
		THE STRUCTURE OF THE CONTENT IS VITAL IN BEING ABLE TO EXTRACTAUTO CHANGES FROMUPDATE THE PAGECONTENT ANDTHROUGH MERGETHE THEM BACK INTO SERVOY SOURCE{hiddenDOC GENERATOR{div}
{sub-sectiondiv:id=description|text=}{sub-sectiondiv}\\ 

{table:id=|class=servoy sReturnTypes}{tr:style=height: 30px;}{th}Return Types{th}{tr}{tr}{td}{span:class=sWordList}[DEFAULTS]{span}{span:class=sWordList}[JSBean]{span}{span:class=sWordList}[JSButton]{span}{span:class=sWordList}[JSCalendar]{span}{span:class=sWordList}[JSChecks]{span}{span:class=sWordList}[JSCombobox]{span}{span:class=sWordList}[JSComponent]{span}{span:class=sWordList}[JSField]{span}{span:class=sWordList}[JSFooter]{span}{span:class=sWordList}[JSForm]{span}{span:class=sWordList}[JSHeader]{span}{span:class=sWordList}[JSInsetList]{span}{span:class=sWordList}[JSLabel]{span}{span:class=sWordList}[JSList]{span}{span:class=sWordList}[JSMethod]{span}{span:class=sWordList}[JSPassword]{span}{span:class=sWordList}[JSRadios]{span}{span:class=sWordList}[JSText]{span}{span:class=sWordList}[JSTextArea]{span}{span:class=sWordList}[JSTitle]{span}{span:class=sWordList}[JSValueList]{span}{span:class=sWordList}[JSVariable]{span}{td}{tr}{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}[JSForm]{td}{td}[#getForm]\(name)
Gets the specified form object and returns information about the form (see JSForm node).{td}{tr}{tbody}{tbody}{tr}{td}[JSForm]\[]{td}{td}[#getForms]\()
Get an array of all forms.{td}{tr}{tbody}{tbody}{tr}{td}[JSForm]\[]{td}{td}[#getForms]\(datasource)
Get an array of forms, that are all based on datasource/servername.{td}{tr}{tbody}{tbody}{tr}{td}[JSForm]\[]{td}{td}[#getForms]\(server, tablename)
Get an array of forms, that are all based on datasource/servername and tablename.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#getGlobalMethod]\(scopeName, name)
Gets an existing global method by the specified name.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]\[]{td}{td}[#getGlobalMethods]\()
The list of all global methods.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]\[]{td}{td}[#getGlobalMethods]\(scopeName)
The list of all global methods.{td}{tr}{tbody}{tbody}{tr}{td}[JSVariable]{td}{td}[#getGlobalVariable]\(scopeName, name)
Gets an existing global variable by the specified name.{td}{tr}{tbody}{tbody}{tr}{td}[JSVariable]\[]{td}{td}[#getGlobalVariables]\()
Gets an array of all global variables.{td}{tr}{tbody}{tbody}{tr}{td}[JSVariable]\[]{td}{td}[#getGlobalVariables]\(scopeName)
Gets an array of all global variables.{td}{tr}{tbody}{tbody}{tr}{td}[JSList]{td}{td}[#getListForm]\(formName)
Returns an existing list form.{td}{tr}{tbody}{tbody}{tr}{td}[JSList]\[]{td}{td}[#getListForms]\()
Get an array of all list\-forms.{td}{tr}{tbody}{tbody}{tr}{td}[String]\[]{td}{td}[#getScopeNames]\()
Gets an array of all scope names used.{td}{tr}{tbody}{tbody}{tr}{td}[JSValueList]{td}{td}[#getValueList]\(name)
Gets an existing valuelist by the specified name and returns a JSValueList Object that can be assigned to a field.{td}{tr}{tbody}{tbody}{tr}{td}[JSValueList]\[]{td}{td}[#getValueLists]\()
Gets an array of all valuelists for the currently active solution.{td}{tr}{tbody}{tbody}{tr}{td}[JSForm]{td}{td}[#newForm]\(name, dataSource)
Creates a new JSForm Object.{td}{tr}{tbody}{tbody}{tr}{td}[JSForm]{td}{td}[#newForm]\(name, dataSource, styleName, show_in_menu, width, height)
Creates a new JSForm Object.{td}{tr}{tbody}{tbody}{tr}{td}[JSForm]{td}{td}[#newForm]\(name, serverName, tableName, styleName, show_in_menu, width, height)
Creates a new JSForm Object.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#newGlobalMethod]\(scopeName, code)
Creates a new global method with the specified code in a scope.{td}{tr}{tbody}{tbody}{tr}{td}[JSVariable]{td}{td}[#newGlobalVariable]\(scopeName, name, type)
Creates a new global variable with the specified name and number type.{td}{tr}{tbody}{tbody}{tr}{td}[JSList]{td}{td}[#newListForm]\(formName, dataSource, textDataProviderID)
Creates a new list form, similar to an inset list but without the inset list's header and relation.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#removeForm]\(name)
Removes the specified form during the persistent connected client session.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#removeGlobalMethod]\(scopeName, name)
Removes the specified global method.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#removeGlobalVariable]\(scopeName, name)
Removes the specified global variable.{td}{tr}{tbody}{tbody}{tr}{td}[JSForm]{td}{td}[#revertForm]\(name)
Reverts the specified form to the original (blueprint) version of the form; will result in an exception error if the form is not an original form.{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=getForm-String|class=node}{tr:id=name}{td}h6.getForm{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSForm]{span}{span:id=iets|style=float: left; font-weight: bold;}getForm{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{builder-show:permission=edit}{tr:id=desprs}{td}{sub-section:getForm-String_des|trigger=button|text=}{sub-section}{sub-section:getForm-String_des|trigger=none|class=sIndent}Replace with description{sub-section*Parameters*\\{div:class=sIndent}\{[String]} name -- the specified name of the form
{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=sncret}{td}*SinceReturns*\\{sub-section:getForm-String_snc|trigger=button|text=}{sub-section}{sub-section:getForm-String_snc|trigger=none|div:class=sIndent}[JSForm] Replace-- witha version info{sub-sectionJSForm{div}{td}{tr}{builder-show}{tr:id=prssam}{td}*ParametersSample*\\{sub-section:getForm-String_prs|trigger=button|text=}{sub-section}{sub-section:getForm-String_prs|trigger=none|class=sIndent}\{[String]} name -- the specified namediv:class=sIndent}{code:language=javascript}
var myForm = solutionModel.getForm('existingFormName');
//get the style of the form (for all other properties {sub-sectionsee JSForm node)
var styleName = myForm.styleName;
{code}{div}{td}{tr}{tr:id=retclass=lastDetailRow}{td}{td}*Returns*\\{sub-section:getForm-String_ret|trigger=button|text=}{sub-section}{sub-section:getForm-String_ret|trigger=none|class=sIndent}[JSForm] -- a JSForm{sub-section}{tr}{tbody}{tbody:id=getForms}{tr:id=name}{td}h6.getForms{td}{tr}{builder-show:permission=edit}{tr:id=seesig}{td}*Also see*\\{sub-section:getForm-String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getForm-String_see|trigger=none}{sub-section}{div{span:style=margin-right: 5px;}[JSForm]\[]{span}{span:style=font-weight: bold;}getForms{span}{span}\(){span}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getForm-String_link|trigger=button|text=}{sub-section}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}{sub-section:getForm-String_link|trigger=none}{sub-section}{[JSForm]\[] -- an array of JSForm type elements{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getForm-String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getForm-String_sam|trigger=none}{code:language=javascript}
var myFormforms = solutionModel.getFormgetForms('existingFormName');
//get the style of the form (for all other properties see JSForm node)
var styleName = myForm.styleName;
{code}{sub-sectionfor (var i in forms)
	application.output(forms[i].name)
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getForms|class=node-String}{tr:id=name}{td}h6.getForms{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSForm]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getForms{span}{span:id=iets|style=float: left;}\(datasource){span}{td}{tr}{builder-show:permission=edit}{tr:id=desprs}{td}{sub-section:getForms_des|trigger=button|text=}{sub-section}{sub-section:getForms_des|trigger=none|class=sIndent}Replace with description{sub-section*Parameters*\\{div:class=sIndent}\{[String]} datasource -- the datasource or servername
{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=sncret}{td}*SinceReturns*\\{sub-section:getForms_snc|trigger=button|text=}{sub-section}{sub-section:getForms_snc|trigger=none|class=sIndent} Replace with version info{sub-sectiondiv:class=sIndent}[JSForm]\[] -- an array of JSForm type elements{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prssam}{td}*ParametersSample*\\{sub-section:getForms_prs|trigger=button|text=}{sub-section}{sub-section:getForms_prs|trigger=none|class=sIndent}{sub-sectiondiv:class=sIndent}{code:language=javascript}
var forms = solutionModel.getForms(datasource)
for (var i in forms)
	application.output(forms[i].name)
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{builder-showtbody}{tbody:id=getForms-String_String}{tr:id=ret}name}{td}h6.getForms{td}*Returns*\\{sub-section:getForms_ret|trigger=button|text=}{sub-section}{sub-section:getForms_ret|trigger=none|class=sIndent}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSForm]\[] -- an array of JSForm type elements{sub-section{span}{span:style=font-weight: bold;}getForms{span}{span}\(server, tablename){span}{td}{tr}{builder-show:permission=edit}{tr:id=seeprs}{td}*Also seeParameters*\\{sub-section:getForms_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getForms_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit\{[String]} server -- the datasource or servername
\{[String]} tablename -- the tablename
{div}{td}{tr}{tr:id=linkret}{td}*External linksReturns*\\{sub-section:getForms_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getForms_link|trigger=none}{sub-section}[JSForm]\[] -- an array of JSForm type elements{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getForms_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getForms_sam|trigger=none}{code:language=javascript}
var forms = solutionModel.getForms(datasource,tablename)
for (var i in forms)
	application.output(forms[i].name)
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getFormsgetGlobalMethod-String|class=node_String}{tr:id=name}{td}h6.getFormsgetGlobalMethod{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSFormJSMethod]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getFormsgetGlobalMethod{span}{span:id=iets|style=float: left;}\(datasourcescopeName, name){span}{td}{tr}{builder-show:permission=edit}{tr:id=desprs}{td}{sub-section:getForms-String_des|trigger=button|text=}{sub-section}{sub-section:getForms-String_des|trigger=none|class=sIndent}Replace with description{sub-section*Parameters*\\{div:class=sIndent}\{[String]} scopeName -- the scope in which the method is searched
\{[String]} name -- the name of the specified global method
{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=sncret}{td}*SinceReturns*\\{sub-section:getForms-String_snc|trigger=button|text=}{sub-section}{sub-section:getForms-String_snc|trigger=none|div:class=sIndent}[JSMethod] Replace-- witha version info{sub-sectionJSMethod{div}{td}{tr}{builder-show}{tr:id=prssam}{td}*ParametersSample*\\{sub-section:getForms-String_prs|trigger=button|text=}{sub-section}{sub-section:getForms-String_prs|trigger=none|class=sIndent}\{[String]} datasource -- the datasource or servername
{sub-sectiondiv:class=sIndent}{code:language=javascript}
var method = solutionModel.getGlobalMethod('globals', 'nameOfGlobalMethod'); 
if (method != null) application.output(method.code);
{code}{div}{td}{tr}{tr:id=retclass=lastDetailRow}{td}{td}*Returns*\\{sub-section:getForms-String_ret|trigger=button|text=}{sub-section}{sub-section:getForms-String_ret|trigger=none|}{tr}{tbody}{tbody:id=getGlobalMethods}{tr:id=name}{td}h6.getGlobalMethods{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSMethod]\[]{span}{span:style=font-weight: bold;}getGlobalMethods{span}{span}\(){span}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSFormJSMethod]\[] -- an array of JSFormJSMethod type elements{sub-sectiondiv}{td}{tr}{builder-show:permission=edit}{tr:id=seesam}{td}*Also seeSample*\\{sub-section:getForms-String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getForms-String_see|trigger=none}{sub-section}{divcode:language=javascript}
var methods = solutionModel.getGlobalMethods('globals'); 
for (var x in methods) 
	application.output(methods[x].getName());
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{builder-showtbody}{builder-showtbody:permissionid=editgetGlobalMethods-String}{tr:id=linkname}{td}*External links*\\{sub-section:getForms-String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getForms-String_link|trigger=none}{sub-section}{divh6.getGlobalMethods{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSMethod]\[]{span}{span:style=font-weight: bold;}getGlobalMethods{span}{span}\(scopeName){span}{td}{tr}{builder-show}{tr:id=samprs}{td}*SampleParameters*\\{sub-section:getForms-String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getForms-String_sam|trigger=none}{code:language=javascript}
var forms = solutionModel.getForms(datasource)
for (var i in forms)
	application.output(forms[i].name)
{code}{sub-section}\{[String]} scopeName -- limit to global methods of specified scope name
{div}{td}{tr}{tr:classid=lastDetailRowret}{td}{td}{tr}{tbody}{tbody:id=getForms-String_String|class=node}{tr:id=name}{td}h6.getForms*Returns*\\{div:class=sIndent}[JSMethod]\[] -- an array of JSMethod type elements{div}{td}{tr}{tr:id=sigsam}{td}*Sample*\\{spandiv:style=float: left; margin-right: 5px;}[JSForm]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getForms{span}{span:id=iets|style=float: left;}\(server, tablename){spanclass=sIndent}{code:language=javascript}
var methods = solutionModel.getGlobalMethods('globals'); 
for (var x in methods) 
	application.output(methods[x].getName());
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{builder-showtbody:permission=editid=getGlobalVariable-String_String}{tr:id=des}name}{td}h6.getGlobalVariable{td}{sub-section:getForms-String_String_des|trigger=button|text=}{sub-section}{sub-section:getForms-String_String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edittr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSVariable]{span}{span:style=font-weight: bold;}getGlobalVariable{span}{span}\(scopeName, name){span}{td}{tr}{tr:id=sncprs}{td}*SinceParameters*\\{sub-section:getForms-String_String_snc|trigger=button|text=}{sub-section}{sub-section:getForms-String_String_snc|trigger=none|class=sIndent} Replace with version info{sub-sectiondiv:class=sIndent}\{[String]} scopeName -- the scope in which the variable is searched
\{[String]} name -- the specified name of the global variable
{div}{td}{tr}{builder-show}{tr:id=prsret}{td}*ParametersReturns*\\{sub-section:getForms-String_String_prs|trigger=button|text=}{sub-section}{sub-section:getForms-String_String_prs|trigger=none|div:class=sIndent}\{[StringJSVariable]} server -- the datasource or servername
\{[String]} tablename -- the tablename
{sub-section}{a JSVariable{div}{td}{tr}{tr:id=retsam}{td}*ReturnsSample*\\{sub-section:getForms-String_String_ret|trigger=button|text=}{sub-section}{sub-section:getForms-String_String_ret|trigger=none|class=sIndent}[JSForm]\[] -- an array of JSForm type elements{sub-sectiondiv:class=sIndent}{code:language=javascript}
var globalVariable = solutionModel.getGlobalVariable('globals', 'globalVariableName');
application.output(globalVariable.name + " has the default value of " + globalVariable.defaultValue);
{code}{div}{td}{tr}{builder-showtr:permission=editclass=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=seegetGlobalVariables}{td}*Also see*\\{sub-section:getForms-String_String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getForms-String_String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edittr:id=name}{td}h6.getGlobalVariables{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSVariable]\[]{span}{span:style=font-weight: bold;}getGlobalVariables{span}{span}\(){span}{td}{tr}{tr:id=linkret}{td}*External linksReturns*\\{sub-section:getForms-String_String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getForms-String_String_link|trigger=none}{sub-section}{div:class=sIndent}[JSVariable]\[] -- an array of JSVariable type elements{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getForms-String_String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getForms-String_String_sam|trigger=none}{code:language=javascript}
var formsglobalVariables = solutionModel.getForms(datasource,tablename)getGlobalVariables('globals');
for (var i in formsglobalVariables)
	application.output(formsglobalVariables[i].name)
{code}{sub-section + " has the default value of " + globalVariables[i].defaultValue);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getGlobalMethodgetGlobalVariables-String_String|class=node}{tr:id=name}{td}h6.getGlobalMethodgetGlobalVariables{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSMethodJSVariable]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getGlobalMethodgetGlobalVariables{span}{span:id=iets|style=float: left;}\(scopeName, name){span}{td}{tr}{builder-show:permission=edit}{tr:id=desprs}{td}{sub-section:getGlobalMethod-String_String_des|trigger=button|text=}{sub-section}{sub-section:getGlobalMethod-String_String_des|trigger=none|class=sIndent}Replace with description{sub-section*Parameters*\\{div:class=sIndent}\{[String]} scopeName -- limit to global vars of specified scope name
{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=sncret}{td}*SinceReturns*\\{sub-section:getGlobalMethod-String_String_snc|trigger=button|text=}{sub-section}{sub-section:getGlobalMethod-String_String_snc|trigger=none|class=sIndent} Replace with version info{sub-sectiondiv:class=sIndent}[JSVariable]\[] -- an array of JSVariable type elements{div}{td}{tr}{builder-show}{tr:id=prssam}{td}*ParametersSample*\\{sub-section:getGlobalMethod-String_String_prs|trigger=button|text=}{sub-section}{sub-section:getGlobalMethod-String_String_prs|trigger=none|class=sIndent}\{[String]} scopeName -- the scope in which the method is searched
\{[String]} name -- the name of the specified global method
{sub-sectiondiv:class=sIndent}{code:language=javascript}
var globalVariables = solutionModel.getGlobalVariables('globals');
for (var i in globalVariables)
	application.output(globalVariables[i].name + " has the default value of " + globalVariables[i].defaultValue);
{code}{div}{td}{tr}{tr:id=retclass=lastDetailRow}{td}{td}*Returns*\\{sub-section:getGlobalMethod-String_String_ret|trigger=button|text=}{sub-section}{sub-section:getGlobalMethod-String_String_ret|trigger=none|class=sIndent}[JSMethod] -- a JSMethod{sub-section}{tr}{tbody}{tbody:id=getListForm-}{tr:id=name}{td}h6.getListForm{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSList]{span}{span:style=font-weight: bold;}getListForm{span}{span}\(formName){span}{td}{tr}{builder-show:permission=edit}{tr:id=seeprs}{td}*Also seeParameters*\\{sub-section:getGlobalMethod-String_String_see|trigger=button|text=}{sub-section}div:class=sIndent}formName -- the form's name.
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}{sub-section:getGlobalMethod-String_String_see|trigger=none}{sub-section}[JSList] -- the existing list form, or null if it does not exist.{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=linksam}{td}*External linksSample*\\{sub-section:getGlobalMethod-String_String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalMethod-String_String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-showdiv:class=sIndent}{code:language=javascript}
var list = solutionModel.getListForm('created_by_sm_2');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getListForms}{tr:id=samname}{td}*Sample*\\{sub-section:getGlobalMethod-String_String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalMethod-String_String_sam|trigger=none}{code:language=javascript}
var method = solutionModel.getGlobalMethod('globals', 'nameOfGlobalMethod'); 
if (method != null) application.output(method.code);
{code}{sub-section}{divh6.getListForms{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSList]\[]{span}{span:style=font-weight: bold;}getListForms{span}{span}\(){span}{td}{tr}{tr:classid=lastDetailRowret}{td}{td}{tr}{tbody}{tbody:id=getGlobalMethods|class=node*Returns*\\{div:class=sIndent}[JSList]\[] -- an array of IBaseSHList type elements{div}{td}{tr}{tr:id=namesam}{td}h6.getGlobalMethods*Sample*\\{div:class=sIndent}{code:language=javascript}
var forms = solutionModel.getListForms()
for (var i in forms)
	application.output(forms[i].name)
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getScopeNames}{tr:id=name}{td}h6.getScopeNames{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSMethodString]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getGlobalMethodsgetScopeNames{span}{span:id=iets|style=float: left;}\()}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=desret}{td}{sub-section:getGlobalMethods_des|trigger=button|text=}{sub-section}{sub-section:getGlobalMethods_des|trigger=none|class=sIndent}Replace with description{sub-section*Returns*\\{div:class=sIndent}[String]\[] -- an array of String scope names{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=sncsam}{td}*SinceSample*\\{sub-section:getGlobalMethods_snc|trigger=button|text=}{sub-section}{sub-section:getGlobalMethods_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:getGlobalMethods_prs|trigger=button|text=}{sub-section}{sub-section:getGlobalMethods_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-showdiv:class=sIndent}{code:language=javascript}
var scopeNames = solutionModel.getScopeNames();
for (var name in scopeNames)
	application.output(name);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getValueList-String}{tr:id=name}{td}h6.getValueList{td}{tr}{tr:id=retsig}{td}*Returns*\\{sub-section:getGlobalMethods_ret|trigger=button|text=}{sub-section}{sub-section:getGlobalMethods_ret|trigger=none|class=sIndent}[JSMethod]\[] -- an array of JSMethod type elements{sub-section{span:style=margin-right: 5px;}[JSValueList]{span}{span:style=font-weight: bold;}getValueList{span}{span}\(name){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} name -- the specified name of the valuelist
{div}{td}{tr}{builder-show:permission=edit}{tr:id=seeret}{td}*Also seeReturns*\\{sub-section:getGlobalMethods_see|trigger=button|text=}{sub-section}{div:classdiv:class=sIndent}{sub-section:getGlobalMethods_see|trigger=none}{sub-section}[JSValueList] -- a JSValueList object{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=linksam}{td}*External linksSample*\\{sub-section:getGlobalMethods_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalMethods_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getGlobalMethods_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalMethods_sam|trigger=none}{code:language=javascript}
var methods = solutionModel.getGlobalMethods('globals'); 
for (var x in methods) 
	application.output(methods[x].getName());
{code}{sub-section}{code:language=javascript}
var myValueList = solutionModel.getValueList('myValueListHere')
//now set the valueList property of your field
//myField.valuelist = myValueList
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getGlobalMethods-String|class=nodegetValueLists}{tr:id=name}{td}h6.getGlobalMethodsgetValueLists{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSMethodJSValueList]\[]{span}{span:id=iets|style=float: left; style=font-weight: bold;}getGlobalMethodsgetValueLists{span}{span:id=iets|style=float: left;}\(scopeName){span}{td}{tr}{builder-show:permission=edit}{tr:id=desret}{td}{sub-section:getGlobalMethods-String_des|trigger=button|text=}{sub-section}{sub-section:getGlobalMethods-String_des|trigger=none|class=sIndent}Replace with description{sub-section*Returns*\\{div:class=sIndent}[JSValueList]\[] -- an array of JSValueList objects{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=sncsam}{td}*SinceSample*\\{sub-section:getGlobalMethods-String_snc|trigger=button|text=}{sub-section}{sub-section:getGlobalMethods-String_snc|trigger=none|class=sIndent} Replace with version info{sub-sectiondiv:class=sIndent}{code:language=javascript}
var valueLists = solutionModel.getValueLists();
if (valueLists != null && valueLists.length != 0)
	for (var i in valueLists)
		application.output(valueLists[i].name);
{code}{div}{td}{tr}{builder-show}{tr:id=prsclass=lastDetailRow}{td}{td}*Parameters*\\{sub-section:getGlobalMethods-String_prs|trigger=button|text=}{sub-section}{sub-section:getGlobalMethods-String_prs|trigger=none|class=sIndent}\{[String]} scopeName -- limit to global methods of specified scope name
{sub-section}{tr}{tbody}{tbody:id=newForm-String_String}{tr:id=name}{td}h6.newForm{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSForm]{span}{span:style=font-weight: bold;}newForm{span}{span}\(name, dataSource){span}{td}{tr}{tr:id=retprs}{td}*ReturnsParameters*\\{sub-section:getGlobalMethods-String_ret|trigger=button|text=}{sub-section}{sub-section:getGlobalMethods-String_ret|trigger=none|class=sIndent}[JSMethod]\[] -- an array of JSMethod type elements{sub-sectiondiv:class=sIndent}\{[String]} name -- the specified name of the form
\{[String]} dataSource -- the specified name of the datasource for the specified table
{div}{td}{tr}{builder-show:permission=edit}{tr:id=seeret}{td}*Also seeReturns*\\{sub-section:getGlobalMethods-String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalMethods-String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit[JSForm] -- a new JSForm object{div}{td}{tr}{tr:id=linksam}{td}*External linksSample*\\{sub-section:getGlobalMethods-String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalMethods-String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getGlobalMethods-String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalMethods-String_sam|trigger=none}{code:language=javascript}
var methods = solutionModel.getGlobalMethods('globals'); 
for (var x in methods) 
	application.output(methods[x].getName());
{code}{sub-sectioncode:language=javascript}
var myForm = solutionModel.newForm('newForm', 'db:/my_server/my_table')
//now you can add stuff to the form (under JSForm node)
//add a label
myForm.newLabel('Name', 1)
//add a "normal" text entry field
myForm.newTextField('dataProviderNameHere', 2)
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getGlobalVariablenewForm-String_String_String|class=node_Boolean_Number_Number}{tr:id=name}{td}h6.getGlobalVariablenewForm{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSVariableJSForm]{span}{span:id=iets|style=float: left; font-weight: bold;}getGlobalVariablenewForm{span}{span:id=iets|style=float: left;}\(scopeNamename, dataSource, styleName, show_in_menu, width, nameheight){span}{td}{tr}{builder-show:permission=edit}{tr:id=desprs}{td}{sub-section:getGlobalVariable-String_String_des|trigger=button|text=}{sub-section}{sub-section:getGlobalVariable-String_String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getGlobalVariable-String_String_snc|trigger=button|text=}{sub-section}{sub-section:getGlobalVariable-String_String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getGlobalVariable-String_String_prs|trigger=button|text=}{sub-section}{sub-section:getGlobalVariable-String_String_prs|trigger=none|class=sIndent}\{[String]} scopeName -- the scope in which the variable is searched
\{[String]} name -- the specified name of the global variable
{sub-section*Parameters*\\{div:class=sIndent}\{[String]} name -- the specified name of the form
\{[String]} dataSource -- the specified name of the datasource for the specified table
\{[String]} styleName -- the specified style
\{[Boolean]} show_in_menu -- if true show the name of the new form in the menu; or false for not showing
\{[Number]} width -- the width of the form in pixels
\{[Number]} height -- the height of the form in pixels
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getGlobalVariable-String_String_ret|trigger=button|text=}{sub-section}{sub-section:getGlobalVariable-String_String_ret|trigger=none|div:class=sIndent}[JSVariableJSForm] -- a JSVariable{sub-sectionnew JSForm object{div}{td}{tr}{builder-show:permission=edit}{tr:id=seesam}{td}*Also seeSample*\\{sub-section:getGlobalVariable-String_String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalVariable-String_String_see|trigger=none}{sub-section}{div}code:language=javascript}
var myForm = solutionModel.newForm('newForm', 'db:/my_server/my_table', 'myStyleName', false, 800, 600)
//now you can add stuff to the form (under JSForm node)
//add a label
myForm.newLabel('Name', 20, 20, 120, 30)
//add a "normal" text entry field
myForm.newTextField('dataProviderNameHere', 140, 20, 140,20)
{code}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=linktr:class=lastDetailRow}{td}{td}*External links*\\{sub-section:getGlobalVariable-String_String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalVariable-String_String_link|trigger=none}{sub-section}{div}{tr}{tbody}{tbody:id=newForm-String_String_String_String_Boolean_Number_Number}{tr:id=name}{td}h6.newForm{td}{tr}{builder-show}{tr:id=samsig}{td}*Sample*\\{sub-section:getGlobalVariable-String_String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalVariable-String_String_sam|trigger=none}{code:language=javascript}
var globalVariable = solutionModel.getGlobalVariable('globals', 'globalVariableName');
application.output(globalVariable.name + " has the default value of " + globalVariable.defaultValue);
{code}{sub-section}{div}{{span:style=margin-right: 5px;}[JSForm]{span}{span:style=font-weight: bold;}newForm{span}{span}\(name, serverName, tableName, styleName, show_in_menu, width, height){span}{td}{tr}{tr:classid=lastDetailRowprs}{td}{td}{tr}{tbody}{tbody:id=getGlobalVariables|class=node}{tr:id=name}{td}h6.getGlobalVariables{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSVariable]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getGlobalVariables{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getGlobalVariables_des|trigger=button|text=}{sub-section}{sub-section:getGlobalVariables_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getGlobalVariables_snc|trigger=button|text=}{sub-section}{sub-section:getGlobalVariables_snc|trigger=none|class=sIndent} Replace with version info{sub-section*Parameters*\\{div:class=sIndent}\{[String]} name -- the specified name of the form
\{[String]} serverName -- the specified name of the server for the specified table
\{[String]} tableName -- the specified name of the table
\{[String]} styleName -- the specified style
\{[Boolean]} show_in_menu -- if true show the name of the new form in the menu; or false for not showing
\{[Number]} width -- the width of the form in pixels
\{[Number]} height -- the height of the form in pixels
{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prsret}{td}*ParametersReturns*\\{sub-section:getGlobalVariables_prs|trigger=button|text=}{sub-section}{sub-section:getGlobalVariables_prs|trigger=none|class=sIndent}{sub-sectiondiv:class=sIndent}[JSForm] -- a new JSForm object{div}{td}{tr}{builder-show}{tr:id=retsam}{td}*ReturnsSample*\\{sub-section:getGlobalVariables_ret|trigger=button|text=}{sub-section}{sub-section:getGlobalVariables_ret|trigger=none|class=sIndent}[JSVariable]\[] -- an array of JSVariable type elements{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getGlobalVariables_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalVariables_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getGlobalVariables_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalVariables_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getGlobalVariables_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalVariables_sam|trigger=none}{code:language=javascript}
var globalVariables = solutionModel.getGlobalVariables('globals');
for (var i in globalVariables)
	application.output(globalVariables[i].name + " has the default value of " + globalVariables[i].defaultValue);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getGlobalVariables-String|class=node}{tr:id=name}{td}h6.getGlobalVariables{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSVariable]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getGlobalVariables{span}{span:id=iets|style=float: left;}\(scopeName){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getGlobalVariables-String_des|trigger=button|text=}{sub-section}{sub-section:getGlobalVariables-String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getGlobalVariables-String_snc|trigger=button|text=}{sub-section}{sub-section:getGlobalVariables-String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getGlobalVariables-String_prs|trigger=button|text=}{sub-section}{sub-section:getGlobalVariables-String_prs|trigger=none|class=sIndent}\{[String]} scopeName -- limit to global vars of specified scope name
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getGlobalVariables-String_ret|trigger=button|text=}{sub-section}{sub-section:getGlobalVariables-String_ret|trigger=none|class=sIndent}[JSVariable]\[] -- an array of JSVariable type elements{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getGlobalVariables-String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalVariables-String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getGlobalVariables-String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalVariables-String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getGlobalVariables-String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalVariables-String_sam|trigger=none}{code:language=javascript}
var globalVariables = solutionModel.getGlobalVariables('globals');
for (var i in globalVariables)
	application.output(globalVariables[i].name + " has the default value of " + globalVariables[i].defaultValue);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getListForm-|class=node}{tr:id=name}{td}h6.getListForm{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSList]{span}{span:id=iets|style=float: left; font-weight: bold;}getListForm{span}{span:id=iets|style=float: left;}\(formName){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getListForm-_des|trigger=button|text=}{sub-section}{sub-section:getListForm-_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getListForm-_snc|trigger=button|text=}{sub-section}{sub-section:getListForm-_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getListForm-_prs|trigger=button|text=}{sub-section}{sub-section:getListForm-_prs|trigger=none|class=sIndent}formName -- the form's name.
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getListForm-_ret|trigger=button|text=}{sub-section}{sub-section:getListForm-_ret|trigger=none|class=sIndent}[JSList] -- the existing list form, or null if it does not exist.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getListForm-_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getListForm-_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getListForm-_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getListForm-_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getListForm-_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getListForm-_sam|trigger=none}{code:language=javascript}
var list = solutionModel.getListForm('created_by_sm_2');
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getListForms|class=node}{tr:id=name}{td}h6.getListForms{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSList]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getListForms{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getListForms_des|trigger=button|text=}{sub-section}{sub-section:getListForms_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getListForms_snc|trigger=button|text=}{sub-section}{sub-section:getListForms_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:getListForms_prs|trigger=button|text=}{sub-section}{sub-section:getListForms_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getListForms_ret|trigger=button|text=}{sub-section}{sub-section:getListForms_ret|trigger=none|class=sIndent}[JSList]\[] -- an array of IBaseSHList type elements{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getListForms_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getListForms_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getListForms_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getListForms_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getListForms_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getListForms_sam|trigger=none}{code:language=javascript}
var forms = solutionModel.getListForms()
for (var i in forms)
	application.output(forms[i].name)
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getScopeNames|class=node}{tr:id=name}{td}h6.getScopeNames{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getScopeNames{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getScopeNames_des|trigger=button|text=}{sub-section}{sub-section:getScopeNames_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getScopeNames_snc|trigger=button|text=}{sub-section}{sub-section:getScopeNames_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:getScopeNames_prs|trigger=button|text=}{sub-section}{sub-section:getScopeNames_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getScopeNames_ret|trigger=button|text=}{sub-section}{sub-section:getScopeNames_ret|trigger=none|class=sIndent}[String]\[] -- an array of String scope names{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getScopeNames_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getScopeNames_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getScopeNames_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getScopeNames_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getScopeNames_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getScopeNames_sam|trigger=none}{code:language=javascript}
var scopeNames = solutionModel.getScopeNames();
for (var name in scopeNames)
	application.output(name);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getValueList-String|class=node}{tr:id=name}{td}h6.getValueList{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSValueList]{span}{span:id=iets|style=float: left; font-weight: bold;}getValueList{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getValueList-String_des|trigger=button|text=}{sub-section}{sub-section:getValueList-String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getValueList-String_snc|trigger=button|text=}{sub-section}{sub-section:getValueList-String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getValueList-String_prs|trigger=button|text=}{sub-section}{sub-section:getValueList-String_prs|trigger=none|class=sIndent}\{[String]} name -- the specified name of the valuelist
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getValueList-String_ret|trigger=button|text=}{sub-section}{sub-section:getValueList-String_ret|trigger=none|class=sIndent}[JSValueList] -- a JSValueList object{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getValueList-String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getValueList-String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getValueList-String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getValueList-String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getValueList-String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getValueList-String_sam|trigger=none}{code:language=javascript}
var myValueList = solutionModel.getValueList('myValueListHere')
//now set the valueList property of your field
//myField.valuelist = myValueList
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getValueLists|class=node}{tr:id=name}{td}h6.getValueLists{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSValueList]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getValueLists{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getValueLists_des|trigger=button|text=}{sub-section}{sub-section:getValueLists_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getValueLists_snc|trigger=button|text=}{sub-section}{sub-section:getValueLists_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:getValueLists_prs|trigger=button|text=}{sub-section}{sub-section:getValueLists_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getValueLists_ret|trigger=button|text=}{sub-section}{sub-section:getValueLists_ret|trigger=none|class=sIndent}[JSValueList]\[] -- an array of JSValueList objects{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getValueLists_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getValueLists_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getValueLists_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getValueLists_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getValueLists_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getValueLists_sam|trigger=none}{code:language=javascript}
var valueLists = solutionModel.getValueLists();
if (valueLists != null && valueLists.length != 0)
	for (var i in valueLists)
		application.output(valueLists[i].name);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newForm-String_String|class=node}{tr:id=name}{td}h6.newForm{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSForm]{span}{span:id=iets|style=float: left; font-weight: bold;}newForm{span}{span:id=iets|style=float: left;}\(name, dataSource){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:newForm-String_String_des|trigger=button|text=}{sub-section}{sub-section:newForm-String_String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:newForm-String_String_snc|trigger=button|text=}{sub-section}{sub-section:newForm-String_String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:newForm-String_String_prs|trigger=button|text=}{sub-section}{sub-section:newForm-String_String_prs|trigger=none|class=sIndent}\{[String]} name -- the specified name of the form
\{[String]} dataSource -- the specified name of the datasource for the specified table
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:newForm-String_String_ret|trigger=button|text=}{sub-section}{sub-section:newForm-String_String_ret|trigger=none|class=sIndent}[JSForm] -- a new JSForm object{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:newForm-String_String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newForm-String_String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:newForm-String_String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newForm-String_String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:newForm-String_String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newForm-String_String_sam|trigger=none}{code:language=javascript}
var myForm = solutionModel.newForm('newForm', 'db:/my_server/my_table')
//now you can add stuff to the form (under JSForm node)
//add a label
myForm.newLabel('Name', 1)
//add a "normal" text entry field
myForm.newTextField('dataProviderNameHere', 2)
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newForm-String_String_String_Boolean_Number_Number|class=node}{tr:id=name}{td}h6.newForm{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSForm]{span}{span:id=iets|style=float: left; font-weight: bold;}newForm{span}{span:id=iets|style=float: left;}\(name, dataSource, styleName, show_in_menu, width, height){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:newForm-String_String_String_Boolean_Number_Number_des|trigger=button|text=}{sub-section}{sub-section:newForm-String_String_String_Boolean_Number_Number_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:newForm-String_String_String_Boolean_Number_Number_snc|trigger=button|text=}{sub-section}{sub-section:newForm-String_String_String_Boolean_Number_Number_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:newForm-String_String_String_Boolean_Number_Number_prs|trigger=button|text=}{sub-section}{sub-section:newForm-String_String_String_Boolean_Number_Number_prs|trigger=none|class=sIndent}\{[String]} name -- the specified name of the form
\{[String]} dataSource -- the specified name of the datasource for the specified table
\{[String]} styleName -- the specified style
\{[Boolean]} show_in_menu -- if true show the name of the new form in the menu; or false for not showing
\{[Number]} width -- the width of the form in pixels
\{[Number]} height -- the height of the form in pixels
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:newForm-String_String_String_Boolean_Number_Number_ret|trigger=button|text=}{sub-section}{sub-section:newForm-String_String_String_Boolean_Number_Number_ret|trigger=none|class=sIndent}[JSForm] -- a new JSForm object{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:newForm-String_String_String_Boolean_Number_Number_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newForm-String_String_String_Boolean_Number_Number_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:newForm-String_String_String_Boolean_Number_Number_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newForm-String_String_String_Boolean_Number_Number_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:newForm-String_String_String_Boolean_Number_Number_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newForm-String_String_String_Boolean_Number_Number_sam|trigger=none}{code:language=javascript}
var myForm = solutionModel.newForm('newForm', 'db:/my_server/my_table', 'myStyleName', false, 800, 600)
//now you can add stuff to the form (under JSForm node)
//add a label
myForm.newLabel('Name', 20, 20, 120, 30)
//add a "normal" text entry field
myForm.newTextField('dataProviderNameHere', 140, 20, 140,20)
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newForm-String_String_String_String_Boolean_Number_Number|class=node}{tr:id=name}{td}h6.newForm{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSForm]{span}{span:id=iets|style=float: left; font-weight: bold;}newForm{span}{span:id=iets|style=float: left;}\(name, serverName, tableName, styleName, show_in_menu, width, height){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:newForm-String_String_String_String_Boolean_Number_Number_des|trigger=button|text=}{sub-section}{sub-section:newForm-String_String_String_String_Boolean_Number_Number_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:newForm-String_String_String_String_Boolean_Number_Number_snc|trigger=button|text=}{sub-section}{sub-section:newForm-String_String_String_String_Boolean_Number_Number_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:newForm-String_String_String_String_Boolean_Number_Number_prs|trigger=button|text=}{sub-section}{sub-section:newForm-String_String_String_String_Boolean_Number_Number_prs|trigger=none|class=sIndent}\{[String]} name -- the specified name of the form
\{[String]} serverName -- the specified name of the server for the specified table
\{[String]} tableName -- the specified name of the table
\{[String]} styleName -- the specified style
\{[Boolean]} show_in_menu -- if true show the name of the new form in the menu; or false for not showing
\{[Number]} width -- the width of the form in pixels
\{[Number]} height -- the height of the form in pixels
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:newForm-String_String_String_String_Boolean_Number_Number_ret|trigger=button|text=}{sub-section}{sub-section:newForm-String_String_String_String_Boolean_Number_Number_ret|trigger=none|class=sIndent}[JSForm] -- a new JSForm object{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:newForm-String_String_String_String_Boolean_Number_Number_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newForm-String_String_String_String_Boolean_Number_Number_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:newForm-String_String_String_String_Boolean_Number_Number_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newForm-String_String_String_String_Boolean_Number_Number_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:newForm-String_String_String_String_Boolean_Number_Number_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newForm-String_String_String_String_Boolean_Number_Number_sam|trigger=none}{code:language=javascript}
var myForm = solutionModel.newForm('newForm', 'my_server', 'my_table', 'myStyleName', false, 800, 600)
//With only a datasource:
//var myForm = solutionModel.newForm('newForm', datasource, 'myStyleName', false, 800, 600)
//now you can add stuff to the form (under JSForm node)
//add a label
myForm.newLabel('Name', 20, 20, 120, 30)
//add a "normal" text entry field
myForm.newTextField('dataProviderNameHere', 140, 20, 140,20)
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newGlobalMethod-String_String|class=node}{tr:id=name}{td}h6.newGlobalMethod{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSMethod]{span}{span:id=iets|style=float: left; font-weight: bold;}newGlobalMethod{span}{span:id=iets|style=float: left;}\(scopeName, code){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:newGlobalMethod-String_String_des|trigger=button|text=}{sub-section}{sub-section:newGlobalMethod-String_String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:newGlobalMethod-String_String_snc|trigger=button|text=}{sub-section}{sub-section:newGlobalMethod-String_String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:newGlobalMethod-String_String_prs|trigger=button|text=}{sub-section}{sub-section:newGlobalMethod-String_String_prs|trigger=none|class=sIndent}\{[String]} scopeName -- the scope in which the method is created
\{[String]} code -- the specified code for the global method
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:newGlobalMethod-String_String_ret|trigger=button|text=}{sub-section}{sub-section:newGlobalMethod-String_String_ret|trigger=none|class=sIndent}[JSMethod] -- a JSMethod object{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:newGlobalMethod-String_String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newGlobalMethod-String_String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:newGlobalMethod-String_String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newGlobalMethod-String_String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:newGlobalMethod-String_String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newGlobalMethod-String_String_sam|trigger=none}{code:language=javascript}
var method = solutionModel.newGlobalMethod('globals', 'function myglobalmethod(){foundset.newRecord()}')
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newGlobalVariable-String_String_Number|class=node}{tr:id=name}{td}h6.newGlobalVariable{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSVariable]{span}{span:id=iets|style=float: left; font-weight: bold;}newGlobalVariable{span}{span:id=iets|style=float: left;}\(scopeName, name, type){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:newGlobalVariable-String_String_Number_des|trigger=button|text=}{sub-section}{sub-section:newGlobalVariable-String_String_Number_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:newGlobalVariable-String_String_Number_snc|trigger=button|text=}{sub-section}{sub-section:newGlobalVariable-String_String_Number_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:newGlobalVariable-String_String_Number_prs|trigger=button|text=}{sub-section}{sub-section:newGlobalVariable-String_String_Number_prs|trigger=none|class=sIndent}\{[String]} scopeName -- the scope in which the variable is created
\{[String]} name -- the specified name for the global variable
\{[Number]} type -- the specified number type for the global variable
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:newGlobalVariable-String_String_Number_ret|trigger=button|text=}{sub-section}{sub-section:newGlobalVariable-String_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:newGlobalVariable-String_String_Number_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newGlobalVariable-String_String_Number_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:newGlobalVariable-String_String_Number_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newGlobalVariable-String_String_Number_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:newGlobalVariable-String_String_Number_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newGlobalVariable-String_String_Number_sam|trigger=none}{code:language=javascript}
var myGlobalVariable = solutionModel.newGlobalVariable('globals', 'newGlobalVariable', JSVariable.INTEGER); 
myGlobalVariable.defaultValue = 12;
//myGlobalVariable.defaultValue = "{a:'First letter',b:'Second letter'}" // an js object, type must be media.
//myGlobalVariable.defaultValue = '"some text"'; // Use two pairs of quotes if you want to assign a String as default value.
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newListForm-String_String_String|class=node}{tr:id=name}{td}h6.newListForm{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSList]{span}{span:id=iets|style=float: left; font-weight: bold;}newListForm{span}{span:id=iets|style=float: left;}\(formName, dataSource, textDataProviderID){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:newListForm-String_String_String_des|trigger=button|text=}{sub-section}{sub-section:newListForm-String_String_String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:newListForm-String_String_String_snc|trigger=button|text=}{sub-section}{sub-section:newListForm-String_String_String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:newListForm-String_String_String_prs|trigger=button|text=}{sub-section}{sub-section:newListForm-String_String_String_prs|trigger=none|class=sIndent}\{[String]} formName -- the new form's name.
\{[String]} dataSource -- the list will be populated based on this datasource.
\{[String]} textDataProviderID -- can be null; it's a convenience argument for setting the dataprovider that will be used to populate the main text area of the list's items.
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:newListForm-String_String_String_ret|trigger=button|text=}{sub-section}{sub-section:newListForm-String_String_String_ret|trigger=none|class=sIndent}[JSList] -- the newly created list form.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:newListForm-String_String_String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newListForm-String_String_String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:newListForm-String_String_String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newListForm-String_String_String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:newListForm-String_String_String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newListForm-String_String_String_sam|trigger=none}{code:language=javascript}
var f = solutionModel.newForm("created_by_sm_1","udm","contacts",null,false,100,380);
// create a button to go to it on the main form
b = f.newButton("Show created list form",0,9,10,10,
	f.newMethod("function showListForm() { forms.created_by_sm_2.controller.show(); }"));
// create the actual list form
var list = f.createListForm('created_by_sm_2', databaseManager.getDataSource("udm","contacts"),"name_first");
list.onAction = solutionModel.getForm('created_by_sm_2').newMethod("function goBack() { history.back(); }");
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=removeForm-String|class=node}{tr:id=name}{td}h6.removeForm{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}removeForm{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:removeForm-String_des|trigger=button|text=}{sub-section}{sub-section:removeForm-String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:removeForm-String_snc|trigger=button|text=}{sub-section}{sub-section:removeForm-String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:removeForm-String_prs|trigger=button|text=}{sub-section}{sub-section:removeForm-String_prs|trigger=none|class=sIndent}\{[String]} name -- the specified name of the form to remove
{sub-sectiondiv:class=sIndent}{code:language=javascript}
var myForm = solutionModel.newForm('newForm', 'my_server', 'my_table', 'myStyleName', false, 800, 600)
//With only a datasource:
//var myForm = solutionModel.newForm('newForm', datasource, 'myStyleName', false, 800, 600)
//now you can add stuff to the form (under JSForm node)
//add a label
myForm.newLabel('Name', 20, 20, 120, 30)
//add a "normal" text entry field
myForm.newTextField('dataProviderNameHere', 140, 20, 140,20)
{code}{div}{td}{tr}{tr:id=retclass=lastDetailRow}{td}{td}*Returns*\\{sub-section:removeForm-String_ret|trigger=button|text=}{sub-section}{sub-section:removeForm-String_ret|trigger=none|class=sIndent}[Boolean] -- true is form has been removed, false if form could not be removed{sub-section}{tr}{tbody}{tbody:id=newGlobalMethod-String_String}{tr:id=name}{td}h6.newGlobalMethod{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSMethod]{span}{span:style=font-weight: bold;}newGlobalMethod{span}{span}\(scopeName, code){span}{td}{tr}{builder-show:permission=edit}{tr:id=seeprs}{td}*Also seeParameters*\\{sub-section:removeForm-String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeForm-String_see|trigger=none}{sub-section}\{[String]} scopeName -- the scope in which the method is created
\{[String]} code -- the specified code for the global method
{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=linkret}{td}*External linksReturns*\\{sub-section:removeForm-String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeForm-String_link|trigger=none}{sub-section}[JSMethod] -- a JSMethod object{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:removeForm-String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeForm-String_sam|trigger=nonediv:class=sIndent}{code:language=javascript}
//first remove
it from the current history, to destroy any active form instance
var successmethod = historysolutionModel.removeFormnewGlobalMethod('myForm')
//removes the named form from this session, please make sure you called history.remove() first
if(success)
{
	solutionModel.removeForm('myForm')
}globals', 'function myglobalmethod(){foundset.newRecord()}')
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=removeGlobalMethodnewGlobalVariable-String_String|class=node_Number}{tr:id=name}{td}h6.removeGlobalMethodnewGlobalVariable{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[BooleanJSVariable]{span}{span:id=iets|style=float: left; font-weight: bold;}removeGlobalMethodnewGlobalVariable{span}{span:id=iets|style=float: left;}\(scopeName, name, type){span}{td}{tr}{builder-show:permission=edit}{tr:id=desprs}{td}{sub-section:removeGlobalMethod-String_String_des|trigger=button|text=}{sub-section}{sub-section:removeGlobalMethod-String_String_des|trigger=none|class=sIndent}Replace with description{sub-section*Parameters*\\{div:class=sIndent}\{[String]} scopeName -- the scope in which the variable is created
\{[String]} name -- the specified name for the global variable
\{[Number]} type -- the specified number type for the global variable
{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=sncret}{td}*SinceReturns*\\{sub-section:removeGlobalMethod-String_String_snc|trigger=button|text=}{sub-section}{sub-section:removeGlobalMethod-String_String_snc|trigger=none|div:class=sIndent}[JSVariable] Replace-- witha versionJSVariable infoobject{sub-sectiondiv}{td}{tr}{builder-show}{tr:id=prssam}{td}*Parameters*\\{sub-section:removeGlobalMethod-String_String_prs|trigger=button|text=}{sub-section}{sub-section:removeGlobalMethod-String_String_prs|trigger=none|}*Sample*\\{div:class=sIndent}\{[String]} scopeName -- the scope in which the method is declared
\{[String]} name -- the name of the global method to be removed
{sub-section{code:language=javascript}
var myGlobalVariable = solutionModel.newGlobalVariable('globals', 'newGlobalVariable', JSVariable.INTEGER); 
myGlobalVariable.defaultValue = 12;
//myGlobalVariable.defaultValue = "{a:'First letter',b:'Second letter'}" // an js object, type must be media.
//myGlobalVariable.defaultValue = '"some text"'; // Use two pairs of quotes if you want to assign a String as default value.
{code}{div}{td}{tr}{tr:id=retclass=lastDetailRow}{td}{td}*Returns*\\{sub-section:removeGlobalMethod}{tr}{tbody}{tbody:id=newListForm-String_String_ret|trigger=button|text=}{sub-section}{sub-section:removeGlobalMethod-String_String_ret|trigger=none|class=sIndent}[Boolean] -- true if the removal was successful, false otherwise{sub-sectionString}{tr:id=name}{td}h6.newListForm{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSList]{span}{span:style=font-weight: bold;}newListForm{span}{span}\(formName, dataSource, textDataProviderID){span}{td}{tr}{builder-show:permission=edit}{tr:id=seeprs}{td}*Also seeParameters*\\{sub-section:removeGlobalMethod-String_String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeGlobalMethod-String_String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:removeGlobalMethod-String_String_link|trigger=button|text=}{sub-section}div:class=sIndent}\{[String]} formName -- the new form's name.
\{[String]} dataSource -- the list will be populated based on this datasource.
\{[String]} textDataProviderID -- can be null; it's a convenience argument for setting the dataprovider that will be used to populate the main text area of the list's items.
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}{sub-section:removeGlobalMethod-String_String_link|trigger=none}{sub-section}{[JSList] -- the newly created list form.{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:removeGlobalMethod-String_String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeGlobalMethod-String_String_sam|trigger=none}{code:language=javascript}
var m1 = solutionModel.newGlobalMethod('globals', 'function myglobalmethod1(){application.output("Global Method 1");}');
var m2 = solutionModel.newGlobalMethod('globals', 'function myglobalmethod2(){application.output("Global Method 2");}');

var success = solutionModel.removeGlobalMethod('globals', 'myglobalmethod1');
if (success == false) application.output('!!! myglobalmethod1 could not be removed !!!');

var list = solutionModel.getGlobalMethods('globals');
for (var i = 0; i < list.length; i++) { 
	application.output(list[i].code);
}
{code}{sub-sectioncode:language=javascript}
var f = solutionModel.newForm("created_by_sm_1","udm","contacts",null,false,100,380);
// create a button to go to it on the main form
b = f.newButton("Show created list form",0,9,10,10,
	f.newMethod("function showListForm() { forms.created_by_sm_2.controller.show(); }"));
// create the actual list form
var list = f.createListForm('created_by_sm_2', databaseManager.getDataSource("udm","contacts"),"name_first");
list.onAction = solutionModel.getForm('created_by_sm_2').newMethod("function goBack() { history.back(); }");
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=removeGlobalVariableremoveForm-String_String|class=node}{tr:id=name}{td}h6.removeGlobalVariableremoveForm{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}removeGlobalVariableremoveForm{span}{span:id=iets|style=float: left;}\(scopeName, name){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:removeGlobalVariable-String_String_des|trigger=button|text=}{sub-section}{sub-section:removeGlobalVariable-String_String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{td}{tr}{tr:id=sncprs}{td}*SinceParameters*\\{sub-section:removeGlobalVariable-String_String_snc|trigger=button|text=}{sub-section}{sub-section:removeGlobalVariable-String_String_snc|trigger=none|class=sIndent} Replace with version info{sub-sectiondiv:class=sIndent}\{[String]} name -- the specified name of the form to remove
{div}{td}{tr}{builder-show}{tr:id=prsret}{td}*Parameters*\\{sub-section:removeGlobalVariable-String_String_prs|trigger=button|text=}{sub-section}{sub-section:removeGlobalVariable-String_String_prs|trigger=none|Returns*\\{div:class=sIndent}\{[StringBoolean]} scopeName -- the scope in which the variable true is declared
\{[String]} name -- the name of the global variable toform has been removed, false if form could not be removed
{sub-sectiondiv}{td}{tr}{tr:id=retsam}{td}*ReturnsSample*\\{sub-section:removeGlobalVariable-String_String_ret|trigger=button|text=}{sub-section}{sub-section:removeGlobalVariable-String_String_ret|trigger=none|class=sIndent}[Boolean] -- true if the removal was successful, false otherwise{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:removeGlobalVariable-String_String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeGlobalVariable-String_String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:removeGlobalVariable-String_String_link|trigger=button|text=}{sub-section}div:class=sIndent}{code:language=javascript}
//first remove it from the current history, to destroy any active form instance
var success = history.removeForm('myForm')
//removes the named form from this session, please make sure you called history.remove() first
if(success)
{
	solutionModel.removeForm('myForm')
}
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=removeGlobalMethod-String_String}{tr:id=name}{td}h6.removeGlobalMethod{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}removeGlobalMethod{span}{span}\(scopeName, name){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}{sub-section:removeGlobalVariable-String_String_link|trigger=none}{sub-section}\{[String]} scopeName -- the scope in which the method is declared
\{[String]} name -- the name of the global method to be removed
{div}{td}{tr}{builder-show}{tr:id=samret}{td}*SampleReturns*\\{sub-section:removeGlobalVariable-String_String_sam|trigger=button|text=}{sub-section}div:class=sIndent}[Boolean] -- true if the removal was successful, false otherwise{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{sub-section:removeGlobalVariable-String_String_sam|trigger=none}{code:language=javascript}
var v1m1 = solutionModel.newGlobalVariablenewGlobalMethod('globals', 'globalVar1', JSVariable.INTEGERfunction myglobalmethod1(){application.output("Global Method 1");}');
var v2m2 = solutionModel.newGlobalVariablenewGlobalMethod('globals', 'globalVar2', JSVariable.TEXTfunction myglobalmethod2(){application.output("Global Method 2");}');

var success = solutionModel.removeGlobalVariableremoveGlobalMethod('globals', 'globalVar1myglobalmethod1');
if (success == false) application.output('!!! globalVar1myglobalmethod1 could not be removed !!!');

var list = solutionModel.getGlobalVariablesgetGlobalMethods('globals');
for (var i = 0; i < list.length; i++) { 
	application.output(list[i].name + '[ ' + list[i].variableType + ']: ' + (list[i].variableTypecode);
}
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=revertFormremoveGlobalVariable-String_String|class=node}{tr:id=name}{td}h6.revertFormremoveGlobalVariable{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSFormBoolean]{span}{span:style=font-weight:id=iets|style=float: left; font-weight: bold;}revertForm{span}{span:id=iets|style=float: left;}\(name){span bold;}removeGlobalVariable{span}{span}\(scopeName, name){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} scopeName -- the scope in which the variable is declared
\{[String]} name -- the name of the global variable to be removed
{div}{td}{tr}{builder-show:permission=edit}{tr:id=desret}{td}{sub-section:revertForm-String_des|trigger=button|text=}{sub-section}{sub-section:revertForm-String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit*Returns*\\{div:class=sIndent}[Boolean] -- true if the removal was successful, false otherwise{div}{td}{tr}{tr:id=sncsam}{td}*Since*\\{sub-section:revertForm-String_snc|trigger=button|text=}{sub-section}{sub-section:revertForm-String_snc|trigger=none|class=sIndent} Replace with version info{sub-sectionSample*\\{div:class=sIndent}{code:language=javascript}
var v1 = solutionModel.newGlobalVariable('globals', 'globalVar1', JSVariable.INTEGER);
var v2 = solutionModel.newGlobalVariable('globals', 'globalVar2', JSVariable.TEXT);

var success = solutionModel.removeGlobalVariable('globals', 'globalVar1');
if (success == false) application.output('!!! globalVar1 could not be removed !!!');

var list = solutionModel.getGlobalVariables('globals');
for (var i = 0; i < list.length; i++) {
	application.output(list[i].name + '[ ' + list[i].variableType + ']: ' + list[i].variableType);
}
{code}{div}{td}{tr}{builder-show}{tr:id=prsclass=lastDetailRow}{td}{td}*Parameters*\\{sub-section:revertForm-String_prs|trigger=button|text=}{sub-section}{sub-section:revertForm-String_prs|trigger=none|class=sIndent}\{[String]} name -- the specified name of the form to revert
{sub-section}{tr}{tbody}{tbody:id=revertForm-String}{tr:id=name}{td}h6.revertForm{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:revertForm-String_ret|trigger=button|text=}{sub-section}{sub-section:revertForm-String_ret|trigger=none|class=sIndent}[JSForm] -- a JSForm object{sub-sectionid=sig}{td}{span:style=margin-right: 5px;}[JSForm]{span}{span:style=font-weight: bold;}revertForm{span}{span}\(name){span}{td}{tr}{builder-show:permission=edit}{tr:id=seeprs}{td}*Also seeParameters*\\{sub-section:revertForm-String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:revertForm-String_see|trigger=none}{sub-section}{\{[String]} name -- the specified name of the form to revert
{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=linkret}{td}*External linksReturns*\\{sub-section:revertForm-String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:revertForm-String_link|trigger=none}{sub-section}{[JSForm] -- a JSForm object{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:revertForm-String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:revertForm-String_sam|trigger=none}{code:language=javascript}
// revert the form to the original solution form, removing any changes done to it through the solution model.
var revertedForm = solutionModel.revertForm('myForm')
// add a label on a random place.
revertedForm.newLabel("MyLabel",Math.random()*100,Math.random()*100,80,20);
// make sure that the ui is up to date.
forms.myForm.controller.recreateUI();
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}