Uso del Bridge para obtener datos de registro desde 4D
Este ejemplo demuestra cómo utilizar el comando dax_bridge.getRecord para obtener registros desde 4D.
En este ejemplo se muestra una rejilla de datos a la izquierda con los nombres de las personas que se
encuentran en la tabla Contacts. Cada vez que se hace clic en un nombre de contacto, se realiza una llamada
a la base backend para obtener los detalles de registro mostrarlos en div identificado como 'myArea'.
Comando dax_bridge.getRecord
El comando dax_bridge.getRecord(selectionName, recordId, getRecordHandler, passedValue)
se utiliza para obtener un sólo registro desde 4D
Sintaxis: dax_bridge.getRecord(a, b, c, d)
a = selectionName; El nombre de la selección (table, view, dcs)
b = recordId; La identificación del registro ID (por ejemplo: '[5][6]').
c = getRecordHandler; La función JavaScript que se ejecuta cuando llega una respuesta desde 4D.
d = passedValue; objeto JavaScript, vcariable, array, etc. que se pasa al manejador. opcional
Configuración de la rejilla de datos
La rejilla de datos está configurada para mostrar únicamente los nombres que se encuentran
en la tabla Contacts. La rejilla se coloca en el div llamado 'choice'. Las columnas 0, 2, y 3
se ocultan vía código. Un evento .onDataRowClick se registra para que la rejilla llame a la función
myClick() cada vez que se hace clic en una línea.
Begin JavaScript code:
var ContactsGrid = new dax_dataGrid('Contacts', $('choice'), 0, 0);
ContactsGrid.go();
ContactsGrid.hideColumn(0);
ContactsGrid.hideColumn(2);
ContactsGrid.hideColumn(3);
ContactsGrid.onDataRowClick = myClick;
End JavaScript code
Evento Clic
La función myClick() de JavaScript se ejecuta cada vez que se hace clic en una línea de
la rejilla de datos. En este ejemplo, la función myClick primero define la propiedad .innerHTML del
div identificado como 'myArea' para decir 'fething data from backend', luego el comando
dax_bridge.getRecord se emite. Cuando se recibe una respuesta desde 4D se ejecuta
la función getRecordHandler.
Begin JavaScript code:
function myClick(row, recordId){
$('myArea').innerHTML = "fetching data from backend";
dax_bridge.getRecord('Contacts', recordId, getRecordHandler);
}End JavaScript code
getRecordHandler
El manejador es el tercer parámetro en la llamada del comando dax_bridge.getRecord.
Esta es la función JavaScript que se ejecuta cuando llega la respuesta desde 4D.
En este ejemplo, el manejador da formato a los datos luego escribe los datos con formato para la propiedad
.innerHTML del div identificado como 'myArea'.
Begin JavaScript code:
function getRecordHandler(parsedRecord){
$output = '';
$output = $output + ' <strong>' + parsedRecord[0].fields[0].value + '<\/strong><br>';
$output = $output + ' ' + parsedRecord[0].fields[1].value + ''<br>'';
$output = $output + ' ' + parsedRecord[0].fields[2].value + ',';
$output = $output + ' ' + parsedRecord[0].fields[3].value;
$output = $output + ' ' + parsedRecord[0].fields[4].value + '<br>';
$output = $output + ' ' + 'Phone: ' + parsedRecord[0].fields[5].value + '<br>';
$output = $output + ' ' + parsedRecord[0].fields[6].value + '<br><br>';
$output = $output + '<div style=\"margin-left: 305px;\"><img src=\"' + parsedRecord[0].fields[7].value + '\"><\/div>';
$('myArea').innerHTML = $output;
}End JavaScript code
Nota: Como parsedRecord[0].fields[7].value es un campo imagen en la base, definimos el atributo SRC de una etiqueta IMG igual al valor de este campo.