TAdoDatasete Virtual Alan Ekleme

Yapmak istediğiniz işle ilgili doğru bileşeni bulmak için burayı kullanabilirsiniz. Sadece bulmak için, diğer sorular Programlama forumuna lütfen.
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Cevapla
emrahgs
Üye
Mesajlar: 114
Kayıt: 08 Tem 2008 06:25
Konum: Antalya

TAdoDatasete Virtual Alan Ekleme

Mesaj gönderen emrahgs »

Merhabalar
TAdoDatasete Virtual Alan Eklemek istiyorum.

Örneğin Ürünün Yalnızca kodunun olduğu bir datasette adı adında bir sanal alan eklemek istiyorum.
Fakat
Lookup, Calculated vs değil (Calculated alana sadce onCalcFields 'da veri atanıyor ben istedğim yerden atama yapmak istiyorrum)
Konuyu Biraz araştırınca InternalCalc Tipindeki Field olursa tam istedğim sonucu alacağım ama onuda Adodataset desteklemiyor.
Bunun dışında nasıl bir çözüm bulabilirim.
ertank
Kıdemli Üye
Mesajlar: 1691
Kayıt: 12 Eyl 2015 12:45

Re: TAdoDatasete Virtual Alan Ekleme

Mesaj gönderen ertank »

Merhaba,

Ekranda gösterilen verileri MemoryTable içine alıp istediğiniz alanı ekleyebilirsiniz. Ekranda gösterilen veriler virtual table içinden gelen veriler olur.

Eğer DevExpress bileşenlerini kullanıyorsanız unbound grid kolonlarını istediğiniz gibi açıp (sanal kolon dahil) içini siz istediğiniz gibi doldurabiliyorsunuz. Arka planda yine memory table kullanılıyor bu işlemde de.
emrahgs
Üye
Mesajlar: 114
Kayıt: 08 Tem 2008 06:25
Konum: Antalya

Re: TAdoDatasete Virtual Alan Ekleme

Mesaj gönderen emrahgs »

Teşekkür Ediyorum cxgrid unbound column özelliği üzerine yoğunlaştım.
Büyük ölçüde işimi çözüyor
örneğin
Kodu alanın veri girğildiğinde adını onvalidate'de getiryoum
bu şekilde bir başka alanlarda var
ama dataset open olduğunda bunlar doğal olarak çalışmıyor
paratik bir şekilde bir çözümü varmıdır
ertank
Kıdemli Üye
Mesajlar: 1691
Kayıt: 12 Eyl 2015 12:45

Re: TAdoDatasete Virtual Alan Ekleme

Mesaj gönderen ertank »

Merhaba,
Unbound demek dataset bağlantısı olmaması demek.
TcxGridDBTableView kullanıyorsanız bununla olmaz.
TcxGridTableView (class isminde DB ifadesi olmayan) kullanmalı ve içini siz doldurmalısınız
emrahgs
Üye
Mesajlar: 114
Kayıt: 08 Tem 2008 06:25
Konum: Antalya

Re: TAdoDatasete Virtual Alan Ekleme

Mesaj gönderen emrahgs »

unbound kullanıyorum TcxGrid1DBTableView de de çalışıyor sorun yok
Girdde KODU alanın da propertiee de TCXEDİT seçip onun validate'inde yapıyorum
aşağıdaki örnekteki gibi yaptığım da çalışıyor fakat dataset open olduğu bu metodları tekrar çalıştırmak gerekiyor.

Kod: Tümünü seç

procedure TForm34.cxGrid1DBTableView1KODUPropertiesValidate(Sender: TObject;
  var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
begin
  ADOQuery1.Close;
 ADOQuery1.SQL.Text:='select ADI FROM STOK WHERE KODU='+QuotedStr(DisplayValue);
 ADOQuery1.Open;

 cxGrid1DBTableView1.DataController.SetValue(
 cxGrid1DBTableView1.DataController.FocusedRowIndex,
 cxGrid1DBTableView1girdsanalbirim.Index
 ,ADOQuery1.Fields[0].Value);
end;
ertank
Kıdemli Üye
Mesajlar: 1691
Kayıt: 12 Eyl 2015 12:45

Re: TAdoDatasete Virtual Alan Ekleme

Mesaj gönderen ertank »

Bu yazdıklarım benim okuduklarıma istinaden tahminim.
Anladığım kadarıyla ADI bilgisini ilk çalıştırdığınız ana sorgu içine JOIN kullanarak STOK tablosunu eşleştirerek ekleyebilirsiniz.
Yazdığınız kodlara gerek kalmaz. TcxGridDBTableView kullanabilirsiniz zira ADI bilgisi sorgu içinde gelmiş olacak.
emrahgs
Üye
Mesajlar: 114
Kayıt: 08 Tem 2008 06:25
Konum: Antalya

Re: TAdoDatasete Virtual Alan Ekleme

Mesaj gönderen emrahgs »

Tamamdır Tekrar Teşekkür Ediyorum.
Cevapla