Child pages
  • JSValueList

Versions Compared

Key

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

{table:id=|class=servoy sSummary}{colgroup}{column:width=80px|padding=0px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Constants Summary{th}{tr}{tbody}{tr}{td}[Number]{td}{td}[#CUSTOM_VALUES]
Constant to set the valueListType of a JSValueList.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#DATABASE_VALUES]
Constant to set the valueListType of a JSValueList.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#EMPTY_VALUE_ALWAYS]
Constant to set/get the addEmptyValue property of a JSValueList.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#EMPTY_VALUE_NEVER]
Constant to set/get the addEmptyValue property of a JSValueList.{td}{tr}{tbody}{table}\\ 

{table:id=|class=servoy sSummary}{colgroup}{column:width=80px|padding=0px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Property Summary{th}{tr}{tbody}{tr}{td}[Number]{td}{td}[#addEmptyValue]
Property that tells if an empty value must be shown next to the items in the value list.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#customValues]
A string with the elements in the valuelist.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#dataSource]
Compact representation of the names of the server and table that 
are used for loading the data from the database.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#globalMethod]
A global method that provides the data for the valuelist.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#name]
The name of the value list.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#relationName]
The name of the relation that is used for loading data from the database.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#separator]
A String representing the separator that should be used when multiple
display dataproviders are set, when the value list has the type set to
database values.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#serverName]
The name of the database server that is used for loading the values when 
the value list has the type set to database values.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#sortOptions]
Sort options that are applied when the valuelist loads its data
from the database.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#tableName]
The name of the database table that is used for loading the values when 
the value list has the type set to database values.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#useTableFilter]
Flag that tells if the name of the valuelist should be applied as a filter on the
'valuelist\_name' column when retrieving the data from the database.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#valueListType]
The type of the valuelist.{td}{tr}{tbody}{table}\\ 

{table:id=|class=servoy sSummary}{colgroup}{column:width=80px|padding=0px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Method Summary{th}{tr}{tbody}{tr}{td}[Object]\[]{td}{td}[#getDisplayDataProviderIds]\()
Returns an array of the dataproviders that will be used to display the valuelist value.{td}{tr}{tbody}{tbody}{tr}{td}[Object]\[]{td}{td}[#getReturnDataProviderIds]\()
Returns an array of the dataproviders that will be used to define the valuelist value that is saved.{td}{tr}{tbody}{tbody}{tr}{td}[UUID]{td}{td}[#getUUID]\()
Returns the UUID of the value list{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#setDisplayDataProviderIds]\()
Set the display dataproviders.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#setDisplayDataProviderIds]\(dataprovider1)
Set the display dataproviders.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#setDisplayDataProviderIds]\(dataprovider1, dataprovider2)
Set the display dataproviders.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#setDisplayDataProviderIds]\(dataprovider1, dataprovider2, dataprovider3)
Set the display dataproviders.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#setReturnDataProviderIds]\()
Set the return dataproviders.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#setReturnDataProviderIds]\(dataprovider1)
Set the return dataproviders.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#setReturnDataProviderIds]\(dataprovider1, dataprovider2)
Set the return dataproviders.{td}{tr}{tbody}{tbody}{tr}{td}void{td}{td}[#setReturnDataProviderIds]\(dataprovider1, dataprovider2, dataprovider3)
Set the return dataproviders.{td}{tr}{tbody}{table}\\ 

{table:id=constant|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Constants Details{th}{tr}{tbody:id=CUSTOM_VALUES|class=node}{tr:id=name}{td}h6.CUSTOM_VALUES{td}{tr}{builder-show:permission=edit}{tr:id=desret}{td}{sub-section:CUSTOM_VALUES_des|trigger=button|text=}{sub-section}{sub-section:CUSTOM_VALUES_des|trigger=none|*Returns*\\{div:class=sIndent}Replace with description{sub-section[Number]{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=sncsam}{td}*SinceSample*\\{sub-section:CUSTOM_VALUES_snc|trigger=button|text=}{sub-section}{sub-section:CUSTOM_VALUES_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:CUSTOM_VALUES_prs|trigger=button|text=}{sub-section}{sub-section:CUSTOM_VALUES_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-showdiv:class=sIndent}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.DATABASE_VALUES);
vlist.valueListType = JSValueList.CUSTOM_VALUES; // Change the type to custom values.
vlist.customValues = "one\ntwo\nthree\nfour";
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=DATABASE_VALUES}{tr:id=name}{td}h6.DATABASE_VALUES{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:CUSTOM_VALUES_ret|trigger=button|text=}{sub-section}{sub-section:CUSTOM_VALUES_ret|trigger=none|div:class=sIndent}[Number]{sub-sectiondiv}{td}{tr}{builder-showtr:permissionid=editsam}{tr:id=see}{td}*Also seeSample*\\{sub-section:CUSTOM_VALUES_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:CUSTOM_VALUES_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:CUSTOM_VALUES_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:CUSTOM_VALUES_link|trigger=none}{sub-sectioncode:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.CUSTOM_VALUES);
vlist.valueListType = JSValueList.DATABASE_VALUES; // Change the type to database values.
vlist.dataSource = 'db:/example_data/parent_table';
vlist.setDisplayDataProviderIds('parent_table_text');
vlist.setReturnDataProviderIds('parent_table_text', 'parent_table_id');
vlist.separator = ' ## ';
vlist.sortOptions = 'parent_table_text desc';
{code}{div}{td}{tr}{builder-showtr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=EMPTY_VALUE_ALWAYS}{tr:id=name}{td}h6.EMPTY_VALUE_ALWAYS{td}{tr}{tr:id=samret}{td}*SampleReturns*\\{sub-section:CUSTOM_VALUES_sam|trigger=button|text=}{sub-section}div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{sub-section:CUSTOM_VALUES_sam|trigger=none}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.DATABASECUSTOM_VALUES);
vlist.valueListTypecustomValues = JSValueList.CUSTOM_VALUES; // Change the type to custom values.
vlist.customValues = "one\ntwo\nthree\nfour";
{code}{sub-section"one\ntwo\nthree\nfour";
vlist.addEmptyValue = JSValueList.EMPTY_VALUE_ALWAYS;
var cmb = form.newComboBox('my_table_text', 10, 10, 100, 20);
cmb.valuelist = vlist;
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=DATABASE_VALUES|class=nodeEMPTY_VALUE_NEVER}{tr:id=name}{td}h6.DATABASEEMPTY_VALUE_VALUESNEVER{td}{tr}{builder-show:permission=edit}{tr:id=desret}{td}{sub-section:DATABASE_VALUES_des|trigger=button|text=}{sub-section}{sub-section:DATABASE_VALUES_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:DATABASE_VALUES_snc|trigger=button|text=}{sub-section}{sub-section:DATABASE_VALUES_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:DATABASE_VALUES_prs|trigger=button|text=}{sub-section}{sub-section:DATABASE_VALUES_prs|trigger=none|class=sIndent}{sub-section*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.CUSTOM_VALUES);
vlist.customValues = "one\ntwo\nthree\nfour";
vlist.addEmptyValue = JSValueList.EMPTY_VALUE_NEVER;
var cmb = form.newComboBox('my_table_text', 10, 10, 100, 20);
cmb.valuelist = vlist;
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{builder-showtbody}{trtable}\\ 

{table:id=ret=property|class=servoy sDetail}{tdcolgroup}*Returns*\\{sub-section:DATABASE_VALUES_ret|trigger=button|text=}{sub-section}{sub-section:DATABASE_VALUES_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Property Details{th}{tr}{tbody:id=addEmptyValue}{tr:id=name}{td}h6.addEmptyValue{td}{tr}{tr:id=seeret}{td}*Also seeReturns*\\{sub-section:DATABASE_VALUES_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:DATABASE_VALUES_see|trigger=none}{sub-section}{div:class=sIndent}[Number]{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=linksam}{td}*External linksSample*\\{sub-section:DATABASE_VALUES_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:DATABASE_VALUES_link|trigger=none}{sub-sectioncode:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.CUSTOM_VALUES);
vlist.customValues = "one\ntwo\nthree\nfour";
vlist.addEmptyValue = JSValueList.EMPTY_VALUE_NEVER;
var cmb = form.newComboBox('my_table_text', 10, 10, 100, 20);
cmb.valuelist = vlist;
{code}{div}{td}{tr}{builder-show}{tr:idclass=samlastDetailRow}{td}*Sample*\\{sub-section:DATABASE_VALUES_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:DATABASE_VALUES_sam|trigger=none}{code:language=javascript}
var vlist{td}{tr}{tbody}{tbody:id=customValues}{tr:id=name}{td}h6.customValues{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[String]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var vl1 = solutionModel.newValueList('options', "customtext",JSValueList.CUSTOM_VALUES);
vlistvl1.valueListTypecustomValues = JSValueList.DATABASE_VALUES"customvalue1\ncustomvalue2";
//var Changevl2 the type to database values.
vlist.dataSource = 'db:/example_data/parent_table';
vlist.setDisplayDataProviderIds('parent_table_text');
vlist.setReturnDataProviderIds('parent_table_text', 'parent_table_id');
vlist.separator = ' ## ';
vlist.sortOptions = 'parent_table_text desc';
{code}{sub-section}{= solutionModel.newValueList("customid",JSValueList.CUSTOM_VALUES);
vl2.customValues = "customvalue1|1\ncustomvalue2|2";
var form = solutionModel.newForm("customvaluelistform",controller.getDataSource(),null,true,300,300);
var combo1 = form.newComboBox("scopes.globals.text",10,10,120,20);
combo1.valuelist = vl1;
var combo2 = form.newComboBox("scopes.globals.id",10,60,120,20);
combo2.valuelist = vl2;
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=EMPTY_VALUE_ALWAYS|class=nodedataSource}{tr:id=name}{td}h6.EMPTY_VALUE_ALWAYSdataSource{td}{tr}{builder-show:permission=edit}{tr:id=desret}{td}{sub-section:EMPTY_VALUE_ALWAYS_des|trigger=button|text=}{sub-section}{sub-section:EMPTY_VALUE_ALWAYS_des|trigger=none|class=sIndent}Replace with description{sub-section*Returns*\\{div:class=sIndent}[String]{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=sncsam}{td}*SinceSample*\\{sub-section:EMPTY_VALUE_ALWAYS_snc|trigger=button|text=}{sub-section}{sub-section:EMPTY_VALUE_ALWAYS_snc|trigger=none|class=sIndent} Replace with version info{sub-sectiondiv:class=sIndent}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.DATABASE_VALUES);
vlist.dataSource = 'db:/example_data/parent_table';
vlist.setDisplayDataProviderIds('parent_table_text');
vlist.setReturnDataProviderIds('parent_table_text');
{code}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prstr:class=lastDetailRow}{td}{td}*Parameters*\\{sub-section:EMPTY_VALUE_ALWAYS_prs|trigger=button|text=}{sub-section}{sub-section:EMPTY_VALUE_ALWAYS_prs|trigger=none|class=sIndent}{sub-section}{tr}{tbody}{tbody:id=globalMethod}{tr:id=name}{td}h6.globalMethod{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:EMPTY_VALUE_ALWAYS_ret|trigger=button|text=}{sub-section}{sub-section:EMPTY_VALUE_ALWAYS_ret|trigger=none|div:class=sIndent}[NumberJSMethod]{sub-sectiondiv}{td}{tr}{builder-show:permission=edit}{tr:id=seesam}{td}*Also seeSample*\\{sub-section:EMPTY_VALUE_ALWAYS_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:EMPTY_VALUE_ALWAYS_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:EMPTY_VALUE_ALWAYS_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:EMPTY_VALUE_ALWAYS_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:EMPTY_VALUE_ALWAYS_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:EMPTY_VALUE_ALWAYS_sam|trigger=none}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.CUSTOM_VALUES);
vlist.customValues = "one\ntwo\nthree\nfour";
vlist.addEmptyValue = JSValueList.EMPTY_VALUE_ALWAYS;
var cmb = form.newComboBox('my_table_text', 10, 10, 100, 20);
cmb.valuelist = vlist;
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=EMPTY_VALUE_NEVER|class=node}{tr:id=name}{td}h6.EMPTY_VALUE_NEVER{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:EMPTY_VALUE_NEVER_des|trigger=button|text=}{sub-section}{sub-section:EMPTY_VALUE_NEVER_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:EMPTY_VALUE_NEVER_snc|trigger=button|text=}{sub-section}{sub-section:EMPTY_VALUE_NEVER_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:EMPTY_VALUE_NEVER_prs|trigger=button|text=}{sub-section}{sub-section:EMPTY_VALUE_NEVER_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:EMPTY_VALUE_NEVER_ret|trigger=button|text=}{sub-section}{sub-section:EMPTY_VALUE_NEVER_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:EMPTY_VALUE_NEVER_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:EMPTY_VALUE_NEVER_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:EMPTY_VALUE_NEVER_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:EMPTY_VALUE_NEVER_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:EMPTY_VALUE_NEVER_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:EMPTY_VALUE_NEVER_sam|trigger=none}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.CUSTOM_VALUES);
vlist.customValues = "one\ntwo\nthree\nfour";
vlist.addEmptyValue = JSValueList.EMPTY_VALUE_NEVER;
var cmb = form.newComboBox('my_table_text', 10, 10, 100, 20);
cmb.valuelist = vlist;
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}\\ 

{table:id=property|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Property Details{th}{tr}{tbody:id=addEmptyValue|class=node}{tr:id=name}{td}h6.addEmptyValue{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:addEmptyValue_des|trigger=button|text=}{sub-section}{sub-section:addEmptyValue_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:addEmptyValue_snc|trigger=button|text=}{sub-section}{sub-section:addEmptyValue_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:addEmptyValue_prs|trigger=button|text=}{sub-section}{sub-section:addEmptyValue_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:addEmptyValue_ret|trigger=button|text=}{sub-section}{sub-section:addEmptyValue_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:addEmptyValue_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:addEmptyValue_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:addEmptyValue_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:addEmptyValue_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:addEmptyValue_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:addEmptyValue_sam|trigger=none}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.CUSTOM_VALUES);
vlist.customValues = "one\ntwo\nthree\nfour";
vlist.addEmptyValue = JSValueList.EMPTY_VALUE_NEVER;
var cmb = form.newComboBox('my_table_text', 10, 10, 100, 20);
cmb.valuelist = vlist;
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=customValues|class=node}{tr:id=name}{td}h6.customValues{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:customValues_des|trigger=button|text=}{sub-section}{sub-section:customValues_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:customValues_snc|trigger=button|text=}{sub-section}{sub-section:customValues_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:customValues_prs|trigger=button|text=}{sub-section}{sub-section:customValues_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:customValues_ret|trigger=button|text=}{sub-section}{sub-section:customValues_ret|trigger=none|class=sIndent}[String]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:customValues_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:customValues_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:customValues_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:customValues_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:customValues_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:customValues_sam|trigger=none}{code:language=javascript}
var vl1 = solutionModel.newValueList("customtext",JSValueList.CUSTOM_VALUES);
vl1.customValues = "customvalue1\ncustomvalue2";
var vl2 = solutionModel.newValueList("customid",JSValueList.CUSTOM_VALUES);
vl2.customValues = "customvalue1|1\ncustomvalue2|2";
var form = solutionModel.newForm("customvaluelistform",controller.getDataSource(),null,true,300,300);
var combo1 = form.newComboBox("scopes.globals.text",10,10,120,20);
combo1.valuelist = vl1;
var combo2 = form.newComboBox("scopes.globals.id",10,60,120,20);
combo2.valuelist = vl2;
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=dataSource|class=node}{tr:id=name}{td}h6.dataSource{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:dataSource_des|trigger=button|text=}{sub-section}{sub-section:dataSource_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:dataSource_snc|trigger=button|text=}{sub-section}{sub-section:dataSource_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:dataSource_prs|trigger=button|text=}{sub-section}{sub-section:dataSource_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:dataSource_ret|trigger=button|text=}{sub-section}{sub-section:dataSource_ret|trigger=none|class=sIndent}[String]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:dataSource_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:dataSource_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:dataSource_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:dataSource_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:dataSource_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:dataSource_sam|trigger=none}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.DATABASE_VALUES);
vlist.dataSource = 'db:/example_data/parent_table';
vlist.setDisplayDataProviderIds('parent_table_text');
vlist.setReturnDataProviderIds('parent_table_text');
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=globalMethod|class=node}{tr:id=name}{td}h6.globalMethod{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:globalMethod_des|trigger=button|text=}{sub-section}{sub-section:globalMethod_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:globalMethod_snc|trigger=button|text=}{sub-section}{sub-section:globalMethod_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:globalMethod_prs|trigger=button|text=}{sub-section}{sub-section:globalMethod_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:globalMethod_ret|trigger=button|text=}{sub-section}{sub-section:globalMethod_ret|trigger=none|class=sIndent}[JSMethod]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:globalMethod_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:globalMethod_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:globalMethod_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:globalMethod_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:globalMethod_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:globalMethod_sam|trigger=none}{code:language=javascript}
var listProvider = solutionModel.newGlobalMethod('globals', 'function getDataSetForValueList(displayValue, realValue, record, valueListName, findMode) {' +
		'	' +
		'var args = null;' +
		'/** @type QBSelect<db:/example_data/employees> */' +
		'var query = databaseManager.createSelect('db:/example_data/employees');' + 
		'/** @type  {JSDataSet} */' + 
		'var result = null;' + 
		'if (displayValue == null && realValue == null) {' +
		'  // TODO think about caching this result. can be called often!' +
		'  // return the complete list' +
		'  query.result.add(query.columns.firstname.concat(' ').concat(query.columns.lastname)).add(query.columns.employeeid);' +
		'  result = databaseManager.getDataSetByQuery(query,100);' + 
		'} else if (displayValue != null) {' +
		'  // TYPE_AHEAD filter call, return a filtered list' +
		'  args = [displayValue + "%", displayValue + "%"]' +
		'  query.result.add(query.columns.firstname.concat(' ').concat(query.columns.lastname)).add(query.columns.employeeid).' +
		'  root.where.add(query.or.add(query.columns.firstname.lower.like(args[0] + '%')).add(query.columns.lastname.lower.like(args[1] + '%')));' +
		'  result = databaseManager.getDataSetByQuery(query,100);' +  
		'} else if (realValue != null) {' +
		'  // TODO think about caching this result. can be called often!' +
		'  // real object not found in the current list, return 1 row with display,realvalue that will be added to the current list' +
		'  // dont return a complete list in this mode because that will be added to the list that is already there' +
		'  args = [realValue];' +
		'  query.result.add(query.columns.firstname.concat(' ').concat(query.columns.lastname)).add(query.columns.employeeid).' +
		'  root.where.add(query.columns.employeeid.eq(args[0]));' + 
		'  result = databaseManager.getDataSetByQuery(query,1);' + 
		'}' +
		'return result;' + 
		'}');
