InfoPath de gizlene...
 
Bildirimler
Hepsini Temizle

InfoPath de gizlenen bir kontrolün "cannot be blank" şartını kaldırma  

  RSS
mustafa ünlü
(@mustafaunlu)
Üye

 

Merhaba arkadaşlar;

SharePoint için InfoPath de form tasarlarken karşılaştığım bir problem olan disable edilmiş kontrolün "cannot be blank"  kontrolünün nasıl kaldırılabileceği üzerine bir çözüm sunacağım.

Bu sorun ile karşılaşmanıza sebep olabilecek muhtemel senaryo şu şekilde.

* Bir drop-down box a bağlı A, B, C seçenekleri olsun

* Bu seçeneklerden A seçildiğinde A ya bağlı kontroller gözüksün diğerleri gizlensin

* Ve her halükarda seçime bağlı bütün kontroller "cannot be blank" yani doldurulması zorunlu olsun.

            Şimdi formu tasarlayıp publish ederek doldurmaya çalıştığınızı düşünün. Drop-down box dan A yı seçip zorunlu alanları doldurduğunuzda formu gönderemeyeceksiniz çünkü B veya C ye bağlı olupta gizlenmiş olan kontroller gizlenmiş olsalar da boş olmak istemeyeceklerdir.

            Bu noktada ilk akla gelen bir kural oluşturarak "cannot be blank" fonksiyonunu kaldırmak olacaktır fakat bunu denediğinizde infopath in buna müsaade etmediğini göreceksiniz.

            Benim bu noktada ki çözümüm tüm kontrollerin zorunlu olmaması yönünde. Yani olayı tersten okumak gerekiyor. Seçime bağlı bütün kontroller zorunlu olsun sadece kullanılmayacak kontroller zorunlu olmasın şeklinde düşünmek yerine; kontrollerin hiçbiri zorunlu olmasın sadece drop-down box da seçilen seçeneğin getirdiği kontroller zorunlu olsun şeklinde düşünmek daha faydalı olacaktır. Peki bunu nasıl yapacağız?

            Aslında bundan sonrası tamamen validation kuralı yazmakla alakalı. Yani drop-down box dan A seçildiğinde A seçeneği ile alakalı tüm kontrollere bir validation rule ekleyip şu 2 kuralı giriyorsunuz;

Eğer DropDownBox eşittir A ise ve

A seçeneği boş ise

            Show Screen Tips: "Burası Boş Kalamaz"

            Benim bulduğum en pratik çözüm buydu.

Hepinize kolay gelsin.

Alıntı
Gönderildi : 18/02/2013 20:49
Serkan Konak
(@serkankonak)
Üye

Paylaşım için teşekkürler.

CevapAlıntı
Gönderildi : 23/02/2013 00:10
Paylaş: