Child pages
  • JSRelation

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
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 AUTO UPDATE THE CONTENT THROUGH THE DOC GENERATOR.
Enter additional information related to this 'class' inside the {div} macro with 'id=description'
Divcache
styleindexdisplay:none
Div
iddescription
For more information see Relations

...

padding0px
width80px

...

Table Row (tr)
styleheight: 30px;
Table Head (th)
colspan2
Constants Summary

...

Table Cell (td)
Number

...

true
refresh100d
showRefreshtrue
iddoc
titleRefresh page
showDatetrue
retryEnable

servoy sReturnTypes2100%height: 30px;2Supported ClientssWordListSmartClientsWordListWebClientsWordListNGClient

servoy sSummary12%30%58%height: 30px;3Constants SummaryConstant for the joinType of a

...

Table Cell (td)
Number

...

JSRelation.Constant for the joinType of a JSRelation.

...

Table Cell (td)
Number

...

Constant for the joinType of a JSRelation.

...

Table Cell (td)
Number

...

Constant for the joinType of a

...

padding0px
width80px

...

JSRelation.

servoy sSummary12%30%58%height: 30px;

...

Table Head (th)
colspan2
Property Summary

...

Table Cell (td)
Boolean

...

3Property SummaryFlag that tells if related records can be created through this relation.

...

Table Cell (td)
Boolean

...

Flag that tells if the parent record can be deleted while it has related records.

...

Table Cell (td)
Boolean

...

Table Cell (td)
String

...

Flag that tells if related records should be deleted or not when a parent record is deleted.

...

Qualified name of the foreign data source.

...

Table Cell (td)
String

...

A String which specified a set of sort options for the initial sorting of data

...

Table Cell (td)
Number

...

retrieved through this relation.

...

...

Table Cell (td)
String

...

The join type that is performed between the primary table and the foreign table.

...

The name of the relation.

...

Table Cell (td)
String

...

Qualified name of the primary data source.

...

servoy sSummary

...

padding0px
width80px

...

12%30%58%height: 30px;

...

Table Head (th)
colspan2
Method Summary

...

Table Cell (td)
JSRelationItem[]

...

Table Cell (td)
UUID

...

3Methods SummaryReturns an array of JSRelationItem objects representing the relation criteria defined for this relation.

...

Returns the UUID of the relation object

...

Table Cell (td)
JSRelationItem

...

Creates a new relation item for this relation.

...

void

...

Removes the desired relation item from the specified relation.

...

constant

...

servoy sDetail

...

padding0px
width100%

...

2100%height:30px

...

colspan1

...

2Constants Details

...

FULL_JOIN

...

name

...

FULL_JOIN

...

des

...

sIndent
Constant for the joinType of a

...

Table Row (tr)
idret
Table Cell (td)
Returns
Div
classsIndent
Number
Table Row (tr)
idsam
Table Cell (td)
Sample
Div
classsIndent
Code Block
languagejavascript

/** @type {QBSelect<db:/example_data/orders>} */
	var query = databaseManager.createSelect('db:/example_data/orders')
 /** @type {QBJoin<db:/example_data/order_details>} */
	var join = query.joins.add('db:/example_data/order_details', JSRelation.RIGHT_OUTER_JOIN, 'odetail')
	join.on.add(join.columns.orderid.eq(query.columns.orderid))

...

classlastDetailRow

...

idINNER_JOIN
Table Row (tr)
idname
Table Cell (td)
INNER_JOIN

...

iddes

...

classsIndent

...

 JSRelation. It is also used in solutionModel.newRelation(...).
ret

Returns

sIndent
clients

Supported Clients

sIndentSmartClient,WebClient,NGClient
sam

Sample

sIdentjavascript
lastDetailRow
INNER_JOINname

INNER_JOIN

dessIndent
Constant for the joinType of a JSRelation. It is also used in solutionModel.newRelation(...)

...

.

...

ret

...

Returns

...

sIndentclients

...

Supported Clients

sIndent

...

SmartClient,WebClient,NGClientsam

...

classlastDetailRow

...

Sample

Div
classsIndent
Code Block
languagejavascript