var vlist = solutionModel.newValueList('vlist', JSValueList.CUSTOM_VALUES);
vlist.globalMethod = listProvider;
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=name|class=node}{tr:id=name}{td}h6.name{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:name_des|trigger=button|text=}{sub-section}{sub-section:name_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:name_snc|trigger=button|text=}{sub-section}{sub-section:name_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:name_prs|trigger=button|text=}{sub-section}{sub-section:name_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:name_ret|trigger=button|text=}{sub-section}{sub-section:name_ret|trigger=none|class=sIndent}[String]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:name_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:name_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:name_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:name_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:name_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:name_sam|trigger=none}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.DATABASE_VALUES);
vlist.dataSource = 'db:/example_data/valuelists';
vlist.setDisplayDataProviderIds('valuelist_data');
vlist.setReturnDataProviderIds('valuelist_data');
vlist.useTableFilter = true;
vlist.name = 'two';
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=relationName|class=node}{tr:id=name}{td}h6.relationName{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:relationName_des|trigger=button|text=}{sub-section}{sub-section:relationName_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:relationName_snc|trigger=button|text=}{sub-section}{sub-section:relationName_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:relationName_prs|trigger=button|text=}{sub-section}{sub-section:relationName_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:relationName_ret|trigger=button|text=}{sub-section}{sub-section:relationName_ret|trigger=none|class=sIndent}[String]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:relationName_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:relationName_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:relationName_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:relationName_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:relationName_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:relationName_sam|trigger=none}{code:language=javascript}
var rel = solutionModel.newRelation('parent_to_child', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
rel.newRelationItem('parent_table_id', '=', 'child_table_parent_id');

var vlist = solutionModel.newValueList('options', JSValueList.DATABASE_VALUES);
vlist.dataSource = 'db:/example_data/parent_table';
vlist.relationName = 'parent_to_child';
vlist.setDisplayDataProviderIds('child_table_text');
vlist.setReturnDataProviderIds('child_table_text');
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=separator|class=node}{tr:id=name}{td}h6.separator{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:separator_des|trigger=button|text=}{sub-section}{sub-section:separator_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:separator_snc|trigger=button|text=}{sub-section}{sub-section:separator_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:separator_prs|trigger=button|text=}{sub-section}{sub-section:separator_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:separator_ret|trigger=button|text=}{sub-section}{sub-section:separator_ret|trigger=none|class=sIndent}[String]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:separator_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:separator_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:separator_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:separator_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:separator_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:separator_sam|trigger=none}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.CUSTOM_VALUES);
vlist.valueListType = JSValueList.DATABASE_VALUES; // Change the type to database values.
vlist.dataSource = 'db:/example_data/parent_table';
vlist.setDisplayDataProviderIds('parent_table_text');
vlist.setReturnDataProviderIds('parent_table_text', 'parent_table_id');
vlist.separator = ' ## ';
vlist.sortOptions = 'parent_table_text desc';
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=serverName|class=node}{tr:id=name}{td}h6.serverName{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:serverName_des|trigger=button|text=}{sub-section}{sub-section:serverName_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:serverName_snc|trigger=button|text=}{sub-section}{sub-section:serverName_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:serverName_prs|trigger=button|text=}{sub-section}{sub-section:serverName_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:serverName_ret|trigger=button|text=}{sub-section}{sub-section:serverName_ret|trigger=none|class=sIndent}[String]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:serverName_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:serverName_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:serverName_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:serverName_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:serverName_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:serverName_sam|trigger=none}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.CUSTOM_VALUES);
vlist.valueListType = JSValueList.DATABASE_VALUES; // Change the type to database values.
vlist.dataSource = 'db:/example_data/parent_table';
vlist.setDisplayDataProviderIds('parent_table_text');
vlist.setReturnDataProviderIds('parent_table_text', 'parent_table_id');
vlist.separator = ' ## ';
vlist.sortOptions = 'parent_table_text desc';
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=sortOptions|class=node}{tr:id=name}{td}h6.sortOptions{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:sortOptions_des|trigger=button|text=}{sub-section}{sub-section:sortOptions_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:sortOptions_snc|trigger=button|text=}{sub-section}{sub-section:sortOptions_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:sortOptions_prs|trigger=button|text=}{sub-section}{sub-section:sortOptions_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:sortOptions_ret|trigger=button|text=}{sub-section}{sub-section:sortOptions_ret|trigger=none|class=sIndent}[String]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:sortOptions_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:sortOptions_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:sortOptions_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:sortOptions_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:sortOptions_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:sortOptions_sam|trigger=none}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.CUSTOM_VALUES);
vlist.valueListType = JSValueList.DATABASE_VALUES; // Change the type to database values.
vlist.dataSource = 'db:/example_data/parent_table';
vlist.setDisplayDataProviderIds('parent_table_text');
vlist.setReturnDataProviderIds('parent_table_text', 'parent_table_id');
vlist.separator = ' ## ';
vlist.sortOptions = 'parent_table_text desc';
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=tableName|class=node}{tr:id=name}{td}h6.tableName{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:tableName_des|trigger=button|text=}{sub-section}{sub-section:tableName_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:tableName_snc|trigger=button|text=}{sub-section}{sub-section:tableName_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:tableName_prs|trigger=button|text=}{sub-section}{sub-section:tableName_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:tableName_ret|trigger=button|text=}{sub-section}{sub-section:tableName_ret|trigger=none|class=sIndent}[String]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:tableName_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:tableName_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:tableName_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:tableName_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:tableName_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:tableName_sam|trigger=none}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.CUSTOM_VALUES);
vlist.valueListType = JSValueList.DATABASE_VALUES; // Change the type to database values.
vlist.dataSource = 'db:/example_data/parent_table';
vlist.setDisplayDataProviderIds('parent_table_text');
vlist.setReturnDataProviderIds('parent_table_text', 'parent_table_id');
vlist.separator = ' ## ';
vlist.sortOptions = 'parent_table_text desc';
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=useTableFilter|class=node}{tr:id=name}{td}h6.useTableFilter{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:useTableFilter_des|trigger=button|text=}{sub-section}{sub-section:useTableFilter_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:useTableFilter_snc|trigger=button|text=}{sub-section}{sub-section:useTableFilter_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:useTableFilter_prs|trigger=button|text=}{sub-section}{sub-section:useTableFilter_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:useTableFilter_ret|trigger=button|text=}{sub-section}{sub-section:useTableFilter_ret|trigger=none|class=sIndent}[Boolean]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:useTableFilter_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:useTableFilter_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:useTableFilter_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:useTableFilter_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:useTableFilter_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:useTableFilter_sam|trigger=none}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.DATABASE_VALUES);
vlist.dataSource = 'db:/example_data/valuelists';
vlist.setDisplayDataProviderIds('valuelist_data');
vlist.setReturnDataProviderIds('valuelist_data');
vlist.useTableFilter = true;
vlist.name = 'two';
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=valueListType|class=node}{tr:id=name}{td}h6.valueListType{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:valueListType_des|trigger=button|text=}{sub-section}{sub-section:valueListType_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:valueListType_snc|trigger=button|text=}{sub-section}{sub-section:valueListType_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:valueListType_prs|trigger=button|text=}{sub-section}{sub-section:valueListType_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:valueListType_ret|trigger=button|text=}{sub-section}{sub-section:valueListType_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:valueListType_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:valueListType_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:valueListType_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:valueListType_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:valueListType_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:valueListType_sam|trigger=none}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.CUSTOM_VALUES);
vlist.valueListType = JSValueList.DATABASE_VALUES; // Change the type to database values.
vlist.dataSource = 'db:/example_data/parent_table';
vlist.setDisplayDataProviderIds('parent_table_text');
vlist.setReturnDataProviderIds('parent_table_text', 'parent_table_id');
vlist.separator = ' ## ';
vlist.sortOptions = 'parent_table_text desc';
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}\\ 

