Veysel Uğur KIZMAZ

Infopath Formunda Seçili CheckBox Sayısını Bulma

30.06.2013Okunma Sayısı: 6451Kategori: Sharepoint 2010

Infopath’te birden fazla onay kutusu (checkbox)’ımızdan kaçının seçili olduğunu bulmak istersek nasıl bir yol izlememiz gerekir?

Gelin bu konuyu bir örnek üzerinde detaylıca inceleyelim. Örneğimizde checkboxlarda eğitim seviyeleri yer alsın ve birden fazla eğitim seviyesi seçimine izin verelim. Seçim sırasında da kaç tanesinin seçili olduğunu görelim.
 
Infopath formumuzun alanları 5 adet true/false değer saklayan değerden oluşmaktadır:
 
- EgitimLise  - EgitimOnLisans  - EgitimLisans  - EgitimYuksekLisans  - EgitimDoktora
 
 
Bu elemanlardan kaçının seçili olduğunu tutmak için Integer türünde SeciliElemanSayisi isminde bir alan daha oluşturalım.
 
 
Alanı oluşturduktan sonra 2 kere tıklayıp özelliklerine gidelim. Özelliklerinden  formül ekleme butonuna tıklayalım.
 
 
Açılan formül ekranında İşlev Ekle ile bir eleman sayısını hesaplamak için count fonksiyonunu ekleyelim.
 
 
Count fonksiyonda yazan Alan eklemek için çift tıklayına tıkla yerine çift tıklayıp alan ekleme işlemi yapalım. Burada yapacağımız işlem: EgitimLise isimli checkbox’ın değerinin true olup olmadığını döndürmek olacaktır. Bunun için Alan ve Grup Seç ekranında ilgili alanı seçip Verilere Filtrele Uygula seçeneğini seçerek filtrede alanın değerini kontrol edeceğiz.
 
 
Filtre ekranı açıldığında Ekle butonundan yeni filtre ekliyoruz. Filtre kontrolümüz aşağıdaki gibi EgitimLise = DOĞRU kontrolü olacaktır. Bu işlem sayesinde EgitimLise değeri DOĞRU olan değerlerin sayısını alacağız. Eğer EgitimLise seçili ise 1, seçili değil ise 0 değeri dönecektir.
 
 
EgitimLise için bu işlemi yaptığımızda count(EgitimLise[. = string(true())]) formula oluşmaktadır. Aynı işlemi diğer checkboxlar için de tekrarlayıp tüm countları toplama işlemi yapıyoruz. Yapılan işlemin son hali aşağıdaki gibi olacaktır.
 
 
count(EgitimLise[. = string(true())]) + count(EgitimOnLisans[. = string(true())]) + count(EgitimLisans[. = string(true())]) + count(EgitimYuksekLisans[. = string(true())]) + count(EgitimDoktora[. = string(true())])
 
 
SeciliElemanSayisi sütununun değerini de ekranda gösterecek şekilde ayarlayalım.
 
 
İşlemlerimiz tamamlandı. Şimdi sıra test aşamasında!
Infopath formunu önizleme yapıp testlerimizi yapalım. Hiçbir eleman seçli değil iken değerimiz 0 oldu.
 
 
Her eleman seçiminde değerimiz seçili eleman sayısı kadar olacaktır.
 
 
 
Yepyeni makalelerde görüşmek dileğiyle :)
 
Veysel Uğur KIZMAZ
Bilgisayar Mühendisi
veysel@ugurkizmaz.com
www.ugurkizmaz.com