PDA

Ver la Versión Completa : Copiar campo


lore
08-02-2004, 22:59:09
Hola, saludos a todos :p , les cuento que quiero pasar el contenido de un campo a otro para que en una grilla me quede algo parecido
Desde Hasta Valor
0 10 1
10 20 2
20 30 3

y el siguiente código es:

Tabla.Active := true;
Tabla.Insert;
if Tabla.RecordCount = 0 then
begin
Tabla.FieldByName('Desde').AsInteger := 0;
Tabla.FieldByName('Hasta').AsInteger := SpinEdit1.Value;
Tabla.FieldByName('Valor').AsCurrency := SpinEdit2.Value;
Tabla.Post
end
else
begin
Tabla.FieldByName('Desde').AsInteger := TablaHasta.AsInteger;
Tabla.FieldByName('Hasta').AsInteger := SpinEdit1.Value;
Tabla.FieldByName('valor').AsCurrency := SpinEdit2.Value;
Tabla.Post;
end;

pero no lo consigo, ah :rolleyes: , y si selecciono una fila en la grilla los dos últimos campos volcarlos en las columnas de un listview. Les agradecería enormente ya que estoy trabada con esto y no consigo avanzar.

__cadetill
09-02-2004, 10:04:16
Hola Lore

No entiendo muy bien que es lo que quieres hacer, pero lo del ListVuew puedes hacer algo así


var
v : TListItem;
begin
// El método ADD del ListView devuelve un objeto de tipo TListItem
v := ListView1.Items.Add;
v.Caption := TablaHasta.AsString;
v.SubItems.Add(TablaValor.AsString);


Suponiendo que tienes el ListView definido con 2 columnas

lore
09-02-2004, 16:11:59
Disculpá, a lo que me refiero es que al ingresar un registro, el segundo campo del registro pase a ser el valor del primer campo del registro que le sigue, o sea que tome una secuencia así: 1°reg.(0,10), 2°reg.(10,20), 3°reg.(20,30)

__cadetill
09-02-2004, 16:53:56
Bueno, entonces antes de añadir el registro has de capturar el valor del registro anterior (por ejemplo en el BeforeInsert del TTable).

Podria quedar algo así:


var
ValorAnt : integer;

procedure TMiForm.Table1BeforeInsert(DataSet: TDataSet);
begin
if Tabla.RecordCount = 0 then
ValorAnt := 0
else
ValorAnt := Table1.FieldByName('Desde').AsInteger;
end;

procedure TMiForm.Button1Click(Sender: TObject);
begin
Tabla.Active := true;
Tabla.Insert;
Tabla.FieldByName('Desde').AsInteger := ValorAnt;
Tabla.FieldByName('Hasta').AsInteger := SpinEdit1.Value;
Tabla.FieldByName('Valor').AsCurrency := SpinEdit2.Value;
Tabla.Post
end;


Más o menos esa seria la idea