JSValueList
Overview
JSValueList
is a wrapper for defining and managing value lists in the Solution Model. It supports multiple types, including custom values, database values, and global methods. It provides flexibility in configuring the display and return values, sorting, and filtering options, allowing dynamic value lists tailored to specific application needs. ## Functionality
JSValueList offers constants like CUSTOM_VALUES
and DATABASE_VALUES
to define its type. Properties such as dataSource
, relationName
, and sortOptions
allow integration with database tables and relations. Additional properties like addEmptyValue
and lazyLoading
enable control over list behavior, such as including an empty option or deferring list loading to improve performance. For global method-based value lists, a specified method can populate the list dynamically based on provided criteria.
Methods like setDisplayDataProviderIds
and setReturnDataProviderIds
configure the display and return data providers, while utility functions like getUUID
provide metadata access. Examples demonstrate usage scenarios, such as creating value lists from custom strings or database queries, and dynamically updating their configuration.
For more details, please refer to the Value list section of these documentation.
Constants Summarized
Properties Summarized
Property that tells if an empty value must be shown next to the items in the value list.
Compact representation of the names of the server and table that are used for loading the data from the database.
The global method of the valuelist is called to fill in or adjust the values of the valuelist.
A property, specific for NG & Titanium clients with GlobalValuelist - it helps to query/call the global valuelist method only when it is needed.
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.
The name of the database server that is used for loading the values when the value list has the type set to database/table values.
The name of the database table that is used for loading the values when the value list has the type set to database/table values.
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.
Methods Summarized
Returns an array of the dataproviders that will be used to display the valuelist value.
Returns an array of the dataproviders that will be used to define the valuelist value that is saved.
void
Set the display dataproviders.
void
Set the return dataproviders.
Constants Detailed
CUSTOM_VALUES
Constant to set the valueListType of a JSValueList. Sets the value list to use a custom list of values. Also used in solutionModel.newValueList(...) to create new valuelists
Type Number
Sample
DATABASE_VALUES
Constant to set the valueListType of a JSValueList. Sets the value list to use values loaded from a database. Also used in solutionModel.newValueList(...) to create new valuelists
Type Number
Sample
EMPTY_VALUE_ALWAYS
Constant to set/get the addEmptyValue property of a JSValueList.
Type Number
Sample
EMPTY_VALUE_NEVER
Constant to set/get the addEmptyValue property of a JSValueList.
Type Number
Sample
Properties Detailed
addEmptyValue
Property that tells if an empty value must be shown next to the items in the value list.
Type Number
Sample
customValues
A string with the elements in the valuelist. The elements can be separated by line feeds: custom1 custom2
Elements can optionally have real values: custom1|1 custom2|2
The (custom) values can be given via a global scope method instead, if the valuelist type is of global method type...
Type String
Sample
dataSource
Compact representation of the names of the server and table that are used for loading the data from the database.
Type String
Sample
displayValueType
Type Number
fallbackValueList
Gets or sets the fallback valuelist.
Type JSValueList
Sample
globalMethod
The global method of the valuelist is called to fill in or adjust the values of the valuelist. The method returns a dataset with one or two columns, first column is the display value, second column is real value(if present). The valuelist will be filled in with the dataset data. If second column is not present real value and display value will be the same. The method has to handle three different scenarios: 1. 'displayValue' parameter is not null, this parameter should be used to filter the list of values(in a typeahead fashion) 2. 'realValue' parameter is specified, that means value was not found in current list, so must be specified manually. In this case method should return only one row in the dataset, with the missing value, that will be added to the valuelist 3. 'realValue' and 'displayValue' are both null , in this case the complete list of values should be returned.
Scenario 1 and 3 will completely replace any older results in the valuelist while scenario 2 will append results.
In find mode the record will be the FindRecord which is just like a normal JSRecord (DataRecord) it has the same properties (column/dataproviders) but doesnt have its methods (like isEditing())
The last argument is rawDisplayValue which contains the same text as displayValue but without converting it to lowercase.
Type JSMethod
Sample
lazyLoading
A property, specific for NG & Titanium clients with GlobalValuelist - it helps to query/call the global valuelist method only when it is needed.
This flag has to be set both on the valuelist and in component specification (.spec file), on the valuelist property, in order for it to work correctly (so the developer decides if a valuelist provides this option, and the component decides if it uses this feature or not).
IMPORTANT: Usage of real & display values is not fully supported with lazy loading. Don't set lazy load if your method returns both real and display values. This limitation is in place because, very likely in that case, we do need directly the display value for the current component's data (real value) in order to display it in UI...
Type Boolean
Sample
name
The name of the value list.
It is relevant when the "useTableFilter" property is set.
Type String
Sample
realValueType
Type Number
relationName
The name of the relation that is used for loading data from the database.
Type String
Sample
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.
Type String
Sample
serverName
The name of the database server that is used for loading the values when the value list has the type set to database/table values.
Type String
Sample
sortOptions
Sort options that are applied when the valuelist loads its data from the database.
Type String
Sample
tableName
The name of the database table that is used for loading the values when the value list has the type set to database/table values.
Type String
Sample
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.
Type Boolean
Sample
valueListType
The type of the valuelist. Can be one of:
custom values
global method
database values
table based
relation based
Type Number
Sample
Methods Detailed
getDisplayDataProviderIds()
Returns an array of the dataproviders that will be used to display the valuelist value.
Returns: Array An array of Strings representing the names of the display dataproviders.
Sample
getReturnDataProviderIds()
Returns an array of the dataproviders that will be used to define the valuelist value that is saved.
Returns: Array An array of Strings representing the names of the return dataprovider.
Sample
getUUID()
Returns the UUID of the value list
Returns: UUID
Sample
setDisplayDataProviderIds()
Set the display dataproviders. There can be at most 3 of them, combined with the return dataproviders. The values taken from these dataproviders, in order, separated by the separator, will be displayed by the valuelist.
Returns: void
Sample
setDisplayDataProviderIds(dataprovider1)
Set the display dataproviders. There can be at most 3 of them, combined with the return dataproviders. The values taken from these dataproviders, in order, separated by the separator, will be displayed by the valuelist.
Parameters
String dataprovider1 The first display dataprovider.
Returns: void
Sample
setDisplayDataProviderIds(dataprovider1, dataprovider2)
Set the display dataproviders. There can be at most 3 of them, combined with the return dataproviders. The values taken from these dataproviders, in order, separated by the separator, will be displayed by the valuelist.
Parameters
String dataprovider1 The first display dataprovider.
String dataprovider2 The second display dataprovider.
Returns: void
Sample
setDisplayDataProviderIds(dataprovider1, dataprovider2, dataprovider3)
Set the display dataproviders. There can be at most 3 of them, combined with the return dataproviders. The values taken from these dataproviders, in order, separated by the separator, will be displayed by the valuelist.
Parameters
String dataprovider1 The first display dataprovider.
String dataprovider2 The second display dataprovider.
String dataprovider3 The third display dataprovider.
Returns: void
Sample
setReturnDataProviderIds()
Set the return dataproviders. There can be at most 3 of them, combined with the display dataproviders. The values taken from these dataproviders, in order, separated by the separator, will be returned by the valuelist.
Returns: void
Sample
setReturnDataProviderIds(dataprovider1)
Set the return dataproviders. There can be at most 3 of them, combined with the display dataproviders. The values taken from these dataproviders, in order, separated by the separator, will be returned by the valuelist.
Parameters
String dataprovider1 The first return dataprovider.
Returns: void
Sample
setReturnDataProviderIds(dataprovider1, dataprovider2)
Set the return dataproviders. There can be at most 3 of them, combined with the display dataproviders. The values taken from these dataproviders, in order, separated by the separator, will be returned by the valuelist.
Parameters
String dataprovider1 The first return dataprovider.
String dataprovider2 The second return dataprovider.
Returns: void
Sample
setReturnDataProviderIds(dataprovider1, dataprovider2, dataprovider3)
Set the return dataproviders. There can be at most 3 of them, combined with the display dataproviders. The values taken from these dataproviders, in order, separated by the separator, will be returned by the valuelist.
Parameters
String dataprovider1 The first return dataprovider.
String dataprovider2 The second return dataprovider.
String dataprovider3 The third return dataprovider.
Returns: void
Sample
Last updated