datasource

Representa una origen de datos del sistema y una instancia de cada tipo necesario en un formulario es creada automáticamente por la aplicación. Esta instancia puede ser accedida en el código del formulario simplemente por su nombre. Asimismo una instancia adicional necesaria puede ser creada por código mediante la invocación del método de la aplicación 'datasource'.

Metodos

appendNew ();

Cambia el modo de ejecución del datasource a 'new' y agrega un registro al final de la colección.


editCurrent ();

Cambia el modo de ejecución del datasource a 'edit' permitiendo editar y guardar los datos del registro actual.


deleteCurrent ( [ function callback ( boolean  status , object  error ) { ... } ] );
callbackFunción a ser invocada luego de la ejecución del método en modo asíncrono. Cuando se utiliza este parametro la ejecución de la función se realiza de forma asíncrona.
statustrue si el metodo de ejecutó correctamente.
errorSi status = false contiene informacion del error producido al ejecutar el método.

Borra el registro actual del datasource.


save ( [ function callback ( boolean  status , object  error ) { ... } ] );
callbackFunción a ser invocada luego de la ejecución del método en modo asíncrono. Cuando se utiliza este parametro la ejecución de la función se realiza de forma asíncrona.
statustrue si el metodo de ejecutó correctamente.
errorSi status = false contiene informacion del error producido al ejecutar el método.

Guarda el registro activo si el datasource está en modo 'edit' o 'new'.

Ejemplos
Invocación en modo sincrono.
					
// sin callback
if(clientes.save()){
    alert("Los datos fueron guardados correctamente");
    
}else{
    alert("Error guardando datos.\n"+clientes.lastError.description);
}

					
Modo asíncrono.
					
clientes.save(function(status,result){
    if (status){
        alert("Los datos fueron guardados correctamente");
    }else{
        alert("Error guardando datos.\n"+result.description);
    }
});

					

cancel ();

Cancela el modo 'edit' o 'new' volviendo al modo 'browse'.


boolean readyToExecute ( string  action , [ function callback ( boolean  status , object  error ) { ... } ] );
callbackFunción a ser invocada luego de la ejecución del método en modo asíncrono. Cuando se utiliza este parametro la ejecución de la función se realiza de forma asíncrona.
statustrue si el metodo de ejecutó correctamente.
errorSi status = false contiene informacion del error producido al ejecutar el método.

Valida todas las condiciones necesarias para ejecutar la acción indicada. Puede ser usada en modo síncrono y asíncrono excepto para datasources de tipo interacción en que es necesario usar la forma asíncrona debido a limitaciones tecnológicas en la integración con el Agente (Protocolo jsonp hacia el Baragent.exe).


setReadOnly ();

Setea el modo de solo lectura al datasource entero y por lo tanto a los controles vinculados impidiendo que el usuario cambie datos.


array records ();

Devuelve un array con los registros del datasource.


json row ();

Devuelve el registro activo del datasource, undefined si no existe uno.

Ejemplo
					
var part = stock.row();
if (part){
    alert("Precio de venta "+part.price);
}else{
...
}

					

find ( json  searchfields , [function  callback] );

Realiza una búsqueda recibiendo un json con los valores de los campos. Estos campos pueden ser los definidos como parámetros del filtro o cualquier otro campo del datasource. La expresión formada para la búsqueda es la indicada en el filtro mas un AND por cada uno de los parámetros que no forman parte del filtro. El parámetro opcional callback hace que el llamado a esta función sea de forma asíncrona.

Ejemplos
					
// Ejemplo asincrono
stock.find({partNro:10},function(status,error){
    if(status){
        if(stock.moveFirst()){
            // 
        }
    }else{
        icc.ui.displayMessage(error)
    }
})

					
					
// Ejemplo sincrono
if (stock.find({partNro:10})){
    if(stock.moveFirst()){
        // 
    }
}else{
    icc.ui.displayMessage(stock.lastError);
}

					

boolean moveFirst ( [ function callback ( boolean  status , object  error ) { ... } ] );
callbackFunción a ser invocada luego de la ejecución del método en modo asíncrono. Cuando se utiliza este parámetro la ejecución de la función se realiza de forma asíncrona
statusToma valor true si el método de ejecutó correctamente y el datasource no se encuentra vacío.
errorSi status = false contiene información del error producido al ejecutar el método.

Mueve al principio el registro activo y retorna un boolean indicando el resultado de la operación.


boolean movePrevious ( [ function callback ( boolean  status , object  error ) { ... } ] );
callbackFunción a ser invocada luego de la ejecución del método en modo asíncrono. Cuando se utiliza este parámetro la ejecución de la función se realiza de forma asíncrona.
statusToma valor true si el método de ejecutó correctamente y no se encontró el inicio de los datos.
errorSi status = false contiene información del error producido al ejecutar el método.

Mueve hacia atrás el registro activo y retorna un boolean indicando el resultado de la operación.


boolean moveNext ( [ function callback ( boolean  status , object  error ) { ... } ] );
callbackFunción a ser invocada luego de la ejecución del método en modo asíncrono. Cuando se utiliza este parámetro la ejecución de la función se realiza de forma asíncrona.
statusToma valor true si el método de ejecutó correctamente y no se encontró el fin de los datos.
errorSi status = false contiene información del error producido al ejecutar el método.

Mueve hacia adelante el registro activo y retorna un boolean indicando el resultado de la operación.


refresh ( function callback ( boolean  status , object  error ) { ... } );
callbackFunción a ser invocada luego de la ejecución del método en modo asíncrono. Cuando se utiliza este parámetro la ejecución de la función se realiza de forma asíncrona.
statusToma valor true si el método se ejecutó de forma correcta.
errorProvee información del error obtenido al ejecutar el método.

Refresca la colección de registros utilizando los datos de los parámetros del filtro.


clearData ();

En modo 'new' o 'edit' borra los datos del registro actual dejando en ellos los valores iniciales definidos.


setEmpty ();

Borra la colección de registros actuales que tiene en memoria, así como también los datos ingresados en los parámetros del filtro.


set ( string  field , variant  value );
fieldNombre del campo.
valueValor a asignar al campo.

Asigna valor a un campo del datasource. Dependiendo del modo en que se encuentre y si hay un registro activo el datasource puede automáticamente cambiar a otro estado como 'new' o 'edit'. El nombre del campo puede ser también el de uno de los parámetros del filtro prefijados con '@' en este caso el valor es almacenado para ser utilizado luego en la ejecución del método 'refresh'.

Propiedades

mode

El modo de ejecución del datasource.

Opciones
Nombre Descripcion
browse Modo normal que permite la navegación de registro en registro.
new Se encuentra agregando un nuevo registro, no permite navegar y solo permite acciones como 'cancel' y 'save'.
edit Se encuentra modificando el registro activo, no permite navegar y solo permite acciones como 'cancel' y 'save'.

object lastError

Contiene el último error encontrado en cualquier operación. Utilizada para obtener información detallada del error en la ejecución de métodos de forma síncrona, es decir sin utilizar función callback.