{table:id=function|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Method Details{th}{tr}{tbody:id=getDisplayDataProviderIds|class=node}{tr:id=name}{td}h6.getDisplayDataProviderIds{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Object]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getDisplayDataProviderIds{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getDisplayDataProviderIds_des|trigger=button|text=}{sub-section}{sub-section:getDisplayDataProviderIds_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getDisplayDataProviderIds_snc|trigger=button|text=}{sub-section}{sub-section:getDisplayDataProviderIds_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:getDisplayDataProviderIds_prs|trigger=button|text=}{sub-section}{sub-section:getDisplayDataProviderIds_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getDisplayDataProviderIds_ret|trigger=button|text=}{sub-section}{sub-section:getDisplayDataProviderIds_ret|trigger=none|class=sIndent}[Object]\[] -- An array of Strings representing the names of the display dataproviders.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getDisplayDataProviderIds_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getDisplayDataProviderIds_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getDisplayDataProviderIds_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getDisplayDataProviderIds_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getDisplayDataProviderIds_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getDisplayDataProviderIds_sam|trigger=none}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.DATABASE_VALUES);
vlist.dataSource = 'db:/example_data/parent_table';
vlist.setDisplayDataProviderIds('parent_table_text', 'parent_table_id');
vlist.setReturnDataProviderIds('parent_table_text');
var dispDP = vlist.getDisplayDataProviderIds();
for (var i=0; i<dispDP.length; i++)
	application.output(dispDP[i]);
