Child pages
  • JSFoundSetUpdater

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Reverted from v. 24

...

Div
iddescription
 
Excerpt Include
The Servoy Foundset
The Servoy Foundset
nopaneltrue



HTML Table
idclassservoy sSummary
Colgroup Tag
Col
width80px
Col
Table Head (thead)
Table Row (tr)
styleheight: 30px;
Table Head (th)
colspan2
Method Summary
Table Row (tr)
Table Cell (td)
Boolean
Table Cell (td)
next()
Go to next record in this updater, returns true if successful.
Table Row (tr)
Table Cell (td)
Boolean
Table Cell (td)
performUpdate()
Do the actual update in the database, returns true if successful.
Table Row (tr)
Table Cell (td)
void
Table Cell (td)
resetIterator()
Start over with this iterator 'next' function (at the foundset selected record).
Table Row (tr)
Table Cell (td)
Boolean
Table Cell (td)
setColumn(name, value)
Set the column value to update, returns true if successful.

...

HTML Table
idfunction
classservoy sDetail
Colgroup Tag
Col
colspan2
width100%
Col
Table Head (thead)
Table Row (tr)
styleheight: 30px;
Table Head (th)
colspan2
Method Details
Table Body (tbody)
idnext
Table Row (tr)
idname
Table Cell (td)

next

Table Row (tr)
idsig
Table Cell (td)
Span
stylemargin-right: 5px;
Boolean
Span
stylefont-weight: bold;
next
Span
()
Table Row (tr)
iddes
Table Cell (td)
Div
classsIndent
Go to next record in this updater, returns true if successful.
Table Row (tr)
idret
Table Cell (td)

Returns

Div
classsIndent
Boolean - true if proceeded to next record, false otherwise
Table Row (tr)
idsam
Table Cell (td)

Sample

Div
classsIndent
Code Block
languagejavascript
controller.setSelectedIndex(1)
var count = 0
var fsUpdater = databaseManager.getFoundSetUpdater(foundset)
while(fsUpdater.next())
{
	fsUpdater.setColumn('my_flag',count++)
}
Table Row (tr)
classlastDetailRow
Table Cell (td)
 
Table Body (tbody)
idperformUpdate
Table Row (tr)
idname
Table Cell (td)

performUpdate

Table Row (tr)
idsig
Table Cell (td)
Span
stylemargin-right: 5px;
Boolean
Span
stylefont-weight: bold;
performUpdate
Span
()
Table Row (tr)
iddes
Table Cell (td)
Div
classsIndent

Do the actual update in the database, returns true if successful.
There are 3 types of possible use with the foundset updater
1) update entire foundset by a single sql statement; that is not possible when the table of the foundset has tracking enabled then it will loop over the whole foundset.
When a single sql statement is done, modification columns will not be updated, because it does the update directly in the database, without getting the records. Please note: Using this method will also bypass any Table Events defined for this datasource.
2) update part of foundset, for example the first 4 row (starts with selected row)
3) safely loop through foundset (starts with selected row)

after the perform update call there are no records in edit mode, that where not already in edit mode, because all of them are saved directly to the database,
or in mode 1 the records are not touched at all and the database is updated directly.

Table Row (tr)
idret
Table Cell (td)

Returns

Div
classsIndent
Boolean - true if succeeded, false if failed.
Table Row (tr)
idsam
Table Cell (td)

Sample

Div
classsIndent
Code Block
languagejavascript
//1) update entire foundset. Does not
trigger table events or modification columns.
var fsUpdater = databaseManager.getFoundSetUpdater(foundset)
fsUpdater.setColumn('customer_type',1)
fsUpdater.setColumn('my_flag',0)
fsUpdater.performUpdate()

//2) update part of foundset, for example the first 4 row (starts with selected row)
var fsUpdater = databaseManager.getFoundSetUpdater(foundset)
fsUpdater.setColumn('customer_type',new Array(1,2,3,4))
fsUpdater.setColumn('my_flag',new Array(1,0,1,0))
fsUpdater.performUpdate()

//3) safely loop through foundset (starts with selected row)
controller.setSelectedIndex(1)
var count = 0
var fsUpdater = databaseManager.getFoundSetUpdater(foundset)
while(fsUpdater.next())
{
	fsUpdater.setColumn('my_flag',count++)
}
Table Row (tr)
classlastDetailRow
Table Cell (td)
 
Table Body (tbody)
idresetIterator
Table Row (tr)
idname
Table Cell (td)

resetIterator

Table Row (tr)
idsig
Table Cell (td)
Span
stylemargin-right: 5px;
void
Span
stylefont-weight: bold;
resetIterator
Span
()
Table Row (tr)
iddes
Table Cell (td)
Div
classsIndent
Start over with this iterator 'next' function (at the foundset selected record).
Table Row (tr)
idret
Table Cell (td)

Returns

Div
classsIndent
void
Table Row (tr)
idsam
Table Cell (td)

Sample

Div
classsIndent
Code Block
languagejavascript
controller.setSelectedIndex(1)
var count = 0
var fsUpdater = databaseManager.getFoundSetUpdater(foundset)
while(fsUpdater.next())
{
	fsUpdater.setColumn('my_flag',++count)
}
fsUpdater.resetIterator()
while(fsUpdater.next())
{
	fsUpdater.setColumn('max_flag',count)
}
Table Row (tr)
classlastDetailRow
Table Cell (td)
 
Table Body (tbody)
idsetColumn-String_Object
Table Row (tr)
idname
Table Cell (td)

setColumn

Table Row (tr)
idsig
Table Cell (td)
Span
stylemargin-right: 5px;
Boolean
Span
stylefont-weight: bold;
setColumn
Span
(name, value)
Table Row (tr)
iddes
Table Cell (td)
Div
classsIndent
Set the column value to update, returns true if successful.
Table Row (tr)
idprs
Table Cell (td)

Parameters

Div
classsIndent
{String} name - The name of the column to update.
{Object} value - The new value (can be an array with data for x number of rows) to be stored in the specified column.
Table Row (tr)
idret
Table Cell (td)

Returns

Div
classsIndent
Boolean - true if succeeded, false if failed.
Table Row (tr)
idsam
Table Cell (td)

Sample

Div
classsIndent
Code Block
languagejavascript
//1) update entire foundset. Does not trigger table events or modification columns.
var fsUpdater = databaseManager.getFoundSetUpdater(foundset)
fsUpdater.setColumn('customer_type',1)
fsUpdater.setColumn('my_flag',0)
fsUpdater.performUpdate()

//2) update part of foundset, for example the first 4 row (starts with selected row)
var fsUpdater = databaseManager.getFoundSetUpdater(foundset)
fsUpdater.setColumn('customer_type',new Array(1,2,3,4))
fsUpdater.setColumn('my_flag',new Array(1,0,1,0))
fsUpdater.performUpdate()

//3) safely loop through foundset (starts with selected row)
controller.setSelectedIndex(1)
var count = 0
var fsUpdater = databaseManager.getFoundSetUpdater(foundset)
while(fsUpdater.next())
{
	fsUpdater.setColumn('my_flag',count++)
}
Table Row (tr)
classlastDetailRow
Table Cell (td)
 

...