Child pages
  • JSDataSet

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
{hidden}
DO NOT EDIT THE CONTENT OF THIS PAGE DIRECTLY, UNLESS YOU KNOW WHAT YOU'RE DOING.
		THE STRUCTURE OF THE CONTENT IS VITAL IN BEING ABLE TO EXTRACT CHANGES FROM THE PAGE AND MERGE THEM BACK INTO SERVOY SOURCE{hidden}
{sub-section:description|text=}{sub-section}\\ 

{table:id=|class=servoy sSummerysSummary}{colgroup}{column:padding=0px|width=80px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Property SummerySummary{th}{tr}{tbody}{tr}{td}[Number]{td}{td}[#rowIndex]
Get or set the record index of the dataset.{td}{tr}{tbody}{table}\\ 

{table:id=|class=servoy sSummerysSummary}{colgroup}{column:padding=0px|width=80px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Method SummerySummary{th}{tr}{tbody}{tr}{td}[Boolean]{td}{td}[#addColumn]\(name, \[index\], \[type\])
adds a column with the specified name to the dataset.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#addHTMLProperty]\(row, col, name, value)
Add an HTML property to an HTML tag produced in getAsHTML().{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#addRow]\(row)
index, array)
Add a row to the dataset.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#addRow]\(\[index\], array)
Add a row to the dataset.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#createDataSource]\(name)
Create a data source from the data set with specified name and using specified types.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#createDataSource]\(name, \[types\])
Create a data source from the data set with specified name and using specified types.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#getAsHTML]\(\[escape_values\], \[escape_spaces\], \[multi_line_markup\], \[pretty_indent\], \[add_column_names\])
Get the dataset as an html table.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#getAsText]\(column_separator, row_separator, value_delimiter, add_column_names)
Get the dataset as formatted text.{td}{tr}{tbody}{tbody}{tr}{td}[Object]\[]{td}{td}[#getColumnAsArray]\(index)
Get the column data of a dataset as an Array.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#getColumnName]\(index)
Get a column name based on index.{td}{tr}{tbody}{tbody}{tr}{td}[ServoyException]{td}{td}[#getException]\()
Get the database exception if an error occurred.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#getMaxColumnIndex]\()
Get the number of columns in the dataset.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#getMaxRowIndex]\()
Get the number of rows in the dataset.{td}{tr}{tbody}{tbody}{tr}{td}[Object]\[]{td}{td}[#getRowAsArray]\(index)
Get the row data of a dataset as an Array.{td}{tr}{tbody}{tbody}{tr}{td}[Object]{td}{td}[#getValue]\(row, col)
Get the value specified by row and column position from the dataset.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#hadMoreData]\()
Return true if there is more data in the resultset then specified by maxReturnedRows at query time.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#removeColumn]\(index)
Remove a column by index from the dataset.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#removeRow]\(row)
Remove a row from the dataset.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#setValue]\(row, col, obj)
Set the value specified by row and column position from the dataset.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#sort]\(col, sort_direction)
Sort the dataset on the given column in ascending or descending.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#sort]\(rowComparator)
Sort the dataset using a comparator function.{td}{tr}{tbody}{table}\\ 

{table:id=property|class=servoy sDetail}{colgroup}{column:padding=0px|width=100%}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Property Details{th}{tr}{tbody:id=rowIndex|class=node}{tr:id=name}{td}h6.rowIndex{td}{tr}{tr:id=des}{td}{sub-section:rowIndex_des|text=|trigger=button}{sub-section}{sub-section:rowIndex_des|trigger=none|class=sIndent}Get or set the record index of the dataset.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:rowIndex_snc|text=|trigger=button}{sub-section}{sub-section:rowIndex_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:rowIndex_prs|text=|trigger=button}{sub-section}{sub-section:rowIndex_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:rowIndex_ret|text=|trigger=button}{sub-section}{sub-section:rowIndex_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:rowIndex_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:rowIndex_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:rowIndex_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:rowIndex_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:rowIndex_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:rowIndex_sam|trigger=none}{code:language=javascript}
//assuming the variable dataset contains a dataset
//to set the rowIndex:
dataset.rowIndex = 1 //sets the rowIndex to the first row (dataset is 1-based)
//to retrieve the rowIndex of the currently selected row
var currRow = dataset.rowIndex
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}\\ 

{table:id=function|class=servoy sDetail}{colgroup}{column:padding=0px|width=100%}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Method Details{th}{tr}{tbody:id=addColumn|class=node}{tr:id=name}{td}h6.addColumn{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}addColumn{span}{span:id=iets|style=float: left;}\(name, \[index\], \[type\]){span}{td}{tr}{tr:id=des}{td}{sub-section:addColumn_des|text=|trigger=button}{sub-section}{sub-section:addColumn_des|trigger=none|class=sIndent}adds a column with the specified name to the dataset.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:addColumn_snc|text=|trigger=button}{sub-section}{sub-section:addColumn_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:addColumn_prs|text=|trigger=button}{sub-section}{sub-section:addColumn_prs|trigger=none|class=sIndent}name -- column name.
\[index\] -- column index number between 1 and getMaxColumnIndex().
\[type\] -- the type of column, see JSColumn constants.
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:addColumn_ret|text=|trigger=button}{sub-section}{sub-section:addColumn_ret|trigger=none|class=sIndent}[Boolean] -- true if succeeded, else false.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:addColumn_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:addColumn_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:addColumn_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:addColumn_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:addColumn_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:addColumn_sam|trigger=none}{code:language=javascript}
//assuming the variable dataset contains a dataset
var success = dataset.addColumn('columnName',1);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=addHTMLProperty|class=node}{tr:id=name}{td}h6.addHTMLProperty{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}addHTMLProperty{span}{span:id=iets|style=float: left;}\(row, col, name, value){span}{td}{tr}{tr:id=des}{td}{sub-section:addHTMLProperty_des|text=|trigger=button}{sub-section}{sub-section:addHTMLProperty_des|trigger=none|class=sIndent}Add an HTML property to an HTML tag produced in getAsHTML().

For row and col parameters use:
1 = applies to the container
0 = applies to all
>0 = applies to specific cell{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:addHTMLProperty_snc|text=|trigger=button}{sub-section}{sub-section:addHTMLProperty_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:addHTMLProperty_prs|text=|trigger=button}{sub-section}{sub-section:addHTMLProperty_prs|trigger=none|class=sIndent}\{[Number]} row -- row number
\{[Number]} col -- column number
\{[String]} name -- String property name
\{[String]} value -- String property value
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:addHTMLProperty_ret|text=|trigger=button}{sub-section}{sub-section:addHTMLProperty_ret|trigger=none|class=sIndent}void{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:addHTMLProperty_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:addHTMLProperty_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:addHTMLProperty_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:addHTMLProperty_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:addHTMLProperty_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:addHTMLProperty_sam|trigger=none}{code:language=javascript}
//adds a container property (to TABLE tag)
dataset.addHTMLProperty(-1,-1,'cellspacing','3');

//adds a row property
to all rows (to TR tag)
dataset.addHTMLProperty(-1,-1,'style','border-collapse:collapse;'); //to have a single line border

//adds a row property to all rows (to TR tag)
dataset.addHTMLProperty(0,0,'class','text');

//adds a row property to second row (to TR tag)
dataset.addHTMLProperty(2,0,'class','text');

//adds a column property to all 3rd columns (to TD tag)
dataset.addHTMLProperty(0,3,'class','redcolumn') ;

//adds a specific cell property (to TD tag)
dataset.addHTMLProperty(2,4,'color','blue');

globals.html_field = '<html>'+dataset.getAsHTML()+'</html>';
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=addRow-Number_|class=node}{tr:id=name}{td}h6.addRow{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}addRow{span}{span:id=iets|style=float: left;}\(\[index\], array){span}{td}{tr}{tr:id=des}{td}{sub-section:addRow-Number__des|text=|trigger=button}{sub-section}{sub-section:addRow-Number__des|trigger=none|class=sIndent}Add a row to the dataset.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:addRow-Number__snc|text=|trigger=button}{sub-section}{sub-section:addRow-Number__snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:addRow-Number__prs|text=|trigger=button}{sub-section}{sub-section:addRow-Number__prs|trigger=none|class=sIndent}\{[Number]} \[index\] -- index to add row (1\-based),
add by default as last row
\{[Object]\[]} array -- row data
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:addRow-Number__ret|text=|trigger=button}{sub-section}{sub-section:addRow-Number__ret|trigger=none|class=sIndent}void{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:addRow-Number__see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:addRow-Number__see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:addRow-Number__link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:addRow-Number__link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:addRow-Number__sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:addRow-Number__sam|trigger=none}{code:language=javascript}
//assuming the variable dataset contains a dataset
dataset.addRow(new Array(1,2,3,4,5,6,7,7)); //adds a row with 8 columns
dataset.addRow(2, new Array(1,2,3,4,5,6,7,7)); //adds a row with 8 columns after row 2
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=createDataSourceaddRow-|class=node}{tr:id=name}{td}h6.createDataSourceaddRow{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]void{span}{span:id=iets|style=float: left; font-weight: bold;}createDataSourceaddRow{span}{span:id=iets|style=float: left;}\(name, \[types\]array){span}{td}{tr}{tr:id=des}{td}{sub-section:createDataSourceaddRow-_des|text=|trigger=button}{sub-section}{sub-section:createDataSourceaddRow-_des|trigger=none|class=sIndent}CreateAdd a datarow sourceto fromthe thedataset. dataThe setrow withwill specifiedbe nameadded andas usingthe specifiedlast typesrow.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:createDataSourceaddRow-_snc|text=|trigger=button}{sub-section}{sub-section:createDataSourceaddRow-_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:createDataSourceaddRow-_prs|text=|trigger=button}{sub-section}{sub-section:createDataSourceaddRow-_prs|trigger=none|class=sIndent}\{[String]} name -- data source name
\{[ObjectObject]\[]} \[types\]array -- array of types as defined in JSColumn, when null or not supplied types are inferred from the data if possible.row data
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:createDataSourceaddRow-_ret|text=|trigger=button}{sub-section}{sub-section:createDataSourceaddRow-_ret|trigger=none|class=sIndent}[String] -- String uri reference to the created data source.{sub-section}{void{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:createDataSourceaddRow-_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:createDataSourceaddRow-_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:createDataSourceaddRow-_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:createDataSourceaddRow-_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:createDataSourceaddRow-_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:createDataSourceaddRow-_sam|trigger=none}{code:language=javascript}
ds.addColumn('my_id');
	ds.addColumn('my_label');
	var uri = ds.createDataSource('mydata', [JSColumn.INTEGER, JSColumn.TEXT]);
	var jsform = solutionModel.newForm(fname, uri, null, true, 300, 300);

 var query = 'select customerid, address, city, country  from customers';
 var ds2 = databaseManager.getDataSetByQuery('example_data', query, null, 999);
 var uri2 = ds2.createDataSource('mydata2'); // types are inferred from query result//assuming the variable dataset contains a dataset
dataset.addRow(new Array(1,2,3,4,5,6,7,7)); //adds a row with 8 columns
dataset.addRow(2, new Array(1,2,3,4,5,6,7,7)); //adds a row with 8 columns after row 2
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getAsHTMLcreateDataSource-String|class=node}{tr:id=name}{td}h6.getAsHTMLcreateDataSource{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}getAsHTMLcreateDataSource{span}{span:id=iets|style=float: left;}\(\[escape_values\], \[escape_spaces\], \[multi_line_markup\], \[pretty_indent\], \[add_column_names\]){span}{td}{tr}{tr:id=des}{td}{sub-section:getAsHTML_des|text=|name){span}{td}{tr}{tr:id=des}{td}{sub-section:createDataSource-String_des|text=|trigger=button}{sub-section}{sub-section:getAsHTMLcreateDataSource-String_des|trigger=none|class=sIndent}GetCreate a data source from the dataset as an html table data set with specified name and using specified types.
The types are inferred from the data if possible.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getAsHTMLcreateDataSource-String_snc|text=|trigger=button}{sub-section}{sub-section:getAsHTMLcreateDataSource-String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getAsHTMLcreateDataSource-String_prs|text=|trigger=button}{sub-section}{sub-section:getAsHTMLcreateDataSource-String_prs|trigger=none|class=sIndent}\{[escape\_values\]String]} name -- ifdata true,source replaces illegal HTML characters with corresponding valid escape sequences.
\[escape\_spaces\name
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:createDataSource-String_ret|text=|trigger=button}{sub-section}{sub-section:createDataSource-String_ret|trigger=none|class=sIndent}[String] -- if true, replaces text spaces with non\-breaking space tags ( ) and tabs by four non\-breaking space tags.
\[multi\_line\_markup\] -- if true, multiLineMarkup will enforce new lines that are in the text; single new lines will be replaced by <br>, multiple new lines will be replaced by <p>
\[pretty\_indent\] -- if true, adds indentation for more readable HTML code.
\[add\_column\_names\] -- if false, column headers will not be added to the table.
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getAsHTML_ret|text=|trigger=button}{sub-section}{sub-section:getAsHTML_ret|trigger=none|class=sIndent}[String] -- String html.{sub-section}{String uri reference to the created data source.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:createDataSource-String_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:createDataSource-String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:createDataSource-String_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:createDataSource-String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show:permission=edit}{tr:id=seesam}{td}*Also seeSample*\\{sub-section:getAsHTMLcreateDataSource-String_seesam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getAsHTMLcreateDataSource-String_seesam|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getAsHTML_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getAsHTML_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getAsHTML_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getAsHTML_sam|trigger=none}{code:language=javascript}
//gets a dataset based on a query
//useful to limit the number of rows
var maxReturnedRows = 10;
var query = 'select c1,c2,c3 from test_table where start_date = ?';