var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.joinType = JSRelation.LEFT_OUTER_JOIN;

 /** @type {QBSelect<db:/example_data/orders>} */
	var query = databaseManager.createSelect('db:/example_data/orders')
 /** @type {QBJoin<db:/example_data/order_details>} */
	var join = query.joins.add('db:/example_data/order_details', JSRelation.INNER_JOIN, 'odetail')
	join.on.add(join.columns.orderid.eq(query.columns.orderid))
sIdentjavascriptlastDetailRowLEFT_OUTER_JOIN

...

name

...

LEFT_OUTER_JOIN

...

des

...

sIndent
Constant for the joinType of a JSRelation. It is also used in solutionModel.newRelation(...)

...

.

...

...

ret

...

Returns

...

sIndentclients

...

Supported Clients

sIndent

...

idsam

...

classlastDetailRow

...

SmartClient,WebClient,NGClientsam

Sample

Div
classsIndent
Code Block
languagejavascript

var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.joinType = JSRelation.LEFT_OUTER_JOIN;

 /** @type {QBSelect<db:/example_data/orders>} */
	var query = databaseManager.createSelect('db:/example_data/orders')
 /** @type {QBJoin<db:/example_data/order_details>} */
	var join = query.joins.add('db:/example_data/order_details', JSRelation.INNER_JOIN, 'odetail')
	join.on.add(join.columns.orderid.eq(query.columns.orderid))
sIdentjavascriptlastDetailRowRIGHT_OUTER_JOIN

...

name

...

RIGHT_OUTER_JOIN

...

des

...

sIndent
Constant for the joinType of a

...

Table Row (tr)
idret
Table Cell (td)
Returns
Div
classsIndent
Number
Table Row (tr)
idsam
Table Cell (td)
Sample
Div
classsIndent
Code Block
languagejavascript

/** @type {QBSelect<db:/example_data/orders>} */
	var query = databaseManager.createSelect('db:/example_data/orders')
 /** @type {QBJoin<db:/example_data/order_details>} */
	var join = query.joins.add('db:/example_data/order_details', JSRelation.RIGHT_OUTER_JOIN, 'odetail')
	join.on.add(join.columns.orderid.eq(query.columns.orderid))

...

classlastDetailRow

...

idproperty
classservoy sDetail

...

padding0px
width100%
Table Row (tr)
styleheight: 30px;
Table Head (th)
colspan1
Property Details

...

idallowCreationRelatedRecords
Table Row (tr)
idname
Table Cell (td)
allowCreationRelatedRecords
Table Row (tr)
iddes
Table Cell (td)
Div
classsIndent

Flag that tells if related records can be created through this relation.

The default value of this flag is "false".

Table Row (tr)
idret
Table Cell (td)
Returns
Div
classsIndent
Boolean
Table Row (tr)
idsam
Table Cell (td)
Sample
Div
classsIndent
Code Block
languagejavascript

var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.allowCreationRelatedRecords = true;

...

classlastDetailRow

...

idallowParentDeleteWhenHavingRelatedRecords
Table Row (tr)
idname
Table Cell (td)
allowParentDeleteWhenHavingRelatedRecords
Table Row (tr)
iddes
Table Cell (td)
Div
classsIndent

Flag that tells if the parent record can be deleted while it has related records.

The default value of this flag is "true".

Table Row (tr)
idret
Table Cell (td)
Returns
Div
classsIndent
Boolean
Table Row (tr)
idsam
Table Cell (td)
Sample
Div
classsIndent
Code Block
languagejavascript

var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.allowParentDeleteWhenHavingRelatedRecords = false;

...

classlastDetailRow

...

iddeleteRelatedRecords
Table Row (tr)
idname
Table Cell (td)
deleteRelatedRecords
Table Row (tr)
iddes
Table Cell (td)
Div
classsIndent

Flag that tells if related records should be deleted or not when a parent record is deleted.

The default value of this flag is "false".

Table Row (tr)
idret
Table Cell (td)
Returns
Div
classsIndent
Boolean
Table Row (tr)
idsam
Table Cell (td)
Sample
Div
classsIndent
Code Block
languagejavascript

var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.deleteRelatedRecords = true;

