Exportación a Excel con nombres de campos largos y tablas libres en VFP


Visual Foxpro permite tablas (DBF) libres o tablas dentro de una base de datos contenedora. Cuando un archivo pertenece a una base de datos (DBC) los campos pueden tener más de 10 carácteres.

Si una tabla se ha configurado con campos largos y se extrae posteriormente del DBC, se pierde la descripción larga. Esto puede ser un problema con drivers ODBC que reconozcan los archivos con extensión DBF pero no reconozcan los DBC (pasa con algunos controladores en Linux/Unix). Para evitarlo, la mayoría de los programadores no usan nombres de campos largos dentro una tabla DBF.

Para exportar los datos a Excel con nombres de campos largos podemos usar un cursor. Hay que ir con cuidado: El nombre de campo largo debe ser largo desde el momento que se crea el cursor, a VFP no le gusta hacer un ALTER TABLE ALTER COLUMN de un cursor existente para ponerle un nombre de campo largo.

Los cursores admiten los campos de más de 10 carácteres. Una vez creado el cursor, se puede hacer una exportación a Excel, por ejemplo, usando la función
COPY TO nombrefichero TYPE XL5

Existen otras formas de generar un Excel, pero en este caso me he limitado a usar las funciones nativas existentes en VFP.

Ejemplo:

Select nombre as Nombre_Cliente, apellidos as Apellidos_del_Cliente from Clientes into cursor TmpClientes
Copy to Archivo_Excel type XL5

Al abrir el archivo Archivo_Excel.XLS desde Excel, veremos como ha respetado los nombres de los campos extendidos.

 

 

Anuncios

Un comentario en “Exportación a Excel con nombres de campos largos y tablas libres en VFP

  1. Pingback: Business intelligence (BI) con datos de Visual Foxpro. Problemas encontrados | David Acuña Guzman Blog

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s