//to access data by name, do not use '.' or special characters in names or aliases
var args = new Array();
args[0] = order_date //or new Date();
var dataset = databaseManager.getDataSetByQuery(databaseManager.getDataSourceServerName(controller.getDataSource()),query,args,maxReturnedRows);

// gets a dataset with escape values; escape spaces (lines will not wrap); no multi-line markup; with pretty indentation; shows column names
var htmlTable = dataset.getAsHTML(true, true, false, true, true);

//assigns the dataset to a field and sets the display type to HTML_AREA
//assuming the html_field is a global text variable
globals.html_field = '<html>'+dataset.getAsHTML()+'</html>';

//Note: To display an HTML_AREA field as an HTML page, add HTML tags at the beginning '<html>' and at the end '</html>'.code:language=javascript}
ds.addColumn('my_id'); // note: use regular javascript identifiers so they can be used in scripting
	ds.addColumn('my_label');
	var uri = ds.createDataSource('mydata', [JSColumn.INTEGER, JSColumn.TEXT]);
	var jsform = solutionModel.newForm(fname, uri, null, true, 300, 300);

 var query = 'select customerid, address, city, country  from customers';
 var ds2 = databaseManager.getDataSetByQuery('example_data', query, null, 999);
 var uri2 = ds2.createDataSource('mydata2'); // types are inferred from query result
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=createDataSource-String_Object|class=node}{tr:id=name}{td}h6.createDataSource{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}createDataSource{span}{span:id=iets|style=float: left;}\(name, types){span}{td}{tr}{tr:id=des}{td}{sub-section:createDataSource-String_Object_des|text=|trigger=button}{sub-section}{sub-section:createDataSource-String_Object_des|trigger=none|class=sIndent}Create a data source from the data set with specified name and using specified types.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:createDataSource-String_Object_snc|text=|trigger=button}{sub-section}{sub-section:createDataSource-String_Object_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:createDataSource-String_Object_prs|text=|trigger=button}{sub-section}{sub-section:createDataSource-String_Object_prs|trigger=none|class=sIndent}\{[String]} name -- data source name
\{[Object]} types -- array of types as defined in JSColumn
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:createDataSource-String_Object_ret|text=|trigger=button}{sub-section}{sub-section:createDataSource-String_Object_ret|trigger=none|class=sIndent}[String] -- String uri reference to the created data source.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:createDataSource-String_Object_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:createDataSource-String_Object_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:createDataSource-String_Object_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:createDataSource-String_Object_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:createDataSource-String_Object_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:createDataSource-String_Object_sam|trigger=none}{code:language=javascript}
ds.addColumn('my_id'); // note: use regular javascript identifiers so they can be used in scripting
	ds.addColumn('my_label');
	var uri = ds.createDataSource('mydata', [JSColumn.INTEGER, JSColumn.TEXT]);
	var jsform = solutionModel.newForm(fname, uri, null, true, 300, 300);

 var query = 'select customerid, address, city, country  from customers';
 var ds2 = databaseManager.getDataSetByQuery('example_data', query, null, 999);
 var uri2 = ds2.createDataSource('mydata2'); // types are inferred from query result
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getAsHTML|class=node}{tr:id=name}{td}h6.getAsHTML{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}getAsHTML{span}{span:id=iets|style=float: left;}\(\[escape_values\], \[escape_spaces\], \[multi_line_markup\], \[pretty_indent\], \[add_column_names\]){span}{td}{tr}{tr:id=des}{td}{sub-section:getAsHTML_des|text=|trigger=button}{sub-section}{sub-section:getAsHTML_des|trigger=none|class=sIndent}Get the dataset as an html table.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getAsHTML_snc|text=|trigger=button}{sub-section}{sub-section:getAsHTML_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getAsHTML_prs|text=|trigger=button}{sub-section}{sub-section:getAsHTML_prs|trigger=none|class=sIndent}\[escape\_values\] -- if true, replaces illegal HTML characters with corresponding valid escape sequences.
\[escape\_spaces\] -- if true, replaces text spaces with non\-breaking space tags ( ) and tabs by four non\-breaking space tags.
\[multi\_line\_markup\] -- if true, multiLineMarkup will enforce new lines that are in the text; single new lines will be replaced by <br>, multiple new lines will be replaced by <p>
\[pretty\_indent\] -- if true, adds indentation for more readable HTML code.
\[add\_column\_names\] -- if false, column headers will not be added to the table.
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getAsHTML_ret|text=|trigger=button}{sub-section}{sub-section:getAsHTML_ret|trigger=none|class=sIndent}[String] -- String html.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getAsHTML_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getAsHTML_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getAsHTML_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getAsHTML_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getAsHTML_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getAsHTML_sam|trigger=none}{code:language=javascript}
//gets a dataset based on a query
//useful to limit the number of rows
var maxReturnedRows = 10;
var query = 'select c1,c2,c3 from test_table where start_date = ?';

