Posts Tagged smartface designer

Smartface Designer’da Aritmetik İşlemler

Merhaba. Bu yazımda sizlere Smartface designer’da aritmetik işlemlerden bahsedeceğim.

Smartface Designer’da Actions Editor  paletinde “Util” sekmesi altında bulunan “Arithmetic Operations” action’ını bir örnek uygulama yaparak açıklamak istiyorum.

1

Bu örnekte mini bir stok takip programı yapacağız. Depodaki ürün adedini bir edit box’a girip, bu girilen değeri bir label’da tutacağız. Sonraki girilen değerleri de bu label’daki değerin üstüne ekleyeceğiz.

Öncelikle edit box’ımızı ve label’ımızı oluşturalım. Bir de bu toplama işlemlerini gerçekleştirebilmek için butona ihtiyacımız olacak.

Aritmetik işlemleri edit box’ımıza değer girildikten ve butona basıldıktan sonra gerçekleştireceğiz. Bu yüzden action editor’den objemizi buton, event’imizi de OnPressed olarak seçiyoruz.

3

İlk parametremizi edit box’a girilen değer olarak atadık.

4

5

Şimdi Operand’ı ve ikinci parametreyi de giriyoruz. Operand’ımız toplama işlemi yapacağımızdan “+”, ikinci parametre de label’ımızın text değeri olacak.

6

Burada dikkat etmemiz gereken önemli bir nokta var. Label’lar oluşturulurken default olarak “Label”  yazısı üstlerinde gelir. Biz de label’ların değerini okuyup edit box’a girilen sayıyı ekleyeceğimiz için, label’ın ilk değerini 0(sıfır) olarak değiştiriyoruz.

2

Şimdi sonucu tekrar label’ın üzerine yazdıralım. Bu işlemi parametrelerin hemen altında “Assign”  kısmından yapacağız.

7

Uygulamamızı çalıştırdığımızda önce edit box’a bir değer girip sonra da butona bastığımızda toplama işlemini gerçekleştirmiş olacağız.

89

Her türlü sorunuz için sadeceengin [at] gmail.com ‘a mail atabilirsiniz.

Engin YILDIZ

, , , ,

No Comments

SmartFace Designer’da Condition Kullanımı

Merhaba. Sizlere Smartface Designer’da condition’lardan ve aritmetik işlemlerden bahsetmek istiyorum. Condition’lar;  true/false (yanlış/doğru) karşılaştırması yapıp buradan çıkacak sonuçlara göre yazdığımız kodu, geliştirdiğimiz uygulamayı belirli doğrultulara yönlendirmemizi sağlar. Java’da;

if(x==2){
  x=x+1;
}else {
  x=y;
}

şeklinde bir kod parçacığı yazdığımızda, if parantezinin içindeki “condition” doğruysa “x=x+1” işlemi gerçekleştirilecek; eğer yanlışsa “else”  kısmına girip “x=y” işlemi gerçekleştirilecektir. Smartface Designer kullanan bir kişi, hiç bir programlama dili bilmese bile çok rahat bir şekilde bu conditionları yönetebilecektir.

Smartface Designer’da Conditionlar

Smartface Designer’da da bu temel condition mantığı, yazacağımız uygulamarı istediğimiz yönde çalıştırmamızı sağlıyor. Örneğin;  web service’ten çekilen bir değer “true” ise işlem yapmamıza gerek kalmayabilir .Eğer buradan gelen değer “false” olursa bu false değeri değiştirmek için işlemler yapmamız gerekebilir. İşte burada condition’lar bize büyük fayda sağlıyor.

Şimdi basit bir örnek yapalım. Uygulamamız da bir “edit box” ve bir de “label” olacak. Kullanıcı’nın edit box’a girdiği değerin 0’a eşit olup olmadığını kontrol edeceğiz ve eğer sıfıra eşitse “Girilen değer sıfıra eşit”, eğer eşit değilse “Girilen değer sıfırdan farklı” iletilerini label’ımıza yazdıracağız. Bunun için önce Smartface Designer’da yeni bir proje açıp birer edit box ve label oluşturuyoruz. Edit box’ı seçip sağ tarafta bulunan “action editor” sekmesini açıyoruz. Üst tarafta bulunan “Events” seçenekleri arasından OnChange’i seçiyoruz.

