cxGrid...

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
DarkEternal
Üye
Mesajlar: 158
Kayıt: 19 Eki 2005 11:00

cxGrid...

Mesaj gönderen DarkEternal »

Herkese selamlar,
Cx gridde problemim şu;

2. hücreye adet,3. hücreye de birim fiyat, girişi yapıyorum,bunların çarpımıda 4. hücreye toplam olarak yazdırıyorum

EditValueChanged' e şu kodu yazdım fakat bu kodda o anki girilen değeri deil, bir önceki değeri alıp işlem yapıo

Kod: Tümünü seç

procedure TfrmMalzemeHareket.cxGridMalzemeHareketTableView1Column3PropertiesEditValueChanged(
  Sender: TObject);
begin
  cxGridMalzemeHareketTableView1.ViewData.Rows[0].Values[4]:=
  cxGridMalzemeHareketTableView1.ViewData.Rows[0].Values[2] *

  cxGridMalzemeHareketTableView1.ViewData.Rows[0].Values[3];

end;
onchange e yazdığımda ise grid içine bir şey yazılmıo?

2. Sorum ise çalışma anında hücre içi özellikler değişebilio mu?
Örneğin seçilene göre hücrenin combobox yada datetimepicker olmasını istiyorum?
En son DarkEternal tarafından 16 Ara 2005 09:26 tarihinde düzenlendi, toplamda 2 kere düzenlendi.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

İşlemi tablo üzerinde Calculate Field (hesaplanmış alan) olarak yapmayı denedin mi :?: Yani işlemi DataSet' e ekleyeceğin hesaplanmış alan için DataSet'in OnCalcField'ında yaptır. :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

1. sorunun cevabı zaten verildi. Aslında yapmaya çalıştığın şekilde de çözüm şekli var ama bu rüzgara karşı koşmaya benziyor. Zira yapmaya çalıştığın şey OnCalcFields' te rahatlıkla çözülebilir. QuantumGrid 5'in "UnBound Columns" özelliğini daha ziyade Lookup Dataset yerine kullanmaya çalışmanı tavsiye edebilirim.

2. sorunun cevabı da "Evet".

QuantumGrid'de çok daha fazlasını yapabilirsin. Ama bu iki sorunun cevabını da aynı yerde yani DataSet ve DataSource tarafında yapmaya çalışmalısın. QuantumGrid'i DBGrid olarak kullanmak istiyorsan bu tip işlemleri mümkün mertebe bu dediğim yerlerde yapmaya çalışmalısın.

İyi çalışmalar.
Kullanıcı avatarı
DarkEternal
Üye
Mesajlar: 158
Kayıt: 19 Eki 2005 11:00

Mesaj gönderen DarkEternal »

Anladım fakat ben sonuçları en son yolluorum database'e, benim burda yamak istediğim kullanıcı bir sayı girdiğinde direk toplam değeri değişsin, fakat anlayamadığım girileni deilde,bir önceki değeri alıp işlem yapıyo

Ayrıca hücre içi component nasıl değiştirilio , yolu neresi?

Yani ben cxgrid i dbgrid gibi deilde stringgrid gibi kullanıorum...
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Cevabı yanlış yerde arıyorsun.

DataController.OnDataChanged eventinde problemi çözeceksin. OnEditValueChanged'i kullanmayacaksın.

Ben örnek bir kod gönderiyorum, kendin istediğin gibi değiştirirsin:

Kod: Tümünü seç

try
    cxGrid1TableView1.DataController.OnDataChanged := nil;
    try
      cxGrid1TableView1.Controller.FocusedRecord.Values[2] := StrToFloat(VarToStr(cxGrid1TableView1.Controller.FocusedRecord.Values[0])) * StrToFloat(VarToStr(cxGrid1TableView1.Controller.FocusedRecord.Values[1]));
    except
      try
        cxGrid1TableView1.Controller.FocusedRecord.Values[2] := '';
      except
      end;
    end;
  finally
    cxGrid1TableView1.DataController.OnDataChanged := cxGrid1TableView1DataControllerDataChanged;
  end;
Bu arada QuantumGrid ve Developer Express'le tanıştığın için çok şanslı olduğunu ifade etmek istiyorum. Zira ben keşke 5 yıl önce tanışsaydım diyorum. Benzer şeyi 97 yılında Paradox'tan InterBase'e geçtiğimde ve son olarak da FireBird'den MS SQL'e geçtiğimde demiştim :lol:. Neyse Cami duvarına küçük abdestimizi yapmayalım.

İyi çalışmalar.
Kullanıcı avatarı
DarkEternal
Üye
Mesajlar: 158
Kayıt: 19 Eki 2005 11:00

Mesaj gönderen DarkEternal »

Çok teşekkürler...
Şimdi de şöyle bir problemim var;
DbTableview özelliğindeki tablomu datasource ' a bağlayıp istediğim alanları aldım,sonrada kullanıcının bilgi gireceği boş alanlar oluşturdum fakat ne yaparsam yapayım bu alanlara giriş yapılamıyor, bir şey yazılamıyor, read only özelliğide false, bu neden olabilir?
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

insert / edit / delete işlemini DataSource ı DBNavigator e bağlayıp yapabilirsin :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Eğer bahsettiğin "UnBound Columns" değilse
DbTableview.OptionsView.Navigator := TRUE yapmalısın.

Ama galiba bunu zaten yaptın?

QuantumGrid 4' te "UnBound Columns" kavramı yok. Bu kavram QuantumGrid 5' te var.

Yani veritabanında olan alanlar için kolon oluşturabilirsin. Oluşturduğun kolonları bir alana bağlamalısın.

İyi çalışmalar.
Kullanıcı avatarı
DarkEternal
Üye
Mesajlar: 158
Kayıt: 19 Eki 2005 11:00

Mesaj gönderen DarkEternal »

Sanırım ben tam olarak anlatamadım sorunu,ben database ten gelen bilgileri editlemek istemiorum, database ile alakası olmayan eklediğim column a giriş yapmak istiyorum,örneğin bir benzin istasyonunda

pompa / ilk litre / son litre / fark

pmpa1 x x x
pompa2 x x x
pompa3 x x x
pompa4 x x x

pompaları alıyorum databaseten, diğer kısımları kullanıcı hergün giricek,bir yerden gelmiyo sadece eklediğim boş coulmn, fakat bu kısma bir şey yazamıyorum
Kullanıcı avatarı
DarkEternal
Üye
Mesajlar: 158
Kayıt: 19 Eki 2005 11:00

Mesaj gönderen DarkEternal »

Birde kod olarak row nasıl ekliyoruz? rowcount a bir değer atayamıyorum bu özellik read-only diyo...
Kullanıcı avatarı
DarkEternal
Üye
Mesajlar: 158
Kayıt: 19 Eki 2005 11:00

Mesaj gönderen DarkEternal »

Bu 2 yöntemden biriyle yapıcam artık...
Cevapla