Bu örnekte kullanıcıların yeni bir talep açıp gönderebileceği, kendilerine ait görevleri görebileceği ve görevlerinin deadline süresini takip edebileceği bir uygulama geliştireceğiz. Aynı zamanda kullanıcılar görevlere herhangi bir sorun ve istek için dosya eklemesi yapabilecekler.
Hazırlama ve Tasarlama
Uygulamamızı tasarlamaya başlamadan önce ne tür verilere ihtiyacımız olacağını düşünelim.
Bu örnek için ihtiyacımız olacaklar;
- Görev Adı: İstek/sorun yazmak için
- Görev Listesi: Görev listesini göstermek için
- Not Listesi: Birisi tarafından sunulan projeyi göstermek için
- Görev Grubu: Sorun/talep ile ilgili bir konu seçmek
- Başlık: Sorunun/talebin adına
- Dosyalar: Herhangi bir ek bilgi eklemek için
- Notlar: Bazı ek notlar almak için
- Açıklama: Sorunun/talebin açıklaması
- Son teslim tarihi: Talep için verilen belirli bir zaman
- Kişi: Talebi gönderen kişi
- Durum: Projenin durumu (yeni, beklemede, devam ediyor, vb.)
Butonlar
- Kaydet: Talebi kaydetmek için
- Yeni: Yeni talep açmak için
- Gönder: Yeni talep göndermek için
Uygulama Geliştirme
Uygulama verilerimizi ve kullanıcı arayüzümüzü tasarladığımıza göre, XPoda Studio kullanarak bir uygulama geliştirmenin zamanı geldi. XPoda Studio'ya giriş yapın ve yeni bir form ekleyin.
Görev Yönetim Formu
Yeni bir form ekleyin ve “Görev Yönetimi” olarak adlandırın. Araç çubuğundan “Görev Adı”, “Görev Listesi”, “NotListesi”, “Görev Grubu”, “Başlık”, “Dosyalar”, “Notlar”, “Açıklama”, “Son Tarih”, “Kişi”, “Durum” ekleyin.
Görev Formu
İlk olarak, tablomuzu "X_GOREV" şeklinde isimlendirelim ve Name alanına "Gorev1" yazalım.
Kullanılan Aksiyonlar
- Form açıldığında GorevListesi alanında tüm kayıtları görmek istiyoruz. Bunu yapmak için yeni bir aksiyon oluşturmalıyız. Formu seçip istediğimiz aksiyonu eklemek için "Add New Action" butonuna tıklayıp Action Type alanını "When the form is opened" seçmeliyiz. Ardından Operation alanını "Update Value", Value alanını ise listeyi güncellemek istediğimiz için "GorevListesi" olarak seçmeliyiz. Böylece form açıldığında GorevListesi alanı güncellenecek ve kayıtlar yüklenecektir.
Görev Adı Alanı
Şimdi, sol taraftaki araç kutusundan yeni bir Text Box alanını sürükleyip formumuza taşımalı ve adını “Görev Adı” olarak belirlemeliyiz. Eğer Görev Adı şeklinde bir başlık yazılmasını istemiyorsak o alanı silebiliriz.
Sağ taraftaki bölmeye geldiğinizde Info Text alanını görüyoruz. Buraya bilet açan kişinin ne yazması gerektiğini anlamasına yardımcı olmak için “Lütfen yazın ve enter tuşuna basın” yazıyoruz.
Bu Alandaki aksiyonlar
- Bu alana bir şey yazdığımızda ne aradığımızı ortaya çıkarmak istiyoruz. Bunu yapabilmek için yeni bir aksiyon oluşturmalıyız. “Görev Adı” alanını seçip, Sağ Taraftaki özellikler alanında “Add New Action” butonuna tıklanır. Type of Action alanına "On Value Change” seçmeli, Operation alanına ise "Search in List" seçilmelidir. Arama işlemini istediğimiz liste içerisinde yapabilmemiz için Linked List alnında "GorevListesi" seçmeliyiz.
GorevListesi Alanı
Tüm görevleri görebilmemiz adına bir GridList ekleyip adını “GorevListesi” yapalım. Listenin sorgusu için ise aşağıdaki örnek sorguyu kullanalım.
SELECT
X_GOREV.UserTableID,
XPODA_CLIENT_USERS.UserFullName AS Kişi,
X_GOREV.GorevAdi, X_GOREV.GorevGrubu,
X_GOREV.Aciklama, X_GOREV.BitisTarihi,
X_GOREV.Durum
FROM
dbo.X_GOREV WITH (NOLOCK)
LEFT OUTER JOIN dbo.XPODA_CLIENT_USERS WITH (NOLOCK)
on X_GOREV.Kisi = XPODA_CLIENT_USERS.UserID
Bu Alandaki Aksiyonlar
1- Öncelikle GorevListesi aracına ve aksiyon ekleme butonuna tıklayın. Satır seçildiğinde kayda ait notların NotListesi’nde güncellenmesini sağlayacak aksiyonu yapmamız gerekmektedir. “When the row is selected / Update Value” ikilisini seçin ve Value Area alanında “NotListesi” seçimini yapıp aksiyonu kaydedin.
Aksiyonun son hali aşağıdaki gibi olacaktır:
2- Bir sonraki aksiyonumuzda yine liste aracına çift tıkladığımızda kaydın bütün rapora yüklenmesini istiyoruz. Bunun için “When double clicked on row / Update Value” ikilisini seçip Value Area alanına “All Forms” seçimi yapın. Bu aksiyonun sağlıklı çalışabilmesi için SQL Query alanına bu sorguyu eklemeliyiz;
SELECT '$PUserTableID$’ as UserTableID
Not Listesi Alanı
Şimdi NotListesi için öncelikle Liste aracı ekleyip buna bağlı isimlendirmeyi yapın. Ardından aşağıdaki sorguyu ekleyin;
SELECT
XPODA_CLIENT_USERS.UserImage AS [Fotoğraf],
XPODA_CLIENT_USERS.UserFullName AS [Kişi],
XP_NOTLAR.Not
FROM dbo.XP_NOTLAR WITH (NOLOCK)
LEFT OUTER JOIN dbo.XPODA_CLIENT_USERS WITH (NOLOCK) on
XP_NOTLAR.CreateUser = XPODA_CLIENT_USERS.UserID
WHERE XP_NOTLAR.GorevID = '$PUserTableID$'
Görev Grubu Alanı
Görev grubu alanına verileri veri tabanımızdan çekmek için bir DropDown Box ekleyeceğiz. İlk olarak, bir açılır kutu ekleyin ve her iki alana da “Görev Grubu” adını verin. Verileri veri tabanımızdan çekmek için Field Style alanını “SQL Query” olarak ayarlayın ve sorgu kutusuna aşağıdaki sorguyu girin;
SELECT
X_GOREV.UserTableID,
X_GOREV.Baslik
FROM dbo.X_GOREV WITH (NOLOCK)
Başlık ve Açıklama Alanı
Bundan sonra, Text Box eklemeye devam ediyoruz ve bu text box’ı Başlık olarak isimlendirelim. Ardından bir text box daha ekleyip adını Açıklama olarak düzenleyin.
Dosyalar Alanı
Taleplere ait dosyalar (resimler, dokümanlar vb.) ile tanımlamak ve sorunumuzu/talebimizi daha anlaşılır hale getirmek isteyebiliriz. Bunu yapmak için sol taraftaki bölmeden “Dosya Ekle” alanını eklemeli ve her iki alana da “Dosyalar” adını vermeliyiz.
Notlar Alanı
Bununla birlikte, projeyle ilgili her türlü bilginin daha anlaşılır olması için formumuza bazı notlar eklemek isteyebiliriz. Bunu yapmak için, bir Text Box eklememiz ve uygun şekilde isimlendirmemiz gerekiyor.
Deadline Alanı
Projeye son tarih vermemiz gerekiyor ve bunu yapmak için Date aracı ekleyip gerekli isimlendirmeyi yapın.
Kişi Alanı
Talebi açan kişiyi tanımlamamız gerekiyor. Bunu yapmak için, bir Drop Down Box alanı ekliyoruz ve her iki alanı da “Kişi” olarak adlandırıyoruz. Field Value alanını “SQL Query” olarak seçip aşağıdaki sorguyu kullanın;
SELECT
XPODA_CLIENT_USERS.UserID,
XPODA_CLIENT_USERS.UserFullName
FROM dbo.XPODA_CLIENT_USERS WITH (NOLOCK)
Durum Alanı
Sonuçta, projenin durumunu bilmek ve bu durumu diğer ekip üyeleri veya proje yöneticisi ile paylaşmak istiyoruz. Bunu yapmak için, sol taraftaki bölmeden bir Drop Down Box ekliyoruz ve her iki alana da “Durum” adını veriyoruz. Field Value alanını “Constant Value” seçip aşağıdaki Values alanına bu değerleri yazın;
Yeni
Devam Ediyor
Bitti
İptal edildi
Butonlar
1- “Kaydet” Butonu
Formu doldurduktan ve talebimizi / sorunumuzu açıkladıktan sonra, projenin herhangi bir üyesi veya proje yöneticisi tarafından görülebilmesi için formu kaydetmemiz gerekir. Bunu yapmak için sol taraftaki bölmeden bir Kaydet butonu eklememiz ve “Kaydet” olarak adlandırmamız gerekir. Şimdi, butonun çalışmasını sağlamak için yeni bir aksiyon eklemeliyiz. Bu buton seçiliyken, aksiyonlar bölmesinden (Sağ Taraf Bölmesi) Add New Action seçin ve ”When clicked / Save” ikilisini kullanın.
2- “Yeni” Butonu
Yeni bir proje ve/veya sorun/talep eklemek için yeni bir buton oluşturmalıyız. Bunu yapabilmek için, sol taraftaki bölmeden buton alanını seçiyoruz ve “Yeni” olarak adlandırıyoruz. Şimdi, butonun çalışmasını sağlamak için yeni bir aksiyon eklemeliyiz. Bu buton seçiliyken, aksiyonlar bölmesinden (Sağ Taraf Bölmesi) Add New Action seçin ve “When clicked / New” ikilisini seçip kaydedin.
3- “Gönder” Butonu
Formu tamamladıktan sonra göndermek istiyoruz ve yeni bir buton oluşturmamız gerekiyor. Bunu yapabilmek için, sol taraftaki bölmeden buton alanını seçiyoruz ve “Submit” olarak adlandırıyoruz.
Bu Alandaki Aksiyonlar
1- Bu butona tıklandığında bir doğrulama işlemi yapmak istiyoruz. Her zaman kaydın seçilip seçilmediğinden emin olmak istiyoruz.Bunu yapabilmek için yeni bir aksiyon oluşturmalıyız. Bunun için “Submit” butonu seçili iken “Add New Action” butonuna tıklamamız gerekiyor. “When clicked / Validation” ikilisini seçin ve bu sorguyu yazın;
SELECT CASE WHEN '$PUserTableID$’ = '' THEN 0 ELSE 1 END
Action 2: Bu butonye tıklandığında bağlantılı bir form açmak istiyoruz. Bunu yapabilmek için yeni bir aksiyon oluşturmalıyız. Bunun için “Submit” butonu seçili iken “Add New Action” butonuna tıklamamız gerekiyor.buton tıklamasını işlemek için aksiyon Türü “ Tıklandığında” olmalıdır.İşlem “Open Form (Linked)”, Condition as “In New Window” olacaktır.Buna ek olarak Proje Alanı “Görev Yönetimi” ve Form alanı “Not” olarak seçilmelidir çünkü ikinci formdan (NOT) hangi görevin seçilmesi gerektiğini belirlemek istiyoruz.Bunun çalışması için bu sorguyu buraya eklemeliyiz;
UserTableID|0|GorevID
Notlar|0|Not
(daha sonra formdaki her şeyi kaydetmek için lütfen aynı bölmedeki ve yazılımın üst kısmındaki kaydet butonsine basmayı unutmayın).
Son olarak, uygulamamızı tamamladık. Uygulamanızı görmek için “Çalıştır ”a tıklayın.