var retDP = vlist.getReturnDataProviderIds();
for (var i=0; i<retDP.length; i++)
	application.output(retDP[i]);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getReturnDataProviderIds|class=node}{tr:id=name}{td}h6.getReturnDataProviderIds{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Object]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getReturnDataProviderIds{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getReturnDataProviderIds_des|trigger=button|text=}{sub-section}{sub-section:getReturnDataProviderIds_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getReturnDataProviderIds_snc|trigger=button|text=}{sub-section}{sub-section:getReturnDataProviderIds_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:getReturnDataProviderIds_prs|trigger=button|text=}{sub-section}{sub-section:getReturnDataProviderIds_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getReturnDataProviderIds_ret|trigger=button|text=}{sub-section}{sub-section:getReturnDataProviderIds_ret|trigger=none|class=sIndent}[Object]\[] -- An array of Strings representing the names of the return dataprovider.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getReturnDataProviderIds_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getReturnDataProviderIds_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getReturnDataProviderIds_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getReturnDataProviderIds_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getReturnDataProviderIds_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getReturnDataProviderIds_sam|trigger=none}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.DATABASE_VALUES);
vlist.dataSource = 'db:/example_data/parent_table';
vlist.setDisplayDataProviderIds('parent_table_text', 'parent_table_id');
vlist.setReturnDataProviderIds('parent_table_text');
var dispDP = vlist.getDisplayDataProviderIds();
for (var i=0; i<dispDP.length; i++)
	application.output(dispDP[i]);