1

Bu event (olay), edit box’mızın değeri değiştiğinde gerçekleştirilecek olan action’ları içerir. Sol taraftan “Condition Action”ı seçiyoruz. Şimdi Action Editor’ümüzde bizden parametreler isteyen bir menü çıktı. Burada ilk değeri, kontrol operatörünü ve kontrol edilecek ikinci değeri gireceğiz.

2

3

İkinci parametremiz sabit bir değer olduğu için, ilk parametredeki gibi “Object Value (nesne değeri)” seçeneğini seçmiyoruz, bunun yerine “Constant(sabit)” seçeneğini seçiyoruz ve değeri sıfır olarak giriyoruz.

4

Şimdi OnTrue condition’ı için uygulanacak action’ımızı oluşturacağız. Action Editor’de sol taraftaki Object sekmesinden Change Object Property seçeneğini seçiyoruz.

5

Page, Object, Property seçeneklerini resimdeki gibi ayarlıyoruz. Burada yapılan şey, seçilen objenin seçilen property’sini (özelliğini) değiştirmektir. Assign kısmında da seçtiğimiz objeye  istediğimiz değeri atıyoruz.  Burada seçtiğimiz obje kullanıcıya mesajı gösterecek olan label idi. “Girilen deger sıfıra eşit” şeklinde bir string yazalım.

6

OnTrue için yapacaklarımız şimdilik bu kadar. Sırada Edit Box’a girilen değer sıfırdan farklı ise yapacaklarımız var. Bunları da OnFalse kısmına giriyoruz. İstersek teker teker az önce gerçekleştirdiğimiz bu işlemleri uygulayıp sadece assign işlemindeki veriyi değiştirebiliriz. İstersek de OnTrue action’ını kopyalayıp (sağ tık -> copy ya da ctrl+c), OnFalse’a yapıştırabiliriz(sağ tık -> paste ya da ctrl+v). Ancak kopyaladığımız action’ın assign değeri OnTrue’daki değerle aynı olacağı için assign işlemindeki iletiyi değiştirmeyi unutmayın.

7

Şimdi uygulamayı Smartface Desginer’da simüle ettiğimizde (kısayol tuşu F12) edit box’a girdiğimiz değeri eş zamanlı olarak kontrol edip, label’daki string’i güncellediğini fark edeceksiniz.

89

Condition’ların kullanımını çok basit bir örnekle açıklamaya çalıştım. Condition’ları kullanarak nested loop’lar (iç içe döngü), iç içe if’ler oluşturabilirsiniz. Böylece aynı anda birden fazla koşulu sağlayan değerlerle  işlem yapabilirsiniz.

Sorularınız için sadeceengin [at] gmail.com a mail atmaktan çekinmeyin.

Engin YILDIZ

, , , , ,

1 Comment

Smatface Designer’da Manuel(static) Tablolar

Smartface Designer’da tablo oluşturma araçlarının bulunması kullanıcıya kullanım kolaylığı sağlamaktadır. Bu tabloları oluşturmak için asp.net’teki gibi başka veri tabanı dillerini bilmeye gerek olmamasının yanı sıra veritabanı bağlantısı yapmaya da gerek yok. Bu özellikler yeni kullancılar için uygulama geliştirmeyi çile olmaktan çıkarır.

Smartface Designer’da tablo oluşturmak için başka bir platformla bağlantı kurmaya gerek yoktur, tabloyu oluşturmak için hazır yaratılan tablolara içeriklerin girilmesi yeterlidir.  Şimdi ASP.NET için MYSQL bağlantısının nasıl yapıldığına bakalım.

< %@ Import Namespace="System.Data.OleDb" %>
 
 <script runat="server">
 sub Page_Load
 dim dbconn
 dbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;
 data source=" &amp; server.mappath("northwind.mdb"))
 dbconn.Open()
 end sub
 </script>

Yukarda görüldüğü gibi sadece veritabanına bağlamak için bu kodları yazmak gerekir. Bunun dışında veri tabanından verileri okumak ve üzerinde sorgu yapmak için de bundan daha uzun kod yazmak gerekiyor. Aşağıda göreceğimiz Smartface Designer’da tablo oluşturmada bunların hiç birine ihtiyaç duyulmadığı için kullanıcıya ciddi kolaylık sağlamaktadır.

