Delphi - Copiar entre Tablas

   
Vista:

Copiar entre Tablas

Publicado por jesus alba (14 intervenciones) el 25/03/2008 01:17:07
Hola a todos. regresando ya despues de una semana de vacaciones. Un saludo especial a E.T. que me ha ayudado mucho. he estado batallando mucho con las Tablas DBF pues al querer brincar de un indice a otro me marcaba que no era multi capability, intente cambiar a Informic, Interbase o Sybase pero lamentablemente mi pc marcaba muchos errores asi que por de mientras intente con paradox, pero increible me marcaba el mismo error asi que tuve que agregar ciertas lineas de codigo

Esto para la busqueda por descripcion:
Table1.Close;
Table.Active:=False;
Table1.Indexname:=Descrip;
Table1.Active:=True;
Table1.Open;

ESto para la búsqueda por codigo:
Table1.Close;
Table.Active:=False;
Table1.Indexname:=Clave;
Table1.Active:=True;
Table1.Open;

con esto se corrigio lo de multi capability, pero luego surgio otro error pues cada vez que ejecutaba mi aplicación y terminaba que la tabla estaba bloqueda u ocupada y era una locura salir y entrar de delphi 7 cada vez que probaba mi aplicacion, eso apesar de agregar Table1.Close; al salir de la form activa. por ello me puse a leer y encontre que paradox suele ocasionar muchos problemas con sus indices, asi que lo mas probable es volver a mis dbf para evitar esa serie de errores con sus indices. esto pues como ya resolvi lo de multi capability, pero ahora solicito su orientacion/ayuda para lo siguiente:
mi aplicacion realizara una busqueda en 4 bases de datos para buscar alguna informacion y esta informacion quiero grabarla en otra base de datos por ejm

choferes==> nombre con un LookUpComboBox
ayudante==> nombre con un LookUpComboBox
Vehiculos==> descrip con un LookUpComboBox

y por ultimo leera el codigo en una caja de texto y buscara su coincidencia en una tabla llamada clientes y debera desplegarlo en una DBedit y esta informacion la debere grabar en otra tabla llamada rutas.

SALUDOS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Copiar entre Tablas

Publicado por E.T, (1108 intervenciones) el 25/03/2008 17:27:14
No comprendo bien, cuatro bases de datos, o cuatro tablas, pues si simplemente quieres traspasar la información solo necesitas poner las TTable a cada base de datos, con su correspondiente tabla, luego te posicionas en los registros deseados, por médio de búsqueda, y pasas la infomación por código

Puedes dar una descripción de lo que es esto:

choferes==> nombre con un LookUpComboBox
ayudante==> nombre con un LookUpComboBox
Vehiculos==> descrip con un LookUpComboBox

Pues no me queda del todo claro.

Deberías quedarte con FireBird, solo que hay que hacer unos pequeños cambios, pues firebird no usa boolean, pero no es dificil cambiar tu aplicación, ya he cambiado algunas sin mayores problemas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Copiar entre Tablas

Publicado por jesus alba (14 intervenciones) el 26/03/2008 03:47:52
hola E. T. como estàs? no se que pasa aquì en el foro porque ya van dos veces que publico respuestas y no aparecen...

por otro lado utilizo bases de datos dbf ya acabe con el problema que me marcaba con eso de que finalizaba la aplicacion y me indicaba que la base de datos estaba ocupada. como lo hice? ok en la Ttable en opcion Active lo deje en False y en la form en el evento activate le puse la sentencia Table1.Active:=True; y al salir de la forma agregue el codigo Table1.Active:=False; y Table1.Close;

Y ya con eso se corrigiò pues necesito esas mismas bases de datos en otras forms. Agreguè esas mismas lìneas de còdigo en las disitntas forms que utilizo: Importacion de Clientes de las dos empresas, Importacion de Inventarios de las dos empresas, Catalogo de Choferes, Catalogo de Ayudantes y Catalogo de Vehiculos.

Ahora estoy diseñando la pantalla de captura de ruta de despacho. aqui tengo varias dudas te las voy detallando poco a poco pero primero te digo las dbf que utilizo.

