# Solucionado: Exportar todas las tablas en archivos separados

**URL:** <https://foros.velneo.com/t/solucionado-exportar-todas-las-tablas-en-archivos-separados/7599>\
**Category:** Velneo\
**Created:** [26 Noviembre, 2014 20:29 UTC](https://foros.velneo.com/t/solucionado-exportar-todas-las-tablas-en-archivos-separados/7599 "2014-11-26T20:29:27Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![alberto\_nudman](https://avatars.discourse-cdn.com/v4/letter/a/e68b1a/32.png) [@alberto\_nudman](https://foros.velneo.com/u/alberto_nudman)\
**Post date:** [26 Noviembre, 2014 20:29 UTC](https://foros.velneo.com/t/solucionado-exportar-todas-las-tablas-en-archivos-separados/7599/1 "2014-11-26T20:29:27Z")

</div>

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 ------------------------

---

<div class="post-metadata">

**Author:** ![percyleoncio](https://avatars.discourse-cdn.com/v4/letter/p/b5a626/32.png) [@percyleoncio](https://foros.velneo.com/u/percyleoncio)\
**Post date:** [26 Noviembre, 2014 23:42 UTC](https://foros.velneo.com/t/solucionado-exportar-todas-las-tablas-en-archivos-separados/7599/2 "2014-11-26T23:42:08Z")

</div>

Buen aporte amigo Spicer, habrá que probarlo.

---

<div class="post-metadata">

**Author:** ![metalbot-2](https://avatars.discourse-cdn.com/v4/letter/m/9de053/32.png) [@metalbot-2](https://foros.velneo.com/u/metalbot-2)\
**Post date:** [7 Septiembre, 2015 07:53 UTC](https://foros.velneo.com/t/solucionado-exportar-todas-las-tablas-en-archivos-separados/7599/3 "2015-09-07T07:53:47Z")

</div>

Hola, buenos días.

No consigo hacer funcionar este script, lo he incluido en el proyecto y lo lanzo con un proceso, pero no hace nada.

¿ Hay que modificar el código js?

Muchas gracias.

---

<div class="post-metadata">

**Author:** ![metalbot-2](https://avatars.discourse-cdn.com/v4/letter/m/9de053/32.png) [@metalbot-2](https://foros.velneo.com/u/metalbot-2)\
**Post date:** [7 Septiembre, 2015 10:34 UTC](https://foros.velneo.com/t/solucionado-exportar-todas-las-tablas-en-archivos-separados/7599/4 "2015-09-07T10:34:49Z")

</div>

He encontrado que hay que sustituir ciertos carácteres al pegar el código: las dobles comillas y el signo de la resta.  
Se borra y se reescribe y con la ruta de los ficheros creada, empieza a funcionar.

Un saludo.

---

<div class="post-metadata">

**Author:** ![solucionamos](https://avatars.discourse-cdn.com/v4/letter/s/bbce88/32.png) [@solucionamos](https://foros.velneo.com/u/solucionamos)\
**Post date:** [13 Febrero, 2020 18:00 UTC](https://foros.velneo.com/t/solucionado-exportar-todas-las-tablas-en-archivos-separados/7599/5 "2020-02-13T18:00:40Z")

</div>

Hola Spicer. Por favor, ¿tienes una versión actualizada de tu script para “Exportar todas las tablas”? Aunque si corre, está exportando un revuelto de tablas en cada lista. ¿Existe alguna solución similar en el vERP que exporte todas las tablas de una vez? Te agradezco tu ayuda.

---

<div class="post-metadata">

**Author:** ![solucionamos](https://avatars.discourse-cdn.com/v4/letter/s/bbce88/32.png) [@solucionamos](https://foros.velneo.com/u/solucionamos)\
**Post date:** [7 Marzo, 2020 17:13 UTC](https://foros.velneo.com/t/solucionado-exportar-todas-las-tablas-en-archivos-separados/7599/6 "2020-03-07T17:13:31Z")

</div>

Por favor, ¿alguien tiene un proceso para Exportar todas las tablas a csv? No he podido con el tema ☹

---

<div class="post-metadata">

**Author:** ![pacosatu](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/pacosatu/32/5131_2.png) [@pacosatu](https://foros.velneo.com/u/pacosatu)\
**Post date:** [9 Marzo, 2020 18:29 UTC](https://foros.velneo.com/t/solucionado-exportar-todas-las-tablas-en-archivos-separados/7599/7 "2020-03-09T18:29:11Z")

</div>

Hola solucionamos.

Exportar todas las tablas de una Base de datos a CSV es una petición muy extraña. No le veo mucha utilidad. Hay muchos campos que no admiten exportación directa a CSV (objetos, fechas, punteros, …) ya que necesitan especificar la codificación de salida y otras cuestiones.

En cualquier caso, es un proceso muy sencillo, aunque es necesario unos conocimientos básicos de javascript y haberse leído bien la documentación del API.

Puedes probar con una sola tabla y una vez dominado el tema, extenderlo a varias tablas.

Saludos  
Paco Satué

---

<div class="post-metadata">

**Author:** ![solucionamos](https://avatars.discourse-cdn.com/v4/letter/s/bbce88/32.png) [@solucionamos](https://foros.velneo.com/u/solucionamos)\
**Post date:** [16 Marzo, 2020 22:39 UTC](https://foros.velneo.com/t/solucionado-exportar-todas-las-tablas-en-archivos-separados/7599/8 "2020-03-16T22:39:39Z")

</div>

A casi todos mis clientes les realizan auditorías y les exigen backups de su información. Mi solución está en la nube, y no es la excepción.

A mis clientes les estuve pasando unos backups automáticos de la carpeta de datos de Velneo pero prefieren unos simples archivos .csv que puedan utilizar inmediatamente y sin depender de nadie.

Aunque no es la solución ideal, tener estos archivos planos (además de los backups de la base de datos) les brindaría una gran sensación de seguridad y además me facilitaría la comercialización de mi producto 😃

Mi aplicación no maneja campos especiales ni tampoco maneja datos masivos, así que los  
archivos planos no serían demasiado grandes. Si alguien pudiera colaborarme con esta utilidad quedaría muy agradecido.

Lo que pienso es ejecutar un proceso automático que me exporte archivos por cada tabla, comprimir todo y que se envíe periódicamente a una carpeta de Dropbox del Cliente. Todo está resuelto; sólo estoy ilusionado es con un proceso que me exporte todo a archivos .csv.

No conozco mucho javascript y he estado bastante ocupado en estos días. Por eso he pedido la ayuda. Muchas gracias 😊
