En este caso lo que
realizamos es simular el comportamiento de un shuttle mediante Grids.
La idea es seleccionar
elementos de un lado del Grid y enviarlos al otro Grid, en ambas direcciones.
Para realizar esta tarea es
necesario identificar cada Grid con un Static ID.
Vamos a nominarlos como: igLeft e igRight.
Utilizaremos el
siguiente código para realizar el pasaje
Con la siguiente idea
Se seleccionan las vistas actuales de cada Grid.
Vamos a para cada registro seleccionado en una de las grillas crear un nuevo registro en el otro Grid y asignarles los valores del primer Grid.
Luego debemos eliminar el registro original y por último ejecutar el comando SAVE de cada uno de los Grids.
function
moveRight(){
var i, records, record, sal, modelLeft,
viewLeft =
apex.region("igLeft").widget().interactiveGrid("getCurrentView");
modelLeft = viewLeft.model;
var
modelRight =
apex.region('igRight').widget().interactiveGrid('getViews','grid').model;
var
myNewRecordId,myNewRecord;
var
recordId;
//insert new
record on a model
// leer los
seleccionados del lado izquierdo
records = viewLeft.getSelectedRecords();
// para cada uno crear registro en grilla derecha, copiar valores y eliminar
if ( records.length > 0 ) {
for ( i = 0; i < records.length;
i++ ) {
record = records[i];
myNewRecordId =
modelRight.insertNewRecord();
//get the new
record
myNewRecord = modelRight.getRecord(myNewRecordId);
//update
record values
modelRight.setValue(myNewRecord,
'COLUMN1', modelLeft.getValue(record, "COLUMN1"));
modelRight.setValue(myNewRecord,
'COLUMN2', modelLeft.getValue(record, "COLUMN2"));
modelRight.setValue(myNewRecord,
'COLUMN3', modelLeft.getValue(record, "COLUMN3"));
modelRight.setValue(myNewRecord,
'COLUMN4', modelLeft.getValue(record, "COLUMN4"));
modelRight.setValue(myNewRecord,
'CLASIFICA', 'I');
}
modelLeft.deleteRecords(records);
//
apex.region("igLeft").widget().interactiveGrid("getActions").invoke("save");
apex.region("igRight").widget().interactiveGrid("getActions").invoke("save");
}
}