Estimados,
Luego de algunos dolores de cabeza logré hacer un JS que exporte todos los datos de todas las tablas, en un archivo separaddo CSV para luego editar. Se aceptan obviamente sugerencias de mejoras.
Adjunto el script
------------------------------- INICIO ------------------------------
// ExportarTodasLasTablas.js
// Todas las tablas del proyecto y heredados
// Importamos las clases que vamos a necesitar
importClass( “VTextFile” );
importClass( “VFile” );
// Inicializamos varibles
var tablas = “”;
var fichero = “”;
var senda = “c:/temp”;
var file = “”;
var theMainProject = theApp.mainProjectInfo();
var list = new VRegisterList(theRoot);
if ( theMainProject )
{
for( var nIndex=0; nIndex < theMainProject.allTableCount(); nIndex++ )
{
// Objeto vTableInfo de la tabla
var tableInfo = theMainProject.allTableInfo( nIndex );
// Obtengo el idRef. Notar que debe ser idRef y no al revés
var Ref = tableInfo.idRef();
// Asigno una lista a la tabla
var AsigOk = list.setTable(Ref);
if ( tableInfo )
{
// Montamos la cabecera
for( var field = 0; field < tableInfo.fieldCount(); field++ )
{
file += tableInfo.fieldId( field ).toLowerCase() ;
if ( tableInfo.fieldCount() - 1 > field )
file += “|”;
}
// Añadimos fin de línea
file += “\n”;
// Cargo la lista
var CargaOK = list.load(“ID”,[]);
var NumRegistros = list.size();
// Recorremos la lista montando el fichero
for( var reg=0; reg < NumRegistros; reg++ )
{
var register = list.readAt( reg );
if (register.isOK() )
{
for( var field = 0; field < tableInfo.fieldCount(); field++ )
{
file += register.fieldToString( field );
if ( field < tableInfo.fieldCount() - 1 )
file += “|”;
}
// Añadimos fin de línea
if ( reg < NumRegistros - 1 )
file += “\n”;
}
}
// Grabo el archivo
// Declaro el objeto archivo
var archivo = new VTextFile( “c:\temp\exportTablas\” + tableInfo.id() + “.csv”);
alert (archivo.fileName());
// Abro archivo
if ( archivo.open( VFile.OpenModeWriteOnly || VFile.OpenModeTruncate) )
{
archivo.write( file );
// Cierro
archivo.close();
}
else
{
// Si no ha sido posible abrir el fichero se muestra error
alert(“Error. No se ha podido generar el fichero.\n” + “\n” + archivo.error() + “\nFinaliza el proceso.”);
}
} // if (tableInfo)
} // for (bucle ntablas)
} // if (theMainProject)
----------------------------------- FIN ------------------------