...

classlastDetailRow

...

idforeignDataSource
Table Row (tr)
idname
Table Cell (td)
foreignDataSource
Table Row (tr)
iddes
Table Cell (td)
Div
classsIndent
Qualified name of the foreign data source. Contains both the name of the foreign
server and the name of the foreign table.
Table Row (tr)
idret
Table Cell (td)
Returns
Div
classsIndent
String
Table Row (tr)
idsam
Table Cell (td)
Sample
Div
classsIndent
Code Block
languagejavascript

var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.primaryDataSource = 'db:/user_data/another_parent_table';
relation.foreignDataSource = 'db:/user_data/another_child_table';

...

classlastDetailRow

...

idinitialSort
Table Row (tr)
idname
Table Cell (td)
initialSort
Table Row (tr)
iddes
Table Cell (td)
Div
classsIndent

A String which specified a set of sort options for the initial sorting of data
retrieved through this relation.

Has the form "column_name asc, another_column_name desc, ...".

Table Row (tr)
idret
Table Cell (td)
Returns
Div
classsIndent
String
Table Row (tr)
idsam
Table Cell (td)
Sample
Div
classsIndent
Code Block
languagejavascript

var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.initialSort = 'another_child_table_text asc';

...

classlastDetailRow

...

idjoinType
Table Row (tr)
idname
Table Cell (td)
joinType
Table Row (tr)
iddes
Table Cell (td)
Div
classsIndent
The join type that is performed between the primary table and the foreign table.
Can be "inner join" or "left outer join".
Table Row (tr)
idret
Table Cell (td)
Returns
Div
classsIndent
Number
Table Row (tr)
idsam
Table Cell (td)
Sample
Div
classsIndent
Code Block
languagejavascript

var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.joinType = JSRelation.LEFT_OUTER_JOIN;

 /** @type {QBSelect<db:/example_data/orders>} */
	var query = databaseManager.createSelect('db:/example_data/orders')
 /** @type {QBJoin<db:/example_data/order_details>} */
	var join = query.joins.add('db:/example_data/order_details', JSRelation.INNER_JOIN, 'odetail')
	join.on.add(join.columns.orderid.eq(query.columns.orderid))

...

classlastDetailRow

...

idname
Table Row (tr)
idname
Table Cell (td)
name
Table Row (tr)
iddes
Table Cell (td)
Div
classsIndent
The name of the relation.
Table Row (tr)
idret
Table Cell (td)
Returns
Div
classsIndent
String
Table Row (tr)
idsam
Table Cell (td)
Sample
Div
classsIndent
Code Block
languagejavascript

var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.name = 'anotherName';
var firstTab = tabs.newTab('firstTab', 'Child Form', childForm, relation);
firstTab.relationName = relation.name;

...

classlastDetailRow

...

idprimaryDataSource
Table Row (tr)
idname
Table Cell (td)
primaryDataSource
Table Row (tr)
iddes
Table Cell (td)
Div
classsIndent
Qualified name of the primary data source. Contains both the name of the primary server
and the name of the primary table.
Table Row (tr)
idret
Table Cell (td)
Returns
Div
classsIndent
String
Table Row (tr)
idsam
Table Cell (td)
Sample
Div
classsIndent
Code Block
languagejavascript

var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.primaryDataSource = 'db:/user_data/another_parent_table';
relation.foreignDataSource = 'db:/user_data/another_child_table';

...

classlastDetailRow

...

HTML Table
idfunction
classservoy sDetail
Colgroup Tag
Column
padding0px
width100%
Table Row (tr)
styleheight: 30px;
Table Head (th)
colspan1
Method Details
Table Body (tbody)
idgetRelationItems
Table Row (tr)
idname
Table Cell (td)
getRelationItems
Table Row (tr)
idsig
Table Cell (td)
Span
stylemargin-right: 5px;
JSRelationItem[]
Span
stylefont-weight: bold;
getRelationItems
Span
()
Table Row (tr)
iddes
Table Cell (td)
Div
classsIndent
Returns an array of JSRelationItem objects representing the relation criteria defined for this relation.
Table Row (tr)
idret
Table Cell (td)Returns
Div
classsIndent
JSRelationItem[] –
 JSRelation. It is also used in solutionModel.newRelation(...).