//to access data by name, do not use '.' or special characters in names or aliases
var args = new Array();
args[0] = order_date //or new Date();
var dataset = databaseManager.getDataSetByQuery(databaseManager.getDataSourceServerName(controller.getDataSource()),query,args,maxReturnedRows);

// gets a dataset with escape values; escape spaces (lines will not wrap); no multi-line markup; with pretty indentation; shows column names
var htmlTable = dataset.getAsHTML(true, true, false, true, true);

//assigns the dataset to a field and sets the display type to HTML_AREA
//assuming the html_field is a global text variable
globals.html_field = '<html>'+dataset.getAsHTML()+'</html>';

//Note: To display an HTML_AREA field as an HTML page, add HTML tags at the beginning '<html>' and at the end '</html>'.
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getAsText|class=node}{tr:id=name}{td}h6.getAsText{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}getAsText{span}{span:id=iets|style=float: left;}\(column_separator, row_separator, value_delimiter, add_column_names){span}{td}{tr}{tr:id=des}{td}{sub-section:getAsText_des|text=|trigger=button}{sub-section}{sub-section:getAsText_des|trigger=none|class=sIndent}Get the dataset as formatted text.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getAsText_snc|text=|trigger=button}{sub-section}{sub-section:getAsText_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getAsText_prs|text=|trigger=button}{sub-section}{sub-section:getAsText_prs|trigger=none|class=sIndent}\{[String]} column_separator -- any specified column separator; examples: tab '\t'; comma ','; semicolon ';'; space ' ' .
\{[String]} row_separator -- the specified row separator; examples: new line '\n'.
\{[String]} value_delimiter -- the specified value delimiter; example: double quote '"'.
\{[Boolean]} add_column_names -- if true column names will be added as a first row.
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getAsText_ret|text=|trigger=button}{sub-section}{sub-section:getAsText_ret|trigger=none|class=sIndent}[String] -- String formatted text.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getAsText_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getAsText_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getAsText_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getAsText_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getAsText_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getAsText_sam|trigger=none}{code:language=javascript}
//assuming the variable dataset contains a dataset
//you can create csv or tab delimited results
var csv = dataset.getAsText(',','\n','"',true)
var tab = dataset.getAsText('\t','\n','"',true)
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getAsTextgetColumnAsArray|class=node}{tr:id=name}{td}h6.getAsTextgetColumnAsArray{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Object]\[String]{span}{span:id=iets|style=float: left; font-weight: bold;}getAsTextgetColumnAsArray{span}{span:id=iets|style=float: left;}\(column_separator, row_separator, value_delimiter, add_column_namesindex){span}{td}{tr}{tr:id=des}{td}{sub-section:getAsTextgetColumnAsArray_des|text=|trigger=button}{sub-section}{sub-section:getAsTextgetColumnAsArray_des|trigger=none|class=sIndent}Get theGet the column data of a dataset as formattedan textArray.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getAsTextgetColumnAsArray_snc|text=|trigger=button}{sub-section}{sub-section:getAsTextgetColumnAsArray_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getAsTextgetColumnAsArray_prs|text=|trigger=button}{sub-section}{sub-section:getAsText_prs|trigger=none|class=sIndent}\{[String]} column_separator -- any specified column separator; examples: tab '\t'; comma ','; semicolon ';'; space ' ' .
\{[String]} row_separator -- the specified row separator; examples: new line '\n'.
\{[String]} value_delimiter -- the specified value delimiter; example: double quote '"'.
\{[Boolean]} add_column_names -- boolean if true column names will be added as a first rowsub-section:getColumnAsArray_prs|trigger=none|class=sIndent}\{[Number]} index -- index of column (1\-based).
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getAsTextgetColumnAsArray_ret|text=|trigger=button}{sub-section}{sub-section:getAsTextgetColumnAsArray_ret|trigger=none|class=sIndent}[StringObject]\[] -- StringObject array formattedof textdata.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getAsTextgetColumnAsArray_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getAsTextgetColumnAsArray_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getAsTextgetColumnAsArray_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getAsTextgetColumnAsArray_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getAsTextgetColumnAsArray_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getAsTextgetColumnAsArray_sam|trigger=none}{code:language=javascript}
//assuming the variable the variable dataset contains a dataset
var dataArray = dataset.getColumnAsArray(1); //puts the contents from the first column of the dataset containsinto aan datasetarray
//once you can create csv or tab delimited results
var csv = dataset.getAsText(',','\n','"',true)
var tab = dataset.getAsText('\t','\n','"',true)have it as an array you can loop through it or feed it to a custom valuelist for example
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getColumnAsArraygetColumnName|class=node}{tr:id=name}{td}h6.getColumnAsArraygetColumnName{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[ObjectString]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getColumnAsArraygetColumnName{span}{span:id=iets|style=float: left;}\(index){span}{td}{tr}{tr:id=des}{td}{sub-section:getColumnAsArraygetColumnName_des|text=|trigger=button}{sub-section}{sub-section:getColumnAsArraygetColumnName_des|trigger=none|class=sIndent}Get thea column dataname ofbased a dataset as an Arrayon index.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getColumnAsArraygetColumnName_snc|text=|trigger=button}{sub-section}{sub-section:getColumnAsArraygetColumnName_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getColumnAsArraygetColumnName_prs|text=|trigger=button}{sub-section}{sub-section:getColumnAsArraygetColumnName_prs|trigger=none|class=sIndent}\{[Number]} index -- index of column (1\-based).
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getColumnAsArraygetColumnName_ret|text=|trigger=button}{sub-section}{sub-section:getColumnAsArraygetColumnName_ret|trigger=none|class=sIndent}[ObjectString]\[] -- ObjectString array ofcolumn dataname.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getColumnAsArraygetColumnName_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getColumnAsArraygetColumnName_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getColumnAsArraygetColumnName_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getColumnAsArraygetColumnName_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getColumnAsArraygetColumnName_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getColumnAsArraygetColumnName_sam|trigger=none}{code:language=javascript}
//assuming the variable dataset contains a dataset
var dataArray = dataset.getColumnAsArray(1); //puts the contents from the first column of the dataset into an array
//once you have it as an array you can loop through it or feed it to a custom valuelist for example
 contains a dataset
