aslında yapmak istediğim su bir cx grid de görüntülediğim kayıtları kullanıcı mouse ile alıp en alttaki kaydı en üste koyabilsin veya ...
aıtoyorum en alttan 3 kaydı seçsin alıp bunu en başa ve istediği yere bırabilsin bunu nasıl yaparım...
cxgrid de görünen kayıtların indexlerini değiştirmek
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- Mutlaka daha teknik bir metod vardır ama araştıracak vaktim yok.
- Bunu direkt yapmayı denemedim, mecbur olsaydım önceki tecrübelerimden kolaj yapar şunu denerdim.
1. - Öncelikle veritabanında bu iş için bir SWAP alanı olurdu. Neden, çünkü numaralarını değiştireceğim kayıtların eski nolarının yedeklenmesi lazım.
2. - MouseToCell ile BeginDrag olduğu yerdeki X,Y koordinatlarının hangi satır , sütun'a ait olduğunu global bir değişkene atardım.
3. - Sonra DragDrop olan yerde de aynısını yapar yeni satır ve sürun koordinatlarını alırdım.
4. - Bu iki satır farkı bana kaç kayıt önce veya sonraya olduğunu verir. Satır farkı kadar kayıt gerideki veya ilerideki kaydı yardımcı bir SQL ile tespit ederdim.
- Dayanak noktalarım belli oldu mu ? evet
Gerisi Database operasyonuna kalıyor.
Başarılar..
- Bunu direkt yapmayı denemedim, mecbur olsaydım önceki tecrübelerimden kolaj yapar şunu denerdim.
1. - Öncelikle veritabanında bu iş için bir SWAP alanı olurdu. Neden, çünkü numaralarını değiştireceğim kayıtların eski nolarının yedeklenmesi lazım.
2. - MouseToCell ile BeginDrag olduğu yerdeki X,Y koordinatlarının hangi satır , sütun'a ait olduğunu global bir değişkene atardım.
3. - Sonra DragDrop olan yerde de aynısını yapar yeni satır ve sürun koordinatlarını alırdım.
4. - Bu iki satır farkı bana kaç kayıt önce veya sonraya olduğunu verir. Satır farkı kadar kayıt gerideki veya ilerideki kaydı yardımcı bir SQL ile tespit ederdim.
- Dayanak noktalarım belli oldu mu ? evet

Başarılar..
cxGrid in bağlı DataSet in indeks yapısından bağımsız her bir alanı ayrı ayrı sıralayabildiğinden bu sıralamayı etkileyecek bir kayıt yer değiştirme nasıl olur bilemiyorum. Tüm sıralama olaylarını kapatıp Muharrem hocamın söylediğine benzer birincil indeksi (PK) değiştirerek bu işlemi yapmak mümkün görünüyor. Diyelim beşinci sıradaki kayıtı dokuzuncu kayıtın sonrasına koymak gerekti. Öncelikle fare ile tutulan beşinci kayıtın bırakıldığı yerdeki (buradaki dokuz) kayıt sıra nosu + 1 yapılır. Beşinci kayıtın yeni sira_no alanı (PK) taşınan yerin bir sonrası olarak atanır. Tabi öncesinde buradan sonrakileri de birer artırmak gerekiyor
Bu pekâlâ mümkündür. Master/Detail yapılarda meşakatlı olur 


Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!