PDA

Ver la Versión Completa : Registros en DBGrid a una Tabla Paradox


koalasoft
09-10-2005, 21:38:48
Buenas . tratare de ser claro ...

Lo que quiero hacer y no he buscado como es :rolleyes: ...

Tengo en un DBGRID reflejando una seria de registros supongamos 3 registros mas o menos asi ...

CLAVE DESCRIBCION CANTIDAD
OOO1A PAQUETE UNO 10
OOO1B PAQUETE DOS 20
OOO1C PAQUETE OTRO 05

Ahora supongamos que esto esta reflejado asi dentro de un DBGRID ok !!

Bueno .. hay alguna forma de que estos registros refrejados en el DBGRID se puedan guardar uno por uno en otra tabla Paradox que contenga "por logica" los mismos campos.
menciono uno por uno ya que pondre validacion para que no haya redundancia de de datos en mi caso las CLAVES.
Es posibleme hacer esto ?? ..

Saludos !! :D

marcoszorrilla
09-10-2005, 21:42:08
Pues si tienes una propiedad del DbGrid "SelectedRows", que te sirve para saber que filas han sido seleccionadas, entonces no tienes más que recorrer la rejilla y las que esten seleccionadas las vas añadiendo a la otra tabla, que como muy bien dices tiene que tener la misma estructura.

Un Saludo.

koalasoft
09-10-2005, 21:48:05
Como ? selecionando las filas ??
Hay alguna forma de hacerlo no se por sentencias o algo asi .. si me pudieran dar algun ejemplo :rolleyes:

Saludos !! :D

Epunamun
09-10-2005, 22:57:02
procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
table1.Insert;
table1.FieldByName('Nombre Producto').AsString := table2.fieldbyname('Nombre Producto').AsString;
table1.Post;
table1.Refresh;


eso es para guardar datoa a otra tabla pero se entiende????

koalasoft
10-10-2005, 15:24:33
Ok .. gracias .. pero chenadolo posiblemente creo que sea por alli .. Pero !!!
Pues lo que busco es que los registros mostrados en un DBGrid como el ejemplo mencionado ...

CLAVE DESCRIBCION CANTIDAD
OOO1A PAQUETE UNO 10
OOO1B PAQUETE DOS 20
OOO1C PAQUETE OTRO 05
Estos registros mostrados en un DBGRID se puedan guardar en una tabla diferente uno x uno.
y repito .. uno por uno puesto que quiero hacer vailidacion y evitar redundancias.

alguno idea ??? :rolleyes:

vtdeleon
10-10-2005, 15:47:29
Saludos

Creo que la mayoria de nosotros aún no tenemos una idea clara de lo que necesite.

-Como piensas validar los datos( a que te refieres concretamente a validar)
-Piensas recorrer los registro por bucle o manualmente?
-Por qué dos tablas iguales?, Creo que mejor es hacer una sentencia SQL que busque la redundancia de un Campo X

koalasoft
10-10-2005, 16:57:29
Ok .. miren !!
Al referirme "validacion" es evitar que un indice se duplique .. vaya un ejemplo seria el famoso ...

if table1.Finkey ([edit1.text]) then
{Mesage que ya existe }

ahora si ???
-Piensas recorrer los registro por bucle o manualmente? bueno .. ahora el otro ... Me gustaria hacerlo por bucles pues seria mas comodo para el usuario !!
-Por qué dos tablas iguales? ok aqui va mi razon
Lo que pasa es que tengo una seccion de ventas .. ok bueno hago lo normal .. efectuo la busqueda y lo guardo en una tabla temporalmente

Por que temporal ?? .. bueno .. dentro de esta tabla voy almacenendo el registro que las "compras" hechas ok y todas estas bajo un solo registro .. lo hago asi por que en caso de que yo quisiera cancelar un producto .. solo lo busco y lo cancelo .. y al teminar guardo la venta hecha ... ahora una ves realizado esto guardo en otro registro la venta guardadndo el Registro de la venta, con su fecha, cantidad de productos vendidos , cantidad total la series del producto ... aqui el detalle

registro de venta ==> 01234

CLAVE DESCRIBCION CANTIDAD
OOO1A PAQUETE UNO 10
OOO1B PAQUETE DOS 20
OOO1C PAQUETE OTRO 05

Ahora se me acaba de prender el foto o no se si estoy equivocado :s
Pero cuando guardo los registros los guardaria a una tabla de ventas-realizadas almacenando alli la seria los datos (nombre,grupo,etc) y el numero de registro de venta ... esto en cada uno de los productos.

Bueno me imagino que por lli estoy bien . el detalle es que en algunos registros los manejo por cantidad com por ejemplo PAQUETE UNO .. asi qeu cuando quiera realizar otra venta el registro del PAQUETE UNO se duplicara y posiblemnet me marcaria un ero puesto que la llave o index ya existe en la tabla paradox.

Como quien dice quedaria de esta forma

CLAVE DESCRIBCION CANTIDAD REG DE VENTA
OOO1A PAQUETE UNO 10 01234

Si se llega a realizar esta venta otra ves con otra cantidad .. se duplicaria la clave 0001A en la tabla de ventas-realizadas.

Y bueno .. no se como podria resolver esto ...

Por tal motivo pensaba hacerlo de la forma antes explicada ..

Como la ven ??? :rolleyes:

koalasoft
10-10-2005, 20:06:15
Que nadie ?? o esta muy duro ?? :confused:

roman
10-10-2005, 20:41:02
Relamente no veo la duda. Al parecer ya tienes todos los elementos para hacerlo.

Para empezar te olvidas del DBGrid que lo que importa es la tabla asociada. Recorres ésta y en cada paso validas. Si es correcto lo insertas y si no no.


while not TablaOrigen.Eof do
begin
if not TablaDestino.FindKey(...) then
begin
TablaDestino.Append;
TablaDestino.FieldByName(..) := TablaOrigen.FieldByName(...);
TablaDestino.FieldByName(..) := TablaOrigen.FieldByName(...);
TablaDestino.FieldByName(..) := TablaOrigen.FieldByName(...);
...
end;

TablaOrigen.Next;
end;


// Saludos

koalasoft
10-10-2005, 21:36:29
Excelente ..

Muchas gracias .. hice pruebas y resulto que asi era ...

Por cierto en las partes de las validaciones usar Id consecutivo para que en caso que registrara la misma serie no importara puesto que le daba una id diferente en cada venta a ese articulo ..

Gracias por la ayuda, tips e ideas ..

Saludos !!! :D