var retDP = vlist.getReturnDataProviderIds();
for (var i=0; i<retDP.length; i++)
	application.output(retDP[i]);
{code}{sub-section}{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;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getUUID_des|trigger=button|text=}{sub-section}{sub-section:getUUID_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getUUID_snc|trigger=button|text=}{sub-section}{sub-section:getUUID_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:getUUID_prs|trigger=button|text=}{sub-section}{sub-section:getUUID_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getUUID_ret|trigger=button|text=}{sub-section}{sub-section:getUUID_ret|trigger=none|class=sIndent}[UUID]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getUUID_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getUUID_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getUUID_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getUUID_link|trigger=none}{sub-section}{div}{td}{tr}{builder-showdiv:class=sIndent}{code:language=javascript}
var listProvider = solutionModel.newGlobalMethod('globals', 'function getDataSetForValueList(displayValue, realValue, record, valueListName, findMode) {' +
		'	' +
		'var args = null;' +
		'/** @type QBSelect<db:/example_data/employees> */' +
		'var query = databaseManager.createSelect('db:/example_data/employees');' + 
		'/** @type  {JSDataSet} */' + 
		'var result = null;' + 
		'if (displayValue == null && realValue == null) {' +
		'  // TODO think about caching this result. can be called often!' +
		'  // return the complete list' +
		'  query.result.add(query.columns.firstname.concat(' ').concat(query.columns.lastname)).add(query.columns.employeeid);' +
		'  result = databaseManager.getDataSetByQuery(query,100);' + 
		'} else if (displayValue != null) {' +
		'  // TYPE_AHEAD filter call, return a filtered list' +
		'  args = [displayValue + "%", displayValue + "%"]' +
		'  query.result.add(query.columns.firstname.concat(' ').concat(query.columns.lastname)).add(query.columns.employeeid).' +
		'  root.where.add(query.or.add(query.columns.firstname.lower.like(args[0] + '%')).add(query.columns.lastname.lower.like(args[1] + '%')));' +
		'  result = databaseManager.getDataSetByQuery(query,100);' +  
		'} else if (realValue != null) {' +
		'  // TODO think about caching this result. can be called often!' +
		'  // real object not found in the current list, return 1 row with display,realvalue that will be added to the current list' +
		'  // dont return a complete list in this mode because that will be added to the list that is already there' +
		'  args = [realValue];' +
		'  query.result.add(query.columns.firstname.concat(' ').concat(query.columns.lastname)).add(query.columns.employeeid).' +
		'  root.where.add(query.columns.employeeid.eq(args[0]));' + 
		'  result = databaseManager.getDataSetByQuery(query,1);' + 
		'}' +
		'return result;' + 
		'}');
var vlist = solutionModel.newValueList('vlist', JSValueList.CUSTOM_VALUES);
vlist.globalMethod = listProvider;
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=name}{tr:id=name}{td}h6.name{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[String]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{sub-section:getUUID_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getUUID_sam|trigger=none}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.CUSTOMDATABASE_VALUES);
application.output(vlist.getUUID().toString());
{code}{sub-section}{div}vlist.dataSource = 'db:/example_data/valuelists';
vlist.setDisplayDataProviderIds('valuelist_data');
vlist.setReturnDataProviderIds('valuelist_data');
vlist.useTableFilter = true;
vlist.name = 'two';
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=relationName}{tr:id=name}{td}h6.relationName{td}{tr}{tr:classid=lastDetailRowret}{td}{td}{tr}{tbody}{tbody:id=setDisplayDataProviderIds|class=node*Returns*\\{div:class=sIndent}[String]{div}{td}{tr}{tr:id=namesam}{td}h6.setDisplayDataProviderIds{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}setDisplayDataProviderIds{span}{span:id=iets|style=float: left;}\(){span*Sample*\\{div:class=sIndent}{code:language=javascript}
var rel = solutionModel.newRelation('parent_to_child', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
rel.newRelationItem('parent_table_id', '=', 'child_table_parent_id');

var vlist = solutionModel.newValueList('options', JSValueList.DATABASE_VALUES);
vlist.dataSource = 'db:/example_data/parent_table';
vlist.relationName = 'parent_to_child';
vlist.setDisplayDataProviderIds('child_table_text');
vlist.setReturnDataProviderIds('child_table_text');
{code}{div}{td}{tr}{builder-showtr:permissionclass=editlastDetailRow}{tr:id=destd}{td}{sub-section:setDisplayDataProviderIds_des|trigger=button|text=}{sub-section}{sub-section:setDisplayDataProviderIds_des|trigger=none|class=sIndent}Replace with description{sub-section}tr}{tbody}{tbody:id=separator}{tr:id=name}{td}h6.separator{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=sncret}{td}*SinceReturns*\\{sub-section:setDisplayDataProviderIds_snc|trigger=button|text=}{sub-section}{sub-section:setDisplayDataProviderIds_snc|trigger=none|{div:class=sIndent} Replace with version info{sub-section[String]{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prssam}{td}*ParametersSample*\\{sub-section:setDisplayDataProviderIds_prs|trigger=button|text=}{sub-section}{sub-section:setDisplayDataProviderIds_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:setDisplayDataProviderIds_ret|trigger=button|text=}{sub-section}{sub-section:setDisplayDataProviderIds_ret|trigger=none|class=sIndent}void{sub-sectiondiv:class=sIndent}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.CUSTOM_VALUES);
vlist.valueListType = JSValueList.DATABASE_VALUES; // Change the type to database values.
vlist.dataSource = 'db:/example_data/parent_table';
vlist.setDisplayDataProviderIds('parent_table_text');
vlist.setReturnDataProviderIds('parent_table_text', 'parent_table_id');
vlist.separator = ' ## ';
vlist.sortOptions = 'parent_table_text desc';
{code}{div}{td}{tr}{builder-showtr:permissionclass=editlastDetailRow}{tr:id=seetd}{td}*Also see*\\{sub-section:setDisplayDataProviderIds_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:setDisplayDataProviderIds_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit{tr}{tbody}{tbody:id=serverName}{tr:id=name}{td}h6.serverName{td}{tr}{tr:id=linkret}{td}*External linksReturns*\\{sub-section:setDisplayDataProviderIds_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:setDisplayDataProviderIds_link|trigger=none}{sub-section}{{div:class=sIndent}[String]{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:setDisplayDataProviderIds_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:setDisplayDataProviderIds_sam|trigger=none}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.CUSTOM_VALUES);
vlist.valueListType = JSValueList.DATABASE_VALUES; // Change the type to database values.
vlist.dataSource = 'db:/example_data/parent_table';
vlist.setDisplayDataProviderIds('parent_table_text');
vlist.setReturnDataProviderIds('parent_table_text', 'parent_table_id');
vlist.separator = ' ## ';
vlist.sortOptions = 'parent_table_text desc';
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=setDisplayDataProviderIds-String|class=nodesortOptions}{tr:id=name}{td}h6.setDisplayDataProviderIds{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}setDisplayDataProviderIds{span}{span:id=iets|style=float: left;}\(dataprovider1){spansortOptions{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}[String]{div}{td}{tr}{builder-show:permission=edit}{tr:id=dessam}{td}{sub-section:setDisplayDataProviderIds-String_des|trigger=button|text=}{sub-section}{sub-section:setDisplayDataProviderIds-String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:setDisplayDataProviderIds-String_snc|trigger=button|text=}{sub-section}{sub-section:setDisplayDataProviderIds-String_snc|trigger=none|class=sIndent} Replace with version info{sub-section*Sample*\\{div:class=sIndent}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.CUSTOM_VALUES);
vlist.valueListType = JSValueList.DATABASE_VALUES; // Change the type to database values.
vlist.dataSource = 'db:/example_data/parent_table';
vlist.setDisplayDataProviderIds('parent_table_text');
vlist.setReturnDataProviderIds('parent_table_text', 'parent_table_id');
vlist.separator = ' ## ';
vlist.sortOptions = 'parent_table_text desc';
{code}{div}{td}{tr}{builder-show}{tr:id=prsclass=lastDetailRow}{td}{td}*Parameters*\\{sub-section:setDisplayDataProviderIds-String_prs|trigger=button|text=}{sub-section}{sub-section:setDisplayDataProviderIds-String_prs|trigger=none|class=sIndent}\{[String]} dataprovider1 -- The first display dataprovider.
{sub-section}{tr}{tbody}{tbody:id=tableName}{tr:id=name}{td}h6.tableName{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:setDisplayDataProviderIds-String_ret|trigger=button|text=}{sub-section}{sub-section:setDisplayDataProviderIds-String_ret|trigger=none|class=sIndent}void{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:setDisplayDataProviderIds-String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:setDisplayDataProviderIds-String_see|trigger=none}{sub-section}{divdiv:class=sIndent}[String]{div}{td}{tr}{tr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.CUSTOM_VALUES);
vlist.valueListType = JSValueList.DATABASE_VALUES; // Change the type to database values.
vlist.dataSource = 'db:/example_data/parent_table';
vlist.setDisplayDataProviderIds('parent_table_text');
vlist.setReturnDataProviderIds('parent_table_text', 'parent_table_id');
vlist.separator = ' ## ';
vlist.sortOptions = 'parent_table_text desc';
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{builder-showtbody}{builder-showtbody:permissionid=edituseTableFilter}{tr:id=link}name}{td}h6.useTableFilter{td}*External links*\\{sub-section:setDisplayDataProviderIds-String_link|trigger=button|text=}{sub-section}}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}{sub-section:setDisplayDataProviderIds-String_link|trigger=none}{sub-section}{[Boolean]{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:setDisplayDataProviderIds-String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:setDisplayDataProviderIds-String_sam|trigger=none:class=sIndent}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.CUSTOMDATABASE_VALUES);
vlist.valueListType = JSValueList.DATABASE_VALUES; // Change the type to database values.
vlist.dataSource = 'db:/example_data/parent_tablevaluelists';
vlist.setDisplayDataProviderIds('parentvaluelist_table_textdata');
vlist.setReturnDataProviderIds('parent_table_text', 'parent_table_idvaluelist_data');
vlist.separatoruseTableFilter = ' ## 'true;
vlist.sortOptionsname = 'parent_table_text desctwo';
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=setDisplayDataProviderIds-String_String|class=node}{tr:id=name}{td}h6.setDisplayDataProviderIds}{div}{td}{tr}{tr:id=sigclass=lastDetailRow}{td}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}setDisplayDataProviderIds{span}{span:id=iets|style=float: left;}\(dataprovider1, dataprovider2){span}tr}{tbody}{tbody:id=valueListType}{tr:id=name}{td}h6.valueListType{td}{tr}{builder-show:permission=edit}{tr:id=desret}{td}{sub-section:setDisplayDataProviderIds-String_String_des|trigger=button|text=}{sub-section}{sub-section:setDisplayDataProviderIds-String_String_des|trigger=none|class=sIndent}Replace with description{sub-section*Returns*\\{div:class=sIndent}[Number]{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=sncsam}{td}*SinceSample*\\{sub-section:setDisplayDataProviderIds-String_String_snc|trigger=button|text=}{sub-section}{sub-section:setDisplayDataProviderIds-String_String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:setDisplayDataProviderIds-String_String_prs|trigger=button|text=}{sub-section}{sub-section:setDisplayDataProviderIds-String_String_prs|trigger=none|class=sIndent}\{[String]} dataprovider1 -- The first display dataprovider.
\{[String]} dataprovider2 -- The second display dataprovider.
{sub-sectiondiv:class=sIndent}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.CUSTOM_VALUES);
vlist.valueListType = JSValueList.DATABASE_VALUES; // Change the type to database values.
vlist.dataSource = 'db:/example_data/parent_table';
vlist.setDisplayDataProviderIds('parent_table_text');
vlist.setReturnDataProviderIds('parent_table_text', 'parent_table_id');
vlist.separator = ' ## ';
vlist.sortOptions = 'parent_table_text desc';
{code}{div}{td}{tr}{tr:id=retclass=lastDetailRow}{td}{td}*Returns*\\{sub-section:setDisplayDataProviderIds-String_String_ret|trigger=button|text=}{sub-section}{sub-section:setDisplayDataProviderIds-String_String_ret|trigger=none|class=sIndent}void{sub-section}}{tr}{tbody}{table}\\ 

