cxgrid multiselect nasıl ?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
kodcuminik
Üye
Mesajlar: 140
Kayıt: 11 Oca 2009 10:25

cxgrid multiselect nasıl ?

Mesaj gönderen kodcuminik »

merhaba
cxgrid kullanmaktayım
multiselect özelliği ile hiç işlem yapmadım da multi select için bir örnek verebilirmisiniz acaba
tam olarak yapmak istediğim
örneğin seçilen kayıtların ilini ankara yapmak istiyorum gibi

tek tek tıklayıp rec nolarını bir memoya yada değişkende toplayıp o aralıkta 2 ci bir query ile işlemi bitirmek gibi ama ???? :D
yol varken dağdan niye gidelim :) teşekkürler
bilmezler bilmediklerinide bilmezler ama kendilerini bilir sanırlar
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: cxgrid multiselect nasıl ?

Mesaj gönderen vkamadan »

Merhaba ,
cxGrid seçilen satırları TcxGridDBTableView.Controller.SelectedRows konteynırında toplar , sonrasında sizde döngüye girerek aşağıdaki gibi bir yapıyla seçilmiş kayıtlara ulaşabilirsiniz .

Kod: Tümünü seç

  for I := 0 to cxGrid1DBTableView1.Controller.SelectedRowCount - 1 do
     begin
       ShowMessage( cxGrid1DBTableView1.Controller.SelectedRows[i].Values[0]  );
     end;
Values[0] , e vereceğiniz indis sütun numarasıdır.

İyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
kodcuminik
Üye
Mesajlar: 140
Kayıt: 11 Oca 2009 10:25

Re: cxgrid multiselect nasıl ?

Mesaj gönderen kodcuminik »

peki hocam
kullanıcı kendi isteğine göre sutunların yerini değiştirirse ilgili sutun numarasıda değişir
mesela ilgili sutunu recno olacak kabül edersek bu döngü ile recno sutunundaki bilgileri bir
değişkene atar o aralıktaki bilgileride tekrar 2 ci bir query ile güncellerim

peki bunu 2ci bir gridde gösteterebilirmiyim yani 2 ci bir query kullanmadan selected row un böyle bir sağladığı kolaylık varmı acaba ?

teşekkürler
bilmezler bilmediklerinide bilmezler ama kendilerini bilir sanırlar
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: cxgrid multiselect nasıl ?

Mesaj gönderen vkamadan »

Merhaba ,
Evet benim önerdiğim yöntemde sütun sıralaması değişirse sıkıntı çıkar aşağıdaki bağlantıda seçilmiş kayıtların dataset üzerindeki konumlarını (BookMark) döndüren bir örnek görebilirsiniz bu sayede gridden değil verileri datasetten okuma şansını yakalamış olursunuz.

http://www.devexpress.com/Support/Center/p/Q269276.aspx

İyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
kodcuminik
Üye
Mesajlar: 140
Kayıt: 11 Oca 2009 10:25

Re: cxgrid multiselect nasıl ?

Mesaj gönderen kodcuminik »

hocam teşekkürler bokmark biraz karışık geldi ama ilk verdiğniz örnek işi hallediyor ama kullanıcı rapor üzerinde oynadıgında
values değişiyor

peki şöyle birşey yapma şansımız yokmu

adoqueryde fields listi memo içine atarak istediğimiz alanın sıra numarasını index sini öğrenebiliyoruz
cxgriddde benim ilgili alanım

cxGrid1DBTableView1KAYITNO
bulun çalışma anında valuesini ilgili index numarasını öğrenemezmiyiz

bunu öğrenebilsem kullanıcı sıralama ile oynasada önce ilgili alanın valuesini öğrenir i değişkenine değer olarak atar işi bitirirz ama
ben bir türlü bulamadım customozation popup daki fields listi memoya atabilsem oda işimi çözecek ama bir türlü bulamadım
basit bişey gibi geliyor cxGrid1DBTableView1KAYITNO.caption dediğimde captionu verdiğine göre bir şekilde index sıra numarasınıda veriyor dur ama nasıl ?
teşekkürler :oops: :oops: :oops:
bilmezler bilmediklerinide bilmezler ama kendilerini bilir sanırlar
kodcuminik
Üye
Mesajlar: 140
Kayıt: 11 Oca 2009 10:25

Re: cxgrid multiselect nasıl ?

Mesaj gönderen kodcuminik »

teşekkürler hocam aslında verdiğiniz link sorunu çözüyor ama ben yinede sizin verdğiniz yönteme ilave yaparak çalıyı dolandım
data setteki field sayısı kadar forla döndürerek KAYIT NO ALANIN valuesini bir değişkene atıp sizin
yazdığnız şekilde yola devam ettim böylelikle sutun yerleri değişsede işlemi yapmadan önce KAYIT NO alanın valuesini öğrenip
yola devam ettik :) yinede acaba problem çıkartırmı diye düşünüyorum ?

Kod: Tümünü seç

VAR
i:integer;
rcn:integer;
x:integer;
begin
for i := 0 to cxGrid1DBTableView1.DataController.DataSet.FieldCount - 1 do
begin
if cxGrid1DBTableView1KAYITNO.Caption=cxGrid1DBTableView1.Columns[i].Caption  then
begin
rcn:=i;
end;
end;
for x := 0 to cxGrid1DBTableView1.Controller.SelectedRowCount - 1 do
     begin
       ShowMessage( cxGrid1DBTableView1.Controller.SelectedRows[x].Values[rcn]  );
     end;
end;

bilmezler bilmediklerinide bilmezler ama kendilerini bilir sanırlar
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: cxgrid multiselect nasıl ?

Mesaj gönderen yusuf simsek »

Cevaplar için teşekkürler, bizi büyük zahmetten kurtardı...

Bizim de çorbada tuzumuz bulunsun istedik ve kod bloğunda küçük bir değişiklik yaptık...

Böylece kullanıcı sütunun sıralamasını değiştirse bile zahmetsizce sorun sorun olmayacak

Kod: Tümünü seç

var
  i:integer;
begin

  for i := 0 to cxGrid1DBTableView1.Controller.SelectedRowCount - 1 do
     begin
        ShowMessage( cxGrid1DBTableView1.Controller.SelectedRows[ i ].Values[   cxGrid1DBTableView1.FindItemByName( 'cxGrid1DBTableView1KAYITNO' ).Index    ]  );
     end;
end;

cxGrid1DBTableView1.FindItemByName( 'cxGrid1DBTableView1KAYITNO' ).Index ifadesi ile cxGrid1DBTableView1KAYITNO sütunun index değerine ulaşıyorsunuz...
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
Cevapla