Datos personales

Por setiembre de 1992 empezaba mi primer curso en un Partner de Oracle en Montevideo, y a partir de ahí comenzaría una larga carrera de desarrollo de software. Primero fue SQL, luego PL/SQL, sql*forms 3.0 y sql*report, utilizando un emulador de terminal bajo Windows 3.11. La base de datos? Oracle 7.1. El tiempo fue pasando, los proyectos también, y las distintas versiones: forms 4.5, 5.0, 6i, 9i, 10g. reports 2.5... hasta llegar a 10g. En forma similar las Bases de Datos, 7.1, 7.2, 7.3, 8i, 9i, 10g, en linux, en VMS, an AIX, Solaris y Windows. Tuve la suerte de trabajar en varios lados, conocer algunos países y personas por este hermoso mundo de la informática. Lugares donde quizá uno jamás pensó visitar. Gente que nos atendió en forma maravillosa. Proyectos muy interesantes. El tiempo me fue llevando de programar PL, forms , reports, a pasar también por APEX y realizar customizaciones sobre las EBS, versiones 11i y 12i. Y aquí estamos, para compartir experiencias......

domingo, 9 de febrero de 2020

Como simular un shuttle con 2 interactive GRID


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");
        }
}


No hay comentarios:

Publicar un comentario