Uso do Bridge para obter dados de registro desde 4D

Este exemplo mostra como utilizar o comando dax_bridge.getRecord para obter os registros desde o backend do banco de dados 4D. Neste exemplo é mostrada um data grid a esquerda com os nomes das pessoas encontradas na tabela Contacts. Cada vez que um nome de contato é myClick, é realizada uma chamada ao banco do backend para obter os detalhes do registro e exibí-lo em div identificado como 'myArea'.

Comando dax_bridge.getRecord

O comando dax_bridge.getRecord(selectionName, recordId, getRecordHandler, passedValue) é utilizado para obter somente um registro de 4D

Sintaxe: dax_bridge.getRecord(a, b, c, d)
         a = selectionName; O nome da seleção (table, view, dcs)
         b = recordId; A identificação do registro ID (por exemplo: '[5][6]').
         c = getRecordHandler; A função JavaScript que é executada quando chega uma resposta de 4D.
         d = passedValue; objeto JavaScript, vcariable, array, etc. que se passa ao tratador. opcional


Configuração do data grid

O data grid está configurado para mostrar unicamente os nomes que se encontram na tabela Contacts. O data grid é colocado no div chamado 'choice'. As colunas 0, 2, e 3 são ocultadas via código. Um evento .onDataRowClick é registrado para que o data grid chame a função myClick() cada vez que se clique em uma linha.

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 Click

A função myClick() de JavaScript é executada cada vez que se clica em uma linha no data grid. Neste exemplo, a função myClick primeiro define a propriedade .innerHTML do div identificado como 'myArea' para dizer 'fething data from backend', logo o comando dax_bridge.getRecord é emitido. Quando se recebe uma resposta desde 4D a função getRecordHandler é executada.

Begin JavaScript code:
function myClick(row, recordId){    $('myArea').innerHTML = "fetching data from backend";    dax_bridge.getRecord('Contacts', recordId, getRecordHandler); }
End JavaScript code

getRecordHandler

O tratador é o terceiro parâmetro na chamada do comando dax_bridge.getRecord. Esta é a função JavaScript que é executada quando chega a resposta desde 4D. Neste exemplo, o tratador dá formato aos dados logo escreve os dados com formato para a propriedade .innerHTML do 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 é um campo imagem no banco de dados, definimos o atributo SRC de uma tag IMG igual ao valor deste campo.