Guardar JSON en una tabla
Cuando se produce el evento Link clicked en el Visor HTML de parseo se ejecuta el manejador EVENTO_CLICK.
Manejador de evento: EVENTO_CLICK
Rem ( Se ha producido el evento Click en el Visor de parseo )
If ( indexOfString(EVENT_PARAMS[1], "FILE:///", 0, 0) > -1 )
Rem ( El Link viene como una Ruta de disco. El JSON comienza con un caracter # )
Set ( CHREF_LINK, mid(EVENT_PARAMS[1], indexOfString(EVENT_PARAMS[1], "#", 0, 0) + 1) )
Else
Set ( CHREF_LINK, EVENT_PARAMS[1] )
Rem ( Decodificamos el URI ya que en el texto del atributo href vienen codificados los caracteres NO ASCII )
Set ( CHREF_LINK, /*JAVASCRIPT*/decodeURI(theRegister.varToString("CHREF_LINK")) )
// Mensaje ( CHREF_LINK, Información, , "Parsear HTML" )
Rem ( Leemos el JSON y rellenamos la tabla temporal )
Cargar lista ( PARSEO_HTML@0PS_Varios_dat, ID, , , , )
Recorrer lista eliminando fichas
Libre
Interfaz: Ejecutar manejador de evento ( GUARDAR_DATOS_JS, LOK )
Libre
Rem ( Mostramos la lista de filas obtenidas en el Rejilla )
Interfaz: Recalcular ( GRD_LISTA )
Con el siguiente manejador javascript parseamos el string JSON recibido desde el Visor HTML y guardamos los valores en la tabla temporal para mostrarlos en la Rejilla.
Manejador de evento: GUARDAR_DATOS_JS
// Obtenemos el JSON parseado de la página HTML
var cJSON = theRoot.varToString("CHREF_LINK")
var lError = false, lGuardar = false
var oLinea = null
try {
var oJSON = JSON.parse(cJSON)
// alert("Filas: " + oJSON.length)
}
catch(oError) {
alert("Error en el JSON: " + oError.message)
lError = true
}
if (!lError) {
var oRegistro = new VRegister(theRoot)
if (!theRoot.existTrans()) {
lGuardar = true
theRoot.beginTrans("Rellenando la tabla temporal con los datos")
}
// Rellenamos la tabla temporal con el array JSON
if (oRegistro.setTable("0PS_VARIOS_DAT/PARSEO_HTML")) {
for (i = 0; i < oJSON.length; i++) {
oLinea = oJSON[i]
oRegistro.setField("NAME", oLinea["CAMPO"])
oRegistro.setField("DATO", oLinea["DATO"])
if (!oRegistro.addRegister()) {
alert("Error añadiendo las líneas a la tabla temporal")
if (lGuardar) theRoot.rollbackTrans()
break
}
}
}
if (lGuardar) theRoot.commitTrans()
}
Created with the Personal Edition of HelpNDoc: Easily create HTML Help documents