Şimdi Smartface Designerda tablo nasıl oluşturulur ona bakalım.

I. Lokal Tablo Oluşturma:

Uygulamada verileri lokal olarak çekmek için bu tablolar kullanılmaktadır.  Bu veriler kullanıcı tarafından elle girilmektedir. Tablolar Smartface Designer’ın içinde bir ikon olarak seçilebilir olarak yer almaktadır.  Bu ikon seçilip tablo tablo içerikleri doldurulduğunda “Projects Browser’da” bulunan “Local Tables’ın” içinde verilen isimde bir tablo oluşur.Uygulamalarda bu tablolar lokal olarak yer aldıklarından projenin boyutunu artıran araçlardır. Eğer tablo kullanımı gerekliyse bunların verileri küçük boyutlarda seçilmelidir. Manuel olarak seçilen tabloların uygulamada kullanılabilir olması için Datasetler oluşturulmalıdır.

Statik tabloyu Smartface Designer’da oluşturmak için tablo ikonun üzerini tıklayınca tablo sayfası açılır.

Bu sayfaya bir tablo adı verilip veri tabanı oluşturulur. Oluşturulan tablonun max size’nı kullanıcı belirleyebilmektedir. Tabloya isim verdikten sonra kullanacağımız kolonları oluşturmamız gerekmektedir.

Her sütunun bir ismi, bir tipi(type) ve ilk değeri(default) bulunmaktadır. Burada sütun ismi yazıldıktan sonra bu sütunun tipi(type) aşağıdaki  şekilde görüldüğü gibi seçilir. Eğer kullanıcı hiçbir şey yapmazsa default olarak string tipine sahip olur. Bu işlem tamamlandıktan sonra tabloları doldurabiliriz.

“Local tables’da” oluşan tabloya sağ tıklanarak “Edit Rows” seçilir ve tablo içerikleri doldurulur. Aşağıdaki şekilde gösterilmiştir.

Ekleyeceğimiz satır sayısı kadar insert butonunu tıklayarak satırlar oluştururuz. Bu oluşturulan satırlara kolonlarda(column) belirtilen tiplerde(type) veriler girilmesi gerekir. Resim(Picture) için bilgisayardan dosya seçme seçenekleri yer almaktadır. Tablo doldurma işlemi bittikten sonra tablo save edilir. Tablonun sağ üst köşesinde tablo verilerinin  kapladığı hafızayı görülebilmektedir.

Tabloların nasıl oluştuğunu öğrendik şimdi Dataset nasıl oluşturulur ona bir bakalım.

II. Dataset Oluşturma:

Dateset manuel tablolarının nesnelerde(object) kullanılabilir hale getirmek için oluşturulur. Bu tabloların Smartface Designer’a uyarlanması için Dataset’lerini oluşturulması şarttır. Dataset ikonu tıklandığında çıkan Dataset sayfasında “Local Tables’da” bulunan tablo isimleri “ComboBox’da” sıralı olarak görülür. Bu tablolardan kullanacağımızı seçip Dataset’imizi oluştururuz. Örneğin ülkeler datasetini oluşturalım.

Dataset’ini oluşturacağımız tabloyu sıralamak istersek “Sort’tan” seçtiğimiz kolon’a(column)  göre küçükten büyüğe ya da büyükten küçüğe sıralayabiliriz. Böylece tablo oluştururken verileri sıralı girmemize gerek kalmaz, Dataset bizim yerimize sıralamış olur. Ülkeler Dataset’ini ülke adına göre sıralayalım.

Dataset sayfasındaki bütün seçimlerimizi yaptıktan sonra “Ok” butonunu tıklayarak Datasetimizi oluştururuz. Dataset’imiz “Data Access” kısmında görünür olur. Şekilde de görüldüğü gibi…

Önemli:
Bir tablonun birden fazla Dataset'i oluşturulabilir. Bu sayede
bir dataset'te filtreleme yaparken başka bir Dataset'te ana
tablomuz değişmeden tutulmuş olur.

Dataset’in nasıl oluştuğunu öğrendikten sonra nasıl filtrelendiğini ve nasıl kullanılacağı kısmını anlatmak kaldı. Şimdi Dataset nasıl filtrelenir ona bakalım.