Choferes.dbf con campos codigo y Nombre ambos tipo char longitud 2 y 30 caracteres
Ayudantes dbf con campos codigo y Nombre ambos tipo char longitud 2 y 30 caracteres
Vehiculos.dbf con campos codigo y Descripcion ambos tipo char longitud 2 y 30 Caracteres

Cada una con su Ttable y Datasource respectivamente, y vinculados a ellos un LookUpComboBox que desplegara el campo Nombre, Nombre y Descripcion respectivamente, esto para evitar tanta captura; pense en usar bases de datos.

Tambien llevara un DBedit para el campor ruta, otro DBedit para el campo Zona y otro DBedit para el campo fecha. primera pregunta: No se si haya una manera de crear el DbEdit con separadores "/" para dd/mm/aa???

todos estos campos deberán guardarse en el dbf llamado rutas (Fecha, Ruta, Zona, Chofer, Ayudante, Vehiculo). se me habia ocurrido por medio de codigo asignar los valores a alguna variable y despues vaciarlas a la base de datos o habra alguna otra manera.?

esto es lo que concierne a la informacion de la ruta o encabezado. porque despues viene el detalle que lleva Factura, Nota de Credito, Orden Cte1, Cte2, Nombre. Y la problematica radica en lo siguiente. Factura, Nota de Credito y Orden son cajas de textos simples, Pero Cte1 debera buscarlo en un dbf de clientes Y si tiene informacion desplegarlo en Nombre pero si esta vacio pasar a Cte2 y buscarlo en otra dbf de Clientes y desplegarlo en nombre (se que suena raro, lo que pasa es que llevamos dos empresas en las cuales se repiten los numeros de clientes y usamos una sola flota vehicular para ambas empresas.

Ya tenemos el formato imagina nada mas en excel para un volumen de facturacion de 5,000 facturas al mes y capturar todo en excel es una locura tanto tiempo desperdiciado. Bueno ya me sali del tema. el formato tiene 36 lineas para llenarse una idea mia era al termin ar cada linea poner un messageDlg y preguntar si habia mas para capturar si es si grabar y reiniciar los DBEdit en blanco y si es no Grabar y enviar al formato de impresion. o en vez de cada linea poner cada diez y validar que si habia en blanco registros no tomar en cuenta. pero otra opnion era poner un Grid para captura pero mi duda es si en un Grid se puede hacer que busque en otra tabla y extraiga la informacion?

no se si este bien en una misma form dar de alta los datos de la ruta y el detalle tambien o tengo que segmentarlos 3 forms 1.-alta de la ruta 2.- alta de detalle de facturas y 3.- impresion. justo como tenemos un sistema en Dbase.

Tengo en mente otros proyectos pero ya teniendo este lo demas será mas sencillo, espero que me puedas ayudar. si es mejor consultar por email aqui tienes el mio jesusalba@yahoo.com

en cuanto a Firebird baje el 2.1 creo que todavia es beta, no se que tan estable sea esta version y lo instalé como Server ¿está bien? pero me pierdo trae un Firebird ISQL Tool pero creo que es puro sql y alli si que estoy frito ¿tendrás bibliografía?

saludos y gracias por tu atenciòn
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Copiar entre Tablas

Publicado por E.T. (1108 intervenciones) el 26/03/2008 17:20:32
Bueno, que tal.

Para las fechas puedes usar un DateTimePicker, o bien un maskEdit.

Lo de los lookupComboBox es buena opción, te ahorra el tecleo.

Te recomiendo unificar las tablas de clientes en una sóla, haciendo distinción con agregar un campo para identificarlos en caso de ser necesario.

Para la captura yo haría lo siguiente:
Un Form donde capturar los datos, con un grid donde se muestren los ya capturados; en un page control con dos páginas, en la primera los datos de la ruta, en la página 2 los detalles, abajo fuera del page control el grid con los registros de las rutas, para ahi seleccionar una y mandarla a imprimir

Para firebird, te recomiendo "EMS interbase and Firebird manager" te evita casi todos los comandos o sentencias en SQL para manejar tus datos, yo tengo la "lite edition".

Si necesitas ayuda más específica escribeme al correo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar