necesito ayuda con archivos cdx y dbf

ragar9
09 de Enero del 2009
Ante todo saludar a toda la gente de este foro soy nuevo y vengo con un problemilla
Necesito meter articulos para mi empresa en el facturaplus entonces tengo que meter en la base de datos 1000 articulos uno por uno ,la cosa viene porque tengo 5 familias distintas de estos articulos con la misma referencia y descripcion y me gustaria saber si es posible abrir los archivos dbf y cdx que ya los tengo localizados y meterlos a piñon osea copiar los de la 1º familia y pegarlos y asi solo tener que variar la familia y el precio
Espero me podais ayudar muchas gracias

seba
09 de Enero del 2009
Bueno, como debes de haber visto no existe una forma que sea copiar y pegar registros, ademas de que no entiendo del todo bien tu pregunta, pero si lo que queres hacer es insertar determinados resigtros de una dbf en otra lo que tenes que hacer es lo siguiente, primero abris la dbf de origen, luego la de destino y en la ventana de comandos de fox, pones APPEND FROM tablaorigen FOR condicion (ej. pais='URUGUAY'), espero que te sirva saludos.-

linguri
09 de Enero del 2009
A ver, no se si te he entendido bien, pero vamos con este programita, creo que te servira para cualquier cosa:

use tabla1 in 0 (la original que tu tienes)
copy structure to tabla2 with cdx
* tabla2 es la nueva tabla con los registros seleccionados,
* la creara cada vez que ejecutes el programa borrando lo que tenia, ten cuidado.
clear
private condicion
condicion=space(30)
@1,1 say 'Condición:' get condicion

* aqui tienes que poner algo como codigo=11 o familia="musica" segun lo que necesites

read
if inlist(readkey(),12,268)
return .f.
endif
clear
use tabla2 in 0
select tabla1
go top
do while not eof()
@1,1 say 'Registro nº '+alltrim(str(recno()))+' de '+alltrim(str(reccount()))
if &condicion
. select tabla2
. append blank
. replace campo1 with ....
. replace campo2 with ....

* si lo que quieres es copiar el registro tal y como esta cambia las lineas con punto por:
* scatter to unamatriz
* select tabla2
* gather from unamatriz

select tabla1
endif
skip
enddo

select tabla2
browse normal in screen

* esto solo si tienes que modificar los valores una vez copiados los registros.
* si lo quieres pasar a un fichero de texto, usa LIST TO FILE <FICHERO>
* el nombre de fichero es obligatorio, y si quieres que solo se copien determinados campos
* usa LIST FIELDS campo1, campo2,...

return .t.

asi de corrido, no se si se me pasara algo, me mandas un mail o pon una nota si tenes alguna duda

foxleonardo
09 de Enero del 2009
Eso depende de la estructura de las tablas, el comando a utilizar será

abres la tabla que deseas llenar, luego ejecuta

append from ...tablaquetienelosdatos.dbf

www.empresadae.cl