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 + '&nbsp;&nbsp;<strong>' + parsedRecord[0].fields[0].value + '<\/strong><br>';    $output = $output + '&nbsp;&nbsp;' + parsedRecord[0].fields[1].value + ''<br>'';    $output = $output + '&nbsp;&nbsp;' + parsedRecord[0].fields[2].value + ',';    $output = $output + '&nbsp;&nbsp;' + parsedRecord[0].fields[3].value;    $output = $output + '&nbsp;&nbsp;' + parsedRecord[0].fields[4].value + '<br>';    $output = $output + '&nbsp;&nbsp;' + 'Phone: ' + parsedRecord[0].fields[5].value + '<br>';    $output = $output + '&nbsp;&nbsp;' + 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.