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

{table:id=|class=servoy sReturnTypes}{tr:style=height: 30px;}{th}Return Types{th}{tr}{tr}{td}{span:class=sWordList}[DRAGNDROP]{span}{span:class=sWordList}[JSEvent]{span}{span:class=sWordList}[APPLICATION_TYPES]{span}{span:class=sWordList}[ELEMENT_TYPES]{span}{span:class=sWordList}[LOGGINGLEVEL]{span}{span:class=sWordList}[UICONSTANTS]{span}{span:class=sWordList}[WEBCONSTANTS]{span}{span:class=sWordList}[UUID]{span}{td}{tr}{table}\\ 

{table:id=|class=servoy sSummery}{colgroup}{column:padding=0px|width=80px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Method Summery{th}{tr}{tbody}{tr}{td}void{td}{td}[#addClientInfo]\(info)
Adds a string of client information which gets stored on the server, 
and can be viewed on the Clients page of Servoy Server Administration Console.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#beep]\()
Produces a "beep" sound; commonly used to indicate an error or warning dialog.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#closeForm]\(\[windowOrDialogName/closeAll\])
Close the dialog/window with the given name (call this method to hide the form shown with 'showFormInDialog' or 'showFormInWindow').{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#closeSolution]\(\[solutionToLoad\], \[method\], \[argument\])
Close the current open solution and optionally open a new one.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#createNewFormInstance]\(designFormName, newInstanceScriptName)
Create a new form instance.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#executeProgram]\(programName(fullpath), \[arg1\], \[arg2\], \[argN\], \[#\], environmentvar1, \[environmentvarN\], \[startdirectory\])
Execute a program and returns output.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#executeProgramInBackground]\(programName(fullpath), \[arg1\], \[arg2\], \[argN\], \[#\], \[environmentvar1\], \[environmentvarN\], \[startdirectory\])
Execute a program in the background.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#exit]\()
Stop and exit application.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#getActiveClientCount]\(currentSolutionOnly)
Get the active user count on the server (can be limited to current solution).{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#getApplicationType]\()
Get the application type.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#getClientCountForInfo]\(info)
Gets the count for all clients displaying the same additional information 
in the Clients page of Servoy Server Administration Console.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#getClipboardString]\()
Gets a string from the clipboard, null if not a string or empty.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#getCurrentLookAndFeelName]\()
Gets the name of the current Look And Feel specified in Application Preferences.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#getHostName]\()
Get the name of the localhost.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#getIPAddress]\()
Get the clients' IP address.{td}{tr}{tbody}{tbody}{tr}{td}[String]\[]{td}{td}[#getLicenseNames]\()
Get the names of the used client licenses (as strings in array).{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#getOSName]\()
Returns the name of the operating system.{td}{tr}{tbody}{tbody}{tr}{td}[String]\[]{td}{td}[#getPrinters]\()
Get all the printer names in an array.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#getScreenHeight]\()
Get the screen height in pixels.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#getScreenWidth]\()
Get the screen width in pixels.{td}{tr}{tbody}{tbody}{tr}{td}[Date]{td}{td}[#getServerTimeStamp]\()
Returns a date object initialized on server with current date and time.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#getServerURL]\()
Gets the HTTP server url.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#getSolutionName]\()
Returns the name of the current solution.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#getSolutionRelease]\()
Get the solution release number.{td}{tr}{tbody}{tbody}{tr}{td}[Object]\[]{td}{td}[#getStartupArguments]\()
Get the parameters which are provided by startup.{td}{tr}{tbody}{tbody}{tr}{td}[Date]{td}{td}[#getTimeStamp]\()
Returns a date object initialized in client with current date and time.{td}{tr}{tbody}{tbody}{tr}{td}[UUID]{td}{td}[#getUUID]\(\[uuidStringOrByteArray\])
Get a new UUID object (also known as GUID) or convert the parameter (that can be string or byte array) to an UUID object.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#getUserProperty]\(name)
Get a persistent user property.{td}{tr}{tbody}{tbody}{tr}{td}[String]\[]{td}{td}[#getUserPropertyNames]\()
Get all persistent user property names.{td}{tr}{tbody}{tbody}{tr}{td}[Array]{td}{td}[#getValueListArray]\(name)
Retrieve a valuelist as array, to get real\-values for display\-values.{td}{tr}{tbody}{tbody}{tr}{td}[Object]{td}{td}[#getValueListDisplayValue]\(name, realValue)
Retrieve a valuelist display\-value for a real\-value.{td}{tr}{tbody}{tbody}{tr}{td}[JSDataSet]{td}{td}[#getValueListItems]\(name)
Get all values from a custom or database type value list as dataset (with columns displayValue,realValue).{td}{tr}{tbody}{tbody}{tr}{td}[String]\[]{td}{td}[#getValueListNames]\()
Get all the valuelist names as array.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#getVersion]\()
Returns the application version.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#getWindowHeight]\(\[windowName\])
Get the window height in pixels.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#getWindowWidth]\(\[windowName\])
Get the window width in pixels.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#getWindowX]\(\[windowName\])
Get the window X location in pixels.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#getWindowY]\(\[windowName\])
Get the window Y location in pixels.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#isInDeveloper]\()
Returns true if the solution is running in the developer.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#isLastPrintPreviewPrinted]\()
Check if the last printpreview did print.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#output]\(msg)
{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#output]\(msg, \[level\])
Output something on the out stream.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#overrideStyle]\(originalStyleName, newStyleName)
Overrides one style (defined in in a form) with another.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#playSound]\(url)
Play a sound (AU file, an AIFF file, a WAV file, and a MIDI file).{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#redo]\()
Redo last action (if possible).{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#removeAllClientInfo]\()
Removes all names given to the client via the admin page.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#setClipboardContent]\(string)
Sets a string object in the clipboard.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#setNumpadEnterAsFocusNextEnabled]\(enabled)
Set if numpad enter should behave like focus next.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#setStatusText]\(text, \[tip\])
Set the status area value.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#setToolbarVisible]\(name, visible)
Make a toolbar visible or invisible.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#setUIProperty]\(name, value)
Sets a UI property.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#setUserProperty]\(name, value)
Set a persistent user property.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#setValueListItems]\(name, displayValArray/dataset, \[realValuesArray\], \[autoconvert(false)\])
Fill a custom type valuelist with values from array(s) or dataset.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#setWindowLocation]\(x, y, \[windowName\])
Set the window location.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#setWindowSize]\(width, height, \[windowName\])
Set the window size.{td}{tr}{tbody}{tbody}{tr}{td}[Date]{td}{td}[#showCalendar]\(\[selecteddate\], \[dateformat\])
Show the calendar, returns selected date or null if canceled.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#showColorChooser]\(\[colorString\])
Show the colorChooser.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#showFontChooser]\(\[fontString\])
Show the font chooser dialog.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#showForm]\(form)
Show the form specified by the parameter, that can be a name (is case sensitive!) or a form object.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#showFormInDialog]\(form, \[x\], \[y\], \[width\], \[height\], \[dialogTitle\], \[resizable\], \[showTextToolbar\], \[windowName\], \[modal\])
Show the specified form in a dialog.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#showFormInWindow]\(form, \[x\], \[y\], \[width\], \[height\], \[dialogTitle\], \[resizable\], \[showTextToolbar\], \[windowName\])
Show the specified form in a window.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#showI18NDialog]\(\[keyToSelect\], \[languageToSelect\])
Opens the i18n dialog so users can change translations.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#showURL]\(url, \[webclientTarget\], \[webclientTargetOptions/timeout\], \[timeout\])
Shows an URL in a browser.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#sleep]\(ms)
Sleep for specified time (in milliseconds).{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#undo]\()
Undo last action (if possible).{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#updateUI]\(\[milliseconds\])
Updates the UI (painting).{td}{tr}{tbody}{table}\\ 

{table:id=function|class=servoy sDetail}{colgroup}{column:padding=0px|width=100%}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Method Details{th}{tr}{tbody:id=addClientInfo|class=node}{tr:id=name}{td}h6.addClientInfo{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}addClientInfo{span}{span:id=iets|style=float: left;}\(info){span}{td}{tr}{tr:id=des}{td}Adds a string of client information which gets stored on the server, 
and can be viewed on the Clients page of Servoy Server Administration Console.

The new piece of client information is added on behalf of the running 
Servoy client.

This function can be called more than once, if you want to add multiple
lines of client information.

NOTE: 
This function can also be used with the function <em>getClientCountForInfo</em>
to count the number of clients with matching addditional client information.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} info -- A line of text to be added as additional client information
             on behalf of the running Servoy client.
{td}{tr}{tr:id=ret}{td}*Returns*\\void{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
application.addClientInfo('SaaS company name');
application.addClientInfo('For any issues call +31-SA-AS');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=beep|class=node}{tr:id=name}{td}h6.beep{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}beep{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Produces a "beep" sound; commonly used to indicate an error or warning dialog.{td}{tr}{tr:id=ret}{td}*Returns*\\void{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
application.beep();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=closeForm|class=node}{tr:id=name}{td}h6.closeForm{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}closeForm{span}{span:id=iets|style=float: left;}\(\[windowOrDialogName/closeAll\]){span}{td}{tr}{tr:id=des}{td}Close the dialog/window with the given name (call this method to hide the form shown with 'showFormInDialog' or 'showFormInWindow'). If (true) is passed, then all the windows/dialogs will be closed. If the name is missing or null, the default dialog/window will be closed.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \[windowOrDialogName/closeAll\] -- Name of the dialog/window to close, or (true) to close all open dialogs/windows.
{td}{tr}{tr:id=ret}{td}*Returns*\\ [Boolean] -- Boolean (true) if the dialog(s)/window(s) were closed, (false) otherwise{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
application.closeForm(); // closes the current dialog/window
//application.closeForm('windowOrDialogName'); //closes the dialog/window with this specific name
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=closeSolution|class=node}{tr:id=name}{td}h6.closeSolution{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}closeSolution{span}{span:id=iets|style=float: left;}\(\[solutionToLoad\], \[method\], \[argument\]){span}{td}{tr}{tr:id=des}{td}Close the current open solution and optionally open a new one.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \[solutionToLoad\] -- Name of the solution to load
\[method\] -- Name of the global method to call
\[argument\] -- Argument passed to the global method
{td}{tr}{tr:id=ret}{td}*Returns*\\void{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
application.closeSolution();
//application.closeSolution('solution_name','global_method_name','my_argument');//log out, open solution 'solution_name', call global method 'global_method_name' with argument 'my_argument'
//note: specifying a solution will not work in developer due to debugger dependencies
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=createNewFormInstance|class=node}{tr:id=name}{td}h6.createNewFormInstance{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}createNewFormInstance{span}{span:id=iets|style=float: left;}\(designFormName, newInstanceScriptName){span}{td}{tr}{tr:id=des}{td}Create a new form instance.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} designFormName -- Name of the design form
\{[String]} newInstanceScriptName -- Name of the new form instance
{td}{tr}{tr:id=ret}{td}*Returns*\\ [Boolean] -- Boolean (true) if the instance was created succesfully, (false) otherwise{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var ok = application.createNewFormInstance('orders','orders_view');
if (ok)
{
	application.showFormInDialog(forms.orders_view)
	//forms['orders_view'].controller.show()
	//forms.xyz.elements.myTabPanel.addTab(forms['orders_view'])
	//forms['orders_view'].elements.mylabel.setLocation(10,20)
}
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=executeProgram|class=node}{tr:id=name}{td}h6.executeProgram{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}executeProgram{span}{span:id=iets|style=float: left;}\(programName(fullpath), \[arg1\], \[arg2\], \[argN\], \[#\], environmentvar1, \[environmentvarN\], \[startdirectory\]){span}{td}{tr}{tr:id=des}{td}Execute a program and returns output. Specify the cmd as you would do in a console.{td}{tr}{tr:id=prs}{td}*Parameters*\\programName(fullpath) -- Name of the program to execute
\[arg1\] -- Argument
\[arg2\] -- Argument
\[argN\] -- Argument
\[#\] -- Divider between program args, environment vars and startdir
environmentvar1 -- Environment variable
\[environmentvarN\] -- Environment variable
\[startdirectory\] -- Program start directory
{td}{tr}{tr:id=ret}{td}*Returns*\\ [String] -- The output generated by the program execution.{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
//'#' is divider between program args, environment vars and startdir
var program_output = application.executeProgram('c:/temp/program.ext','arg0','arg1','argN','#','path=c:/temp','#','c:/temp');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=executeProgramInBackground|class=node}{tr:id=name}{td}h6.executeProgramInBackground{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}executeProgramInBackground{span}{span:id=iets|style=float: left;}\(programName(fullpath), \[arg1\], \[arg2\], \[argN\], \[#\], \[environmentvar1\], \[environmentvarN\], \[startdirectory\]){span}{td}{tr}{tr:id=des}{td}Execute a program in the background. Specify the cmd as you would do in a console.{td}{tr}{tr:id=prs}{td}*Parameters*\\programName(fullpath) -- Name of the program to execute in background
\[arg1\] -- Argument
\[arg2\] -- Argument
\[argN\] -- Argument
\[#\] -- Divider between program args, environment vars and startdir
\[environmentvar1\] -- Environment variable
\[environmentvarN\] -- Environment variable
\[startdirectory\] -- Environment variable
{td}{tr}{tr:id=ret}{td}*Returns*\\void{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
//'#' is divider between program args, environment vars and startdir
application.executeProgramInBackground('c:/temp/program.ext','arg0','arg1','argN');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=exit|class=node}{tr:id=name}{td}h6.exit{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}exit{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Stop and exit application.{td}{tr}{tr:id=ret}{td}*Returns*\\void{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
// exit application
application.exit();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getActiveClientCount|class=node}{tr:id=name}{td}h6.getActiveClientCount{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Number]{span}{span:id=iets|style=float: left; font-weight: bold;}getActiveClientCount{span}{span:id=iets|style=float: left;}\(currentSolutionOnly){span}{td}{tr}{tr:id=des}{td}Get the active user count on the server (can be limited to current solution).{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[Boolean]} currentSolutionOnly -- Boolean (true) to get the active user count on server only to the current solution
{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number] -- Active user count on the server{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var count = application.getActiveClientCount(true);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getApplicationType|class=node}{tr:id=name}{td}h6.getApplicationType{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Number]{span}{span:id=iets|style=float: left; font-weight: bold;}getApplicationType{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Get the application type.{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number] -- Constant application type{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var type = application.getApplicationType();
//see application type contstant
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getClientCountForInfo|class=node}{tr:id=name}{td}h6.getClientCountForInfo{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Number]{span}{span:id=iets|style=float: left; font-weight: bold;}getClientCountForInfo{span}{span:id=iets|style=float: left;}\(info){span}{td}{tr}{tr:id=des}{td}Gets the count for all clients displaying the same additional information 
in the Clients page of Servoy Server Administration Console.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} info -- The additional client info string to search for.
{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number] -- Number of clients{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var count = application.getClientCountForInfo('SaaS company name');
application.output('Including yourself, there are ' + count + ' client(s) running on behalf of the company.');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getClipboardString|class=node}{tr:id=name}{td}h6.getClipboardString{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}getClipboardString{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Gets a string from the clipboard, null if not a string or empty.{td}{tr}{tr:id=ret}{td}*Returns*\\ [String] -- The string from the clipboard{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var fromClipboard = application.getClipboardString();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getCurrentLookAndFeelName|class=node}{tr:id=name}{td}h6.getCurrentLookAndFeelName{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}getCurrentLookAndFeelName{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Gets the name of the current Look And Feel specified in Application Preferences.{td}{tr}{tr:id=ret}{td}*Returns*\\ [String] -- Current Look And Feel{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var laf = application.getCurrentLookAndFeelName();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getHostName|class=node}{tr:id=name}{td}h6.getHostName{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}getHostName{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Get the name of the localhost.{td}{tr}{tr:id=ret}{td}*Returns*\\ [String] -- Name of the localhost{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var hostName = application.getHostName();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getIPAddress|class=node}{tr:id=name}{td}h6.getIPAddress{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}getIPAddress{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Get the clients' IP address.{td}{tr}{tr:id=ret}{td}*Returns*\\ [String] -- IP address of the client{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var ip = application.getIPAddress();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getLicenseNames|class=node}{tr:id=name}{td}h6.getLicenseNames{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getLicenseNames{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Get the names of the used client licenses (as strings in array).{td}{tr}{tr:id=ret}{td}*Returns*\\ [String]\[] -- Client licenses names{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var array = application.getLicenseNames();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getOSName|class=node}{tr:id=name}{td}h6.getOSName{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}getOSName{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Returns the name of the operating system.{td}{tr}{tr:id=ret}{td}*Returns*\\ [String] -- Name of the operating system{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var osname = application.getOSName();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getPrinters|class=node}{tr:id=name}{td}h6.getPrinters{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getPrinters{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Get all the printer names in an array.{td}{tr}{tr:id=ret}{td}*Returns*\\ [String]\[] -- All printer names{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var printersArray = application.getPrinters();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getScreenHeight|class=node}{tr:id=name}{td}h6.getScreenHeight{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Number]{span}{span:id=iets|style=float: left; font-weight: bold;}getScreenHeight{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Get the screen height in pixels.{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number] -- Screen height{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var height = application.getScreenHeight();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getScreenWidth|class=node}{tr:id=name}{td}h6.getScreenWidth{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Number]{span}{span:id=iets|style=float: left; font-weight: bold;}getScreenWidth{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Get the screen width in pixels.{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number] -- Screen width{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var width = application.getScreenWidth();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getServerTimeStamp|class=node}{tr:id=name}{td}h6.getServerTimeStamp{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Date]{span}{span:id=iets|style=float: left; font-weight: bold;}getServerTimeStamp{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Returns a date object initialized on server with current date and time.{td}{tr}{tr:id=ret}{td}*Returns*\\ [Date] -- Server time{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var servertime = application.getServerTimeStamp();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getServerURL|class=node}{tr:id=name}{td}h6.getServerURL{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}getServerURL{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Gets the HTTP server url.{td}{tr}{tr:id=ret}{td}*Returns*\\ [String] -- HTTP server URL{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var url = application.getServerURL();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getSolutionName|class=node}{tr:id=name}{td}h6.getSolutionName{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}getSolutionName{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Returns the name of the current solution.{td}{tr}{tr:id=ret}{td}*Returns*\\ [String] -- Current solution name{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var solutionName = application.getSolutionName();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getSolutionRelease|class=node}{tr:id=name}{td}h6.getSolutionRelease{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Number]{span}{span:id=iets|style=float: left; font-weight: bold;}getSolutionRelease{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Get the solution release number.{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number] -- Current solution release number{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var release = application.getSolutionRelease();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getStartupArguments|class=node}{tr:id=name}{td}h6.getStartupArguments{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Object]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getStartupArguments{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Get the parameters which are provided by startup.{td}{tr}{tr:id=ret}{td}*Returns*\\ [Object]\[] -- Array with 2 elements, the startup argument and an object containing all startup arguments, or
 null if there is no argument passed{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var args_array = application.getStartupArguments();
// the first element in the array is the 'argument' value from the startup
var argument = args_array[0];
// the second element is an object containing all the startup arguments
var startupArgumentObj = args_array[1];
var arg1 = startupArgumentObj.arg1_name;
var arg2 = startupArgumentObj.arg2_name;
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getTimeStamp|class=node}{tr:id=name}{td}h6.getTimeStamp{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Date]{span}{span:id=iets|style=float: left; font-weight: bold;}getTimeStamp{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Returns a date object initialized in client with current date and time.{td}{tr}{tr:id=ret}{td}*Returns*\\ [Date] -- Current time at the client{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var clienttime = application.getTimeStamp();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getUUID|class=node}{tr:id=name}{td}h6.getUUID{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[UUID]{span}{span:id=iets|style=float: left; font-weight: bold;}getUUID{span}{span:id=iets|style=float: left;}\(\[uuidStringOrByteArray\]){span}{td}{tr}{tr:id=des}{td}Get a new UUID object (also known as GUID) or convert the parameter (that can be string or byte array) to an UUID object. A table column marked as UUID will work with such objects.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \[uuidStringOrByteArray\] -- String or byte array representing an uuid
{td}{tr}{tr:id=ret}{td}*Returns*\\ [UUID] -- The new UUID object{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var new_uuid_object = application.getUUID(); // generate new uuid object
var uuid_object1 = application.getUUID(new_uuid_object.toString()); // convert a string representing an uuid to an uuid object
var uuid_object2 = application.getUUID(new_uuid_object.toBytes());  // convert a byte array representing an uuid to an uuid object
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getUserProperty|class=node}{tr:id=name}{td}h6.getUserProperty{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}getUserProperty{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{tr:id=des}{td}Get a persistent user property.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} name -- Name of the property
{td}{tr}{tr:id=ret}{td}*Returns*\\ [String] -- Property value{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var value = application.getUserProperty('showOrders');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getUserPropertyNames|class=node}{tr:id=name}{td}h6.getUserPropertyNames{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getUserPropertyNames{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Get all persistent user property names.{td}{tr}{tr:id=ret}{td}*Returns*\\ [String]\[] -- Array of all user property names{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
// display all user properties
allPropertyNames = application.getUserPropertyNames();
for(var i = 0; i < allPropertyNames.length; i++)
		application.output(allPropertyNames[i] + " = " + application.getUserProperty(allPropertyNames[i]));
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getValueListArray|class=node}{tr:id=name}{td}h6.getValueListArray{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Array]{span}{span:id=iets|style=float: left; font-weight: bold;}getValueListArray{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{tr:id=des}{td}Retrieve a valuelist as array, to get real\-values for display\-values.
NOTE: this doesn't return a value for a valuelist that depends on a database relation or is a global method valuelist.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} name -- The name of the valuelist
{td}{tr}{tr:id=ret}{td}*Returns*\\ [Array] -- Named array for the valuelist{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var packet_types = application.getValueListArray('packet_types');
if (a_realValue == packet_types['displayValue'])
{
}
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getValueListDisplayValue|class=node}{tr:id=name}{td}h6.getValueListDisplayValue{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Object]{span}{span:id=iets|style=float: left; font-weight: bold;}getValueListDisplayValue{span}{span:id=iets|style=float: left;}\(name, realValue){span}{td}{tr}{tr:id=des}{td}Retrieve a valuelist display\-value for a real\-value.
NOTE: this doesn't return a value for a valuelist that depends on a database relation or is a global method valuelist.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} name -- Name of the valuelist
\{[Object]} realValue -- Real value of the valuelist
{td}{tr}{tr:id=ret}{td}*Returns*\\ [Object] -- Display value of the real value from the valuelist{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var displayable_status = application.getValueListDisplayValue('case_status',status);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getValueListItems|class=node}{tr:id=name}{td}h6.getValueListItems{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSDataSet]{span}{span:id=iets|style=float: left; font-weight: bold;}getValueListItems{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{tr:id=des}{td}Get all values from a custom or database type value list as dataset (with columns displayValue,realValue).
NOTE: this doesn't return a value for a valuelist that depends on a database relation or is a global method valuelist.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} name -- Name of the valuelist
{td}{tr}{tr:id=ret}{td}*Returns*\\ [JSDataSet] -- DataSet with valuelist's display values and real values{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
//Note:see databaseManager.JSDataSet for full details of dataset
var dataset = application.getValueListItems('my_en_types');
//example to calc a strange total
global_total = 0;
for( var i = 1 ; i <= dataset.getMaxRowIndex() ; i++ )
{
		global_total = global_total + dataset.getValue(i,1);
}
//example to assign to dataprovider
//employee_salary = dataset.getValue(1,1)
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getValueListNames|class=node}{tr:id=name}{td}h6.getValueListNames{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getValueListNames{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Get all the valuelist names as array.{td}{tr}{tr:id=ret}{td}*Returns*\\ [String]\[] -- Array with all valuelist names{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var array = application.getValueListNames();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getVersion|class=node}{tr:id=name}{td}h6.getVersion{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}getVersion{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Returns the application version.{td}{tr}{tr:id=ret}{td}*Returns*\\ [String] -- Application version{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
application.getVersion();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getWindowHeight|class=node}{tr:id=name}{td}h6.getWindowHeight{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Number]{span}{span:id=iets|style=float: left; font-weight: bold;}getWindowHeight{span}{span:id=iets|style=float: left;}\(\[windowName\]){span}{td}{tr}{tr:id=des}{td}Get the window height in pixels. If windowName is not specified or null, it will use either the default dialog (if it is shown) or the main application window.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \[windowName\] -- Name of the window
{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number] -- Window height{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var height = application.getWindowHeight('customerDialog');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getWindowWidth|class=node}{tr:id=name}{td}h6.getWindowWidth{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Number]{span}{span:id=iets|style=float: left; font-weight: bold;}getWindowWidth{span}{span:id=iets|style=float: left;}\(\[windowName\]){span}{td}{tr}{tr:id=des}{td}Get the window width in pixels. If windowName is not specified or null, it will use either the default dialog (if it is shown) or the main application window.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \[windowName\] -- Name of the window
{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number] -- Window width{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var width = application.getWindowWidth('customerDialog');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getWindowX|class=node}{tr:id=name}{td}h6.getWindowX{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Number]{span}{span:id=iets|style=float: left; font-weight: bold;}getWindowX{span}{span:id=iets|style=float: left;}\(\[windowName\]){span}{td}{tr}{tr:id=des}{td}Get the window X location in pixels. If windowName is not specified or null, it will use either the default dialog (if it is shown) or the main application window.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \[windowName\] -- Window name
{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number] -- Window X location{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var x = application.getWindowX('customerDialog');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getWindowY|class=node}{tr:id=name}{td}h6.getWindowY{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Number]{span}{span:id=iets|style=float: left; font-weight: bold;}getWindowY{span}{span:id=iets|style=float: left;}\(\[windowName\]){span}{td}{tr}{tr:id=des}{td}Get the window Y location in pixels. If windowName is not specified or null, it will use either the default dialog (if it is shown) or the main application window.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \[windowName\] -- Name of the window
{td}{tr}{tr:id=ret}{td}*Returns*\\ [Number] -- Window Y location{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var y = application.getWindowY('customerDialog');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=isInDeveloper|class=node}{tr:id=name}{td}h6.isInDeveloper{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}isInDeveloper{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Returns true if the solution is running in the developer.{td}{tr}{tr:id=ret}{td}*Returns*\\ [Boolean] -- Boolean (true) if the solution is running in the developer, (false) otherwise{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var flag = application.isInDeveloper();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=isLastPrintPreviewPrinted|class=node}{tr:id=name}{td}h6.isLastPrintPreviewPrinted{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}isLastPrintPreviewPrinted{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Check if the last printpreview did print.{td}{tr}{tr:id=ret}{td}*Returns*\\ [Boolean] -- Boolean (true) is the last print preview did print, (false) otherwise{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
//attached this method to onShow on the form being shown after printpreview
//set a global called globals.showPrintPreview to 1 in the onPrintPreview method
if (globals.showPrintPreview == 1)
{
globals.showPrintPreview = 0;//clear for next time
	if (application.isLastPrintPreviewPrinted())
	{
		plugins.dialogs.showInfoDialog('Alert',  'There is printed in printpreview',  'OK')
	}
}
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=output|class=node}{tr:id=name}{td}h6.output{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}output{span}{span:id=iets|style=float: left;}\(msg, \[level\]){span}{td}{tr}{tr:id=des}{td}Output something on the out stream. (if running in debugger view output console tab){td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[Object]} msg -- Object to send to output stream
\{[Number]} \[level\] -- the log level where it should log to.
{td}{tr}{tr:id=ret}{td}*Returns*\\void{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
// log level is used to determine how/if to log in servoy_log.txt; for smart client java out and err streams are used
application.output('my very important trace msg');// default log level: info
application.output('my very important msg',LOGGINGLEVEL.LOGLEVEL_ERROR);// log level: error
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=overrideStyle|class=node}{tr:id=name}{td}h6.overrideStyle{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}overrideStyle{span}{span:id=iets|style=float: left;}\(originalStyleName, newStyleName){span}{td}{tr}{tr:id=des}{td}Overrides one style (defined in in a form) with another.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} originalStyleName -- Name of the style to override
\{[String]} newStyleName -- Name of the new style
{td}{tr}{tr:id=ret}{td}*Returns*\\void{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
//This function will only have effect on  forms not yet created, so solution onLoad is the best place to override'
//For example overriding the use of default/designed style anywhere in the solution from 'mystyle' to 'mystyle_mac'
application.overrideStyle('mystyle','mystyle_mace')//in this case both styles should have about the same classes
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=playSound|class=node}{tr:id=name}{td}h6.playSound{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}playSound{span}{span:id=iets|style=float: left;}\(url){span}{td}{tr}{tr:id=des}{td}Play a sound (AU file, an AIFF file, a WAV file, and a MIDI file).{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} url -- URL of the sound file
{td}{tr}{tr:id=ret}{td}*Returns*\\void{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
application.playSound('media:///click.wav');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=redo|class=node}{tr:id=name}{td}h6.redo{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}redo{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Redo last action (if possible).{td}{tr}{tr:id=ret}{td}*Returns*\\void{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
application.redo();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=removeAllClientInfo|class=node}{tr:id=name}{td}h6.removeAllClientInfo{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}removeAllClientInfo{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Removes all names given to the client via the admin page.{td}{tr}{tr:id=ret}{td}*Returns*\\void{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
application.removeAllClientInfo();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=setClipboardContent|class=node}{tr:id=name}{td}h6.setClipboardContent{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}setClipboardContent{span}{span:id=iets|style=float: left;}\(string){span}{td}{tr}{tr:id=des}{td}Sets a string object in the clipboard.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[Object]} string -- New content of the clipboard
{td}{tr}{tr:id=ret}{td}*Returns*\\void{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
application.setClipboardContent('test');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=setNumpadEnterAsFocusNextEnabled|class=node}{tr:id=name}{td}h6.setNumpadEnterAsFocusNextEnabled{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}setNumpadEnterAsFocusNextEnabled{span}{span:id=iets|style=float: left;}\(enabled){span}{td}{tr}{tr:id=des}{td}Set if numpad enter should behave like focus next.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[Boolean]} enabled -- Boolean (true) if numpad enter should behave like focus next
{td}{tr}{tr:id=ret}{td}*Returns*\\void{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
application.setNumpadEnterAsFocusNextEnabled(true);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=setStatusText|class=node}{tr:id=name}{td}h6.setStatusText{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}setStatusText{span}{span:id=iets|style=float: left;}\(text, \[tip\]){span}{td}{tr}{tr:id=des}{td}Set the status area value.{td}{tr}{tr:id=prs}{td}*Parameters*\\text -- New status text
\[tip\] -- Status tooltip text
{td}{tr}{tr:id=ret}{td}*Returns*\\void{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
application.setStatusText('Your status text');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=setToolbarVisible|class=node}{tr:id=name}{td}h6.setToolbarVisible{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}setToolbarVisible{span}{span:id=iets|style=float: left;}\(name, visible){span}{td}{tr}{tr:id=des}{td}Make a toolbar visible or invisible.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} name -- Name of the toolbar
\{[Boolean]} visible -- Visibility of the toolbar
{td}{tr}{tr:id=ret}{td}*Returns*\\void{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
//example: hide the text toolbar
application.setToolbarVisible('text',false);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=setUIProperty|class=node}{tr:id=name}{td}h6.setUIProperty{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}setUIProperty{span}{span:id=iets|style=float: left;}\(name, value){span}{td}{tr}{tr:id=des}{td}Sets a UI property.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[Object]} name -- Name of the UI property
\{[Object]} value -- New value of the UI property
{td}{tr}{tr:id=ret}{td}*Returns*\\ [Boolean] -- Boolean (true) if the UI property was set with the new value{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
//Only use this function from the solution on open method!
//In smart client, use this to set javax.swing.UIDefaults properties.
application.setUIProperty('ToolTip.hideAccelerator', true)

//In web client, use this to change the template directory.
//To change the default dir of templates/default to templates/green_skin, do this:
application.setUIProperty('templates.dir','green_skin');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=setUserProperty|class=node}{tr:id=name}{td}h6.setUserProperty{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}setUserProperty{span}{span:id=iets|style=float: left;}\(name, value){span}{td}{tr}{tr:id=des}{td}Set a persistent user property.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[String]} name -- Name of the user property
\{[String]} value -- New value of the user property
{td}{tr}{tr:id=ret}{td}*Returns*\\void{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
application.setUserProperty('showOrders','1');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=setValueListItems|class=node}{tr:id=name}{td}h6.setValueListItems{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}setValueListItems{span}{span:id=iets|style=float: left;}\(name, displayValArray/dataset, \[realValuesArray\], \[autoconvert(false)\]){span}{td}{tr}{tr:id=des}{td}Fill a custom type valuelist with values from array(s) or dataset.{td}{tr}{tr:id=prs}{td}*Parameters*\\name -- Name of the valuelist
displayValArray/dataset -- Display values array or DataSet
\[realValuesArray\] -- Real values array
\[autoconvert(false)\] -- Boolean (true) if display values and return values should be converted to numbers
{td}{tr}{tr:id=ret}{td}*Returns*\\void{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
//set display values (return values will be same as display values)
application.setValueListItems('my_en_types',new Array('Item 1', 'Item 2', 'Item 3'));
//set display values and return values (which are stored in dataprovider)
//application.setValueListItems('my_en_types',new Array('Item 1', 'Item 2', 'Item 3'),new Array(10000,10010,10456));
//set display values and return values converted to numbers
//application.setValueListItems('my_en_types',new Array('Item 1', 'Item 2', 'Item 3'),new Array('10000','10010', '10456'), true);
//do query and fill valuelist (see databaseManager for full details of queries/dataset)
//var query = 'select display_value,optional_real_value from test_table';
//var dataset = databaseManager.getDataSetByQuery(databaseManager.getDataSourceServerName(controller.getDataSource()), query, null, 25);

//application.setValueListItems('my_en_types',dataset);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=setWindowLocation|class=node}{tr:id=name}{td}h6.setWindowLocation{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}setWindowLocation{span}{span:id=iets|style=float: left;}\(x, y, \[windowName\]){span}{td}{tr}{tr:id=des}{td}Set the window location. If windowName is not specified or null, it will use either the default dialog (if it is shown) or the main application window.{td}{tr}{tr:id=prs}{td}*Parameters*\\x -- Window new X location
y -- Window new Y location
\[windowName\] -- Name of the window
{td}{tr}{tr:id=ret}{td}*Returns*\\void{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
application.setWindowLocation(10,10,'customerDialog');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=setWindowSize|class=node}{tr:id=name}{td}h6.setWindowSize{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}setWindowSize{span}{span:id=iets|style=float: left;}\(width, height, \[windowName\]){span}{td}{tr}{tr:id=des}{td}Set the window size. If windowName is not specified or null, it will resize either the default dialog (if it is shown) or the main application window.{td}{tr}{tr:id=prs}{td}*Parameters*\\width -- Window new width
height -- Window new height
\[windowName\] -- Name of the window
{td}{tr}{tr:id=ret}{td}*Returns*\\void{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
application.setWindowSize(400,400,'customerDialog');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=showCalendar|class=node}{tr:id=name}{td}h6.showCalendar{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Date]{span}{span:id=iets|style=float: left; font-weight: bold;}showCalendar{span}{span:id=iets|style=float: left;}\(\[selecteddate\], \[dateformat\]){span}{td}{tr}{tr:id=des}{td}Show the calendar, returns selected date or null if canceled.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \[selecteddate\] -- Default selected date
\[dateformat\] -- Date format
{td}{tr}{tr:id=ret}{td}*Returns*\\ [Date] -- Selected date or null if canceled{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var selectedDate = application.showCalendar();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=showColorChooser|class=node}{tr:id=name}{td}h6.showColorChooser{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}showColorChooser{span}{span:id=iets|style=float: left;}\(\[colorString\]){span}{td}{tr}{tr:id=des}{td}Show the colorChooser. Returned value is in format #RRGGBB or null if canceled.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \[colorString\] -- Default color
{td}{tr}{tr:id=ret}{td}*Returns*\\ [String] -- selected color or null if canceled{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var selectedColor = application.showColorChooser();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=showFontChooser|class=node}{tr:id=name}{td}h6.showFontChooser{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}showFontChooser{span}{span:id=iets|style=float: left;}\(\[fontString\]){span}{td}{tr}{tr:id=des}{td}Show the font chooser dialog. Returns the selected font.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \[fontString\] -- Default font
{td}{tr}{tr:id=ret}{td}*Returns*\\ [String] -- selected font{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var selectedFont = application.showFontChooser();
elements.myfield.font = selectedFont
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=showForm|class=node}{tr:id=name}{td}h6.showForm{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}showForm{span}{span:id=iets|style=float: left;}\(form){span}{td}{tr}{tr:id=des}{td}Show the form specified by the parameter, that can be a name (is case sensitive!) or a form object.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[Object]} form -- Form object or name
{td}{tr}{tr:id=ret}{td}*Returns*\\void{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
application.showForm('MyForm');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=showFormInDialog|class=node}{tr:id=name}{td}h6.showFormInDialog{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}showFormInDialog{span}{span:id=iets|style=float: left;}\(form, \[x\], \[y\], \[width\], \[height\], \[dialogTitle\], \[resizable\], \[showTextToolbar\], \[windowName\], \[modal\]){span}{td}{tr}{tr:id=des}{td}Show the specified form in a dialog. (NOTE: x, y, width, height are initial bounds \- applied only the fist time a dialog is shown)

NOTE:
In the Smart Client, no code is executed after the function showFormInDialog <em>if the dialog is modal</em>.

NOTE:
x, y, width and height coordinates are only applied the first time the specified dialog is shown.
Use APP\_UI\_PROPERTY.FULL\_SCREEN for these values when the dialog should be full\-screen.{td}{tr}{tr:id=prs}{td}*Parameters*\\form -- The form to be shown in the dialog.
\[x\] -- The "x" coordinate of the dialog.
\[y\] -- The "y" coordinate of the dialog.
\[width\] -- The width of the dialog.
\[height\] -- The height of the dialog.
\[dialogTitle\] -- The title of the dialog.
\[resizable\] -- <em>true</em> if the dialog size should be modifiable; <em>false</em> if not.
\[showTextToolbar\] -- <em>true</em> to add a text toolbar; <em>false</em> to not add a text toolbar.
\[windowName\] -- The name of the window; defaults to "dialog" if nothing is specified. Window and dialog names share the same namespace.
\[modal\] -- <em>true</em> if the dialog should be modal; <em>false</em> if not. Defaults to <em>true</em>.
{td}{tr}{tr:id=ret}{td}*Returns*\\void{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
//Show the specified form in a modal dialog, on default initial location and size (x,y,w,h)
//application.showFormInDialog(forms.contacts);
//Note: No code is executed after the showFormInDialog until the dialog is closed if it is created as a modal dialog.
//Show the specified form in a non-modal dialog with a specified name, on default initial location and size (x,y,w,h)
//application.showFormInDialog(forms.contacts,'contactsdialog',false);
//Show the specified form in a modal dialog, at a specified initial location and size with custom title, not resizable but with text toolbar
application.showFormInDialog(forms.contacts,100,80,500,300,'my own dialog title',false,true,'mydialog',true);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=showFormInWindow|class=node}{tr:id=name}{td}h6.showFormInWindow{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}showFormInWindow{span}{span:id=iets|style=float: left;}\(form, \[x\], \[y\], \[width\], \[height\], \[dialogTitle\], \[resizable\], \[showTextToolbar\], \[windowName\]){span}{td}{tr}{tr:id=des}{td}Show the specified form in a window. (NOTE: x, y, width, height are initial bounds \- applied only the fist time a window is shown)

NOTE:
Forms in windows cannot be modal. They are more independent then dialogs, even non\-modal ones. For example in SC, a non\-modal dialog will always
be shown on top of the parent window and it will not have a separate entry in the OS window manager (for example Windows taskbar). 

NOTE:
x, y, width and height coordinates are only applied the first time the specified window is shown.
Use APP\_UI\_PROPERTY.FULL\_SCREEN for these values when the window should be full\-screen.{td}{tr}{tr:id=prs}{td}*Parameters*\\form -- The form to be shown in the dialog.
\[x\] -- The "x" coordinate of the dialog.
\[y\] -- The "y" coordinate of the dialog.
\[width\] -- The width of the dialog.
\[height\] -- The height of the dialog.
\[dialogTitle\] -- The title of the dialog.
\[resizable\] -- <em>true</em> if the dialog size should be modifiable; <em>false</em> if not.
\[showTextToolbar\] -- <em>true</em> to add a text toolbar; <em>false</em> to not add a text toolbar.
\[windowName\] -- The name of the window; defaults to "dialog" if nothing is specified. Window and dialog names share the same namespace.
{td}{tr}{tr:id=ret}{td}*Returns*\\void{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
//Show the specified form in a window, on default initial location and size
//application.showFormInWindow(forms.contacts);
//Show the specified form in a window with a specified name, on default initial location and size
//application.showFormInWindow(forms.contacts,'contactsWindow');
//Show the specified form in a window, at a specified initial location and size with custom title, not resizable but with text toolbar
application.showFormInWindow(forms.contacts,100,80,500,300,'my own window title',false,true,'mywindow');
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=showI18NDialog|class=node}{tr:id=name}{td}h6.showI18NDialog{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}showI18NDialog{span}{span:id=iets|style=float: left;}\(\[keyToSelect\], \[languageToSelect\]){span}{td}{tr}{tr:id=des}{td}Opens the i18n dialog so users can change translations. Returns the key selected by the user (not it's translation)  or null if cancel is pressed. Optional parameters specify the initial selections in the dialog.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \[keyToSelect\] -- Default selected key
\[languageToSelect\] -- Default selected language
{td}{tr}{tr:id=ret}{td}*Returns*\\ [String] -- selected I18N key or null if cancel is pressed{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
application.showI18NDialog("servoy.button.close", "en");
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=showURL|class=node}{tr:id=name}{td}h6.showURL{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}showURL{span}{span:id=iets|style=float: left;}\(url, \[webclientTarget\], \[webclientTargetOptions/timeout\], \[timeout\]){span}{td}{tr}{tr:id=des}{td}Shows an URL in a browser.{td}{tr}{tr:id=prs}{td}*Parameters*\\url -- URL to show
\[webclientTarget\] -- Target frame or named dialog/window
\[webclientTargetOptions/timeout\] -- Dialog options used when a dialog is specified / a timeout in seconds when the url should be shown
\[timeout\] -- A timeout in seconds when the url should be shown
{td}{tr}{tr:id=ret}{td}*Returns*\\ [Boolean] -- Boolean (true) if URL was shown{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
application.showURL('http://www.example.com');

//webclient specific additional parameters...
//2nd parameter: target frame or named dialog/window, so its possible to control in which (internal) frame or dialog the url is loaded, '_self' is current window,'_blank' is new dialog, '_top' is main window
//3rd parameter: dialog options used when a dialog is specified, example: 'height=200,width=400,status=yes,toolbar=no,menubar=no,location=no'
//3th or 4th parameter: a timeout in seconds when the url should be shown, immediantly/0 is default'
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=sleep|class=node}{tr:id=name}{td}h6.sleep{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}sleep{span}{span:id=iets|style=float: left;}\(ms){span}{td}{tr}{tr:id=des}{td}Sleep for specified time (in milliseconds).{td}{tr}{tr:id=prs}{td}*Parameters*\\ \{[Number]} ms -- Sleep time in milliseconds
{td}{tr}{tr:id=ret}{td}*Returns*\\void{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
//Sleep for 3 seconds
application.sleep(3000);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=undo|class=node}{tr:id=name}{td}h6.undo{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}undo{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}Undo last action (if possible).{td}{tr}{tr:id=ret}{td}*Returns*\\void{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
application.undo();
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=updateUI|class=node}{tr:id=name}{td}h6.updateUI{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}updateUI{span}{span:id=iets|style=float: left;}\(\[milliseconds\]){span}{td}{tr}{tr:id=des}{td}Updates the UI (painting). If in a script an element changed and the script continues doing 
things, you can give an number in ms how long this can take.{td}{tr}{tr:id=prs}{td}*Parameters*\\ \[milliseconds\] -- How long the update should take in milliseconds
{td}{tr}{tr:id=ret}{td}*Returns*\\void{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
application.updateUI(500);
//continue doing things
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}