var firstColumName = dataset.getColumnName(1) //retrieves the first columnname into the variable firstColumName
//using a loop you can get all columnames in an array:
var query = 'select * from customers';
var dataset = databaseManager.getDataSetByQuery(databaseManager.getDataSourceServerName(controller.getDataSource()), query, null, 100);
var colArray = new Array()
for (var i = 1; i <= dataset.getMaxColumnIndex(); i++)
{
	colArray[i-1] = dataset.getColumnName(i)
	//note the -1, because an array is zero based and dataset is 1 based.
}
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getColumnNamegetException|class=node}{tr:id=name}{td}h6.getColumnNamegetException{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[StringServoyException]{span}{span:id=iets|style=float: left; font-weight: bold;}getColumnNamegetException{span}{span:id=iets|style=float: left;}\(index){span}{td}{tr}{tr:id=des}{td}{sub-section:getColumnNamegetException_des|text=|trigger=button}{sub-section}{sub-section:getColumnNamegetException_des|trigger=none|class=sIndent}Get the adatabase columnexception nameif basedan onerror indexoccurred.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getColumnNamegetException_snc|text=|trigger=button}{sub-section}{sub-section:getColumnNamegetException_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:getColumnNamegetException_prs|text=|trigger=button}{sub-section}{sub-section:getColumnNamegetException_prs|trigger=none|class=sIndent}\{[Number]} index -- index of column (1\-based).
{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getColumnNamegetException_ret|text=|trigger=button}{sub-section}{sub-section:getColumnNamegetException_ret|trigger=none|class=sIndent}[StringServoyException] -- String column name ServoyException exception or null when not available.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getColumnNamegetException_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getColumnNamegetException_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getColumnName_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getColumnName_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getColumnName_samgetException_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getColumnNamegetException_samlink|trigger=none}{code:language=javascript}
//assuming the variable dataset contains a dataset
var firstColumName = dataset.getColumnName(1) //retrieves the first columnname into the variable firstColumName
//using a loop you can get all columnames in an array:
var query = 'select * from customers';
var dataset = databaseManager.getDataSetByQuery(databaseManager.getDataSourceServerName(controller.getDataSource()), query, null, 100);
var colArray = new Array()
for (var i = 1; i <= dataset.getMaxColumnIndex(); i++)
{
	colArray[i-1] = dataset.getColumnName(i)
	//note the -1, because an array is zero based and dataset is 1 based.
}}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getException_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getException_sam|trigger=none}{code:language=javascript}
//assuming the variable dataset contains a dataset
var dbException = dataset.getException();
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getExceptiongetMaxColumnIndex|class=node}{tr:id=name}{td}h6.getExceptiongetMaxColumnIndex{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[ServoyExceptionNumber]{span}{span:id=iets|style=float: left; font-weight: bold;}getExceptiongetMaxColumnIndex{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}{sub-section:getExceptiongetMaxColumnIndex_des|text=|trigger=button}{sub-section}{sub-section:getExceptiongetMaxColumnIndex_des|trigger=none|class=sIndent}Get the databasenumber exceptionof ifcolumns anin errorthe occurreddataset.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getExceptiongetMaxColumnIndex_snc|text=|trigger=button}{sub-section}{sub-section:getExceptiongetMaxColumnIndex_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:getExceptiongetMaxColumnIndex_prs|text=|trigger=button}{sub-section}{sub-section:getExceptiongetMaxColumnIndex_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getExceptiongetMaxColumnIndex_ret|text=|trigger=button}{sub-section}{sub-section:getExceptiongetMaxColumnIndex_ret|trigger=none|class=sIndent}[ServoyExceptionNumber] -- ServoyExceptionint exceptionnumber or null when not availableof columns.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getExceptiongetMaxColumnIndex_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getExceptiongetMaxColumnIndex_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getExceptiongetMaxColumnIndex_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getExceptiongetMaxColumnIndex_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getExceptiongetMaxColumnIndex_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getExceptiongetMaxColumnIndex_sam|trigger=none}{code:language=javascript}
//assuming the variable dataset contains a dataset
for (var i = 1; i <= dataset.getMaxColumnIndex(); i++)
{
	colArray[i-1] = dataset.getColumnName(i)
	//assuming the variable dataset containshave to subtract 1, because an array is zero based and a dataset varis dbException1 = dataset.getException();based.
}
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getMaxColumnIndexgetMaxRowIndex|class=node}{tr:id=name}{td}h6.getMaxColumnIndexgetMaxRowIndex{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Number]{span}{span:id=iets|style=float: left; font-weight: bold;}getMaxColumnIndexgetMaxRowIndex{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}{sub-section:getMaxColumnIndexgetMaxRowIndex_des|text=|trigger=button}{sub-section}{sub-section:getMaxColumnIndexgetMaxRowIndex_des|trigger=none|class=sIndent}Get the number of columnsrows in the dataset.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getMaxColumnIndexgetMaxRowIndex_snc|text=|trigger=button}{sub-section}{sub-section:getMaxColumnIndexgetMaxRowIndex_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:getMaxColumnIndexgetMaxRowIndex_prs|text=|trigger=button}{sub-section}{sub-section:getMaxColumnIndexgetMaxRowIndex_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getMaxColumnIndexgetMaxRowIndex_ret|text=|trigger=button}{sub-section}{sub-section:getMaxColumnIndexgetMaxRowIndex_ret|trigger=none|class=sIndent}[Number] -- int number of columnsrows.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getMaxColumnIndexgetMaxRowIndex_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getMaxColumnIndexgetMaxRowIndex_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getMaxColumnIndexgetMaxRowIndex_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getMaxColumnIndexgetMaxRowIndex_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getMaxColumnIndexgetMaxRowIndex_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getMaxColumnIndexgetMaxRowIndex_sam|trigger=none}{code:language=javascript}
//assuming the variable dataset contains a dataset
for (var i = 1; i <= dataset.getMaxColumnIndex(); i++)
{
	colArray[i-1] = dataset.getColumnName(i)
	//haveassuming tothe subtractvariable 1,dataset becausecontains ana arraydataset
isvar zerototalRows based= and a dataset is 1 based.
}
.getMaxRowIndex();
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getMaxRowIndexgetRowAsArray|class=node}{tr:id=name}{td}h6.getMaxRowIndexgetRowAsArray{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Object]\[Number]{span}{span:id=iets|style=float: left; font-weight: bold;}getMaxRowIndexgetRowAsArray{span}{span:id=iets|style=float: left;}\(index){span}{td}{tr}{tr:id=des}{td}{sub-section:getMaxRowIndexgetRowAsArray_des|text=|trigger=button}{sub-section}{sub-section:getMaxRowIndexgetRowAsArray_des|trigger=none|class=sIndent}Get the numberrow data of a rowsdataset inas thean datasetArray.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getMaxRowIndexgetRowAsArray_snc|text=|trigger=button}{sub-section}{sub-section:getMaxRowIndexgetRowAsArray_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:getMaxRowIndexgetRowAsArray_prs|text=|trigger=button}{sub-section}{sub-section:getMaxRowIndexgetRowAsArray_prs|trigger=none|class=sIndent}\{[Number]} index -- index of row (1\-based).
{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getMaxRowIndexgetRowAsArray_ret|text=|trigger=button}{sub-section}{sub-section:getMaxRowIndexgetRowAsArray_ret|trigger=none|class=sIndent}[Object]\[Number] -- intObject numberarray of rowsdata.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getMaxRowIndexgetRowAsArray_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getMaxRowIndexgetRowAsArray_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getMaxRowIndexgetRowAsArray_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getMaxRowIndexgetRowAsArray_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getMaxRowIndexgetRowAsArray_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getMaxRowIndexgetRowAsArray_sam|trigger=none}{code:language=javascript}
//assuming the variable dataset contains a dataset
var totalRowsdataArray = dataset.getMaxRowIndexgetRowAsArray(1); //puts the contents from the first row of the dataset into an array
//once you have it as an array you can loop through it
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getRowAsArraygetValue|class=node}{tr:id=name}{td}h6.getRowAsArraygetValue{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Object]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getRowAsArraygetValue{span}{span:id=iets|style=float: left;}\(indexrow, col){span}{td}{tr}{tr:id=des}{td}{sub-section:getRowAsArraygetValue_des|text=|trigger=button}{sub-section}{sub-section:getRowAsArraygetValue_des|trigger=none|class=sIndent}Get the value specified by row dataand ofcolumn aposition datasetfrom asthe an Arraydataset.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getRowAsArraygetValue_snc|text=|trigger=button}{sub-section}{sub-section:getRowAsArraygetValue_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getRowAsArraygetValue_prs|text=|trigger=button}{sub-section}{sub-section:getRowAsArraygetValue_prs|trigger=none|class=sIndent}\{[Number]} indexrow -- index of row ( row number, 1\-based
\{[Number]} col -- column number, 1\-based).
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getRowAsArraygetValue_ret|text=|trigger=button}{sub-section}{sub-section:getRowAsArraygetValue_ret|trigger=none|class=sIndent}[Object]\[] -- Object array of data.value{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getRowAsArraygetValue_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getRowAsArraygetValue_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getRowAsArraygetValue_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getRowAsArraygetValue_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getRowAsArraygetValue_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getRowAsArraygetValue_sam|trigger=none}{code:language=javascript}
//assuming the variable dataset contains a dataset
var dataArraydataAtRow2Col1 = dataset.getRowAsArraygetValue(2, 1); //puts the contents from
the first row of the dataset into an array
//once you have it as an array you can loop through it
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getValuehadMoreData|class=node}{tr:id=name}{td}h6.getValuehadMoreData{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[ObjectBoolean]{span}{span:id=iets|style=float: left; font-weight: bold;}getValuehadMoreData{span}{span:id=iets|style=float: left;}\(row, col){span}{td}{tr}{tr:id=des}{td}{sub-section:getValuehadMoreData_des|text=|trigger=button}{sub-section}{sub-section:getValuehadMoreData_des|trigger=none|class=sIndent}GetReturn true if there is more data in the resultset valuethen specified by rowmaxReturnedRows andat column position from the datasetquery time.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getValuehadMoreData_snc|text=|trigger=button}{sub-section}{sub-section:getValuehadMoreData_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:getValuehadMoreData_prs|text=|trigger=button}{sub-section}{sub-section:getValuehadMoreData_prs|trigger=none|class=sIndent}\{[Number]} row -- row number, 1\-based
\{[Number]} col -- column number, 1\-based
{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getValuehadMoreData_ret|text=|trigger=button}{sub-section}{sub-section:getValuehadMoreData_ret|trigger=none|class=sIndent}[ObjectBoolean] -- Object valueboolean more data available{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getValuehadMoreData_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getValuehadMoreData_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getValuehadMoreData_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getValuehadMoreData_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getValuehadMoreData_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getValuehadMoreData_sam|trigger=none}{code:language=javascript}
//assuming the variable dataset contains a dataset
var dataAtRow2Col1 = dataset.getValue(2, 1);var ds = databaseManager.getDataSetByQuery('example_data', 'select order_id from orders', null, 10000)
if (ds.hadMoreData())
{
	// handle large result
}
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=hadMoreDataremoveColumn|class=node}{tr:id=name}{td}h6.hadMoreDataremoveColumn{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}hadMoreDataremoveColumn{span}{span:id=iets|style=float: left;}\(index){span}{td}{tr}{tr:id=des}{td}{sub-section:hadMoreDataremoveColumn_des|text=|trigger=button}{sub-section}{sub-section:hadMoreDataremoveColumn_des|trigger=none|class=sIndent}ReturnRemove truea ifcolumn thereby isindex morefrom data in the resultset then specified by maxReturnedRows at query timedataset.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:hadMoreDataremoveColumn_snc|text=|trigger=button}{sub-section}{sub-section:hadMoreDataremoveColumn_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:hadMoreDataremoveColumn_prs|text=|trigger=button}{sub-section}{sub-section:hadMoreDataremoveColumn_prs|trigger=none|class=sIndent}\{[Number]} index -- index of column to remove (1\-based)
{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:hadMoreDataremoveColumn_ret|text=|trigger=button}{sub-section}{sub-section:hadMoreDataremoveColumn_ret|trigger=none|class=sIndent}[Boolean] -- true booleanif moresucceeded, dataelse availablefalse.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:hadMoreDataremoveColumn_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:hadMoreDataremoveColumn_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:hadMoreDataremoveColumn_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:hadMoreDataremoveColumn_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:hadMoreDataremoveColumn_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:hadMoreDataremoveColumn_sam|trigger=none}{code:language=javascript}
var//assuming dsthe = databaseManager.getDataSetByQuery('example_data', 'select order_id from orders', null, 10000)
if (ds.hadMoreData())
{
	// handle large result
}variable dataset contains a dataset
var success = dataset.removeColumn(1); // removes first column
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=removeColumnremoveRow|class=node}{tr:id=name}{td}h6.removeColumnremoveRow{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]void{span}{span:id=iets|style=float: left; font-weight: bold;}removeColumnremoveRow{span}{span:id=iets|style=float: left;}\(indexrow){span}{td}{tr}{tr:id=des}{td}{sub-section:removeColumnremoveRow_des|text=|trigger=button}{sub-section}{sub-section:removeColumnremoveRow_des|trigger=none|class=sIndent}Remove a columnrow by index from the dataset.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:removeColumnremoveRow_snc|text=|trigger=button}{sub-section}{sub-section:removeColumnremoveRow_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:removeColumnremoveRow_prs|text=|trigger=button}{sub-section}{sub-section:removeColumnremoveRow_prs|trigger=none|class=sIndent}\{[Number]} indexrow -- row index of column to remove, (1\-based)1 for all rows
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:removeColumnremoveRow_ret|text=|trigger=button}{sub-section}{sub-section:removeColumnremoveRow_ret|trigger=none|class=sIndent}[Boolean] -- true if succeeded, else false.void{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:removeColumnremoveRow_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:removeColumnremoveRow_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:removeColumnremoveRow_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:removeColumnremoveRow_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:removeColumnremoveRow_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:removeColumnremoveRow_sam|trigger=none}{code:language=javascript}
//assuming the variable dataset contains a dataset
var success =dataset.removeRow(1); //removes the first row
dataset.removeColumnremoveRow(-1); // removes firstall columnrows
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=removeRowsetValue|class=node}{tr:id=name}{td}h6.removeRowsetValue{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}removeRowsetValue{span}{span:id=iets|style=float: left;}\(row, col, obj){span}{td}{tr}{tr:id=des}{td}{sub-section:removeRowsetValue_des|text=|trigger=button}{sub-section}{sub-section:removeRowsetValue_des|trigger=none|class=sIndent}Remove a rowSet the value specified by row and column position from the dataset.
Use row = \-1, to set columnnames.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:removeRowsetValue_snc|text=|trigger=button}{sub-section}{sub-section:removeRowsetValue_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:removeRowsetValue_prs|text=|trigger=button}{sub-section}{sub-section:removeRowsetValue_prs|trigger=none|class=sIndent}\{[Number]} row|class=sIndent}\{[Number]} row -- row number, 1\-based
\{[Number]} col -- column number, 1\-based
\{[Object]} obj -- rowthe indexvalue to remove, \-1 for all rowsbe stored at the given row and column.
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:removeRowsetValue_ret|text=|trigger=button}{sub-section}{sub-section:removeRowsetValue_ret|trigger=none|class=sIndent}void{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:removeRowsetValue_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:removeRowsetValue_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:removeRowsetValue_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:removeRowsetValue_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:removeRowsetValue_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:removeRowsetValue_sam|trigger=none}{code:language=javascript}
//assuming the variable dataset contains a dataset
dataset.removeRow(1); //removes the first row
dataset.removeRow(-1); //removes all rows
getValue(2, 1,'data');
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=setValuesort-Number_Boolean|class=node}{tr:id=name}{td}h6.setValuesort{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}setValuesort{span}{span:id=iets|style=float: left;}\(row, col, objsort_direction){span}{td}{tr}{tr:id=des}{td}{sub-section:setValuesort-Number_Boolean_des|text=|trigger=button}{sub-section}{sub-section:setValuesort-Number_Boolean_des|trigger=none|class=sIndent}SetSort the valuedataset specified by row and column position from the dataset.
Use row = \-1, to set columnnameson the given column in ascending or descending.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:setValuesort-Number_Boolean_snc|text=|trigger=button}{sub-section}{sub-section:setValuesort-Number_Boolean_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:setValuesort-Number_Boolean_prs|text=|trigger=button}{sub-section}{sub-section:setValuesort-Number_Boolean_prs|trigger=none|class=sIndent}\{[Number]} row -- row number, 1\-based
\{[Number]} col -- column number, 1\-based
\{[ObjectBoolean]} objsort_direction -- thetrue valuefor toascending, befalse storedfor at the given row and column.
descending
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:setValuesort-Number_Boolean_ret|text=|trigger=button}{sub-section}{sub-section:setValuesort-Number_Boolean_ret|trigger=none|class=sIndent}void{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:setValuesort-Number_Boolean_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:setValuesort-Number_Boolean_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:setValuesort-Number_Boolean_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:setValuesort-Number_Boolean_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:setValuesort-Number_Boolean_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:setValue:sort-Number_Boolean_sam|trigger=none}{code:language=javascript}
//assuming the variable dataset contains a dataset
dataset.getValuesort(2, 1,'data'false);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=sort-Function|class=node}{tr:id=name}{td}h6.sort{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}sort{span}{span:id=iets|style=float: left;}\(col, sort_directionrowComparator){span}{td}{tr}{tr:id=des}{td}{sub-section:sort-Function_des|text=|trigger=button}{sub-section}{sub-section:sort-Function_des|trigger=none|class=sIndent}Sort the dataset on the given column in ascending or descending using a comparator function.
The comparator function is called to compare
two rows, that are passed as arguments, and
it will return \-1/0/1 if the first row is less/equal/greater
then the second row.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:sort-Function_snc|text=|trigger=button}{sub-section}{sub-section:sort-Function_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:sort-Function_prs|text=|trigger=button}{sub-section}{sub-section:sort-Function_prs|trigger=none|class=sIndent}\{[NumberFunction]} col -- column number, 1\-based
\{[Boolean]} sort_directionrowComparator -- booleanthe truefunction forused ascending,to falsecompare fortwo descendingrows
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:sort-Function_ret|text=|trigger=button}{sub-section}{sub-section:sort-Function_ret|trigger=none|class=sIndent}void{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:sort-Function_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:sort-Function_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:sort-Function_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:sort-Function_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:sort-Function_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:sort-Function_sam|trigger=none}{code:language=javascript}
//assuming the variable dataset contains a dataset
dataset.sort(1,false)
dataset.sort(mySortFunction);
 
function mySortFunction(r1, r2)
{
	var o = 0;
	if(r1[0] < r2[0])
	{
		o = -1;
	}
	else if(r1[0] > r2[0])
	{
		o = 1;
	}
	return o;
}
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}