{div: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 AUTO UPDATE THE CONTENT THROUGH THE DOC GENERATOR{div} {div:id=description}{div}\\ {table:id=|class=servoy sReturnTypes}{tr:style=height: 30px;}{th}Return Types{th}{tr}{tr}{td}{span:class=sWordList}[ALIGNMENT]{span}{span:class=sWordList}[ANCHOR]{span}{span:class=sWordList}[BEVELTYPE]{span}{span:class=sWordList}[CURSOR]{span}{span:class=sWordList}[DEFAULTS]{span}{span:class=sWordList}[FONTSTYLE]{span}{span:class=sWordList}[JSBean]{span}{span:class=sWordList}[JSButton]{span}{span:class=sWordList}[JSCalculation]{span}{span:class=sWordList}[JSComponent]{span}{span:class=sWordList}[JSDataSourceNode]{span}{span:class=sWordList}[JSField]{span}{span:class=sWordList}[JSForm]{span}{span:class=sWordList}[JSLabel]{span}{span:class=sWordList}[JSMedia]{span}{span:class=sWordList}[JSMethod]{span}{span:class=sWordList}[JSPart]{span}{span:class=sWordList}[JSPortal]{span}{span:class=sWordList}[JSRelation]{span}{span:class=sWordList}[JSRelationItem]{span}{span:class=sWordList}[JSStyle]{span}{span:class=sWordList}[JSTab]{span}{span:class=sWordList}[JSTabPanel]{span}{span:class=sWordList}[JSValueList]{span}{span:class=sWordList}[JSVariable]{span}{span:class=sWordList}[MEDIAOPTION]{span}{span:class=sWordList}[PAGEORIENTATION]{span}{span:class=sWordList}[PRINTSLIDING]{span}{span:class=sWordList}[SCROLLBAR]{span}{span:class=sWordList}[TITLEJUSTIFICATION]{span}{span:class=sWordList}[TITLEPOSITION]{span}{span:class=sWordList}[UNITS]{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}[JSComponent]{td}{td}[#cloneComponent]\(newName, component) Makes an exact copy of the given component (JSComponent/JSField/JSLabel) and gives it a new name.{td}{tr}{tbody}{tbody}{tr}{td}[JSComponent]{td}{td}[#cloneComponent]\(newName, component, newParentForm) Makes an exact copy of the given component (JSComponent/JSField/JSLabel), gives it a new name and moves it to a new parent form, specified as a parameter.{td}{tr}{tbody}{tbody}{tr}{td}[JSForm]{td}{td}[#cloneForm]\(newName, jsForm) Makes an exact copy of the given form and gives it the new name.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#createBevelBorder]\(bevel_type, highlight_outer_color, highlight_inner_color, shadow_outer_color, shadow_inner_color) Create a bevel border string.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#createEmptyBorder]\(top_width, right_width, bottom_width, left_width) Create an empty border string.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#createEtchedBorder]\(bevel_type, highlight_color, shadow_color) Create an etched border string.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#createFont]\(name, style, size) Create a font string.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#createLineBorder]\(thick, color) Create a line border string.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#createMatteBorder]\(top_width, right_width, bottom_width, left_width, color) Create a matte border string.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#createPageFormat]\(width, height, leftmargin, rightmargin, topmargin, bottommargin) Create a page format string.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#createPageFormat]\(width, height, leftmargin, rightmargin, topmargin, bottommargin, orientation) Create a page format string.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#createPageFormat]\(width, height, leftmargin, rightmargin, topmargin, bottommargin, orientation, units) Create a page format string.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#createRoundedBorder]\(top_width, right_width, bottom_width, left_width, top_color, right_color, bottom_color, left_color, rounding_radius, border_style) Create a special matte border string.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#createSpecialMatteBorder]\(top_width, right_width, bottom_width, left_width, top_color, right_color, bottom_color, left_color, rounding_radius, dash_pattern) Create a special matte border string.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#createTitledBorder]\(title_text, font, color, title_justification, title_position) Create a titled border string.{td}{tr}{tbody}{tbody}{tr}{td}[JSDataSourceNode]{td}{td}[#getDataSourceNode]\(dataSource) Gets the specified data source node and returns information about the form (see JSDataSourceNode node).{td}{tr}{tbody}{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}[JSMedia]{td}{td}[#getMedia]\(name) Gets the specified media object; can be assigned to a button/label.{td}{tr}{tbody}{tbody}{tr}{td}[JSMedia]\[]{td}{td}[#getMediaList]\() Gets the list of all media objects.{td}{tr}{tbody}{tbody}{tr}{td}[JSRelation]{td}{td}[#getRelation]\(name) Gets an existing relation by the specified name and returns a JSRelation Object.{td}{tr}{tbody}{tbody}{tr}{td}[JSRelation]\[]{td}{td}[#getRelations]\(datasource) Gets an array of all relations; or an array of all global relations if the specified table is NULL.{td}{tr}{tbody}{tbody}{tr}{td}[JSRelation]\[]{td}{td}[#getRelations]\(servername, tablename) Gets an array of all relations; or an array of all global relations if the specified table is NULL.{td}{tr}{tbody}{tbody}{tr}{td}[String]\[]{td}{td}[#getScopeNames]\() Gets an array of all scope names used.{td}{tr}{tbody}{tbody}{tr}{td}[JSStyle]{td}{td}[#getStyle]\(name) Gets the style specified by the given name.{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, superForm) Creates a new form with the given JSForm as its super form.{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}[JSMedia]{td}{td}[#newMedia]\(name, bytes) Creates a new media object that can be assigned to a label or a button.{td}{tr}{tbody}{tbody}{tr}{td}[JSRelation]{td}{td}[#newRelation]\(name, primaryDataSource, foreignDataSource, joinType) Creates a new JSRelation Object with a specified name; includes the primary datasource, foreign datasource and the type of join for the new relation.{td}{tr}{tbody}{tbody}{tr}{td}[JSStyle]{td}{td}[#newStyle]\(name, content) Creates a new style with the given css content string under the given name.{td}{tr}{tbody}{tbody}{tr}{td}[JSValueList]{td}{td}[#newValueList]\(name, type) Creates a new valuelist with the specified name and number type.{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}[Boolean]{td}{td}[#removeMedia]\(name) Removes the media item specified by name.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#removeRelation]\(name) Removes the relation specified by name.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#removeStyle]\(name) Removes the specified style.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#removeValueList]\(name) Removes the specified valuelist.{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}{tbody}{tr}{td}[JSMethod]{td}{td}[#wrapMethodWithArguments]\(method, args) Get a JSMethod instance with arguments to be assigned to an event.{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=cloneComponent-String_JSComponent}{tr:id=name}{td}h6.cloneComponent{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSComponent]{span}{span:style=font-weight: bold;}cloneComponent{span}{span}\(newName, component){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} newName -- the new name of the cloned component \{[JSComponent]} component -- the component to clone {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSComponent] -- the exact copy of the given component{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} // get an existing field to clone. var field = solutionModel.getForm("formWithField").getField("fieldName"); // make a clone/copy of the field var clone = solutionModel.cloneComponent("clonedField",field); {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=cloneComponent-String_JSComponent_JSForm}{tr:id=name}{td}h6.cloneComponent{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSComponent]{span}{span:style=font-weight: bold;}cloneComponent{span}{span}\(newName, component, newParentForm){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} newName -- the new name of the cloned component \{[JSComponent]} component -- the component to clone \{[JSForm]} newParentForm -- the new parent form {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSComponent] -- the exact copy of the given component{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} // get an existing field to clone. var field = solutionModel.getForm("formWithField").getField("fieldName"); // get the target form for the copied/cloned field var form = solutionModel.getForm("targetForm"); // make a clone/copy of the field and re parent it to the target form. var clone = solutionModel.cloneComponent("clonedField",field,form); // show it forms["targetForm"].controller.show(); {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=cloneForm-String_JSForm}{tr:id=name}{td}h6.cloneForm{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSForm]{span}{span:style=font-weight: bold;}cloneForm{span}{span}\(newName, jsForm){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} newName -- the new name for the form clone \{[JSForm]} jsForm -- the form to be cloned {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSForm] -- a JSForm{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} // get an existing form var form = solutionModel.getForm("existingForm") // make a clone/copy from it var clone = solutionModel.cloneForm("clonedForm", form) // add a new label to the clone clone.newLabel("added label",50,50,80,20); // show it forms["clonedForm"].controller.show(); {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=createBevelBorder-Number_String_String_String_String}{tr:id=name}{td}h6.createBevelBorder{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[String]{span}{span:style=font-weight: bold;}createBevelBorder{span}{span}\(bevel_type, highlight_outer_color, highlight_inner_color, shadow_outer_color, shadow_inner_color){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} bevel_type -- bevel border type (SM\_BEVELTYPE.RAISED or SM\_BEVELTYPE.LOWERED) \{[String]} highlight_outer_color -- bevel border highlight outer color \{[String]} highlight_inner_color -- bevel border highlight inner color \{[String]} shadow_outer_color -- bevel border shadow outer color \{[String]} shadow_inner_color -- bevel border shadow outer color {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[String]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var form = solutionModel.getForm("someForm"); form.borderType = solutionModel.createBevelBorder(SM_BEVELTYPE.RAISED,'#ff0000','#00ff00','#ff0000','#00ff00'); {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=createEmptyBorder-Number_Number_Number_Number}{tr:id=name}{td}h6.createEmptyBorder{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[String]{span}{span:style=font-weight: bold;}createEmptyBorder{span}{span}\(top_width, right_width, bottom_width, left_width){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} top_width -- top width of empty border in pixels \{[Number]} right_width -- right width of empty border in pixels \{[Number]} bottom_width -- bottom width of empty border in pixels \{[Number]} left_width -- left width of empty border in pixels {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[String]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var form = solutionModel.getForm("someForm"); form.borderType = solutionModel.createEmptyBorder(1,1,1,1); {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=createEtchedBorder-Number_String_String}{tr:id=name}{td}h6.createEtchedBorder{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[String]{span}{span:style=font-weight: bold;}createEtchedBorder{span}{span}\(bevel_type, highlight_color, shadow_color){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} bevel_type -- bevel border type \{[String]} highlight_color -- bevel border highlight color \{[String]} shadow_color -- bevel border shadow color {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[String]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var form = solutionModel.getForm("someForm"); form.borderType = solutionModel.createEtchedBorder(SM_BEVELTYPE.RAISED,'#ff0000','#00ff00'); {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=createFont-String_Number_Number}{tr:id=name}{td}h6.createFont{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[String]{span}{span:style=font-weight: bold;}createFont{span}{span}\(name, style, size){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} name -- the name of the font \{[Number]} style -- the style of the font (PLAIN, BOLD, ITALIC or BOLD+ITALIC) \{[Number]} size -- the font size {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[String]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var form = solutionModel.getForm("someForm"); var component = form.getComponent("someComponent") component.fontType = solutionModel.createFont('Arial',SM_FONTSTYLE.BOLD,14); {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=createLineBorder-Number_String}{tr:id=name}{td}h6.createLineBorder{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[String]{span}{span:style=font-weight: bold;}createLineBorder{span}{span}\(thick, color){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} thick -- border thickness in pixels \{[String]} color -- color of the line border {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[String]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var form = solutionModel.getForm("someForm"); form.borderType = solutionModel.createLineBorder(1,'#ff0000'); {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=createMatteBorder-Number_Number_Number_Number_String}{tr:id=name}{td}h6.createMatteBorder{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[String]{span}{span:style=font-weight: bold;}createMatteBorder{span}{span}\(top_width, right_width, bottom_width, left_width, color){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} top_width -- top width of matte border in pixels \{[Number]} right_width -- right width of matte border in pixels \{[Number]} bottom_width -- bottom width of matte border in pixels \{[Number]} left_width -- left width of matte border in pixels \{[String]} color -- border color {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[String]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var form = solutionModel.getForm("someForm"); form.borderType = solutionModel.createMatteBorder(1,1,1,1,"#00ff00"); {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=createPageFormat-Number_Number_Number_Number_Number_Number}{tr:id=name}{td}h6.createPageFormat{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[String]{span}{span:style=font-weight: bold;}createPageFormat{span}{span}\(width, height, leftmargin, rightmargin, topmargin, bottommargin){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} width -- the specified width of the page to be printed. \{[Number]} height -- the specified height of the page to be printed. \{[Number]} leftmargin -- the specified left margin of the page to be printed. \{[Number]} rightmargin -- the specified right margin of the page to be printed. \{[Number]} topmargin -- the specified top margin of the page to be printed. \{[Number]} bottommargin -- the specified bottom margin of the page to be printed. {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[String]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var form = solutionModel.getForm("someForm"); form.defaultPageFormat = solutionModel.createPageFormat(612,792,72,72,72,72,SM_ORIENTATION.PORTRAIT,SM_UNITS.PIXELS); {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=createPageFormat-Number_Number_Number_Number_Number_Number_Number}{tr:id=name}{td}h6.createPageFormat{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[String]{span}{span:style=font-weight: bold;}createPageFormat{span}{span}\(width, height, leftmargin, rightmargin, topmargin, bottommargin, orientation){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} width -- the specified width of the page to be printed. \{[Number]} height -- the specified height of the page to be printed. \{[Number]} leftmargin -- the specified left margin of the page to be printed. \{[Number]} rightmargin -- the specified right margin of the page to be printed. \{[Number]} topmargin -- the specified top margin of the page to be printed. \{[Number]} bottommargin -- the specified bottom margin of the page to be printed. \{[Number]} orientation -- the specified orientation of the page to be printed; the default is Portrait mode {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[String]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var form = solutionModel.getForm("someForm"); form.defaultPageFormat = solutionModel.createPageFormat(612,792,72,72,72,72,SM_ORIENTATION.PORTRAIT,SM_UNITS.PIXELS); {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=createPageFormat-Number_Number_Number_Number_Number_Number_Number_Number}{tr:id=name}{td}h6.createPageFormat{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[String]{span}{span:style=font-weight: bold;}createPageFormat{span}{span}\(width, height, leftmargin, rightmargin, topmargin, bottommargin, orientation, units){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} width -- the specified width of the page to be printed. \{[Number]} height -- the specified height of the page to be printed. \{[Number]} leftmargin -- the specified left margin of the page to be printed. \{[Number]} rightmargin -- the specified right margin of the page to be printed. \{[Number]} topmargin -- the specified top margin of the page to be printed. \{[Number]} bottommargin -- the specified bottom margin of the page to be printed. \{[Number]} orientation -- the specified orientation of the page to be printed; the default is Portrait mode \{[Number]} units -- the specified units for the width and height of the page to be printed; the default is pixels {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[String]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var form = solutionModel.getForm("someForm"); form.defaultPageFormat = solutionModel.createPageFormat(612,792,72,72,72,72,SM_ORIENTATION.PORTRAIT,SM_UNITS.PIXELS); {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=createRoundedBorder-Number_Number_Number_Number_String_String_String_String_NumberArray_StringArray}{tr:id=name}{td}h6.createRoundedBorder{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[String]{span}{span:style=font-weight: bold;}createRoundedBorder{span}{span}\(top_width, right_width, bottom_width, left_width, top_color, right_color, bottom_color, left_color, rounding_radius, border_style){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} top_width -- top width of matte border in pixels \{[Number]} right_width -- right width of matte border in pixels \{[Number]} bottom_width -- bottom width of matte border in pixels \{[Number]} left_width -- left width of matte border in pixels \{[String]} top_color -- top border color \{[String]} right_color -- right border color \{[String]} bottom_color -- bottom border color \{[String]} left_color -- left border color \{[Number]\[]} rounding_radius -- array with width/height of the arc to round the corners \{[String]\[]} border_style -- the border styles for the four margins(top/left/bottom/left) {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[String]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var form = solutionModel.getForm("someForm"); // create a rectangle border (no rounded corners) and continous line form.borderType = solutionModel.createSpecialMatteBorder(1,1,1,1,"#00ff00","#00ff00","#00ff00","#00ff00",0,null); // create a border with rounded corners and dashed line (25 pixels drawn, then 25 pixels skipped) // rounding_radius is an array of up to 8 numbers, order is: top-left,top-right,bottom-right,bottom-left (repetead twice - for width and height) // form.borderType = solutionModel.createSpecialMatteBorder(1,1,1,1,"#00ff00","#00ff00","#00ff00","#00ff00",new Array(10,10,10,10),new Array(25,25)); {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=createSpecialMatteBorder-Number_Number_Number_Number_String_String_String_String_Number_NumberArray}{tr:id=name}{td}h6.createSpecialMatteBorder{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[String]{span}{span:style=font-weight: bold;}createSpecialMatteBorder{span}{span}\(top_width, right_width, bottom_width, left_width, top_color, right_color, bottom_color, left_color, rounding_radius, dash_pattern){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[Number]} top_width -- top width of matte border in pixels \{[Number]} right_width -- right width of matte border in pixels \{[Number]} bottom_width -- bottom width of matte border in pixels \{[Number]} left_width -- left width of matte border in pixels \{[String]} top_color -- top border color \{[String]} right_color -- right border color \{[String]} bottom_color -- bottom border color \{[String]} left_color -- left border color \{[Number]} rounding_radius -- width of the arc to round the corners \{[Number]\[]} dash_pattern -- the dash pattern of border stroke {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[String]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var form = solutionModel.getForm("someForm"); // create a rectangle border (no rounded corners) and continous line form.borderType = solutionModel.createSpecialMatteBorder(1,1,1,1,"#00ff00","#00ff00","#00ff00","#00ff00",0,null); // create a border with rounded corners and dashed line (25 pixels drawn, then 25 pixels skipped) // form.borderType = solutionModel.createSpecialMatteBorder(1,1,1,1,"#00ff00","#00ff00","#00ff00","#00ff00",10,new Array(25,25)); {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=createTitledBorder-String_String_String_Number_Number}{tr:id=name}{td}h6.createTitledBorder{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[String]{span}{span:style=font-weight: bold;}createTitledBorder{span}{span}\(title_text, font, color, title_justification, title_position){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} title_text -- the text from border \{[String]} font -- title text font string \{[String]} color -- border color \{[Number]} title_justification -- title text justification \{[Number]} title_position -- bevel title text position {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[String]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var form = solutionModel.getForm("someForm"); form.borderType = solutionModel.createTitledBorder('Test',solutionModel.createFont('Arial',SM_FONTSTYLE.PLAIN,10),'#ff0000',SM_TITLEJUSTIFICATION.CENTER,SM_TITLEPOSITION.TOP); {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getDataSourceNode-String}{tr:id=name}{td}h6.getDataSourceNode{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSDataSourceNode]{span}{span:style=font-weight: bold;}getDataSourceNode{span}{span}\(dataSource){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} dataSource -- table data source {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSDataSourceNode] -- a JSDataSourceNode{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var dsnode = solutionModel.getDataSourceNode('db:/example_data/customers'); var c = dsnode.getCalculation("myCalculation"); application.output("Name: " + c.getName() + ", Stored: " + c.isStored()); {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getForm-String}{tr:id=name}{td}h6.getForm{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSForm]{span}{span:style=font-weight: bold;}getForm{span}{span}\(name){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} name -- the specified name of the form {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSForm] -- a JSForm{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var myForm = solutionModel.getForm('existingFormName'); //get the style of the form (for all other properties see JSForm node) var styleName = myForm.styleName; {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getForms}{tr:id=name}{td}h6.getForms{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSForm]\[]{span}{span:style=font-weight: bold;}getForms{span}{span}\(){span}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSForm]\[] -- an array of JSForm type elements{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var forms = solutionModel.getForms() for (var i in forms) application.output(forms[i].name) {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getForms-String}{tr:id=name}{td}h6.getForms{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSForm]\[]{span}{span:style=font-weight: bold;}getForms{span}{span}\(datasource){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} datasource -- the datasource or servername {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSForm]\[] -- an array of JSForm type elements{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div: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}{tbody}{tbody:id=getForms-String_String}{tr:id=name}{td}h6.getForms{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSForm]\[]{span}{span:style=font-weight: bold;}getForms{span}{span}\(server, tablename){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} server -- the datasource or servername \{[String]} tablename -- the tablename {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSForm]\[] -- an array of JSForm type elements{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var forms = solutionModel.getForms(datasource,tablename) for (var i in forms) application.output(forms[i].name) {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getGlobalMethod-String_String}{tr:id=name}{td}h6.getGlobalMethod{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSMethod]{span}{span:style=font-weight: bold;}getGlobalMethod{span}{span}\(scopeName, name){span}{td}{tr}{tr:id=prs}{td}*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}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSMethod] -- a JSMethod{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var method = solutionModel.getGlobalMethod('globals', 'nameOfGlobalMethod'); if (method != null) application.output(method.code); {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{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}[JSMethod]\[] -- an array of JSMethod type elements{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=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}{tbody:id=getGlobalMethods-String}{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}\(scopeName){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} scopeName -- limit to global methods of specified scope name {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSMethod]\[] -- an array of JSMethod type elements{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=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}{tbody:id=getGlobalVariable-String_String}{tr:id=name}{td}h6.getGlobalVariable{td}{tr}{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=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} scopeName -- the scope in which the variable is searched \{[String]} name -- the specified name of the global variable {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSVariable] -- a JSVariable{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div: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}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getGlobalVariables}{tr: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=ret}{td}*Returns*\\{div:class=sIndent}[JSVariable]\[] -- an array of JSVariable type elements{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div: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:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getGlobalVariables-String}{tr: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}\(scopeName){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} scopeName -- limit to global vars of specified scope name {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSVariable]\[] -- an array of JSVariable type elements{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div: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:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getMedia-String}{tr:id=name}{td}h6.getMedia{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSMedia]{span}{span:style=font-weight: bold;}getMedia{span}{span}\(name){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} name -- the specified name of the media object {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSMedia] -- a JSMedia element{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var myMedia = solutionModel.getMedia('button01.gif') //now set the imageMedia property of your label or button //myButton.imageMedia = myMedia // OR //myLabel.imageMedia = myMedia {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getMediaList}{tr:id=name}{td}h6.getMediaList{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSMedia]\[]{span}{span:style=font-weight: bold;}getMediaList{span}{span}\(){span}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSMedia]\[] -- a list with all the media objects.{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var mediaList = solutionModel.getMediaList(); if (mediaList.length != 0 && mediaList != null) { for (var x in mediaList) { application.output(mediaList[x]); } } {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getRelation-String}{tr:id=name}{td}h6.getRelation{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSRelation]{span}{span:style=font-weight: bold;}getRelation{span}{span}\(name){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} name -- the specified name of the relation {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSRelation] -- a JSRelation{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var relation = solutionModel.getRelation('name'); application.output("The primary server name is " + relation.primaryServerName); application.output("The primary table name is " + relation.primaryTableName); application.output("The foreign table name is " + relation.foreignTableName); application.output("The relation items are " + relation.getRelationItems()); {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getRelations-String}{tr:id=name}{td}h6.getRelations{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSRelation]\[]{span}{span:style=font-weight: bold;}getRelations{span}{span}\(datasource){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} datasource -- the specified name of the datasource for the specified table {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSRelation]\[] -- an array of all relations (all elements in the array are of type JSRelation){div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var relations = solutionModel.getRelations('server_name','table_name'); if (relations.length != 0) for (var i in relations) application.output(relations[i].name); {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getRelations-String_String}{tr:id=name}{td}h6.getRelations{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSRelation]\[]{span}{span:style=font-weight: bold;}getRelations{span}{span}\(servername, tablename){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} servername -- the specified name of the server for the specified table \{[String]} tablename -- the specified name of the table {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSRelation]\[] -- an array of all relations (all elements in the array are of type JSRelation){div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var relations = solutionModel.getRelations('server_name','table_name'); if (relations.length != 0) for (var i in relations) application.output(relations[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=margin-right: 5px;}[String]\[]{span}{span:style=font-weight: bold;}getScopeNames{span}{span}\(){span}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[String]\[] -- an array of String scope names{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div: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=getStyle-String}{tr:id=name}{td}h6.getStyle{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSStyle]{span}{span:style=font-weight: bold;}getStyle{span}{span}\(name){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} name -- the specified name of the style {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSStyle] -- a JSStyle{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var style = solutionModel.getStyle('my_existing_style') style.content = 'combobox { color: #0000ff;font: italic 10pt "Verdana";}' {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=sig}{td}{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}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSValueList] -- a JSValueList object{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{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=getValueLists}{tr:id=name}{td}h6.getValueLists{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSValueList]\[]{span}{span:style=font-weight: bold;}getValueLists{span}{span}\(){span}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSValueList]\[] -- an array of JSValueList objects{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div: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}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newForm-String_JSForm}{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, superForm){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} name -- The name of the new form \{[JSForm]} superForm -- the super form that will extended from, see JSform.setExtendsForm(); {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSForm] -- a new JSForm object{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} //creates 2 forms with elements on them; shows the parent form, waits 2 seconds and shows the child form var mySuperForm = solutionModel.newForm('mySuperForm', 'db:/my_server/my_table', null, false, 800, 600); var label1 = mySuperForm.newLabel('LabelName', 20, 20, 120, 30); label1.text = 'DataProvider'; label1.background = 'red'; mySuperForm.newTextField('myDataProvider', 140, 20, 140,20); forms['mySuperForm'].controller.show(); application.sleep(2000); var mySubForm = solutionModel.newForm('mySubForm', mySuperForm); var label2 = mySuperForm.newLabel('SubForm Label', 20, 120, 120, 30); label2.background = 'green'; forms['mySuperForm'].controller.recreateUI(); forms['mySubForm'].controller.show(); {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newForm-String_String_String_Boolean_Number_Number}{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, styleName, show_in_menu, width, height){span}{td}{tr}{tr:id=prs}{td}*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*\\{div:class=sIndent}[JSForm] -- a new JSForm object{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{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}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newForm-String_String_String_String_Boolean_Number_Number}{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, serverName, tableName, styleName, show_in_menu, width, height){span}{td}{tr}{tr:id=prs}{td}*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}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSForm] -- a new JSForm object{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div: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:class=lastDetailRow}{td}{td}{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}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} scopeName -- the scope in which the method is created \{[String]} code -- the specified code for the global method {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSMethod] -- a JSMethod object{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var method = solutionModel.newGlobalMethod('globals', 'function myglobalmethod(){foundset.newRecord()}') {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newGlobalVariable-String_String_Number}{tr:id=name}{td}h6.newGlobalVariable{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSVariable]{span}{span:style=font-weight: bold;}newGlobalVariable{span}{span}\(scopeName, name, type){span}{td}{tr}{tr:id=prs}{td}*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}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSVariable] -- a JSVariable object{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{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:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newMedia-String_byteArray}{tr:id=name}{td}h6.newMedia{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSMedia]{span}{span:style=font-weight: bold;}newMedia{span}{span}\(name, bytes){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} name -- The name of the new media \{byte[]} bytes -- The content {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSMedia] -- a JSMedia object{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var myMedia = solutionModel.newMedia('button01.gif',bytes) //now set the imageMedia property of your label or button //myButton.imageMedia = myMedia // OR //myLabel.imageMedia = myMedia {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newRelation-String_String_String_Number}{tr:id=name}{td}h6.newRelation{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSRelation]{span}{span:style=font-weight: bold;}newRelation{span}{span}\(name, primaryDataSource, foreignDataSource, joinType){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} name -- the specified name of the new relation \{[String]} primaryDataSource -- the specified name of the primary datasource \{[String]} foreignDataSource -- the specified name of the foreign datasource \{[Number]} joinType -- the type of join for the new relation; JSRelation.INNER\_JOIN, JSRelation.LEFT\_OUTER\_JOIN {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSRelation] -- a JSRelation object{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var rel = solutionModel.newRelation('myRelation', myPrimaryDataSource, myForeignDataSource, JSRelation.INNER_JOIN); application.output(rel.getRelationItems()); {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newStyle-String_String}{tr:id=name}{td}h6.newStyle{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSStyle]{span}{span:style=font-weight: bold;}newStyle{span}{span}\(name, content){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} name -- the name of the new style \{[String]} content -- the css content of the new style {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSStyle] -- a JSStyle object{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var form = solutionModel.newForm('myForm','db:/my_server/my_table',null,true,1000,800); if (form.transparent == false) { var style = solutionModel.newStyle('myStyle','form { background-color: yellow; }'); style.text = style.text + 'field { background-color: blue; }'; form.styleName = 'myStyle'; } var field = form.newField('columnTextDataProvider',JSField.TEXT_FIELD,100,100,100,50); forms['myForm'].controller.show(); {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newValueList-String_Number}{tr:id=name}{td}h6.newValueList{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSValueList]{span}{span:style=font-weight: bold;}newValueList{span}{span}\(name, type){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} name -- the specified name for the valuelist \{[Number]} type -- the specified number type for the valuelist; may be JSValueList.CUSTOM\_VALUES, JSValueList.DATABASE\_VALUES, JSValueList.EMPTY\_VALUE\_ALWAYS, JSValueList.EMPTY\_VALUE\_NEVER {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSValueList] -- a JSValueList object{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var vl1 = solutionModel.newValueList("customText",JSValueList.CUSTOM_VALUES); vl1.customValues = "customvalue1\ncustomvalue2"; var vl2 = solutionModel.newValueList("customid",JSValueList.CUSTOM_VALUES); vl2.customValues = "customvalue1|1\ncustomvalue2|2"; var form = solutionModel.newForm("customValueListForm",controller.getDataSource(),null,true,300,300); var combo1 = form.newComboBox("scopes.globals.text",10,10,120,20); combo1.valuelist = vl1; var combo2 = form.newComboBox("scopes.globals.id",10,60,120,20); combo2.valuelist = vl2; {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=removeForm-String}{tr:id=name}{td}h6.removeForm{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}removeForm{span}{span}\(name){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} name -- the specified name of the form to remove {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean] -- true is form has been removed, false if form could not be removed{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{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}\{[String]} scopeName -- the scope in which the method is declared \{[String]} name -- the name of the global method to be removed {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean] -- true if the removal was successful, false otherwise{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{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}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=removeGlobalVariable-String_String}{tr:id=name}{td}h6.removeGlobalVariable{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: 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}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean] -- true if the removal was successful, false otherwise{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{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}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=removeMedia-String}{tr:id=name}{td}h6.removeMedia{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}removeMedia{span}{span}\(name){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} name -- the name of the media item to be removed {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean] -- true if the removal was successful, false otherwise{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var bytes1 = plugins.file.readFile('D:/Imgs/image1.png'); var image1 = solutionModel.newMedia('image1.png', bytes1); var bytes2 = plugins.file.readFile('D:/Imgs/image2.jpg'); var image2 = solutionModel.newMedia('image2.jpg',bytes2); var bytes3 = plugins.file.readFile('D:/Imgs/image3.jpg'); var image3 = solutionModel.newMedia('image3.jpg',bytes3); var f = solutionModel.newForm("newForm",databaseManager.getDataSource('example_data', 'orders'),null,false,500,350); var l = f.newLabel('', 20, 70, 300, 200); l.imageMedia = image1; l.borderType = solutionModel.createLineBorder(4,'#ff0000'); forms["newForm"].controller.show(); var status = solutionModel.removeMedia('image1.jpg'); if (status) application.output("image1.png has been removed"); else application.output("image1.png has not been removed"); var mediaList = solutionModel.getMediaList(); for (var i = 0; i < mediaList.length; i++) { application.output(mediaList[i].getName() + ":" + mediaList[i].mimeType); } {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=removeRelation-String}{tr:id=name}{td}h6.removeRelation{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}removeRelation{span}{span}\(name){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} name -- the name of the relation to be removed {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean] -- true if the removal was successful, false otherwise{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var success = solutionModel.removeRelation('myRelation'); if (success) { application.output("Relation has been removed");} else {application.output("Relation could not be removed");} {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=removeStyle-String}{tr:id=name}{td}h6.removeStyle{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}removeStyle{span}{span}\(name){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} name -- the name of the style to be removed {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean] -- true if the removal was successful, false otherwise{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var s = solutionModel.newStyle("smStyle1",'form { background-color: yellow; }'); var status = solutionModel.removeStyle("smStyle1"); if (status == false) application.output("Could not remove style."); else application.output("Style removed."); {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=removeValueList-String}{tr:id=name}{td}h6.removeValueList{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[Boolean]{span}{span:style=font-weight: bold;}removeValueList{span}{span}\(name){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} name -- name of the valuelist to be removed {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[Boolean] -- true if the removal was successful, false otherwise{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var vlName = "customValueList"; var vl = solutionModel.newValueList(vlName,JSValueList.CUSTOM_VALUES); vl.customValues = "customvalue1\ncustomvalue2"; var status = solutionModel.removeValueList(vlName); if (status) application.output("Removal has been done."); else application.output("ValueList not removed."); var vls = solutionModel.getValueLists(); if (vls != null) { for (var i = 0; i < vls.length; i++) { application.output(vls[i]); } application.output(""); } {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=revertForm-String}{tr:id=name}{td}h6.revertForm{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSForm]{span}{span:style=font-weight: bold;}revertForm{span}{span}\(name){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} name -- the specified name of the form to revert {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSForm] -- a JSForm object{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{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}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=wrapMethodWithArguments-JSMethod_ObjectArray}{tr:id=name}{td}h6.wrapMethodWithArguments{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[JSMethod]{span}{span:style=font-weight: bold;}wrapMethodWithArguments{span}{span}\(method, args){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[JSMethod]} method -- JSMethod to be assigned to an event \{[Object]...} args -- positional arguments {div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[JSMethod] -- a JSMethod{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript} var str = "John's Bookstore" var form = solutionModel.getForm('orders') var button = form.getButton('abutton') var method = form.getFormMethod('doit') // has 4 arguments: event (fixed), boolean, number and string // string arguments have to be quoted, they are interpreted before the method is called var quotedString = "'"+utils.stringReplace(str, "'", "\\'")+"'" // list all arguments the method has, use nulls for fixed arguments (like event) button.onAction = solutionModel.wrapMethodWithArguments(method, [null, true, 42, quotedString]) {code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table} |