PDA

Ver la Versión Completa : guardar de un DBGrid a una Tabla Paradox7


megaredoxk
26-11-2007, 17:54:11
un saludo muy especial...., compañeros me pueden ayudar a corregir este problemita..lo siguiente.

tablas paradox7 - Delphi6

tengo un DBGrid en el cual se insertan datos los cuales son
codigo cantidad producto valorunitario subtotal
1110 1 carro 5000 5000
1212 2 muñeco 1000 2000
1515 3 gafas 2000 6000

estos datos se deben guardar en la tabla3 = ventadetallada pero solamente se guarda el ùltimo registro ("solo un registro")
1515 3 gafas 2000 6000

el codigo que utilizo es el siguiente:
//Tabla Venta Detallada pero solo se guarda el primer campo y no todos los datos.

Table3.Append;
Table3.FieldByName('Código').Asinteger:= Dbgrid1.Columns[0].Field.Asinteger;
Table3.FieldByName('Producto').AsString:= Dbgrid1.Columns[2].Field.AsString;
Table3.FieldByName('Cantidad').Asinteger:= Dbgrid1.Columns[1].Field.AsInteger;
Table3.FieldByName('Valor').AsFloat:= Dbgrid1.Columns[3].Field.AsFloat;
Table3.FieldByName('SubTotal').AsFloat:= Dbgrid1.Columns[4].Field.AsFloat;
Table3.Post;
Table3.Next;

les agradezco mucho.

eduarcol
26-11-2007, 18:24:10
tienes que hacer un ciclo recorriendo el dataset relacionado con el dbgrid, y por cada registro en este ejecutas el codigo que tienes alli, pero el origen no es de dbgrid sino del dataset relacionado

Genner
27-11-2007, 21:07:46
por error de dedo comento en el siguiente mensaje

Genner
27-11-2007, 21:09:00
Tomando la respuesta de eduarcol, la cual me parece correcta el codigo quedaria asi

while not DataSetGrid.EoF do
begin
Table3.Append;
Table3.FieldByName('Código').Asinteger:= Dbgrid1.Columns[0].Field.Asinteger;
Table3.FieldByName('Producto').AsString:= Dbgrid1.Columns[2].Field.AsString;
Table3.FieldByName('Cantidad').Asinteger:= Dbgrid1.Columns[1].Field.AsInteger;
Table3.FieldByName('Valor').AsFloat:= Dbgrid1.Columns[3].Field.AsFloat;
Table3.FieldByName('SubTotal').AsFloat:= Dbgrid1.Columns[4].Field.AsFloat;
Table3.Post;
DataSetGrid.Next;
end;

megaredoxk
28-11-2007, 00:21:56
Muchas Gracias Compañeros...ya Pudimos Solucionar Este Problemita..gracias De Todo Corazòn