{table:id=function|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Method Details{th}{tr}{tbody:id=getDisplayDataProviderIds}{tr:id=name}{td}h6.getDisplayDataProviderIds{td}{tr}{builder-show:permission=edit}{tr:id=seesig}{td}*Also see*\\{sub-section:setDisplayDataProviderIds-String_String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:setDisplayDataProviderIds-String_String_see|trigger=none}{sub-section}{div{span:style=margin-right: 5px;}[Object]\[]{span}{span:style=font-weight: bold;}getDisplayDataProviderIds{span}{span}\(){span}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=linkret}{td}*External linksReturns*\\{sub-section:setDisplayDataProviderIds-String_String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:setDisplayDataProviderIds-String_String_link|trigger=none}{sub-section}[Object]\[] -- An array of Strings representing the names of the display dataproviders.{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:setDisplayDataProviderIds-String_String_sam|trigger=button|text=}{sub-section}td}*Sample*\\{div:class=sIndent}{sub-section:setDisplayDataProviderIds-String_String_sam|trigger=none}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.CUSTOMDATABASE_VALUES);
vlist.valueListType = JSValueList.DATABASE_VALUES; //
Change the type to database values.
vlist.dataSource = 'db:/example_data/parent_table';
vlist.setDisplayDataProviderIds('parent_table_text', 'parent_table_id');
vlist.setReturnDataProviderIds('parent_table_text', 'parent_table_id');
vlist.separator = ' ## ';
vlist.sortOptions = 'parent_table_text desc');
var dispDP = vlist.getDisplayDataProviderIds();
for (var i=0; i<dispDP.length; i++)
	application.output(dispDP[i]);
var retDP = vlist.getReturnDataProviderIds();
for (var i=0; i<retDP.length; i++)
	application.output(retDP[i]);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=setDisplayDataProviderIds-String_String_String|class=node}{tr:id=name}{td}h6.setDisplayDataProviderIds{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}setDisplayDataProviderIds{span}{span:id=iets|style=float: left;}\(dataprovider1, dataprovider2, dataprovider3){span}}{tr}{tbody}{tbody:id=getReturnDataProviderIds}{tr:id=name}{td}h6.getReturnDataProviderIds{td}{tr}{builder-show:permission=edit}{tr:id=dessig}{td}{sub-section:setDisplayDataProviderIds-String_String_String_des|trigger=button|text=}{sub-section}{sub-section:setDisplayDataProviderIds-String_String_String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=editspan:style=margin-right: 5px;}[Object]\[]{span}{span:style=font-weight: bold;}getReturnDataProviderIds{span}{span}\(){span}{td}{tr}{tr:id=sncret}{td}*SinceReturns*\\{sub-section:setDisplayDataProviderIds-String_String_String_snc|trigger=button|text=}{sub-section}{sub-section:setDisplayDataProviderIds-String_String_String_snc|trigger=none|class=sIndent} Replace with version info{sub-sectiondiv:class=sIndent}[Object]\[] -- An array of Strings representing the names of the return dataprovider.{div}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:setDisplayDataProviderIds-String_String_String_prs|trigger=button|text=}{sub-section}{sub-section:setDisplayDataProviderIds-String_String_String_prs|trigger=none|id=sam}{td}*Sample*\\{div:class=sIndent}\{[String]} dataprovider1 -- The first display dataprovider.
