Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Copiar campo (https://www.clubdelphi.com/foros/showthread.php?t=7214)

lore 08-02-2004 22:59:09

Copiar campo
 
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í

Código:

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í:

Código:

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


La franja horaria es GMT +2. Ahora son las 05:01:22.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi