Makale Özeti

Bu makalede örnek bir uygulama üzerinde Infopath formları anlatılmaktadır.

Makale

Untitled Document

INFOPATH (2/2)

Form ve Validation Olayları

InfoPath ile jscript veya vbscript (ikisi karma kullanılamıyor) kullanarak, istediğimiz işlemleri gerçekleştirebiliriz. Kullanacağımız bu kod parçalarını, handi anda ateşlenmesini istiyorsak, o olayın arkasına yazmalıyız.

InfoPath olayları form olayları ve data validation olayları olmak üzere ikiye ayrılır. Bunlar aşağıdaki tablolarda, açıklamalarıyla birlikte belirtilmiştir.

Form olayları:

Olay

Tanım

OnAfterImport

Formlar birleştirildiğinde gerçekleşir.

OnClick

Komut düğmesi tıklandığında gerçekleşir.

OnLoad

Formun başlangıç durumunda gerçekleşir. Form ilk görünmeden önce ateşlenir.

OnSubmitRequest

Forma veri eklendiğinde meydana gelir.

OnSwitchView

Görünüm açıldığında meydana gelir.

OnVersionUpgrade

Formun versiyon numarası ve ilişkin form şablonunun versiyon numarası eşleşmediği zaman ateşlenir.

1.Tablo: Form Olayları.

Data Validation Olayları:

Olay

Tanım

OnBeforeChange

Formun altındaki XMLde değişiklik meydana geldiğinde (değişiklik kabul edilmeden hemen önce) ateşlenir.

OnValidate

Değişiklik meydana geldikten sonra ateşlenir.

OnAfterChange

OnValidate olayı meydana geldikten önce ateşlenir.

2.Tablo: Data Validation Olayları.

InfoPath Form Şablonları

InfoPath dosyası oluşturulurken ve dosyalar üzerinde düzeltme işlemleri yapılırken kullanılan dosyaların uzantıları ve özellikleri aşağıdaki gibidir.

Uzantı Özellik
.xsn

Bütün InfoPath dosyalarını içeren form şablonu.

.xsf

InfoPath manifest dosyası, formun birçok karakterinin tanımı olan XML dosyasıdır

.xsl

XSLT dosyaları, InfoPathte, form içerisinde farklı görünümler oluşturmak için kullanılır.

.xsd

Formun altındaki XML yapısını kısıtlamak için kullanılan, bir veya birden fazla W3C XML Şema dosyalasıdır.

.xml

Form içerisinde XML dosyası görüntülemek için varsayılan verileri içerir.

.js or .vbs Form içinde belli bir iş için tanımlanan JScript veya VBScript dosyalarıdır.
.jpg etc. Form içinde kullanılan logo gibi resimlerdir.
dll and/or .exe COM komponentleridir.

3.Tablo: Dosya uzantıları ve özellikleri.

Kod Yazımı ile Örnek Uygulama :

Örneğimizde, girilen özellikleri mesaj kutusuyla kullanıcıya göstereceğiz. Çok basit bir örnek gibi gelebilir. Ancak sadece kod kullanımını örneklemeyi amaçlayan bir örnek olmasıyla, bence önemli. Basitliği arkasına yazacağımız jscript veya vbscript kodundan kaynaklanacaktır. Kodu, kendinizin geliştirdiği ve ihtiyacınız olan kod olarak yazarsanız etkili olduğunu göreceksiniz.

Üzerinde iki tane metin kutusu ve bir tane komut düğmesi olan bir form oluşturarak, kullanıcının giriş yaptığı adını ve soyadını mesaj kutusu olarak göstereceğiz.

1.Adım: InfoPathi açalım.

2.Adım: Fileden Design a Form menüsüne tıklayalım.

3.Adım: New Blank Form seçeneği ile boş bir form oluşturalım.

4.Adım: Forma Control sekmesinden iki tane metin kutusu ve bir tane komut düğmesi ekleyelim.


1.Şekil: Control sekmesi.

5.Adım: Eklediğimiz ilk metin kutusu üzerinde sağ tıklayıp Text Box Propertiesi tıklayalım. Metin kutusunun özelliklerini ayarlamamız için bir ileti gelecektir.

6.Adım: Özellikler kısmında, Field Name: CalisanAdi, DataType: Text(String) olarak ayarlayalım.


2.Şekil: Metin kutusunun özelliklerinin ayarlanması.

Data Validation: Özellikler penceresindeki, Data Validation komut düğmesi sayesinde, InfoPath içinde hakimiyetli bir şekilde ayarlamalar yapabiliyoruz.


3.Şekil: Data Validation komut düğmesi arkası.

Buradaki olaylardan, istediğimizi seçerek, bu olayın arkasına kod yazabiliyoruz. Varsayılan değer olarak üç tane olay (events) vardır.

1.OnBeforeChange
2.OnValidate
3.OnAfterChange

Buradan Add komut düğmesi sayesinde, kendi istediğimiz ayarlarda olan bir olay oluşturabiliriz.


4.Şekil: Olay ekleme.

Bu sayede olay kurallarımızı belirleyebiliriz.

7.Adım: Diğer metin kutusunun da aynı şekilde özelliklerine girelim. Özellikleri Field Name: CalisanSoyadi, DataType: Text(String) olarak belirleyelim.

8.Adım: Forma yerleştirdiğimiz komut düğmesinin de özelliklerini ayarlamak için, komut düğmesi üzerinde sağ tıklayarak Button Propertiesi seçiyoruz.


5.Şekil: Komut düğmesinin özellikleri.

Gelen özellikler penceresinde, Label: Ekle, ScriptId : CalisanEkle olarak komut düğmesinin özelliklerini belirliyoruz.

9.Adım: Komut düğmesinin özelliklerini ayarladığımız pencerede Microsoft Script Editorü tıklayarak, istediğimiz kodu yazıyoruz. Ben yukarıda da belirttiğim gibi, sadece giriş yapılan çalışan adını ve soyadını ekrana yazdırtan bir kod ekledim.

function CalisanEkle::OnClick(eventObj)
{

XDocument.UI.Alert ("Çalisan Ismi : " +
eventObj.Source.selectSingleNode("//my:CalisanAdi").text);

XDocument.UI.Alert ("Çalisan Soyadi : " +
eventObj.Source.selectSingleNode("//my:CalisanSoyadi").text);

}

10.Adım: Preview Form komut düğmesi ile formumuzu önizleme yapalım.

Önizleme sırasında, ad ve soyad girişi yapılıp, Ekle diyelim. Ekle dediğimizde, yazmış olduğumuz kod devreye girecek, ve uyarı olarak, çalışanın adını soyadını verecektir.


6.Şekil: InfoPathin önizlenme sonucu.

Bu şekilde InfoPath hakkında temel bilgi edinmiş olduk. Geliştirmesi size kalmış. Kolaygelsin.

Öznur KARAKUŞOĞLU
SQLNedir?com