Hola:
Utilizo la siguiente función para generar un JSON con todos los campos de una tabla para sincronizar tablas entre un Servidor y las Tablets.
Ahora cuando encuentra un campo tiene Enlace a una Tabla Maestra en el JSON me indica el ID a esa tabla maestra, pero yo quiero que se guarde el valor del campo “CODIGO” de la tabla enlazada. ¿Cómo podría hacerlo?
Saludos.
Ricardo Patón
function ExportJSON( list )
{
// Nos quedamos con la información de la tabla de importación
table = list.tableInfo();
if ( table )
{
// Nos quedamos con el nombre de la tabla
var tablaExportacionId = list.tableInfo().id().toString();
// Creamos un objeto a partir del cuál creamos la cadena JSON
var jsonObject = {};
// Definimos que contiene un objeto cuyo nombre es el identificador de la tabla y contiene líneas
jsonObject[tablaExportacionId] = { "rows" : [] };
// Recorremos la lista montando las líneas e incluyéndolas en el objeto
for( var reg=0; reg < list.listSize(); reg++ )
{
// Leemos el registro correspondiente
register = list.readAt( reg );
if (register.isOK() )
{
var row = {};
// Por cada registro montamos recorremos los campos y montamos el objeto row
for( var field = 0; field < table.fieldCount(); field++ )
{
row[register.tableInfo().fieldId( field )] = register.fieldToString( field );
}
// Por cada registro, introducimos el objeto row
jsonObject[tablaExportacionId].rows.push( row );
}
}
// Generamos la cadena JSON con ayuda de la función stringify
return JSON.stringify( jsonObject );
}
Puedes obtener el valor de cualquier campo Puntero a mestro:
var valor = register.fieldToString( “punteroMaestro.CODIGO” )
punteroMaestro es el nombre del campo puntero a maestro
CODIGO es el nombre del campo cuyo valor quieres obtener
El código JS que muestras es genérico para cualquier número de campos, sin tener en cuenta el tipo de enlace del campo. Tendrás que personalizar ese código para hacer lo que quieres.
Como siempre muchas gracias por tu ayuda. Objetivo conseguido.
Adjunto como queda.
Saludos.
Ricardo Patón
function ExportJSON( list )
{
// Nos quedamos con la información de la tabla de importación
table = list.tableInfo();
if ( table )
{
// Nos quedamos con el nombre de la tabla
var tablaExportacionId = list.tableInfo().id().toString();
// Creamos un objeto a partir del cuál creamos la cadena JSON
var jsonObject = {};
// Definimos que contiene un objeto cuyo nombre es el identificador de la tabla y contiene líneas
jsonObject[tablaExportacionId] = { "rows" : [] };
// Recorremos la lista montando las líneas e incluyéndolas en el objeto
for( var reg=0; reg < list.listSize(); reg++ )
{
// Leemos el registro correspondiente
register = list.readAt( reg );
if (register.isOK() )
{
var row = {};
// Por cada registro montamos recorremos los campos y montamos el objeto row
for( var field = 0; field < table.fieldCount(); field++ )
{
if( register.tableInfo().fieldBindType( field ) == 1)
{
row[register.tableInfo().fieldId( field )+".CODIGO"] = register.fieldToString(register.tableInfo().fieldId( field )+".CODIGO");
}
else
{
row[register.tableInfo().fieldId( field )] = register.fieldToString( field );
}
}
// Por cada registro, introducimos el objeto row
jsonObject[tablaExportacionId].rows.push( row );
}
}
// Generamos la cadena JSON con ayuda de la función stringify
return JSON.stringify( jsonObject );
}
}