API Documentation

Classes

Lookup

Functions

createLookup(dataSource)Lookup

Creates a lookup object which can be used to show a pop-up form

createQueryLookup(qbSelect, [dsName], [overrideData])Lookup

Creates a read only, in-memory datasource from the given query and creates a Lookup for that

createValueListLookup(valuelistName, [titleText])Lookup

Creates a lookup object from a valuelist which can be used to show a pop-up form or a modal window

NOTE: Valuelist cannot be based on a database relation or a global method. Custom Valuelists can show up to 500 items in lookup.

Lookup


lookup.addField(dataProvider) ⇒ LookupField

Adds a field to the lookup object

Param
Type

dataProvider

String

Example

var lookupObj = scopes.svyLookup.createLookup(datasources.db.example_data.products.getDataSource());

lookupObj.addField('productname').setTitleText('Product');
lookupObj.addField('products_to_suppliers.companyname').setTitleText('Supplier');
lookupObj.addField('unitprice')
	.setSearchable(false)
	.setTitleText('Price')
	.setFormat('#,###.00')

lookup.addParam(param)

Add a params to be added into the onSelect callback arguments

Param
Type

param

Object

Example

// create lookup object
var lookupObj = scopes.svyLookup.createLookup(datasources.db.example_data.products.getDataSource());
lookupObj.setLookupDataProvider("productname");

// custom param, define to which dataprovider the lookup result should be assigned
lookupObj.addParam({resultDataProvider: "productfk"});
lookupObj.showPopUp(onSelect, elements.productfk);

function onSelect(records, values, lookup) {
	if (values && values.length) {
		var resultDataProvider = lookup.getParams()[0].resultDataProvider;
		foundset[resultDataProvider] = values[0];
	}
}

lookup.addSelectedRecord(record)

Adds the given record to the list of selected records

Param
Type

record

JSRecord


lookup.clearParams()

Clear the params


lookup.clearSelectedRecords()

Clears the selection of this Lookup


lookup.createPopUp(callback, [initialValue]) ⇒ plugins.window.FormPopup

Creates and returns a Popup Form to be used to show the lookup

Param
Type
Description

callback

function

The function that will be called when a selection is made; the callback returns the following arguments: {Array} record, {Array<String

[initialValue]

String

And initial value to show in the search


lookup.createWindow([x], [y], [width], [height], [jsWindowType]) ⇒ JSWindow

Returns: JSWindow - returns a JSWindow which can be used to show the lookup in it using lookup.showWindow(window)

Param
Type
Description

[x]

Number

[y]

Number

[width]

Number

The width of the pop-up. Optional. Default is component width

[height]

Number

The height of the pop-up. Optional. Default is form height.

[jsWindowType]

Number

Type of window; should be an option of JSWindow, Default JSWindow.MODAL_DIALOG


lookup.getDataSource() ⇒ String

Gets the data source for this Lookup object


lookup.getField(index) ⇒ LookupField

Gets the field at the specified index

Param
Type

index

Number


lookup.getFieldCount() ⇒ Number

Gets the number of fields in the lookup object


lookup.getFoundSet() ⇒ JSFoundSet

Gets the foundset for this Lookup object.


lookup.getLookupDataProvider() ⇒ String

Gets the lookup dataprovider


lookup.getLookupForm() ⇒ [ 'RuntimeForm' ].<AbstractLookup>

Returns the Lookup form instance used


lookup.getParams() ⇒ Array

Example

// create lookup object
var lookupObj = scopes.svyLookup.createLookup(datasources.db.example_data.products.getDataSource());
lookupObj.setLookupDataProvider("productname");

// custom param, define to which dataprovider the lookup result should be assigned
lookupObj.addParam({resultDataProvider: "productfk"});
lookupObj.showPopUp(onSelect, elements.productfk);

function onSelect(records, values, lookup) {
	if (values && values.length) {
		var resultDataProvider = lookup.getParams()[0].resultDataProvider;
		foundset[resultDataProvider] = values[0];
	}
}

lookup.getSelectedRecords() ⇒ [ 'Array' ].<JSRecord>

Returns the selected records for the lookup object Can be used to know which records have been previously selected by the user for this lookup


lookup.getSelectedValues() ⇒ [ 'Array' ].<JSRecord>

Returns the selected values based on the lookupDataProvider based on the lookupFormProvider. Can be used to know which values have been previously selected by the user for this lookup.

throws an exception if the lookupDataProvider has not been set


lookup.removeField(index)

Removes a field at the specified index

Param
Type

index

Number


lookup.removeParam(index)

Removes a param at the specified index

Param
Type

index

Number


lookup.removeSelectedRecord(record)

Removes the given record from the list of selected records

Param
Type

record

JSRecord


lookup.setLookupDataProvider(dataProvider)

Sets the lookup dataprovider Has to be a dataprovider or a related dataprovider of the lookup dataSource Setting the lookup dataprovider will return the selected dataprovider values in the lookup callback

Param
Type

dataProvider

String

Example

var lookupObj = scopes.svyLookup.createLookup(datasources.db.example_data.products.getDataSource());
// set the lookup dataprovider to productid
lookupObj.setLookupDataProvider("productid");

// add fields
lookupObj.addField('productname').setTitleText('Product');
lookupObj.addField('products_to_suppliers.companyname').setTitleText('Supplier');
lookupObj.addField('unitprice')
	.setSearchable(false)
	.setTitleText('Price')
	.setFormat('#,###.00')
		
// show pop-up
lookupObj.showPopUp(onSelect, elements.setProduct, controller.getFormWidth()/2, 412);

//because i have set the lookupDataProvider as productid values contains the selected productid (if any selected)
function onSelect(record, values, lookup){
  if (values && values.length) {
	  foundset.productid = values[0];
  }
}

lookup.setLookupForm(lookupForm)

Sets the lookup form used as template for the lookup popup/dialog The lookup form must extend the abstract form AbstractLookup

Param
Type

lookupForm

[ 'RuntimeForm' ].<AbstractLookup>

Example

var lookupObj = scopes.svyLookup.createLookup(datasources.db.example_data.products.getDataSource());
// lookup template with NG Table
lookupObj.setLookupForm(forms.svyLookupNGTable);

var lookupObjMulti = scopes.svyLookup.createLookup(datasources.db.example_data.products.getDataSource());
lookupObjMulti.setMultiSelect(true);
// lookup template with NG Table
lookupObjMulti.setLookupForm(forms.svyLookupNGTableMulti);

lookup.setMultiSelect(multiSelect) ⇒ Lookup

Allows this Lookup to multi select records The lookup form used will be changed when the instance set does not match the multi select setting

Param
Type

multiSelect

Boolean


lookup.setSelectedPks(pks)

Sets the selected records of this Lookup from the given primary keys Can be used to restore the user's selection from a previous user's session

Param
Type

pks

[ 'Array' ].<*>


lookup.setSelectedRecords(records)

Sets the selected records of this Lookup Can be used to restore the user's selection from a previous user's session

Param
Type

records