III. Dataset Filtreleme:

Filtrenin amacı genel bir tablodan sadece kullanacağımız satırların kaldığı bir tablo oluşturma olarak açıklayabiliriz. Bu genel tabloya örnek olarak; İTU’deki bütün öğrencilerin okul numaralarının, isim-soyisimlerinin ve bölümlerinin bilgilerinin tutulduğu bir tablo olduğunu düşünelim. Biz bu tabloyu sadece bilgisayar mühendislerine göre filtrelersek elimize bilgisayar mühendislerinin listesini tutan bir tablo kalmış olur. Bunu bir nevi sorgulama olarak görebiliriz.  Aşağıda Dataset filtrelemenin nasıl yapıldığını ülkeler Dataset’inde gösterelim.

Yukarda bulunan artı işareti tıklandığında Dataset’in “Filter”  bölümünde filtreleme satırı çıkar. Burada “Colums” kısmına kullandığımız Dataset’te yer alan tablonun sütün isimleri çıkar. Bu sütunlardan biri seçilerek “Operator” seçilir. “Columns” ve “Operatör” belirtildikten sonra sıra geldi filtreleyeceğimiz veriyi almaya. Bu veriyi “Dataset Column’dan(Dataset Sütun)”, “Object Value’den(Nesne)” veya “Constant(sabit)” olarak alabiliriz.

Bu örnekte “Ulkeler” tablosunun ulkeadi sütununda turkiye olan satırların bulunduğu bir tablo oluşur.

Önemli:
Filtreleme yapılan Dataset'lerde bu işlemin yapıldığı yerde
"refresh" dataset" yapmak gerekir.

Dataset oluşturduktan sonra bunları bağlandığı nesneler konusunu bir örnekle açıklayıp konuyu burada bitirelim.

IV. Dateset Bağlantılı Nesnelerden Oluşan Örnek Uygulama:

Bu uygulamanın amacı Aksiyon’ların (Action Editors) Dataset özellikleri ve Dataset filtrelemenin nasıl yapıldığıdır.

Örnek olarak anlatacağımız uygulamada farklı farklı ülkeler ve bu ülkeler hakkında bilgilerin yer aldığı bir mobil uygulama olacaktır. Bu uygulamada “RepeatBox’larda” bulunan ülkelere tıklanınca “ÜlkeBilgi” sayfasına giderek ülke hakkında bilgileri bir Label’ın içinde görüntülenecek. “ÜlkeBilgisi”" sayfasında ileri ve geri butonlarıyla Dataset’in satırlarında ileri geri hareket etmektedir.Şimdi aşama aşama uygulamayı nasıl gerçeklediğimizi anlatalım.

Program Geliştirme Zamanı(Designer Time)

“RepeatBox’un” Palettes’de bulunan “Data Source” kısmına Dataset’lerden “Ulkeler” Dataset’ini bağladık. Aşağıda resimde gösterildiği gibi “RepeatBox’a” Dataset bağlanmaktadır.

“RepeatBox’a” Dataset bağladıktan sonra sıra Dataset’teki verilerin “RepeatBox’ta” gösterilmesine geldi. Öncelikler “”RepeatBox hakkında biraz bilgi verelim.

“RepeatBox’ın” aktif(active item) ve pasif(inactive item) durumları bulunur. “RepeatBox’ta” aktif ve pasif kullanılmasındaki amaç hangi seçeneğin aktif olduğunu göstermeye yarar. Bu fark da aktif’te ve pasif’te kullanılan araçların renklerinin, yazı boyutlarının farklı seçilmesiyle sağlanabilir.

“RepeatBox’ın” Plattes’inde bulunan aktif(active item) ve pasif (Inactive item) kısımlarına bir “Label” yerleştirip bu Label’ların “Data Source’larına” Dataset’te istenen kolon(column) seçilir. Bu seçilen kolonun içeriği “RepeatBox’ta” görüntülenir. Böylece Dataset’te bulunan ülke isimleri alfabetik olarak “RepeatBox’a” yazılmış olur.

Kullanıcı “RepeatBox’ta” sıralanan ülkelerden birini şeçtiğinde “ÜlkeBilgi” sayfasına gider. Bu bilgiler “UlkeBilgi” tablosunda bulunmaktadır. Biz bu tabloyu filtreleyerek sadece seçilen ülkenin bilgilerini çekmeliyiz.