ret

Returns

sIndent
clients

Supported Clients

sIndentSmartClient,WebClient,NGClient
sam

Sample

sIdentjavascript
lastDetailRow

propertyservoy sDetail2100%height:30px2Property DetailsallowCreationRelatedRecordsname

allowCreationRelatedRecords

dessIndent
Flag that tells if related records can be created through this relation.

The default value of this flag is "false".
ret

Returns

sIndent
clients

Supported Clients

sIndentSmartClient,WebClient,NGClient
sam

Sample

sIdentjavascript
lastDetailRowallowParentDeleteWhenHavingRelatedRecordsname

allowParentDeleteWhenHavingRelatedRecords

dessIndent
Flag that tells if the parent record can be deleted while it has related records.

The default value of this flag is "true".
ret

Returns

sIndent
clients

Supported Clients

sIndentSmartClient,WebClient,NGClient
sam

Sample

sIdentjavascript
lastDetailRow
deleteRelatedRecordsname

deleteRelatedRecords

dessIndent
Flag that tells if related records should be deleted or not when a parent record is deleted.

The default value of this flag is "false".
ret

Returns

sIndent
clients

Supported Clients

sIndentSmartClient,WebClient,NGClient
sam

Sample

sIdentjavascript
lastDetailRow
foreignDataSourcename

foreignDataSource

dessIndent
Qualified name of the foreign data source. Contains both the name of the foreign
server and the name of the foreign table.
ret

Returns

sIndent
clients

Supported Clients

sIndentSmartClient,WebClient,NGClient
sam

Sample

sIdentjavascript
lastDetailRow
initialSortname

initialSort

dessIndent
A String which specified a set of sort options for the initial sorting of data
retrieved through this relation.

Has the form "column_name asc, another_column_name desc, ...".
ret

Returns

sIndent
clients

Supported Clients

sIndentSmartClient,WebClient,NGClient
sam

Sample

sIdentjavascript
lastDetailRow
joinTypename

joinType

dessIndent
The join type that is performed between the primary table and the foreign table.
Can be "inner join" or "left outer join".
ret

Returns

sIndent
clients

Supported Clients

sIndentSmartClient,WebClient,NGClient
sam

Sample

sIdentjavascript
lastDetailRow
namename

name

dessIndent
The name of the relation.
ret

Returns

sIndent
clients

Supported Clients

sIndentSmartClient,WebClient,NGClient
sam

Sample

sIdentjavascript
lastDetailRow
primaryDataSourcename

primaryDataSource

dessIndent
Qualified name of the primary data source. Contains both the name of the primary server
and the name of the primary table.
ret

Returns

sIndent
clients

Supported Clients

sIndentSmartClient,WebClient,NGClient
sam

Sample

sIdentjavascript
lastDetailRow

Table Row (tr)

idsig
Table Cell (td)
Span
stylemargin-right: 5px;
JSRelationItem
Span
stylefont-weight: bold;
newRelationItem
Spanfunctionservoy sDetail2100%height:30px2Methods DetailsgetRelationItemsname

getRelationItems()

dessIndent
Returns an array of JSRelationItem objects representing the relation criteria defined for this relation.
ret

Returns

sIndent An array of JSRelationItem instances representing the relation criteria of this relation.
clients

Table Row (tr)
idsam
Table Cell (td)
Sample
Div
classsIndent
Code Block
languagejavascript

var criteria = relation.getRelationItems();
for (var i=0; i<criteria.length; i++)
{
	var item = criteria[i];
	application.output('relation item no. ' + i);
	application.output('primary column: ' + item.primaryDataProviderID);
	application.output('operator: ' + item.operator);
	application.output('foreign column: ' + item.foreignColumnName);
}
Table Row (tr)
classlastDetailRow
Table Cell (td) Table Body (tbody)
idgetUUID
Table Row (tr)
idname
Table Cell (td)
getUUID
Table Row (tr)
idsig
Table Cell (td)
Span
stylemargin-right: 5px;
UUID
Span
stylefont-weight: bold;
getUUID
Span
()
Table Row (tr)
iddes
Table Cell (td)
Div
classsIndent
Returns the UUID of the relation object
Table Row (tr)
idret
Table Cell (td)
Returns
Div
classsIndent
UUID
Table Row (tr)
idsam
Table Cell (td)
Sample
Div
classsIndent
Code Block
languagejavascript

