Untitled 1
Microsoft Office Infopath 2007 içerisinde sağ bölümde yer alan
toolbox (araç kutusu) içerisinde kullanabileceğiniz pek çok kontrol mevcuttur.
Bu kontroller formun compatibility seçeneklerine göre (Web Based Formlar veya
Infopath Client Formları) değişiklikler arzedebilmektedir. Örneğin "multiple
checkbox list" kontrolü sadece Infopath Client compatibility seçenği işaretliyse
kullanılabilmekte, browser enabled formlarda kullanılamamaktadır. Bir textbox
kontrolü ise her iki türdeki formda da gayet başarılı bir şekilde
kullanılabilmektedir.
Özellikle iş akışlarının görev formlarını Infopath ile dizayn
ediyorsanız Infopath formunuzun içerisinde kişi seçimi yapabileceğiniz bir
kontrole ihtiyaç duyarsınız. Mesela görevin atandığı kişinin görev formu
üzerinden bu görevi bir başkasına ataması senaryosunu yerine getirebilmek için
form üzerinde kişi seçimi yaptırabilmelisiniz.
Sharepoint'in standart Approval ve Collect Data türündeki iş
akışlarında bahsettiğimize benzer bir form alanı vardır. Ve güzel tarafı bu
formda Infopath ile dizayn edilmiştir. Dolayısıyla buradan çıkaracağımız sonuç
amaçladığımız şeyin Ifopath ile gerçekleştirilebileceği yönünde.

Şimdi buna benzer (hatta aynısı) bir alanı formlarımızda nasıl
kullanırızbunu inceleyelim. Öncelikle Microsoft Office Infopath 2007'i açarak
yeni, boş bir form yaratıyoruz. ve formumuzun üzerine tek bir alan barındıracak
basit bir tablo nesnesi sürüklüyoruz.Formumuzn "Browser Enabled" bir form olması
için gerekli checkbox ı da işaretleyebilir eğer Sharepoint üzerinde
yayınlayacaksak.

Contact Selector kontrolü Infopath arayüzünün sağ bölümünde
yer alan "Design Tasks" bölümünde yer almaz bu nedenle bu kontrolü öncelikle
Infopath'e eklemeliyiz. Bu işlem için "Controls" tabının en altında yer alan
"Add or Remove Custom Controls" linkini tıklayarak sihirbazın açılmasını
sağlıyoruz.

Sİhirbaz içerisinde iki seçenek çıkacaktır karşımıza :
-
Template Part
-
ActiveX Control
Biz "ActiveX Control" seçeneğini işaretliyoruz ve devam
ediyoruz.

Bir sonraki ekranda ekleyebileceğiniz ActiveX kontrollerin bir
listesi gelecek karşınıza. Burada "Contact Selector" ı seçiyoruz.

"Next" butonunu tıkladığınızda değer türünün ne olacağını ve
ilgili kontrol için bir cab dosyası kullanıp kullanmayacağınızı soran ekranlar
gelecek. Burada "Value" ve "Don't include a .cab file" seçeneğini işaretliyoruz.


Tüm bunları tamamladığımızda yaratacağımız "Context Selector"
kontrolünün veri türünün bir grup mu yoksa bir alan mı olduğunu soran bir ekran
gelecek karşımıza. Contact Selector bir kontrol olarak içerisinde seçeceğiniz
kişinin username, domain, account type gibi bilgilerini de barındırır. Bu
nedenle biz bu bölümde "Field or Group (any data type)" seçeneğiniz
işaretliyoruz.

Ve son olarak sihirbazımızı sonlandırıyoruz.

Buraya kadar olan bölümde contact selector'un Infopath
içerisinde tanımlanmasını gerçekleştirdik ancak kontrolü kullanabilmek için
biraz daha emeğe ihtiyacımız var. Öncelikle sondan bir önceki adımı hatırlayalım.
Kontrolümüzün bir grup türünde olacağını söylemiştik. Bu nedenle şimdi dizayn
ettiğimiz formun "Data Source" bölümüne girelim ve burada bir grup, onun içine
bir repeating grup ve onunda içine 3 tane field yaratalım. Grup çünkü
kontrolümüzün bir grup türünde olduğunu söyledik, repeating grup çünkü birden
fazla kişi seçebiliriz, 3 tane field çünkü yukarıda belirttiğimiz gibi bu
kontrolde display name, username ve account type bilgileri tutulacak.
Alanlarımızı yarattığımızda formun data source görünümü şu
şekilde olacak.

Şimdi yine aynı datasource içerisinde "KisiSecim" adında bir
grup yaratıyoruz. Bu gruba birazdan daha önce yarattığımız "Person" isimli
repeating grubu bind edeceğiz.

Atamam işlemlerinde son olarak Person repeating grubunun
üzerinde sağ tıklayın ve "Reference" linkini tıklayın. Karşınıza XPath
seçebileceğiniz bir gezinti alanı gelecektir. Burada KisiSecim isimli alanınızı
seçin.


Artık KisiSecim isimli grubunuzun da içerisinde "Person"
isimli repeating grup, yani diğer bir tabirle kişi özellikleri alanları otomatik
olarak yaratıldı. Şimdi bu kontrolü (KisiSecim) formumuzdaki ilgili yer
yerleştirebiliriz. Bu işlem için KisiSecimi alanını datasource ekranında secili
tutun ve form içerisindeki istediğiniz yere sürükleyin. Nesne yaratılmadan önce
Infopath grup türündeki bu alanı hangi kontrol türünde ekrana yazmak
istediğinizi soracaktır. Ve işte burada "Contect Selector" da bir seçenek olarak
çıkacak karşınız.

Ve artık formunuz kişi seçimi için özel bir kontrole sahip.

Şimdi sonucu deneyelim

Evren AYAN
Ceviz Bilgi Teknolojileri
WSS Architecture MVP, ISPA Regional Evangelist
http://www.evrenayan.net
http://www.sharepointturkiye.org