“UlkeBilgi” tablosunun görünümü:

Bu oluşturduğumuz tablo bütün ülkelerin bilgilerini kapsadığından oluşturacağımız Dataset’e filtre koymamız gerekmektedir. Oluşturduğumuz Dataset  “RepeatBox’ta” seçilen ülke adına göre filtrelenmelidir. Dataset filtrelemek için “Columns’da” bulunan tablonun kolonlarından “ulkeadi” ile “Ulkerler” Dataset’nin “ulkeadi’nın” değerine eşit olan satırlardan oluşan bir tablo oluşur.

Filtre koşunu koyduktan sonra “UI Components’lardan”  RepeatBox’ın “onSelectItem’da” Dataset aksiyonlarından(Actions) yenile(Refresh Dataset=”DS_UlkeTanitimi”) seçilmelidir. Filtrelenmiş bir Dataset yenilenmezse geriye hiçbir değer döndürmez.

Dataset’i filtreledikten sonra “UlkeBilgi” sayfasını anlatabiliriz. Sayfanın en üstünde  seçilen ülkenin adını (RepeatBox’ın aktif olduğu değer) gösteren label, onun altında “UlkeBilgi” Dataset’ine bağlı bulunan Label(Dataset’in satırları aynı sayfada sırayla gösterilecek ) kullanılmıştır.

Yukarda gösterilen butonlar Dataset göstericisini ileri geri hareket ettirmektedir.İleri butonun tıklanma(OnPress) durumuna aksiyon(Actions) olarak Move Next Record Dataset =”DS_UlkeTanitimi” konulur. Geri butonunda da tam tersi Move Previous Record Dataset=”DS_UlkeTanitimi” konur. İleri butonu tıklandığında Dataset göstergesi bir alttaki satırı gösterir. Geri butonunda ise bir üstündeki satırı gösterir. Şimdi ileri butonunda seçilen Dataset aksiyonu(Actions) gösterelim.

Geri butonunda ise “Next” yerine “Previous” Aksiyonu kullanılır. Bu işlemlerle program geliştirme süreci sona erdi. Şimdi geliştirdiğimiz uygulamanın ekran çıktıları ve “UlkeBilgi” tablosunu göstericisiyle gösterelim.

Simülasyon Zamanı(Run Time)

Ülkeler Sayfası:

“UlkeBilgi” tablosuna Dataset’in gösterdiği satır okla belirtildi. Burada tabloda gösterilen satır içeriğinin “Label’da” görünür.

“ÜlkeBilgi” sayfasında Dataset’in gösterdiği ilk değeri “Label’da” gösterilmiştir. İleri butonuna tıklamayla sayfanın nasıl değiştiği bunun yanında tablo göstericisini yer değiştirmesi gözlemlenecektir.

İleri butonunun içinde bulunan Dataset’te ileri git aksiyonu “UlkeBilgi” tablosunda Portekiz’le ilgili bir alt satıra geçmesini sağlar.

Görüldüğü gibi ileri butonu tıklandıkça Dataset göstericisi tabloda bir aşağı inmekte ve label bu bilgiyi göstermektedir.

Aynı şekilde ileri butonu tıklandığında gösterge tabloda aşağı doğru iner.

Ekranda tabloda göstergesinin “bilgi” kısmını Labelda gösterir.

Tablo son değeri gösterdiği için bundan sonra ileri tuşuna ne kadar basılırsa basılsın aynı yeri gösterecektir. Bu durumda ileri tuşunun aksiyonuna bir koşul konulabilir. Eğer son sayfaya gelindiyse tablonun başına git(Move First Record Dataset) aksiyonu seçilerek Dataset’in göstergesi tablonun ilk değerini gösterecek şekilde ayarlanır. Bunu yapmadan geri butonuyla önceki sayfalara geçilebilir.

Sayfalarıyla uygulama bölümünde sonuna geldik. Bu makalede Tablo oluşturmayı, Dataset oluşturmayı, Dataset Filtrelemeyi ve nesnelerle uygulama geliştirmeyi gösterdik.

Herkese iyi çalışmalar….

Fırat Çelik

firat901@hotmail.com Read the rest of this entry »

,

No Comments