var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
application.output(relation.getUUID().toString())
Table Row (tr)
classlastDetailRow
Table Cell (td) Table Body (tbody)
idnewRelationItem-String_String_String
Table Row (tr)
idname
Table Cell (td)
newRelationItem

Supported Clients

sIndentSmartClient,WebClient,NGClient
sam

Sample

sIdentjavascript
lastDetailRow
getUUIDname

getUUID()

dessIndent
Returns the UUID of the relation object
ret

Returns

sIndent
clients

Supported Clients

sIndentSmartClient,WebClient,NGClient
sam

Sample

sIdentjavascript
lastDetailRow
newRelationItemname

newRelationItem(dataprovider, operator, foreinColumnName)

Table Row (tr)idclass

des Table Cell (td) DivsIndent
Creates a new relation item for this relation. The primary dataprovider, the foreign data provider

 
and one relation operators (like '=' '!=' '>' '<') must be provided.
Table Row (tr)idtd
prs

Parameters


Divclass

sIndent{String} dataprovider The name of the primary dataprovider.
{String} operator The operator used to relate the primary and the foreign dataproviders.
{String} foreinColumnName Table Row (tr)idThe name of the foreign dataprovider.tdret

Returns


DivclassJSRelationItem

sIndent

Table Row (tr)
idname
Table Cell (td)
removeRelationItem
Table Row (tr)
idsig
Table Cell (td)
Span
stylemargin-right: 5px;
void
Span
stylefont-weight: bold;
removeRelationItem
Span A JSRelationItem instance representing the newly added relation item.clients

Table Row (tr)
idsam
Table Cell (td)
Sample
Div
classsIndent
Code Block
languagejavascript

var relation = solutionModel.newRelation('parentToChild', 'db:/example_data/parent_table', 'db:/example_data/child_table', JSRelation.INNER_JOIN);
relation.newRelationItem('another_parent_table_id', '=', 'another_child_table_parent_id');
// for literals use a prefix
relation.newRelationItem(JSRelationItem.LITERAL_PREFIX + "'hello'",'=', 'mytextfield');
Table Row (tr)
classlastDetailRow
Table Cell (td) Table Body (tbody)
idremoveRelationItem-String_String_String

Supported Clients

sIndentSmartClient,WebClient,NGClient
sam

Sample

sIdentjavascript
lastDetailRow
removeRelationItemname

removeRelationItem(primaryDataProviderID, operator, foreignColumnName)

Table Row (tr)idclass

des Table Cell (td) DivsIndent
Removes the desired relation item from the specified relation.
Table Row (tr)idtd
prs

Parameters


Divclass

sIndent{String} primaryDataProviderID the primary data provider (column) name
{String} operator the operator
{String} foreignColumnName the foreign column name

Table Row (tr)
idret
Table Cell (td)
Returns
Div
classsIndent
void
Table Row (tr)
idsam
Table Cell (td)
Sample
Div
classsIndent
Code Block
languagejavascript

var relation = solutionModel.newRelation('myRelation', 'db:/myServer/parentTable', 'db:/myServer/childTable', JSRelation.INNER_JOIN);
relation.newRelationItem('someColumn1', '=', 'someColumn2');
relation.newRelationItem('anotherColumn', '=', 'someOtherColumn');
relation.removeRelationItem('someColumn1', '=', 'someColumn2');
var criteria = relation.getRelationItems();
for (var i = 0; i < criteria.length; i++) {
	var item = criteria[i];
	application.output('primary column: ' + item.primaryDataProviderID);
	application.output('operator: ' + item.operator);
	application.output('foreign column: ' + item.foreignColumnName);
}
Table Row (tr)
classlastDetailRow
tdclients

Supported Clients

sIndentSmartClient,WebClient,NGClient
sam

Sample

sIdentjavascript
lastDetailRow