\{[String]} dataprovider2 -- The second display dataprovider.
\{[String]} dataprovider3 -- The third display dataprovider.
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:setDisplayDataProviderIds-String_String_String_ret|trigger=button|text=}{sub-section}{sub-section:setDisplayDataProviderIds-String_String_String_ret|trigger=none|class=sIndent}void{sub-section{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.DATABASE_VALUES);
vlist.dataSource = 'db:/example_data/parent_table';
vlist.setDisplayDataProviderIds('parent_table_text', 'parent_table_id');
vlist.setReturnDataProviderIds('parent_table_text');
var dispDP = vlist.getDisplayDataProviderIds();
for (var i=0; i<dispDP.length; i++)
	application.output(dispDP[i]);
var retDP = vlist.getReturnDataProviderIds();
for (var i=0; i<retDP.length; i++)
	application.output(retDP[i]);
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{builder-show:permission=edittbody}{tbody:id=getUUID}{tr:id=seename}{td}*Also see*\\{sub-section:setDisplayDataProviderIds-String_String_String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:setDisplayDataProviderIds-String_String_String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edith6.getUUID{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}[UUID]{span}{span:style=font-weight: bold;}getUUID{span}{span}\(){span}{td}{tr}{tr:id=linkret}{td}*External linksReturns*\\{sub-section:setDisplayDataProviderIds-String_String_String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:setDisplayDataProviderIds-String_String_String_link|trigger=none}{sub-section}[UUID]{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:setDisplayDataProviderIds-String_String_String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:setDisplayDataProviderIds-String_String_String_sam|trigger=none{div:class=sIndent}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.CUSTOM_VALUES);
vlist.valueListType = JSValueList.DATABASE_VALUES; // Change the type to database values.
vlist.dataSource = 'db:/example_data/parent_table';
vlist.setDisplayDataProviderIds('parent_table_text');
vlist.setReturnDataProviderIds('parent_table_text', 'parent_table_id');
vlist.separator = ' ## ';
vlist.sortOptions = 'parent_table_text desc'solutionModel.newValueList('options', JSValueList.CUSTOM_VALUES);
application.output(vlist.getUUID().toString());
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=setReturnDataProviderIds|class=nodesetDisplayDataProviderIds}{tr:id=name}{td}h6.setReturnDataProviderIdssetDisplayDataProviderIds{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}setReturnDataProviderIdssetDisplayDataProviderIds{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=desret}{td}{sub-section:setReturnDataProviderIds_des|trigger=button|text=}{sub-section}{sub-section:setReturnDataProviderIds_des|trigger=none|*Returns*\\{div:class=sIndent}Replace with description{sub-sectionvoid{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=sncsam}{td}*SinceSample*\\{sub-section:setReturnDataProviderIds_snc|trigger=button|text=}{sub-section}{sub-section:setReturnDataProviderIds_snc|trigger=none|class=sIndent} Replace with version info{sub-section{div:class=sIndent}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.CUSTOM_VALUES);
vlist.valueListType = JSValueList.DATABASE_VALUES; // Change the type to database values.
vlist.dataSource = 'db:/example_data/parent_table';
vlist.setDisplayDataProviderIds('parent_table_text');
vlist.setReturnDataProviderIds('parent_table_text', 'parent_table_id');
vlist.separator = ' ## ';
vlist.sortOptions = 'parent_table_text desc';
{code}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prstr:class=lastDetailRow}{td}{td}*Parameters*\\{sub-section:setReturnDataProviderIds_prs|trigger=button|text=}{sub-section}{sub-section:setReturnDataProviderIds_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show{tr}{tbody}{tbody:id=setDisplayDataProviderIds-String}{tr:id=name}{td}h6.setDisplayDataProviderIds{td}{tr}{tr:id=retsig}{td}*Returns*\\{sub-section:setReturnDataProviderIds_ret|trigger=button|text=}{sub-section}{sub-section:setReturnDataProviderIds_ret|trigger=none|class=sIndent}void{sub-section{span:style=margin-right: 5px;}void{span}{span:style=font-weight: bold;}setDisplayDataProviderIds{span}{span}\(dataprovider1){span}{td}{tr}{builder-show:permission=edit}{tr:id=seeprs}{td}*Also see*\\{sub-section:setReturnDataProviderIds_see|trigger=button|text=}{sub-section}}*Parameters*\\{div:class=sIndent}{sub-section:setReturnDataProviderIds_see|trigger=none}{sub-section}\{[String]} dataprovider1 -- The first display dataprovider.
{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=linkret}{td}*External linksReturns*\\{sub-section:setReturnDataProviderIds_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:setReturnDataProviderIds_link|trigger=none}{sub-section}{void{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:setReturnDataProviderIds_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:setReturnDataProviderIds_sam|trigger=none:class=sIndent}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.CUSTOM_VALUES);
vlist.valueListType = JSValueList.DATABASE_VALUES; // Change the type to database values.
vlist.dataSource = 'db:/example_data/parent_table';
vlist.setDisplayDataProviderIds('parent_table_text');
vlist.setReturnDataProviderIds('parent_table_text', 'parent_table_id');
vlist.separator = ' ## ';
vlist.sortOptions = 'parent_table_text desc';
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=setReturnDataProviderIdssetDisplayDataProviderIds-String|class=node_String}{tr:id=name}{td}h6.setReturnDataProviderIdssetDisplayDataProviderIds{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=floatfont-weight: left; font-weight: bold;}setReturnDataProviderIds{span}{span:id=iets|style=float: left;}\(dataprovider1){spanbold;}setDisplayDataProviderIds{span}{span}\(dataprovider1, dataprovider2){span}{td}{tr}{tr:id=prs}{td}*Parameters*\\{div:class=sIndent}\{[String]} dataprovider1 -- The first display dataprovider.
\{[String]} dataprovider2 -- The second display dataprovider.
{div}{td}{tr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}void{div}{td}{tr}{builder-show:permission=edit}{tr:id=dessam}{td}*Sample*\\{div:class=sIndent}{sub-section:setReturnDataProviderIds-String_des|trigger=button|text=}{sub-section}{sub-section:setReturnDataProviderIds-String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:setReturnDataProviderIds-String_snc|trigger=button|text=}{sub-section}{sub-section:setReturnDataProviderIds-String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:setReturnDataProviderIds-String_prs|trigger=button|text=}{sub-section}{sub-section:setReturnDataProviderIds-String_prs|trigger=none|class=sIndent}\{[String]} dataprovider1 -- The first return dataprovider.
{sub-section}code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.CUSTOM_VALUES);
vlist.valueListType = JSValueList.DATABASE_VALUES; // Change the type to database values.
vlist.dataSource = 'db:/example_data/parent_table';
vlist.setDisplayDataProviderIds('parent_table_text');
vlist.setReturnDataProviderIds('parent_table_text', 'parent_table_id');
vlist.separator = ' ## ';
vlist.sortOptions = 'parent_table_text desc';
{code}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=setDisplayDataProviderIds-String_String_String}{tr:id=name}{td}h6.setDisplayDataProviderIds{td}{tr}{tr:id=retsig}{td}*Returns*\\{sub-section:setReturnDataProviderIds-String_ret|trigger=button|text=}{sub-section}{sub-section:setReturnDataProviderIds-String_ret|trigger=none|class=sIndent}void{sub-section{span:style=margin-right: 5px;}void{span}{span:style=font-weight: bold;}setDisplayDataProviderIds{span}{span}\(dataprovider1, dataprovider2, dataprovider3){span}{td}{tr}{builder-show:permission=edit}{tr:id=seeprs}{td}*Also seeParameters*\\{sub-section:setReturnDataProviderIds-String_see|trigger=button|text=}{sub-section}\\{div:class=sIndent}{sub-section:setReturnDataProviderIds-String_see|trigger=none}{sub-section}\{[String]} dataprovider1 -- The first display dataprovider.
\{[String]} dataprovider2 -- The second display dataprovider.
\{[String]} dataprovider3 -- The third display dataprovider.
{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=linkret}{td}*External linksReturns*\\{sub-section:setReturnDataProviderIds-String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:setReturnDataProviderIds-String_link|trigger=none}{sub-section}{{div:class=sIndent}void{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:setReturnDataProviderIds-String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:setReturnDataProviderIds-String_sam|trigger=none}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.CUSTOM_VALUES);
vlist.valueListType = JSValueList.DATABASE_VALUES; // Change the type to database values.
vlist.dataSource = 'db:/example_data/parent_table';
vlist.setDisplayDataProviderIds('parent_table_text');
vlist.setReturnDataProviderIds('parent_table_text', 'parent_table_id');
vlist.separator = ' ## ';
vlist.sortOptions = 'parent_table_text desc';
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=setReturnDataProviderIds-String_String|class=node}{tr:id=name}{td}h6.setReturnDataProviderIds{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}setReturnDataProviderIds{span}{span:id=iets|style=float: left;}\(dataprovider1, dataprovider2){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:setReturnDataProviderIds-String_String_des|trigger=button|text=}{sub-section}{sub-section:setReturnDataProviderIds-String_String_des|trigger=none|class=sIndent}Replace with description{sub-sectiontr}{tr:id=ret}{td}*Returns*\\{div:class=sIndent}void{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:setReturnDataProviderIds-String_String_snc|trigger=button|text=}{sub-section}{sub-section:setReturnDataProviderIds-String_String_snc|trigger=none|class=sIndent} Replace with version info{sub-sectiontr:id=sam}{td}*Sample*\\{div:class=sIndent}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.CUSTOM_VALUES);
vlist.valueListType = JSValueList.DATABASE_VALUES; // Change the type to database values.
vlist.dataSource = 'db:/example_data/parent_table';
vlist.setDisplayDataProviderIds('parent_table_text');
vlist.setReturnDataProviderIds('parent_table_text', 'parent_table_id');
vlist.separator = ' ## ';
vlist.sortOptions = 'parent_table_text desc';
{code}{div}{td}{tr}{builder-show}{tr:id=prsclass=lastDetailRow}{td}{td}*Parameters*\\{sub-section:setReturnDataProviderIds-String_String_prs|trigger=button|text=}{sub-section}{sub-section:setReturnDataProviderIds-String_String_prs|trigger=none|class=sIndent}\{[String]} dataprovider1 -- The first return dataprovider.
\{[String]} dataprovider2 -- The second return dataprovider.
{sub-section}{{tr}{tbody}{tbody:id=setReturnDataProviderIds-String}{tr:id=name}{td}h6.setReturnDataProviderIds{td}{tr}{tr:id=retsig}{td}*Returns*\\{sub-section:setReturnDataProviderIds-String_String_ret|trigger=button|text=}{sub-section}{sub-section:setReturnDataProviderIds-String_String_ret|trigger=none|class=sIndent}void{sub-section{span:style=margin-right: 5px;}void{span}{span:style=font-weight: bold;}setReturnDataProviderIds{span}{span}\(dataprovider1){span}{td}{tr}{builder-show:permission=edit}{tr:id=seeprs}{td}*Also seeParameters*\\{sub-section:setReturnDataProviderIds-String_String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:setReturnDataProviderIds-String_String_see|trigger=none}{sub-section}\{[String]} dataprovider1 -- The first return dataprovider.
{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=linkret}{td}*External linksReturns*\\{sub-section:setReturnDataProviderIds-String_String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:setReturnDataProviderIds-String_String_link|trigger=none}{sub-section}void{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:setReturnDataProviderIds-String_String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:setReturnDataProviderIds-String_String_sam|trigger=none}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.CUSTOM_VALUES);
vlist.valueListType = JSValueList.DATABASE_VALUES; // Change the type to database values.
vlist.dataSource = 'db:/example_data/parent_table';
vlist.setDisplayDataProviderIds('parent_table_text');
vlist.setReturnDataProviderIds('parent_table_text', 'parent_table_id');
vlist.separator = ' ## ';
vlist.sortOptions = 'parent_table_text desc';
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=setReturnDataProviderIds-String_String_String|class=node}{tr:id=name}{td}h6.setReturnDataProviderIds{td}{tr}{tr:id=sig}{td}{span:style=float: left; =margin-right: 5px;}void{span}{span:id=iets|style=float: left; font-weight: bold;}setReturnDataProviderIds{span}{span:id=iets|style=float: left;}\(dataprovider1, dataprovider2, dataprovider3){span}{td}{tr}{builder-show:permission=edit}{tr:id=desprs}{td}{sub-section:setReturnDataProviderIds-String_String_String_des|trigger=button|text=}{sub-section}{sub-section:setReturnDataProviderIds-String_String_String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit*Parameters*\\{div:class=sIndent}\{[String]} dataprovider1 -- The first return dataprovider.
\{[String]} dataprovider2 -- The second return dataprovider.
{div}{td}{tr}{tr:id=sncret}{td}*SinceReturns*\\{sub-section:setReturnDataProviderIds-String_String_String_snc|trigger=button|text=}{sub-section}{sub-section:setReturnDataProviderIds-String_String_String_snc|trigger=none|div:class=sIndent} Replace with version info{sub-sectionvoid{div}{td}{tr}{builder-show}{tr:id=prssam}{td}*ParametersSample*\\{sub-section:setReturnDataProviderIds-String_String_String_prs|trigger=button|text=}{sub-section}{sub-section:setReturnDataProviderIds-String_String_String_prs|trigger=none|class=sIndent}\{[String]} dataprovider1 -- The first return dataprovider.
\{[String]} dataprovider2 -- The second return dataprovider.
\{[String]} dataprovider3 -- The third return dataprovider.
{sub-sectiondiv:class=sIndent}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.CUSTOM_VALUES);
vlist.valueListType = JSValueList.DATABASE_VALUES; // Change the type to database values.
vlist.dataSource = 'db:/example_data/parent_table';
vlist.setDisplayDataProviderIds('parent_table_text');
vlist.setReturnDataProviderIds('parent_table_text', 'parent_table_id');
vlist.separator = ' ## ';
vlist.sortOptions = 'parent_table_text desc';
{code}{div}{td}{tr}{tr:id=retclass=lastDetailRow}{td}{td}*Returns*\\{sub-section:{tr}{tbody}{tbody:id=setReturnDataProviderIds-String_String_String_ret|trigger=button|text=}{sub-section}{sub-section:setReturnDataProviderIds-String_String_String_ret|trigger=none|class=sIndent}void{sub-section}{tr:id=name}{td}h6.setReturnDataProviderIds{td}{tr}{tr:id=sig}{td}{span:style=margin-right: 5px;}void{span}{span:style=font-weight: bold;}setReturnDataProviderIds{span}{span}\(dataprovider1, dataprovider2, dataprovider3){span}{td}{tr}{builder-show:permission=edit}{tr:id=seeprs}{td}*Also seeParameters*\\{sub-section:setReturnDataProviderIds-String_String_String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:setReturnDataProviderIds-String_String_String_see|trigger=none}{sub-section}\{[String]} dataprovider1 -- The first return dataprovider.
\{[String]} dataprovider2 -- The second return dataprovider.
\{[String]} dataprovider3 -- The third return dataprovider.
{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=linkret}{td}*External linksReturns*\\{sub-section:setReturnDataProviderIds-String_String_String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:setReturnDataProviderIds-String_String_String_link|trigger=none}{sub-section}{void{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:setReturnDataProviderIds-String_String_String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:setReturnDataProviderIds-String_String_String_sam|trigger=none}{code:language=javascript}
var vlist = solutionModel.newValueList('options', JSValueList.CUSTOM_VALUES);
vlist.valueListType = JSValueList.DATABASE_VALUES; // Change the type to database values.
vlist.dataSource = 'db:/example_data/parent_table';
vlist.setDisplayDataProviderIds('parent_table_text');
vlist.setReturnDataProviderIds('parent_table_text', 'parent_table_id');
vlist.separator = ' ## ';
vlist.sortOptions = 'parent_table_text desc';
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}