C# ile DevExpress Nesneleri Kullanımı #RadioGroup

Ağustos 13, 2016 Mustafa BÜKÜLMEZ 0 Yorum


Selamlar Arkadaşlar

Bu makalemde DevExpress  nesnelerinden olan RadioGroup kullanımını anlatmaya çalışacağım.

Arkadaşlar bildiğiniz üzere Windows nesneleri artık kullanışsız geliyor. Kaldi ki görsel olarakda hiç iyi değil. Kullanımları daha zor geliyor bana. Ama DevExpress görsel olarak kendini aşmış kullanım olarak maksimum kolaylık bir eklenti olarak karşımıza çıkıyor ve hem masaüstü hemde web kapsamlı bir eklentidir.. Bugünde bize sağladığı kolaylıklardan biri olan RadioGroup nesnenesini anlatmaya çalışacağım.

Bence henüz devexpress kullanmıyorsanız bir an önce kullanmaya başlayın. Sağladığı kolaylıklara inanamayacaksınız.

Windows nesnelerinde radio nesnesini kullanacağımız zaman önce bir onları bir groupbox'a alıp sonra özellikler kısmından ait oldukları grupları belirmek gerekiyor ki bunu yapmazsak sadece birinin seçilmesini istesek de tüm seçenekler işaretlenebiliyor. Ama bizim istediğim örn 5 tane radio'dan sadece birinin seçilmesi....

DevExpress bunu bizim için hazır hale getirmiş. RadioGroup nesnesini ekliyorsunuz. Sağ üst kısımdaki ok simgesine tıklayarak nesneye özel ayarlara girip oradan o grup içine istediğiniz kadar radio nesnesi ekleyebiliyorsunuz.

Resimde gördüğünüz gibi " Edit Items " e tıkladığınız raido ekleme alanı karşımıza geliyor.
Add butonuna tıkladıkça yeni bir radio ekliyor ve sağ taraftan adını vs güncelleyebiliyoruz.


Kullanımınu bir örnek üzerinde uğraşalım. Örneği yine geliştirdiğim projelerden örneklerle anlatacağım.
Şimdi senaryomuz şöyle olsun;
Formumuzda 1 adet GridView var. Bu GridView de ise siparişlerimizi listeliyoruz. Formun en üstünde de bir adet RadioGroup nesnemiz var. 
ve bu RadioGroup nesnemizde de resimdeki liste seçeneklerimiz var. Seçtiğimiz seçeneğe göre listemizde siparişlei göstereceğiz. 

Şimdi GridView güncellemek için bir void yazalım.

 private void GridUpdate()
        {
            string where = "  ";
            switch (radioGroup1.SelectedIndex)
            {
                case 0:
                    where = " where Siparis_Tarihi < " + DateTime.Now.ToString("yyyyMMdd");
                    break;
                case 1:
                    where = " where Siparis_Tarihi = " + DateTime.Now.ToString("yyyyMMdd");
                    break;
                case 2:
                    where = " where  Siparis_Tarihi > " + DateTime.Now.ToString("yyyyMMdd");
                    break;
            }
            // switch case konusunu daha sonra ayrıntılı bir şekilde anlatacağım
            // burada switch case yerine if de kullanabilirsiniz.
            gridControl1.DataSource = null;
            gridView1.Columns.Clear();
            gridControl1.DataSource = sql.ShowTable("Select * from Siparisler  "+ where);
        }


Yukarıda gördüğünüz gibi RadioGroup nesnesinden seçilen radio'ya göre ilgili listeyi sql sorgusunun where şartını değiştirerek göstermiş olduk. 

Amaaa şimdi bu da çok açıklayıcı olmadı en iyisi birde sql insert ve update de bunu nasıl kullanırız ona bakalım.
Sadece insert sorgusu içerisinde nasıl kullanılır onu göstereceğim.

" radioGroup1.SelectedIndex " Bunu yazdığınızda seçili olanın index numarasını alır.
" radioGroup1.Text " Bunu yazdığınızda seçili olanın yazısını alır. (ama bunu tavsiye etmiyorum.)

Kaydı  tekrar güncellemek için kartoku işlemi yaptığınızda bu değeri
" radioGroup1.SelectedIndex  = Convert.ToInt16(okunandeğer)
şeklinde atamasını yapmanı lazım. 

Ama burada da bir handikap var. Herşeyi ayarladınız. Müşteriye kullandırdınız. Adam bir dünya kayıt girdisi yaptı. Eğer ki sonradan RadioGroup içerisindeki Radioların yerlerini değiştirirseniz kartoku işleminde yanlış seçim yapacaktır. Örn;

0 - bitmiş işler
1 - bitmemiş işler
2 - yapılan işler

Sıralaması ile ayarladanız ve seçime göre de update yaptırdınız. Bir zaman sonra(Örn 3 ay sonra);

0 - bitmemiş işler
1 - yapılan işler
2 - bitmiş işler

Şeklinde sıralamayı değiştirdiniz.
Değiştirmeden önce bitmiş işlerde görünen bütün işler değişimden sonra bitmemiş işler olarak görünür.
Çünkü öncesinde durum bilgisi 0 olanlar(sıfırıncı index) bitmiş işlerdi. Ama artık durum bilgisi 0 olanlar bitmemiş işler oldu. Bu durumda kart oku işlemi yaptığınızda durum bilgisi stunundaki o işe ait durum bilgisi 0 olduğundan ve biz de bunu RadioGroup nesnesinin selectedindex değerine gönderdiğimiz için 0. index (sıfırıncı) seçili olacak ve aslında bitmiş olarak işaretlenen iş bitmemiş olarak işaretlenmiş gibi olacak.

Eğer  radioGroup1.Text şeklinde kaydederseniz, Kartoku işlemi yaptığınızda yukarıdaki gibi geri atama yapamayabilirsiniz. Daha önce onu hiç denemedim o yüzden olur yada olmaz diye birşey diyemeyeceğim. Olursa sorun yok ama olmazsa daha uzun bir yol seçmeniz gerekiyor. O uzun yol ise SQL select sorgusu içerisinde Case When (daha sonra bu konuyu da anlatacağım) kullanarak yapmaktır.

NOT: örnekte gördüğünüz sql.showtable("...") şeklinde kullanım şekli yazdığım bir sql işlemleri class ın kullanım şeklidir. İlgili makale için tıklayın

Saygılarımla
Mustafa BÜKÜLMEZ




0 Yorum: