Cargar datos

Hola... Acudo a ti para aprovechar tu sabiduría y voluntad...
Mira... Tengo un sistema hecho en vfp 6 que he logrado hacer con la ayuda de personas como tu. En este sistema se muestran en una grilla los clientes y donde el usuario selecciona los registros a los cuales le enviara cartas... Todo esto funciona sin ningún problema...
El problema que he visto es que a los usuarios del sistema les llega toda la información de los clientes en un archivo excel.. El cual yo he establecido un formato de ciertos nombres de columnas, para luego yo desde VFP importarlo mediante el asistente y generar la tabla con los nombres de campos que mi sistema de cartas necesita(todo esto manualmente y así cada mes). Tengo que utilizar el asistente de importación de VFP, porque si lo exporto como dbf desde excel me da problemas y no se porque.
Mi pregunta es, como hago para que mi sistema lea el archivo de excel y lo convierta a dbf para que los datos sean visualizados en mi sistema... Ademas esto ayudaría a que si faltan clientes basta con que los agreguen al archivo de excel y al abrir mi programa los nuevos clientes aparezcan en el sistema.
Es posible hacer esto... Como puedo lograrlo... Espero me hayas entendido y puedas ayudarme.
Espero tu ayuda...
Respuesta
1
Ok se que existen programas que permiten la apertura de archivos de un programa por otro son para facilitarle el trabajo al usuario final pero en el caso de Vfp y excel estamos trabajando de 2 tecnologías completamente distintas y con fines distintos los archivos en excel son archivos planos y los dbf son archivos en 3d por decir tineen profundidad...
El problema que tienes al tratar de exportar los directamente a una tabla puede ser los nombres de los campos
y si desea llevarla a una tablan con datos básicamente el append no trabaja así que debes hacer un import de vfp después de haber modificado los nombres de los campos a una tabla temporal..
Bueno con respecto a abrir no creo que se pueda como te dige al inicio 2 tecnologías diferentes pero se me ocurre que puedes crear una pantalla en blanco y hacer referencia al archivo para que sea llamada a esa pantalla en blanco creando un área de con la obsesión OLE active por aunque nunca lo he hecho creo que de hay puedes hacer el vinculo
suerte y cualquier consolta con gusto

1 respuesta más de otro experto

Respuesta
1
Teniendo el archivo de excel abierto le das guardar como y le dices que sea delimitidao ... esto te genera un archivo de texto
A ese archivo de texto desde el foxpro generar algo como para exportar esos archivos de texto... es decir un formulario donde le digas que archivo y utilizando
nFile = fopen( "c:\archivotexto.txt" )
Nfile regresa mayor de cero si se pudo abrir...
Luego empiezas a navegar por el archivo buscando el carácter de tab creo es el 8...
Navegas con el archivo mediante fread o mejor utilizando el fgets, que te daría el primer renglón en una variable de cadena.
cCad = fgets( nFile ) --> regresa el primer renglon..
con la cadena haces algo como esto
for x = 1 to len( cCad )
nCaracter = substr( cCad,x,1 )
if nCaracter = chr(8) && llegamos al primer campo,
...
Más o menos es la idea.
Hola nuevamente... mira busque información al respecto sobre esos comandos pero no encontré nada que pudiera entender... aparte que no se donde aplicarlos si si directo al archivo excel o a un dbf...
Puedes indicarme donde encontrar info o puedes indicarme la forma de aplicarlo y a que archivos...
Espero tu respuesta y gracias nuevamente...
Si te entiendo, mira aquí creo depende del programador el como querer hacerlo... yo para no batallar mucho con el modelo de objetos de excel y evitarme abril el archivo y empezar a navegar por todos los objetos mejor agarro el archivo de excel y lo grabo con formato delimitado por tabulaciones en guardar como de excel, a ese archivo ya lo puedes leer desde el foxpro utilizando fread, fclose, fopen, etc. recuerda estari separados por el carácter de tabulación... suerte...
Disculpa... abusando de tu sabiduría y buena voluntad... ¿es posible que me puedas enviar un sencillo ejemplo para poder entender esto y poder adaptarlo y aplicarlo a lo que necesito?
pleaaassseeeee..
mi mail es [email protected]
Espero puedas y quieras ayudarme...
Y donde debo colocar el código... en algún evento del formulario o en un botón.. ¿en dónde?.. disculpa mi ignorancia y novetez en el tema...
Espero..
Sorry donde me encuentro no tengo nada que pudiera mandarte, pero casi lo que te pongo de ejemplo es todo eso...
Diseña un formulario y en algún botón pon el código...
Si claro recuerda que cCad = fget( nFile ) // regresa POR linea del archivo hasta encontrar un enter, es decir toda la linea completa...
Entonces
nCampo = 1
for x = 1 to len( cCad )
cCar = substr( cCad,x,1 )
if no retorno
cSubCar = cCar + cCar
endif
if retorno de carro
replace &Fields(ncampo) with cSubCar
cSubCar = ""
Endif
... más o menos así seria el código, claro esto es para el POR renglón, tienes que ciclar el archivo hjasta que encuentre el fin de archivo digo el archivo de texto claro...
Este código no esta depurado, es para darte una idea... ya lo que te pediría es que te pusieras analizar a fondo tu problema.. creo que aquí todo esta dado, quizás algo desde el comienzo no haz entendido...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas