Dbgrid'e 2.satıra otomatik değer atama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
kemal5
Üye
Mesajlar: 16
Kayıt: 23 Tem 2004 03:09
Konum: izmir
İletişim:

Dbgrid'e 2.satıra otomatik değer atama

Mesaj gönderen kemal5 »

En başta herkese selamlar diliyorum.
Sorum bu ;
Dbgrid 1.satıra girdiğim veriler mesela ;
1.satır için :
1. sütun 5
2. sütun 10
3. sütun 50
olsun.Örnek olsun diye çarpma işlemi gösterdim.
İşte ben 50 sayısını 2.satırın 3.sütuna atsın istiyorum. Bir değerde bir değişme olduğu zaman diğerlerini de etkilemesini istiyorum
Bunları herhangi bir editle yazdıracağım.Editle yazdırırken hangi komutları kullanmalıyım.
2.sütun toplamlarını da dbedite aktaracağım.
Şimdiden teşekkürler.[/list]
İzmir doğumluyum.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Selam,

en güzeli olayı calculated field ile dataset tarafında halletmeniz. calculated diye aratırsanız ne olduğu ve nasıl yapıldığı hakkında da bilgiler var forumda.

Kolay gelsin.
Kullanıcı avatarı
Query
Üye
Mesajlar: 363
Kayıt: 29 Ara 2003 05:13

Mesaj gönderen Query »

Slm;

Ben bu tür işlemlerde

Kod: Tümünü seç

DBGrid1.SelectedIndex

komutunu kullanıyorum. Hangi sutunda olduğunu böyle anlıyorsun. Bi alt satıra geçmek için eğer kayıt varsa

Kod: Tümünü seç

Query1.Next;
Query1.Edit;
Query1.FieldByName('Toplam').AsFloat := x;


gibi diyebilirsin.

Daha ayrıntı verirsen yardımcı olabilirim

Kolay gelsin
Kullanıcı avatarı
Query
Üye
Mesajlar: 363
Kayıt: 29 Ara 2003 05:13

Mesaj gönderen Query »

Kod: Tümünü seç

procedure TForm1.DBGrid1ColEnter(Sender: TObject);
var
  top : Integer;
begin
  if DBGrid1.SelectedIndex = 3 then 
  begin
  Query1.FieldByName('Toplam').AsInteger =
  Query1.FieldByName('Sayi1').AsInteger * Query1.FieldByName('Sayi2').AsInteger;
  Query1.Post;
  top := Query1.FieldByName('Toplam').AsInteger;
  Query1.Next; // eğer kayıt yoksa buraya Query1.Insert yaz
  Query1.Edit; 
  Query1.FieldByName('Toplam').AsInteger = top;
  end;
end;
gibi
Cevapla