Form içerisinde, tablolardan gelen veri ya da verileri listelemek ve raporlamak amacıyla kullanılan bir araçtır.
Araç Kutusundaki Görünümü | Free Formdaki Görünümü | Responsive Formdaki Görünümü |
Uyumluluk
Free Form | Responsive Form | Mobile |
Liste aracının özellikleri |
||||
Type (Alan Türü): Eklenilen form aracının alan türünü gösterir. Burada yer alan değer değiştirilemez. Name(Alan İsmi): Listeye verilecek isim yazılır.
Text Size(Metin Boyutu): Listede görüntülenecek verilerin yazı boyutu bu alanda belirlenir.
Help Text (Yardım Metni): Client ekranında, form aracı üzerine fare ile gelindiğinde açıklama çıkması için girilen metindir.
Number of Locked Columns(Kilitli sütun sayısı): Listedeki sütunları sola sabitlemek (kilitlemek) mümkündür. (Daha sonra kullanım sırasında, listede sütun listesini göster seçeneği aktif hale gelir ve istenilen sütunlar kilitlenebilir veya kilitleri açılabilir.) (Listenin başındaki kolonlar listede gizli olsa da kilitli kolon olarak sayılmaktadır.) Height/Width(Yükseklik/Genişlik): Liste aracının yükseklik ve genişlik ayarlaması yapılır. (Genişlik alanı Responsive Formlar'dan kaldırılmıştır). From Left / Top(Soldan/Üstten): Liste aracının soldan ve üstten mesafe ayarlaması yapılır. (Bu alan Responsive Formlar'dan kaldırılmıştır).
Image Size(Resim Boyutu): Listede gösterilecek resimlerin yükseklik ve genişlik ayarlaması yapılır.
Row Size(Satır Boyutu): Satırların yükseklik ayarı yapılır.
List View on Mobile(Listenin Mobil Görüntüsü): Listenin mobil cihazlarda nasıl görüntüleneceği belirlenir. (List veya Card şeklinde seçim yapılabilir.)
List Header Width on Mobile(Liste Kolonlarının Mobilde Genişliği): Liste kolonlarının mobil cihazlardaki genişlik ayarlaması yapılır. SQL Query(SQL Sorgusu): Listelenecek veriler için hazırlanan SQL sorgusu bu alana yazılır. Gizlemek istediğiniz bir alanı SQL sorgusunda belirtmek için, alan adının başına | (dikey çizgi) işareti eklemeniz gerekmektedir. Örneğin, gizlenmesi istenen "No" alanı için, SQL sorgusu [|No] şeklinde yazılmalıdır. Bunun yanı sıra, listede değiştirilebilir bir alan oluşturulması gerektiğinde, SQL sorgusunda alan adının başına $ işareti eklenmelidir. Örneğin, "No" alanını değiştirilebilir bir alan olarak oluşturabilmek için, SQL sorgusu [$No] şeklinde yazılmalıdır. Xpoda Addon (Xpoda Eklenti): Xpoda Platformu'nda, istenilen yerlerde, özel olarak geliştirilen kodlar çalıştırılmak istenebilir. Bu maksatla geliştirilen .NET Class Library'leri kullanılabilir. Bu seçenek seçildikten sonra, sırasıyla Kütüphane - Class - Method seçimlerinin yapılması gerekmektedir. Formatting Field(Biçimlendirme Alanı): Liste satırları ve sütunları dinamik olarak biçimlendirilir. İstenen parametrelerin doğru sırayla gönderilmesi gerekir. Not: Listenin SQL sorgusu içinde bulunan alan isminde boşluk varsa, Bu alan Field kısmına yazılırken boşluksuz (bitişik) yazılmalıdır.
Tarih formatının uygulanabilmesi için zaman (saat) bilgisini içeren bir tarih değeri gereklidir. Yüzde rakam formatını uygulamak için ondalıklı veri olması gerekmektedir. Tarih format örnekleri;
Sub Total(Alt Toplam): Listenin altında istenilen sütuna göre ara toplam bilgilerini göstermemizi sağlar. İstenen parametrelerin doğru sırayla gönderilmesi gerekir. (Field|operation (count, sum, min, average) I Text) Not: Operation yazılan kısımda boşluk yazılırsa liste çalışmamaktadır. Bu nedenle, Operation eklenen kısım bitişik yazılmalıdır. Budget |sum| Total Budget : Not: Listenin SQL sorgusu içinde bulunan alan isminde boşluk varsa, bu alan Sub Total (Field) kısmına yazılırken boşluksuz (bitişik) yazılmalıdır. (Örn; SELECT 20 AS [Unite Price] - Field içinde UnitePrice şeklinde yazılmalıdır). UnitePrice|sum| Total Unite Price : Hide Search(Arama gizle) : Listenin arama alanını gizler.
Column Width Auto(Otomatik Sütun Genişliği): Bu özellik etkinleştirildiğinde, sütun genişlikleri içerdikleri metne göre otomatik olarak boyutlandırılır. Auto Extention(Otomatik Uzantı): Veri geldikçe listenin aşağıya doğru genişlemesine izin verir. Paging(Sayfalama): Liste içerisinde sayfalama yapılmasını sağlar. Böylece çok satırlı verilerin hızlı yüklenmesi sağlanır. Page Size(Liste Satır Sayısı): Liste içerisinde bir sayfada kaç satır veri getirileceği bu alandan kontrol edilir. Alanda 0 değeri varsa varsayılan olarak 25 satır veri getirmektedir. Bu alan boş bırakılmamalıdır. Bu değer Client ekranından tekrar değiştirilebilir. Bu özelliğin çalışabilmesi için Paging seçeneğinin "Yes" olarak ayarlanmış olması gerekmektedir. File Menu(Dosya Menüsü): Listede yer alan dosyaların indirilmesine ve görüntülenmesine olanak tanır. XPODA_FILES tablosundaki verilerin listelenebilmesi için sorguda FileID ve RecordGuid alanlarının bulunması gerekmektedir. XPODA_FILES tablosuna bağlanırken, ProjectID, FormTypeID ve TableID alanlarını, tablonuzdaki ProjectID, FormTypeID ve UserTableID alanları ile eşleştirerek bağlantı kurmalısınız. |
||||
Liste aracında picture alanına kaydedilen resimlerin yolu URL ile gösterilmek istenildiğinde alan adının başına $IMG ifadesi yazılarak bu işlem gerçekleştirilebilir. |
Liste aracının içerisinde kullanılabilecek aksiyonlar
Form sayfasında her eklenen form elemanı için farklı aksiyonlar bulunmaktadır. Liste aracı için tanımlanmış olan aksiyonları görüntülemek için, öncelikle liste aracı seçilir. Assrdından sağ panelde yer alan aksiyonlar menüsü açılır.
Liste aracı içerisinde kullanılabilecek aksiyonlar ve detayları aşağıdaki gibidir.
When the row is selected(Satır seçildiğinde) : Satır seçildiğinde yapılacak işlemler için aksiyon eklenmektedir.
When double clicked on row(Satıra çift tıklandığında): Satıra çift tıklandığında yapılacak işlemler için aksiyon eklenmektedir.
Detail is Opened(Ayrıntı açıldığında): Detay açıldığında yapılacak işlemler için aksiyon eklenmektedir.
Add button to row (Satıra buton eklendiğinde): Satıra buton eklenmesi için yapılan işlemdir.
When cell value changes (Hücrenin değer değiştiğinde): Listede seçilen satırdaki bir hücrenin değeri değiştirildiğinde yapılacak işlemler için aksiyon eklenmektedir. Bu aksiyon, hücre değerindeki değişikliklere ilişkin bilgileri almak amacıyla kullanılır. Aksiyon kapsamında, ilgili satırın UserTableID değeri, değişikliğin yapıldığı kolonun adı ve hücrenin yeni değeri görüntülenebilir.
Örnek Kullanımı 1:
Liste Aracı Değer Güncelleme Süreci Liste aracının doğru şekilde çalışabilmesi için bir güncelleme değeri eklenmelidir. Bu işlem, aşağıdaki durumlarda gerçekleştirilebilir: Listedeki değerlerin işlem olarak görüntülenebilmesi için değer güncelleme işleminin seçilmesi gerekmektedir. Bu bağlamda, güncelleme işlemi için bir değer alanı olarak liste belirlenmelidir. İşlemin özellikleri doğru bir şekilde tanımlandıktan ve kaydedildikten sonra, form açıldığında ilgili liste görüntülenecektir. |
- Bu işlemi bir buton ekleyerek butona tıklandığında liste güncellenecek şekilde yapalım:
Not: Liste sorgusunu liste içindeki sql query alanına da yazabilirsiniz veya listeyi güncelleyen aksiyon içindeki sql query alanına da ekleyebilirsiniz.
İlk olarak free form özelliğinde bir form oluşturalım. Free form oluşturmak için aşağıdaki ekran görüntüsünde kırmızı çerçeveli alana tıklayarak açılan pencerede Free Form seçeneğini seçelim.
Free Form seçildiğinde Form_1 isminde yeni bir form ekranı oluşacaktır.
Fom_1 isimli formu seçelim, ardından ekranın sağ tarafında bulunan formun özellikler bölümünde, Name alanına ListUpdate yazarak forma isim verelim (No:1). Veri tabanına kayıt işlemi yapmayacağımız için formun türünü Report olarak seçelim (No:3). Rapor olduğu için TableName alanını boş bırakabiliriz (No:2). Bu kısım Form tipi için veri tabanına tablo ismi oluşturur.
Sol alt kısımdaki form araçlarından 1 Buton ve 1 Liste aracını sürükleyerek formumuza ekleyelim.
Butonu seçip, özellikler bölümündeki Text alanına aşağıdaki ekran görüntüsündeki gibi isimlendirme yapalım. İsimlendirmeyi tamamladıktan sonra Enter tuşuna basalım. Liste ismini de değiştirmek isterseniz listeye tıklayıp özellikler bölümündeki Name alanında değişiklik yapabilirsiniz.
Listenin özelliklerinden SQL Query alanına, listede raporlanmak istenilen verilerin sorgusunu yazalım. Aşağıdaki örnekte XP_PROJECT_TRACKING isimli tablodan veri çekilmek istendiği için, sorgu SQL Query kısmına yazılmıştır.
Client ekranında listenin verilerini görebilmek için listenin tetiklenme işlemini aşağıdaki gibi yapalım.
Butonu seçelim (1). Aksiyonlar kısmına tıklayalım (2).
Add New Action alanına tıklayalım (3).
Type of action kısmından When clicked seçeneğini seçelim (4).
Operation alanında Update Value seçeneğini seçelim (5).
Description alanına bu eklenecek olan aksiyonda kısaca ne yapıldığı bilgisini yazalım (6).
Value area alanından listenin ismini seçelim (7). Aksiyonu kaydedelim (8).
Kaydedilen aksiyon aşağıdaki ekran görüntüsündeki gibi görünecektir. Aksiyon silinmek istenirse, sağ taraftaki çöp kutusu sembolüne tıklanmalıdır. Aksiyon içerisinde değişiklik yapılmak istenirse, ortadaki kalem sembolüne, aksiyon durdurulmak istenirse sol taraftaki pause sembolüne tıklanmalıdır.
Gerekli ayarlamaları tamamladıktan sonra projeyi kaydedelim ve ardından Run butonuna tıklayarak client ekranına geçiş yapalım. Eğer client ekranı açıksa, Studio ekranında kayıt işlemi tamamlandıktan sonra client ekranını yenileyerek işleme devam edilir.
Client ekranında, projenin en son kaydedilen hali görüntülenir. Proje kaydedilmeden client ekranına geçiş yapıldığında, son yapılan değişiklikler ekran üzerinde görüntülenemez. |
Client ekranı açıldığında aşağıdaki gibi görünecektir.
Client ekranında, Update List butonuna tıklandığında sorgudaki veriler listeye eklenecektir.
Örnek Kullanımı 2:
Bir önceki örnekteki gibi free form seçelim. Formun adını düzenleyip tipini rapor olarak seçtikten sonra tasarım ekranına sol alttaki form araçlarından listeyi sürükleyelim. Listeye tıklayıp özelliklerinden SQL Query alanına sorguyu ekleyelim. Sorguda eklenen tablo ismi XPODA da daha önce oluşturulan bir formdur.
SQL Query alanında aşağıdaki ekran görüntüsündeki kırmızı alana tıklayalım. Query Result isminde ayrı bir pencere olarak sorgu oluşturma ekranı açılacaktır.
Açılan pencerede sol taraftaki alt bilgiler görünmüyorsa Xpoda yazan kısma tıklayalım (1).
Alt kısmında açılan Tables alanındaki ok simgesine tıklayıp açalım.
Daha sonra Xpoda yazan yerin üst kısmındaki arama alanına tablo ismini yazalım. Arama alanına bir şey yazmadan da tablomuzu bulabiliriz. Tablonun sol tarafındaki küçük ok simgesine tıklayarak tablo içindeki alanları görelim.
UserTableID alanını sağ üst taraftaki kolonların olduğu Query Builder alanına sürükleyelim (4).
UserTableID, ProjectNo, ProjectName ve Budget alanlarını sol taraftan alıp Query Builder alanına sürükleyelim. Sorgu otomatik olarak SQlQuery 1 alanına oluşarak görünecektir. Sağ üst köşedeki kaydet ikonuna tıklandığında sorgu SQL Query alanında görünecektir.
Gerekli ayarlamaları tamamladıktan sonra projeyi kaydedelim ve ardından Run butonuna tıklayarak client ekranına geçiş yapalım. Eğer client ekranı açıksa, Studio ekranında kayıt işlemi tamamlandıktan sonra client ekranını yenileyerek işleme devam edilir.
Client ekranındaki görüntüsü aşağıdaki gibi görünecektir. Bu şekilde sorgu eklenirse UserTableID alanı ekranda görünmeyecektir.
Listede " UserTableID " alanını göstermek için UserTableID alanına bir alias (takma ad) verelim. |
Örnek Kullanımı 3:
Listede renklendirme işlemi yapmak için, ikinci örnekte verilen sorgu üzerinden devam edelim. Belirli kriterlere göre bir alana renk atamak için, formatting özelliğini kullanalım. Burada renklendirme bilgileri şu şekildedir;
Formatting (Field | Operator | Value | Type | Colors | Cell(0-1) | Colored Area(Optional for Cell value=1))
Bir önceki örnekte tanımlanan liste üzerinden ilerleyerek, SQL Query alanının altında bulunan Formatting kısmına gerekli renklendirme kurallarını ekleyelim.
Formatting alanında kullanılacak Field değerleri, SQL Query alanında tanımlanan sorgu içerisindeki sütun adlarına veya varsa bu sütunlara atanmış alias (takma ad) değerlerine göre belirlenmelidir. Örneğin, aşağıdaki ekran görüntüsünde yer aldığı gibi; Budget alanı 100000 değerinden büyükse, ProjectName alanının yazı rengi kırmızı olacak şekilde bir renklendirme kuralı tanımlanmıştır.
Budget|>|100000|0|RED|1|ProjectName
Buraya yazılan özellikte, her bir dik çizgi (|) sonrasında gelen bilgiler sırasıyla ilgili formatlama kuralının farklı parametrelerini temsil eder;
Budget 🡪 Sorgudaki alan
> 🡪 Büyüktür işareti (Karşılaştırma işareti)
100000 🡪 Karşılaştırılacak Değer
0 🡪 Metin yazısı için 0 değeri, arka plan rengi için 1 değeri yazılan alan
RED 🡪 Renk bilgisi HEX , rgb, rgba kodları olarak da yazılabilir örneğin; #ff0000 , rgb(255, 0, 0) ,
rgba(255, 0, 0,1)
1 🡪 Bulunulan kolon için 0 değeri, diğer kolonlar için 1 değeri yazılır (Bu alan opsiyoneldir. Değer girilmediği takdirde, renklendirme varsayılan olarak tüm satır üzerinde uygulanır.)
ProjectName 🡪 Renklendirme işleminin uygulanacağı kolonun adı (Bu alan opsiyoneldir. Değer girilmediği takdirde, renklendirme varsayılan olarak tüm satır üzerinde uygulanır.
Client ekranının görünümü aşağıdaki gibidir;
Liste başlıklarında boşluk bulunan sütun isimleri, renklendirme işlemi yapılırken boşluksuz (birleşik) şekilde yazılmalıdır. |
Örnek Kullanımı 4:
Listedeki seçili verinin ve kolonunun bilgisini alabilmek için örnek yapalım.
Bir önceki örnek formdan ilerleyelim.
Listenin üzerine 1 Text Box elemanı ekleyelim.
Text box elemanının ismini SelectedColumnHeader olarak değiştirelim.
Label alanına tıklayıp Text kısmını Selected Column Header olarak değiştirelim.
Client ekranında, kullanıcı liste üzerinde herhangi bir alana tıkladığında, tıklanan sütunun adını forma yeni eklenen 'Selected Column Header' alanına yazdırmak için listenin aksiyonlarını kullanalım.
Listeye tıklayalım (1). Listenin aksiyonları bölümünü seçelim (2). Add New Action alanına tıklayalım (3).
Type of action kısmından When the row is selected aksiyonunu,
Operation kısmından Update Value işlemini,
Value Area kısmında eklediğimiz SelectColumnHeader alanını seçelim.
Description kısmına aksiyonun kaydedildikten sonra görünecek ismi için, SelectColumnHeader yazalım.
Yeni eklediğimiz alanın değerini güncellemek için SQL Query alanına, SELECT '$PXpodaGridActiveColName$' yazalım. (4)
Aksiyonu kaydedelim (5).
Gerekli ayarlamaları tamamladıktan sonra projeyi kaydedelim ve ardından Run butonuna tıklayarak client ekranına geçiş yapalım. Eğer client ekranı açıksa, Studio ekranında kayıt işlemi tamamlandıktan sonra client ekranını yenileyerek işleme devam edilir.
Client ekranında, liste üzerindeki bir satırda herhangi bir hücreye tıklandığında, tıklanan hücrenin ait olduğu sütun adı Selected Column Header alanına aktarılır. Aşağıdaki örnekte,'Xpoda February Project verisine tıkladığında, bu hücrenin ait olduğu sütun olan ProjectName ismi Selected Column Header alanında görüntülenir.
Liste üzerinde değeri 1 olan hücreye tıklandığında, ilgili sütunun adı ID olduğundan, Selected Column Header alanına ID yazılır.
- Farklı bir kullanım olarak seçilen hücrenin sütun başlığını almak yerine hücre içerisindeki değer bilgisi de alınabilir.
Bu örnek için az önce yapmış olduğumuz örneği biraz değiştirelim.
Az önce SELECT ile sorguladığımız '$PXpodaGridActiveColName$' değerinin tırnaklarını ve sonundaki $ işaretini kaldırarak seçtiğimiz satır ve sütunlardaki değeri yeni bir Textbox aracına yazdıralım.
Bu işlem için öncelikle, listenin üzerine yeni bir Text Box elemanı ekleyelim.
Text box elemanının ismini SelectedValue olarak değiştirelim.
Label alanına tıklayıp Text kısmını Selected Value olarak değiştirelim.
Listeye tıklayalım ve aksiyonlar kısmına gelelim (1). Add New Action kısmına tıklayalım (2).
Type of action kısmından When the row is selected aksiyonunu,
Operation kısmından Update Value işlemini,
Value Area kısmında eklediğimiz SelectedValue alanını seçelim.
Description kısmına aksiyonun kaydedildikten sonra görünecek ismi için, SelectedValue yazalım.
Yeni eklediğimiz alanın değerini güncellemek için SQL sorgusu alanına
SELECT $PXpodaGridActiveColName
FROM XP_PROJECT_TRACKING WITH(NOLOCK) WHERE UserTableID=’$PUserTableID$’
yazalım. (3)
Aksiyonu kaydedelim (4).
Aksiyon içerisinde yer alan SQL Query alanındaki $PUserTableID$ ifadesi, listenin SQL sorgusunda tanımlı olan UserTableID alanına karşılık gelmektedir. Bu nedenle, listeye ait SQL sorgusunda mutlaka UserTableID alanı yer almalıdır.
Gerekli ayarlamaları tamamladıktan sonra projeyi kaydedelim ve ardından Run butonuna tıklayarak client ekranına geçiş yapalım. Eğer client ekranı açıksa, Studio ekranında kayıt işlemi tamamlandıktan sonra client ekranını yenileyerek işleme devam edilir.
Client ekranında, liste üzerindeki bir hücreye tıklanıldığında, seçilen hücredeki veri Selected Value alanına aktarılır. Örneğin, kullanıcı Xpoda January Project verisine tıkladığında, bu değer Selected Value alanına yansıtılır.
NOT: Bu örnekte liste sorgunuzdaki alanların isimlerine ALİAS verilmemesi, alan isimlerinin aynen kullanılması gerekmektedir. |
Örnek Kullanımı 5:
Listeye buton eklemek için üç farklı yöntem bulunmaktadır. Bu yöntemlerden biri, template kullanılarak buton eklemektir. Template ile eklenen butonun örnek kullanımı, aşağıda Örnek Kullanım 8 başlığı altında yer almaktadır. Bu bölümde ise diğer iki yöntem anlatılmıştır. |
- Eğer form üzerinde kullanılan bir butonun listede de görünmesini istiyorsak ya da doğrudan listede yer almasını istediğimiz bir buton varsa öncelikle butonu forma eklemeliyiz. Daha sonra, butonun 'Özellikler' sekmesine geçerek Linked List alanında, butonun hangi liste üzerinde görüntüleneceğini seçmeliyiz. Bu işlem sonucunda, seçilen liste içerisindeki her satırda ilgili buton görüntülenecektir.
- Listemizde bulunan satırlara buton eklemek için, listenin aksiyonlar bölümünden Add button to row aksiyonunu ekleyelim. Operation kısmında gerçekleştirilmesini istediğimiz operasyonu seçebiliriz. Bu aksiyonla listede bulunan her satıra buton eklenmektedir. Butona tıklanıldığında Operation alanında belirtilen işlem gerçekleştirilir.
Bu aksiyonun kullanımında, Description alanı, butonun Client ekranında nasıl görüneceğini belirlemek için kullanılır. Bu alana butonun üzerinde görünmesini istediğiniz metin yazılmalıdır. Bu alan boş bırakıldığında client ekranında sağlıklı bir görünüm oluşmamaktadır. |
- Delete Aksiyonunu eklediğimiz örnek bir gösterim
Konuyla ilgili örnek video : Listede Buton Kullanımı | |
Örnek Kullanım 6:
Listede yer alan bir kolonu belirli bir genişlikte göstermek istiyorsak, ColumnName as 'ColumnName [W#=200#]' formatı kullanılmalıdır. Bu ifade sayesinde ilgili kolon, belirtilen piksel değeri kadar (örnekte 200px) genişletilecektir. Aşağıda bu yapının örnek bir kullanımı paylaşılmıştır.
Öncelikle formumuza iki adet liste form aracı ekleyelim ve her bir liste için aşağıda belirtilen sorguları yazalım.
Client ekranında, form açıldığında liste sorgusunun otomatik olarak çalışmasını sağlamak için, ilk olarak sol taraftan ilgili formu seçelim. Ardından, sağ tarafta yer alan aksiyonlar bölümüne giderek Add New Action alanına tıklayalım.
When the form is opened > Update Value > GridList_1 aksiyonunu tanımlayıp kaydedelim.
Ardından tekrar Add New Action alanına tıklayalım.
When the form is opened > Update Value > GridList_2 aksiyonunu tanımlayıp kaydedelim.
Son olarak, formu kaydedip Run butonuna tıkladığımızda, listelerin client ekranındaki görüntüsü aşağıdaki gibi olacaktır.
ProjectName kolonunda bir düzenleme eklenmedi. ProjectName kolonunda kolon ölçeklendirme formatı eklendi.
Örnek Kullanım 7 :
Client ekranında, liste içerisindeki seçili hücrenin düzenlenebilir (editleme) özelliği
Örneğimizde, formumuza 1 adet Text Box ve 2 adet Figures Box form aracını sürükleyip bırakalım. Bu araçlara uygun isimlendirmeleri yapalım: Text Box alanını ColumnHeader, birinci Figures Box alanını ID, diğerini ise ChangeValue olarak isimlendirelim.
Sonraki aşamada liste aracımızı seçelim ve SQL Query alanına aşağıdaki sorguyu yazalım. Sorguyu yazdıktan sonra listemizin ekran görüntüsü aşağıdaki gibi olacaktır.
SELECT
XP_PROJECT_TRACKING.UserTableID,
XP_PROJECT_TRACKING.ProjectNo,
XP_PROJECT_TRACKING.ProjectName,
XP_PROJECT_TRACKING.Budget AS [$Budget],
XP_PROJECT_TRACKING.ProgressPercentage AS [$ProgressPercentege]
FROM dbo.XP_PROJECT_TRACKING WITH (NOLOCK)
Client ekranı açıldığında, listedeki veriler üzerinde değişiklik yapılacak hücreyi seçebilmek için kullanılan alias'ın başına $ işareti eklenmelidir.
Örneğimizde kullandığımız sorguda, Budget AS [$Budget] ve ProgressPercentage AS [$ProgressPercentege] alanlarına bu kural uygulanmıştır.
Client ekranına geçmeden önce form aksiyonlarına gidip form açıldığında listemize verilen yüklenmesi için bir aksiyon tanımlayalım.
Bunun için formumuzu seçip, aksiyon sekmesine geçtikten sonra Add New Action alanına tıklayalım.
When the form is opened / Update Value seçeneklerini kullanalım.
Ardından Value Area alanında listemizi seçelim ve aksiyonumuzu kaydedelim.
Aksiyonumuzun ekran görüntüsü aşağıdaki gibi olacaktır.
Son olarak, formu kaydedip Run butonuna tıkladığımızda, listenin client ekranındaki görüntüsü aşağıdaki gibi olacaktır.
Listenin SQL sorgusu içinde $ işareti ile tanımlanan alanların hücrelerine tıklanıldığında, bu hücreler aktif hale gelir ve düzenlenebilir olur.
Bu örnekte liste aksiyonlarından When cell value changes aksiyonunu kullanalım.
Bu aksiyon ile listede seçilen satırın, UserTableID, Kolon Adı ve Hücre değerinin forma eklemiş olduğumuz alanlarda gösterilmesini sağlayalım.
Formumuzdaki ID alanına listedeki seçili hücrenin UserTableID bilgisi, Column Header alanına seçili hücrenin kolon adı bilgisi, ChangeValue alanına ise seçili hücrenin içerisinde yazan bilgi aktarılacaktır.
Liste aracını seçelim ve aksiyon ekleyelim.
Aksiyonumuz için When cell value changes / Create New Data Object seçeneklerini kullanalım.
Object Name alanında, oluşacak object nesnesine isim verilir. Bu örneğimizde nesne aksiyonunun bilgisini Object Name alanında CellInformation olarak yazalım.
SQL Query alanına aşağıdaki SQL sorgusunu yazalım. (Sorgu yazımında, tırnak içindeki alanları manuel (elle) olarak yazabileceğiniz gibi, : işaretini kullanarak çıkan listeden seçim yapabilirsiniz. Ardından alias kullanımı da isteğe bağlı olarak eklenebilir.)
SELECT
'$PUserTableID$' AS ID,
'$PXpodaGridChangeValue$' AS ChangeValue,
'$PXpodaGridChangeColName$'AS ChangeColumnName
Aksiyonumuzun ekran görüntüsü aşağıdaki gibi olacaktır. Ardından, aksiyonun hemen altındaki Kaydet butonuna tıklayarak aksiyonumuzu kaydedelim.
Sırayla ID, ColumnHeader ve ChangeValue alanlarını seçelim.
Ardından yukarıdaki görselde kırmızı ile işaretlenmiş alandan; Linked Object alanı açılır kutusunda, Create New Data Object aksiyonunda yer alan Object Name alanındaki CellInformation isimli nesneyi seçelim.
Linked Object Field alanı açılır kutusunda, aksiyonun SQL sorgusu içinde verilen alan isimlerinden seçim yaparak eşleştirelim.
Örneğimizdeki eşleştirmeler şöyledir:
Alan Adı => Nesne aksiyonu
ID => ID
ColumnHeader => ChangeColumnName
ChangeValue => ChangeValue
Son olarak, formu kaydedip Run butonuna tıkladığımızda, listenin client ekranındaki görüntüsü aşağıdaki gibi olacaktır.
Değişiklik yapılabilecek hücreyi (Liste sorgusunda alias’ına $ işareti eklenmiş olan) seçelim.
Hücrede değişiklik yapılıp klavyeden enter tuşuna basıldığında veya mouse ile ekrandan boş bir yere tıklandığında, değişiklik yapılan hücrenin UserTableID (ID alanı içinde), Kolon Adı (ColumnHeader alanı içinde) ve Hücre Değerleri (ChangeValue alanı içinde) ilgili alanlarda gösterilir.
Örnek Kullanım 8 :
Liste Template Özelliği
Free Form özelliğine sahip yeni bir form açalım. Formun type özelliğini report olarak seçelim.
Forma List aracını sürükleyelim.
List elemanının sağ üst köşesindeki Add Customization seçeneğine tıklandığında, template tuvali açılacaktır. Template alanı açıldıktan sonra, sol alt köşede template elemanları görünür. (Aşağıdaki ekran görüntüsündeki elemanlar)
|
Listedeki her bir template elemanı için ayrı ayrı Add Customization işlemi yapılmalı ve her defasında yeni bir template eklenerek ilgili özelleştirme uygulanmalıdır. |
Label Template Elemanı;
SQL Query alanına listede gösterilecek veriyi getirmek için, SQL sorgusu yazalım.
Örneğimizde aşağıda paylaşılan sorgu kullanılmıştır.
SQL sorgusundaki Project Information alanında template uygulanacaktır.
SELECT
XP_PROJECT_TRACKING.UserTableID,
XP_PROJECT_TRACKING.ProjectNo,
XP_PROJECT_TRACKING.ProjectName,
XP_PROJECT_TRACKING.Budget,
'' AS [Project Information]
FROM dbo.XP_PROJECT_TRACKING WITH (NOLOCK)
List elemanının sağ üst köşesinde yer alan Add Customization seçeneğine tıklayarak template düzenleme alanını açalım.
Açılan template tuvaline, aşağıdaki görselde gösterildiği gibi Label elemanlarını sürükleyip bırakalım ve yerleşim ile içerik düzenlemelerini resimdeki örneğe uygun şekilde gerçekleştirelim.
Örnek olarak kullanılan listede, SQL sorgusu içerisindeki Project Information alanı, template uygulaması için seçilmiştir.
Label aracının özellikler bölümünde yer alan Template alanına, SQL sorgusunda bulunan ve label üzerinde görüntülenmek istenen alan adı $Pxxxx$ formatında yazılmalıdır.
(Kolon adında boşluk varsa, bu boşluklar kaldırılarak bitişik şekilde yazılmalıdır.)
Örneğin; Lbl_4 içerisinde $PProjectNo$, Lbl_5 içerisinde $PProjectName$ ve Lbl_6 içerisinde $PBudget$ ifadeleri yazılarak ilgili veriler gösterilir.
Eğer SQL sorgusunda alias (takma ad) kullanılmışsa, $Pxxxx$ yapısı içerisine alias adı yazılmalıdır.
(Kolon adında boşluk varsa, bu boşluklar kaldırılarak bitişik şekilde yazılmalıdır.)
Ardından, Label için eklenmiş olan Template’i seçelim. (Bu işlem, yukarıdaki ekran görüntüsünün sol tarafında kırmızıyla işaretlenmiş alandan gerçekleştirilir.)
Template özellikleri içinde yer alan Column Name alanına, eklenen template'in liste üzerinde uygulanacağı sütun adını, liste içerisindeki SQL sorgusuna dayanarak belirleyip yazalım.
Eğer sorguda alias (takma ad) kullanıldıysa, bu alana alias adı yazılmalıdır.
(Kolon adında boşluk varsa, bu boşluklar kaldırılarak bitişik şekilde yazılmalıdır.)
Örneğimizde, ekran görüntüsünün sağ tarafında kırmızı renkle vurgulanan Column Name alanına ProjectInformation yazalım. (Kolon adında boşluk varsa, bu boşluklar kaldırılarak bitişik şekilde yazılmalıdır.)
Client ekranı açıldığında, listenin otomatik olarak tetiklenmesi ve listeye kayıtlı verilerin gelmesi için aksiyon eklenmesi unutulmamalıdır. Bu aksiyon, formun kendisine ya da form üzerinde bulunan bir butona eklenebilir.
Forma aksiyon eklemek için; Formu seçip, sağ kısımdaki özellikler alanından Aksiyon sekmesini seçelim. Add New Action alanına tıkladıktan sonra aşağıdaki gibi düzenlemeleri yapalım ve aksiyonu kaydedelim.
Type of action; When the form is opened
Action; Update Value
Value Area; GridListe_X (Güncellenmesi istenilen liste)
Butona aksiyon eklemek için; Butonu seçip, sağ kısımdaki özellikler alanından Aksiyon sekmesini seçelim. Add New Action alanına tıkladıktan sonra aşağıdaki gibi düzenlemeleri yapalım ve aksiyonu kaydedelim.
Type of action; When clicked
Action; Update Value
Value Area; GridListe_X (Güncellenmesi istenilen liste)
Son olarak, formu kaydedip Run butonuna tıklayarak client ekranına geçiş yapalım.
Client ekranında Project Information alanı aşağıdaki ekran görüntüsündeki gibi görünecektir.
Picture Template Elemanı;
SQL Query alanına listede gösterilecek veriyi getirmek için, SQL sorgusu yazalım.
Örneğimizde aşağıda paylaşılan sorgu kullanılmıştır.
SQL sorgusundaki ProjectImage alanında template uygulanacaktır.
SQL sorgusunda UNION ALL kullanılarak sonradan eklenen verinin hareketli bir resim (GIF) olarak gösterimi sağlanmıştır.
SELECT
XP_PROJECT_TRACKING.ProjectNo,
XP_PROJECT_TRACKING.ProjectName,
ProjectImage AS ProjectImage
FROM dbo.XP_PROJECT_TRACKING WITH (NOLOCK)
UNION ALL
SELECT
'XP004' AS ProjectNo,
'Xpoda April Project' AS ProjectName,
'https://xxx.xxxxxxx.com/animation/2023/05/16/19/39/19-39-22-287_512.gif' AS ProjectImage
List elemanının sağ üst köşesindeki Add Customization seçeneğine tıklayalım.
Picture elemanını seçelim ve template tuvaline sürükleyip bırakalım.
Örnek olarak kullanılan listede, SQL sorgusu içerisindeki ProjectImage alanı, template uygulaması için seçilmiştir.
Picture aracının özellikler bölümünde yer alan Template alanına, SQL sorgusunda bulunan ve picture üzerinde görüntülenmek istenen alan adı $Pxxxx$ formatında yazılmalıdır.
(Kolon adında boşluk varsa, bu boşluklar kaldırılarak bitişik şekilde yazılmalıdır.)
Örneğimizde template alanına $PProjectImage$ yazılmıştır.
Eğer SQL sorgusunda alias (takma ad) kullanılmışsa, $Pxxxx$ yapısı içerisine alias adı yazılmalıdır.
(Kolon adında boşluk varsa, bu boşluklar kaldırılarak bitişik şekilde yazılmalıdır.)
Picture için eklenen Template’i seçelim. (Bu işlem, yukarıdaki ekran görüntüsünün sol tarafında kırmızıyla işaretlenmiş alandan gerçekleştirilir.)
Template özellikleri içinde yer alan Column Name alanına, eklenen template'in liste üzerinde uygulanacağı sütun adını, liste içerisindeki SQL sorgusuna dayanarak belirleyip yazalım.
Örneğimizde bu alana ProjectImage yazılmıştır. (Bu işlem, yukarıdaki ekran görüntüsünün sağ tarafında kırmızıyla işaretlenmiş alandan gerçekleştirilir.)
Eğer sorguda alias (takma ad) kullanıldıysa, bu alana alias adı yazılmalıdır. (Kolon adında boşluk varsa, bu boşluklar kaldırılarak bitişik şekilde yazılmalıdır.)
Forma aksiyon eklemek için; Formu seçip, sağ kısımdaki özellikler alanından Aksiyon sekmesini seçelim. Add New Action alanına tıkladıktan sonra aşağıdaki gibi düzenlemeleri yapalım ve aksiyonu kaydedelim.
Type of action; When the form is opened
Action; Update Value
Value Area; GridListe_X (Güncellenmesi istenilen liste)
Son olarak, formu kaydedip Run butonuna tıklayarak client ekranına geçiş yapalım.
Client ekranında ProjectImage alanı aşağıdaki ekran görüntüsündeki gibi görünecektir.
3. sıradaki verinin ProjectImage bilgisi bulunmadığı için, varsayılan olarak aşağıdaki gibi görüntü oluşmuştur.
4. sıradaki verinin hareketli bir resim olduğunu, client ekranında görebilmekteyiz.
Progress Bar Template Elemanı;
SQL Query alanına listede gösterilecek veriyi getirmek için, SQL sorgusu yazalım.
Örneğimizde aşağıda paylaşılan sorgu kullanılmıştır.
SQL sorgusundaki ProgressPercentage alanında template uygulanacaktır.
SELECT
XP_PROJECT_TRACKING.UserTableID,
XP_PROJECT_TRACKING.ProjectNo,
XP_PROJECT_TRACKING.ProjectName,
XP_PROJECT_TRACKING.Budget,
XP_PROJECT_TRACKING.ProgressPercentage
FROM dbo.XP_PROJECT_TRACKING WITH (NOLOCK)
List aracının sağ üst köşesindeki Add Customization seçeneğine tıklayarak template düzenleme alanını açalım.
Ardından Progress Bar aracını template tuvaline sürükleyip bırakalım.
Örnek olarak kullanılan listede, SQL sorgusu içerisindeki ProgressPercentage alanı, template uygulaması için seçilmiştir.
Progress Bar aracının özellikler bölümünde yer alan Template alanına, SQL sorgusunda bulunan ve Progress Bar üzerinde görüntülenmek istenen alan adı $Pxxxx formatında yazılmalıdır.
(Kolon adında boşluk varsa, bu boşluklar kaldırılarak bitişik şekilde yazılmalıdır.)
Örneğimizde template alanına $PProgressPercentage yazılmıştır.
Eğer SQL sorgusunda alias (takma ad) kullanılmışsa, $Pxxxx yapısı içerisine alias adı yazılmalıdır.
(Kolon adında boşluk varsa, bu boşluklar kaldırılarak bitişik şekilde yazılmalıdır.)
Progress Bar için eklenen Template’i seçelim. (Bu işlem, yukarıdaki ekran görüntüsünün sol tarafında kırmızıyla işaretlenmiş alandan gerçekleştirilir.)
Template özellikleri içinde yer alan Column Name alanına, eklenen template'in liste üzerinde uygulanacağı sütun adını, liste içerisindeki SQL sorgusuna dayanarak belirleyip yazalım.
Örneğimizde bu alana ProgressPercentage yazılmıştır. (Bu işlem, yukarıdaki ekran görüntüsünün sağ tarafında kırmızıyla işaretlenmiş alandan gerçekleştirilir.)
Eğer sorguda alias (takma ad) kullanıldıysa, bu alana alias adı yazılmalıdır. (Kolon adında boşluk varsa, bu boşluklar kaldırılarak bitişik şekilde yazılmalıdır.)
Forma aksiyon eklemek için; Formu seçip, sağ kısımdaki özellikler alanından Aksiyon sekmesini seçelim. Add New Action alanına tıkladıktan sonra aşağıdaki gibi düzenlemeleri yapalım ve aksiyonu kaydedelim.
Type of action; When the form is opened
Action; Update Value
Value Area; GridListe_X (Güncellenmesi istenilen liste)
Son olarak, formu kaydedip Run butonuna tıklayarak client ekranına geçiş yapalım.
Client ekranında ProgressPercentage alanı aşağıdaki ekran görüntüsündeki gibi görünecektir.
Circular Progress Bar Template elemanı;
SQL Query alanına listede gösterilecek veriyi getirmek için, SQL sorgusu yazalım.
Örneğimizde aşağıda paylaşılan sorgu kullanılmıştır.
SQL sorgusundaki Percentage alanında template uygulanacaktır.
SELECT
XP_PROJECT_TRACKING.UserTableID,
XP_PROJECT_TRACKING.ProjectNo,
XP_PROJECT_TRACKING.ProjectName,
XP_PROJECT_TRACKING.Budget,
XP_PROJECT_TRACKING.ProgressPercentage AS Percentage
FROM dbo.XP_PROJECT_TRACKING WITH (NOLOCK)
List elemanının sağ üst köşesindeki Add Customization alanına tıklayarak template düzenleme alanını açalım.
Circular Progress Bar elemanını seçip template tuvaline sürükleyerek bırakalım.
Örnek olarak kullanılan listede, SQL sorgusu içerisindeki Percentage alanı, template uygulaması için seçilmiştir.
Circular Progress Bar aracının özellikler bölümünde yer alan Template alanına, SQL sorgusunda bulunan ve Circular Progress Bar üzerinde görüntülenmek istenen alan adı $Pxxxx formatında yazılmalıdır.
(Kolon adında boşluk varsa, bu boşluklar kaldırılarak bitişik şekilde yazılmalıdır.)
Örneğimizde template alanına $PPercentage yazılmıştır.
Eğer SQL sorgusunda alias (takma ad) kullanılmışsa, $Pxxxx yapısı içerisine alias adı yazılmalıdır.
(Kolon adında boşluk varsa, bu boşluklar kaldırılarak bitişik şekilde yazılmalıdır.)
Circular Progress Bar için eklenen Template’i seçelim. (Bu işlem, yukarıdaki ekran görüntüsünün sol tarafında kırmızıyla işaretlenmiş alandan gerçekleştirilir.)
Template özellikleri içinde yer alan Column Name alanına, eklenen template'in liste üzerinde uygulanacağı sütun adını, liste içerisindeki SQL sorgusuna dayanarak belirleyip yazalım.
Örneğimizde bu alana Percentage yazılmıştır. (Bu işlem, yukarıdaki ekran görüntüsünün sağ tarafında kırmızıyla işaretlenmiş alandan gerçekleştirilir.)
Eğer sorguda alias (takma ad) kullanıldıysa, bu alana alias adı yazılmalıdır. (Kolon adında boşluk varsa, bu boşluklar kaldırılarak bitişik şekilde yazılmalıdır.)
Forma aksiyon eklemek için; Formu seçip, sağ kısımdaki özellikler alanından Aksiyon sekmesini seçelim. Add New Action alanına tıkladıktan sonra aşağıdaki gibi düzenlemeleri yapalım ve aksiyonu kaydedelim.
Type of action; When the form is opened
Action; Update Value
Value Area; GridListe_X (Güncellenmesi istenilen liste)
Son olarak, formu kaydedip Run butonuna tıklayarak client ekranına geçiş yapalım.
Client ekranında Percentage alanı aşağıdaki ekran görüntüsündeki gibi görünecektir.
Rating Template elemanı;
SQL Query alanına listede gösterilecek veriyi getirmek için, SQL sorgusu yazalım.
Örneğimizde aşağıda paylaşılan sorgu kullanılmıştır.
SQL sorgusundaki RatingScore alanında template uygulanacaktır.
SELECT
XP_PROJECT_TRACKING.UserTableID,
XP_PROJECT_TRACKING.ProjectNo,
XP_PROJECT_TRACKING.ProjectName,
XP_PROJECT_TRACKING.Budget,
XP_PROJECT_TRACKING.RatingScore
FROM dbo.XP_PROJECT_TRACKING WITH (NOLOCK)
List elemanının sağ üst köşesindeki Add Customization alanına tıklayarak template düzenleme alanını açalım.
Rating elemanını seçip template tuvaline sürükleyerek bırakalım.
Örnek olarak kullanılan listede, SQL sorgusu içerisindeki RatingScore alanı, template uygulaması için seçilmiştir.
Rating aracının özellikler bölümünde yer alan Template alanına, SQL sorgusunda bulunan ve Rating üzerinde görüntülenmek istenen alan adı $Pxxxx formatında yazılmalıdır.
(Kolon adında boşluk varsa, bu boşluklar kaldırılarak bitişik şekilde yazılmalıdır.)
Örneğimizde template alanına $PRatingScore yazılmıştır.
Eğer SQL sorgusunda alias (takma ad) kullanılmışsa, $Pxxxx yapısı içerisine alias adı yazılmalıdır.
(Kolon adında boşluk varsa, bu boşluklar kaldırılarak bitişik şekilde yazılmalıdır.)
Rating için eklenen Template’i seçelim. (Bu işlem, yukarıdaki ekran görüntüsünün sol tarafında kırmızıyla işaretlenmiş alandan gerçekleştirilir.)
Template özellikleri içinde yer alan Column Name alanına, eklenen template'in liste üzerinde uygulanacağı sütun adını, liste içerisindeki SQL sorgusuna dayanarak belirleyip yazalım.
Örneğimizde bu alana RatingScore yazılmıştır. (Bu işlem, yukarıdaki ekran görüntüsünün sağ tarafında kırmızıyla işaretlenmiş alandan gerçekleştirilir.)
Eğer sorguda alias (takma ad) kullanıldıysa, bu alana alias adı yazılmalıdır. (Kolon adında boşluk varsa, bu boşluklar kaldırılarak bitişik şekilde yazılmalıdır.)
Forma aksiyon eklemek için; Formu seçip, sağ kısımdaki özellikler alanından Aksiyon sekmesini seçelim. Add New Action alanına tıkladıktan sonra aşağıdaki gibi düzenlemeleri yapalım ve aksiyonu kaydedelim.
Type of action; When the form is opened
Action; Update Value
Value Area; GridListe_X (Güncellenmesi istenilen liste)
Son olarak, formu kaydedip Run butonuna tıklayarak client ekranına geçiş yapalım.
Client ekranında RatingScore alanı aşağıdaki ekran görüntüsündeki gibi görünecektir.
Javascript Koduyla Template Oluşturma;
Listede, JavaScript kodu kullanarak da template oluşturulabilir. Bu örnekte, Quality Score alanına yazılan JavaScript kodu ile, eğer verilen değer QualityScore'dan büyükse 'Good', küçükse 'Bad' sonucunun listede görüntülenmesi istenmiştir.
SQL Query alanına listede gösterilecek veriyi getirmek için, SQL sorgusu yazalım.
Örneğimizde aşağıda paylaşılan sorgu kullanılmıştır.
SQL sorgusundaki QualityScore alanında template uygulanacaktır.
SELECT
XP_PROJECT_TRACKING.UserTableID,
XP_PROJECT_TRACKING.ProjectNo,
XP_PROJECT_TRACKING.ProjectName,
XP_PROJECT_TRACKING.Budget,
XP_PROJECT_TRACKING.RatingScore AS QualityScore
FROM dbo.XP_PROJECT_TRACKING WITH (NOLOCK)
List elemanının sağ üst köşesindeki Add Customization alanına tıklayarak template düzenleme alanını açalım.
Template tuvali boş bırakılır. (Yukarıdaki ekran görüntüsünün sol tarafında kırmızıyla işaretlenmiş alandır. Yukarıda paylaşılan örnekte ölçeklendirme yapılmıştır.)
JavaScript için eklenen Template’i seçelim.
Template özellikleri içinde yer alan Column Name alanına, eklenen template'in liste üzerinde uygulanacağı sütun adını, liste içerisindeki SQL sorgusuna dayanarak belirleyip yazalım.
Örneğimizde bu alana QualityScore yazılmıştır. (Bu işlem, yukarıdaki ekran görüntüsünün sağ tarafında kırmızıyla işaretlenmiş alandan gerçekleştirilir.)
Eğer sorguda alias (takma ad) kullanıldıysa, bu alana alias adı yazılmalıdır. (Kolon adında boşluk varsa, bu boşluklar kaldırılarak bitişik şekilde yazılmalıdır.)
Template alanına aşağıdaki Javascript kodunu yazalım:
#if(QualityScore <2 )
{#
<span style=" padding: 10px 20px; display: inline-block; font-size: 14px; background: rgb(255 0 0 / 77%); color: rgb(255 255 255); border-radius: 20px;"> Bad </span>
#}else{#
<span style=" padding: 10px 20px; display: inline-block; font-size: 14px; background: rgb(55 116 0 / 77%); color: rgb(255 255 255); border-radius: 20px;"> Good </span>
# }#
Quality Score değeri 2'nin altında ise 'Bad', 2'nin üstünde ise 'Good' olarak, Quality Score kolonunda gösterilecektir.
Forma aksiyon eklemek için; Formu seçip, sağ kısımdaki özellikler alanından Aksiyon sekmesini seçelim. Add New Action alanına tıkladıktan sonra aşağıdaki gibi düzenlemeleri yapalım ve aksiyonu kaydedelim.
Type of action; When the form is opened
Action; Update Value
Value Area; GridListe_X (Güncellenmesi istenilen liste)
Son olarak, formu kaydedip Run butonuna tıklayarak client ekranına geçiş yapalım.
Client ekranında QualityScore alanı aşağıdaki ekran görüntüsündeki gibi görünecektir.
Button Template Elemanı;
SQL Query alanına listede gösterilecek veriyi getirmek için, SQL sorgusu yazalım.
Örneğimizde aşağıda paylaşılan sorgu kullanılmıştır.
SQL sorgusundaki Information alanında template uygulanacaktır.
SELECT
XP_PROJECT_TRACKING.UserTableID,
XP_PROJECT_TRACKING.ProjectNo,
XP_PROJECT_TRACKING.ProjectName,
XP_PROJECT_TRACKING.Budget,
'' AS [Information]
FROM dbo.XP_PROJECT_TRACKING WITH (NOLOCK)
List elemanının sağ üst köşesindeki Add Customization alanına tıklayarak template düzenleme alanını açalım.
Buton elemanını seçip template tuvaline sürükleyerek bırakalım.
Örnek olarak kullanılan listede, SQL sorgusu içerisindeki Information alanı, template uygulaması için seçilmiştir.
Buton aracının özellikler bölümünde yer alan Template alanına, SQL sorgusunda bulunan ve Buton üzerinde görüntülenmek istenen alan adı $Pxxxx formatında yazılmalıdır.
(Kolon adında boşluk varsa, bu boşluklar kaldırılarak bitişik şekilde yazılmalıdır.)
Örneğimizde template alanına $PInformation yazılmıştır.
Eğer SQL sorgusunda alias (takma ad) kullanılmışsa, $Pxxxx yapısı içerisine alias adı yazılmalıdır.
(Kolon adında boşluk varsa, bu boşluklar kaldırılarak bitişik şekilde yazılmalıdır.)
Buton aracının özellikler bölümünde yer alan Text alanına Message ibaresi yazılmıştır.
Butona eklenmek istenen aksiyon eklenebilir.
Buton için eklenen Template’i seçelim. (Bu işlem, yukarıdaki ekran görüntüsünün sol tarafında kırmızıyla işaretlenmiş alandan gerçekleştirilir.)
Template özellikleri içinde yer alan Column Name alanına, eklenen template'in liste üzerinde uygulanacağı sütun adını, liste içerisindeki SQL sorgusuna dayanarak belirleyip yazalım.
Örneğimizde bu alana Information yazılmıştır. (Bu işlem, yukarıdaki ekran görüntüsünün sağ tarafında kırmızıyla işaretlenmiş alandan gerçekleştirilir.)
Eğer sorguda alias (takma ad) kullanıldıysa, bu alana alias adı yazılmalıdır. (Kolon adında boşluk varsa, bu boşluklar kaldırılarak bitişik şekilde yazılmalıdır.)
Forma aksiyon eklemek için; Formu seçip, sağ kısımdaki özellikler alanından Aksiyon sekmesini seçelim. Add New Action alanına tıkladıktan sonra aşağıdaki gibi düzenlemeleri yapalım ve aksiyonu kaydedelim.
Type of action; When the form is opened
Action; Update Value
Value Area; GridListe_X (Güncellenmesi istenilen liste)
Son olarak, formu kaydedip Run butonuna tıklayarak client ekranına geçiş yapalım.
Client ekranında Information alanı aşağıdaki ekran görüntüsündeki gibi görünecektir.
Örnek Kullanım 9 :
Tüm formu listeden verilerle doldurma
Type özelliği Form olarak seçilmiş bir formda, aşağıdaki resimde gösterilen alanlar yer almaktadır. Bu ekranda girilen veriler, kayıt işlemi yapıldığında XP_PROJECT_TRACKING tablosuna kaydedilmektedir. Kaydedilen verilerin görüntülenmesi için, forma liste aracı eklenmiştir. Listeden bir kayıt seçildiğinde, seçilen kaydın verilerini formun ilgili alanlarına aktaralım.
Liste sorgusunda, tablodaki UserTableID adlı benzersiz alanın bulunması gerekmektedir.
SELECT
XP_PROJECT_TRACKING.UserTableID,
XP_PROJECT_TRACKING.ProjectNo,
XP_PROJECT_TRACKING.ProjectName,
XP_PROJECT_TRACKING.Budget,
XP_PROJECT_TRACKING.ProgressPercentage
FROM dbo.XP_PROJECT_TRACKING WITH (NOLOCK)
Liste aracını seçelim.
Ardından aksiyonlar bölümünde bulunan Add New Action alanına tıklayalım.
Type of action alanında, When the row is selected - Operation alanında, Update Value - Value Area alanında, All Forms seçeneklerini seçelim.
SQL Query alanında, tablonun verilerini getirecek şekilde uygun sorguyu yazalım. Where koşulunda listedeki UserTableID değerine göre bir koşul yazalım. Aksiyonun sağ alt köşesindeki kaydet simgesine tıklayarak aksiyonu kaydedelim.
Forma aksiyon eklemek için; Formu seçip, sağ kısımdaki özellikler alanından Aksiyon sekmesini seçelim. Add New Action alanına tıkladıktan sonra aşağıdaki gibi düzenlemeleri yapalım ve aksiyonu kaydedelim.
Type of action; When the form is opened
Action; Update Value
Value Area; GridListe_X (Güncellenmesi istenilen liste)
Son olarak, formu kaydedip Run butonuna tıklayarak client ekranına geçiş yapalım.
Client tarafında, aşağıdaki gibi bir görünüm oluşacaktır.
Listeden 2. satıra tıkladığımızda, tüm verilerin formun ilgili alanlarına aktarıldığını görebiliriz.
Örnek Kullanım 10:
Listeden Tekli ve Çoklu Seçim Özelliği
Listeden bir satır seçildiğinde, o satırdaki bir veriyi formda bulunan ilgili alana aktarmak için, öncelikle forma iki adet text box elemanı ekleyelim. Aşağıdaki paylaşılan görseldeki şekilde text box araçlarının isimlendirme işlemlerini yapalım.
Listeden çoklu seçim yapılmak isteniyorsa, seçim yapıldığında hangi sütun içerisindeki bilginin forma aktarılacağı belirlenmeli ve sorgu içerisinde o sütunun alias'ı UserTableID olarak tanımlanmalıdır.
Eğer ilgili tablonun UserTableID sütunu zaten sorgu içerisine eklenmişse, bu alana tekrar alias yazılmasına gerek yoktur.
Liste sorgusu;
SELECT
XP_PROJECT_TRACKING.ProjectNo AS UserTableID,
XP_PROJECT_TRACKING.ProjectName AS Name,
XP_PROJECT_TRACKING.Budget,
XP_PROJECT_TRACKING.ProgressPercentage
FROM dbo.XP_PROJECT_TRACKING WITH (NOLOCK)
Liste aracını seçelim.
Ardından aksiyonlar bölümünde bulunan Add New Action alanına tıklayalım.
Type of action alanında, When the row is selected - Operation alanında, Update Value - Value Area alanında, eklemiş olduğumuz text box araçlarından ismi MultipleSelection olan seçenekleri seçelim.
SQL Query alanında, liste adı ve UserTableID kolonun birleşimi olan sorguyu aşağıdaki gibi yazalım. UserTableID sonunda büyük s (S) harfi bulunmaktadır.
Aksiyon içerisinde yazılan sorguya, aşağıdaki şekilde '$P' ibaresi eklenmelidir.
Aksiyonun sağ alt köşesindeki kaydet simgesine tıklayarak aksiyonu kaydedelim.
SELECT '$PGridListe_2_UserTableIDS'
GridListe_2 yapmış olduğumuz örnekte kullandığımız listenin ismidir.
Kullanılan listenin ismini öğrenmek için, liste aracı seçildikten sonra özellikle bölümündeki Name alanına bakılmalı ve Name alanında gözüken liste ismi sorguya yazılmalıdır.
Listeden tek satır seçim yapılmak isteniyorsa, seçim yapıldığında hangi sütun içerisindeki bilginin forma aktarılacağı belirlenmeli ve aksiyon içerisinde o sütunun isminin başına '$P' ibaresi eklenerek yazılmalıdır. Alias kullanılıyorsa, alias' ın başına da '$P' ibaresi eklenerek yazılmalıdır.
(Kolon adında boşluk varsa, bu boşluklar kaldırılarak bitişik şekilde yazılmalıdır.)
Liste aracını seçelim.
Ardından aksiyonlar bölümünde bulunan Add New Action alanına tıklayalım.
Type of action alanında, When the row is selected - Operation alanında, Update Value - Value Area alanında, eklemiş olduğumuz text box araçlarından ismi SingleSelection olan seçenekleri seçelim.
SQL Query alanında, liste sorgusundaki Name alanını forma aktarmak için aşağıdaki sorguyu yazalım.
Aksiyonun sağ alt köşesindeki kaydet simgesine tıklayarak aksiyonu kaydedelim.
SELECT '$PName$’
Forma aksiyon eklemek için; Formu seçip, sağ kısımdaki özellikler alanından Aksiyon sekmesini seçelim. Add New Action alanına tıkladıktan sonra aşağıdaki gibi düzenlemeleri yapalım ve aksiyonu kaydedelim.
Type of action; When the form is opened
Action; Update Value
Value Area; GridListe_X (Güncellenmesi istenilen liste)
Son olarak, formu kaydedip Run butonuna tıklayarak client ekranına geçiş yapalım.
Client ekranında listede birden fazla seçim yapabilmek için, CTRL tuşuna basılı tutarak seçmek istediğimiz satırlara fare ile tıklayabiliriz.
Bir diğer çoklu seçim yöntemi ise, listeden bir satır seçip ardından SHIFT tuşuna basılı tutarak listede daha alt bir satır seçmektir. Bu işlem, aradaki tüm satırları da seçili hale getirecektir.
Listeden seçilen satırdaki veriler, resimde görüldüğü gibi forma eklenen text box araçlarına aktarılacaktır. Çoklu seçim yapıldığında ise, alanların verileri virgülle ayrılarak yan yana sıralanacaktır.