Sayaç Tımer Kullanımı ile Otomatik Sayfa Yönlendirmeleri

[vc_row][vc_column][vc_column_text]

Ekran Geçişleri

PowerApps mobil uygulamalarında ekran geçişleri için Navigate fonksiyonu kullanılmaktadır. Ekran geçişleri, ekrandaki nesnelere dokunulduğunda/tıklandığında (kullanıcı tetiklemesi ile) ya da belirli süreler çerçevesinde (sayaç ile) otomatik gerçekleşmesi sağlanabilir. Bir önceki yazımızda, bir butonun OnSelect özelliğine formül yazarak geçiş işlemini yapmıştık. Bu yazıda belirli bir süre sonra otomatik sayfa geçiş işlemini yapacağız.

Sayaç / Timer

Süreye bağlı olarak gerçekleşecek her işlem için Sayaç (Timer) nesnesi kullanılabilir. Böylece süre başladığında ya da tamamlandığında belirlediğiniz işlemler uygulanmak üzere çalıştırılacaktır. Sayaç burada bir tetikleyici (Power Automate yazılarımızda sıkça kullandığımız bir kelime) görevi görmektedir. Sürenin dolmasını bekler ve akışı başlatır.

Timer nesnesinin OnTimerStart, OnTimerEnd, Duration, Repeat, Reset gibi özellikleri vardır ve bu özellikler kullanılarak işlemler gerçekleştirilir. Timer Nesnesinin genel özelliklerine link üzerinden ulaşabilirsiniz.

Örneğin OnTimerStart ile ekrana yükleniyor/kaydediliyor/bekleyiniz gibi bir yazı ve görsel gösterebilir, OnTimerEnd olduğunda sayfa yönlendirmesini başlatabilirsiniz.

OnTimerStart ya da OnTimerEnd olduğunda bir koleksiyonu oluşturabilirsiniz. Koşullar oluşturabilir ya da karşılaştırabilirsiniz.

Navigate

Bu örnekte, kayıt işleminden sonra “Kaydınız başarı ile gerçekleşti” yazısını içeren bir ekran görmeyi ve süre tamamlandığında ana sayfaya dönmeyi sağlayan çalışmayı gerçekleştirelim.

Bu işlem için uygulama içerisine iki ekran eklenmeli. Ekranlardan birine SCR_AnaSayfa, diğerine SCR_Islem_Basarili adını verelim.

Timer nesnesi SCR_Islm_Basarili sayfasına eklenecek.

Timer nesnesinin Duration özelliği milisaniye cinsinden yazılmaktadır, zamanlayıcının çalışma süresini ifade eder. Bir Timer eklediğinizde standart Duration 60 000 olarak gelir ve bu da 60 saniye anlamına gelen bir değerdir. Yani Sayaç 1’den başlayarak 60′ a kadar sayacak bittiğinde işlemlere başlayacak 

 

İşlemlerin sonuçlarını hızlıca görmek ve çok beklememek için Duration değerini 3000 olarak belirleyerek 3 saniyelik bir çalışma gerçekleşmesini sağlayalım.

Duration: 3000

Belirlenen 3 saniyelik süre dolduğunda AnaSayfa yönlendirmesi yapılacak.

OnTimerEnd: Navigate(SCR_AnaSayfa)

Sayacın otomatik olarak başlaması için true yapılmıştır.

AutoStart: true

Bu işlemlerin ardından sayaç aktif şekilde çalışmaktadır. Dilerseniz Visible özelliğini false yaparak sayacı gizleyebilirsiniz.[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][mk_image src=”https://peakup.org/wp-content/uploads/2023/12/powerapps_imza_son.gif” image_size=”full”][/vc_column][/vc_row]

Power Apps Uygulamalarında Departman Kontrolü ile Yetkilendirme

Uygulama ekranlarında kurallar oluşturarak interaktif akış sağlayabilir ya da görsel anlamda işlem yapabilirsiniz. Uygulama senaryosundaki duruma göre departman , kullanıcı maili, lokasyon, unvan, medeni durum, ya da çoktan seçmeli işlemlerde kullanıcı seçimlerine göre nesneleri ya da işlemleri koşullara bağlayabilirsiniz.

Genellikle belirlenen nesneler için gizleme, gösterme, dondurma, düzenlemeye açma ya da renk, konum, boyut değişikliği yapılmakta. Bu kontrolleri tüm uygulama senaryolarında rahatlıkla ve çok esnek şekilde uygulayabilirsiniz.

Departman bilgisi İnsan Kaynakları olan kullanıcılar IK’ya ait  yönetim ve onay ekranını açabilecekleri IK butonunu görebilmeliler.

Bu kontrolleri yaparken işlemleri adım adım ve parçalı yapmakta fayda var. Daha önceki yazımda bahsettiğim gibi formül değerlendirmeleri ayrı Label’lar içerisinde kontrol edilmeli ve ürettiği sonuca göre isimlendirilmelidir.

Aşağıdaki örnekte ilk olarak kullanıcı departmanını tespit edeceğiz.

Mevcut Kullanıcı için Departman Tespiti

Bu işlem için uygulamayı açan kullanıcının mevcut oturum bilgilerini almamızı sağlayan Office365Users.MyProfile() formülünden faydalanacağız.

lbl_kullanici_departman adını verdiğimiz bir label içerisine aşağıdaki formül yazılarak Departman bilgisi edinilmiş olur.

Office365Users.MyProfile().Department 

 

Tespit Edilen Departman İK mı?

lbl_kullanici_departmani_ik_mi

adını verdiğimiz bir label içerisine aşağıdaki formül yazılarak mevcut kullanıcı İnsan Kaynakları departmanından biri mi diye kontrol edilir. Kullanıcı İnsan Kaynaklarından ise 1 sonucunu, değilse 0 sonucunu alacağız.

If(lbl_kullanici_departman.Text=”İnsan Kaynakları”;1;0)

 

Mevcut Kullanıcı İK ise Ekranda Hangi Aksiyonlar Olacak?

lbl_kullanici_departmani_ik_mi 

adlı labeldan gelecek olan 1/0 değerlerine göre İK Giriş butonunun Visible özelliği değiştirilecek.

Böylece buton, departman koşuluna göre gösterilip gizlenecek.

If(lbl_kullanici_departmani_ik_mi.Text=Value(1);true;false) 

 

Kontrol Formülleri

lbl_kullanici_departman 

ve lbl_kullanici_departmani_ik_mi labelları daha sonra revize etmesi kolay olması adına formüller ekranına taşınmalıdır. Formül ekranı oluşturma ve önemi hakkındaki makaleye göz atmak için linke tıklayın.

Kullanıcı bilgilerini Office365 üzerinden getirmek için kullanılan fonksiyonların detayına link üzerinden ulaşabilirsiniz.

Benzer Örnekler

Personeller için hazırlanmış Ad, Soyad, TC, Cinsiyet, Doğum tarihi, Medeni durum, Askerlik gibi bilgileri içeren kişisel bilgiler formu doldurulurken de aynı süreçlerden geçilerek benzer kontroller yapılabilir.

Cinsiyet alanı Kadın olarak işaretlendiğinde Askerlik ile ilgili alanlar doldurulmayacağı için gösterilmez (Visible) ya da dondurulabilir (DisplayMode).

Medeni durum bilgisi Bekar olarak işaretlendiğinde Eş ve Çocuk bilgileri ile ilgili alanlar doldurulmayacağı için gösterilmez (Visible) ya da dondurulabilir (DisplayMode).

Diğer Power Apps yazılarına link üzerinden erişebilirsiniz.

Global Set Değişkeni

Power Apps içerisinde kullandığımız her bir nesne ya da özellik değişken olarak kullanılabilir. Örneğin bir TextBox içindeki değeri TextBox1.Text olarak çağırabiliriz, böylece bu nesne, içerisinde metinsel ifade taşıyan ve kullanıcı müdahalesine açık bir değişken olarak kullanılmış olur.  Temel manada her nesne değişken gibi kullanılabiliyor olsada, esasında değişken olmak üzere tasarlanmış gerçek fonksiyonlar da mevcut. Değişken atama ve kullanma konusunda alanında uzman bu fonksiyonlar, statik bir Label’ın sayfalar arası veri taşımasından ziyade, bir değeri artan ya da azalan şekilde hesaplamak gibi daha dinamik işlemlerde kullanılmaktadır. Set değişkeni bunlardan biridir.

Özellikleri

  • Global/genel bir değişkendir, uygulamanın tüm ekranlarından başvurulabilir.
  • Uygulamanın herhangi bir yerinden oluşturulabilir ve başvurulabilir değişken türüdür.
  • Sayı, Metin dizesi, Boole, Kayıt ve Tablo gibi veri türlerinde değer alabilir.
  • Set(değişken_adı; değer)

Set Değişkeni

Set Değişkeni kullanımı oldukça kolay bir fonksiyondur. Değişken adı belirlenir ve içine yazılacak değer belirtilir. Daha sonra bu değişken adı istenilen yerde yazılarak içerdiği veri kullanıma açılmış olur.

Bir sayaç örneği ile değişken oluşturarak kullanacağımız bir çalışma yapalım.

Ekrana bir TextBox ve iki tane Buton Eklenerek görseldeki gibi konumlandırılabilir.

Butonların üzerine + ve – yazılabilir. Butonların OnSelect özelliğine Set() fonksiyonları yazılacak.

+ butonu: Set( Sayac; Sayac+1)

Bu formül ile sayacın son değeri üzerinden 1 artırma yaparak tekrar sayaca veri aktarılmakta.

– butonu: Set( Sayac; Sayac -1)

Bu formül ile sayacın son değeri üzerinden 1 azaltma yaparak tekrar sayaca veri aktarılmakta.

Label: Sayac

Label’ın Text özelliğine değişkenin adı yazılarak değişkenin tuttuğu değer ekrana yansıtılmaktadır.

Fonksiyonun genel kullanımı için linke tıklayınız.

Diğer Power Apps yazılarına link üzerinden erişebilirsiniz.[

Galeride Nesneleri Koşullu Kullanmak

[vc_row][vc_column][vc_column_text]Galeride Eğer(If) formüllü yazarak koşula bağlı listeler tasarlanabilir. Bu koşullar ile nesnelerin renk, görünüm, boyut, konum gibi bir çok özelliğini kontrol etmek mümkün. Koşullar ile sayesinde kişi/departman bazlı yetkilendirmeler yapılabilir, ekranlardaki butonlar gösterilip/gizlenebilir, takipsel süreçlerde durum bilgisi renklerle ifade edilebilir.

Galeride Nesnelerini Koşula Bağlı Kullanmak

Bu örnekte galeri içindeki farklı soru tipleri için farklı nesneler gösterme konusunu işleyeceğiz. Böylece aynı grubun içindeki bir soru radio buton ile yanıtlanırken diğer soru derecelendirme ile yanıt alabilecek.

Koleksiyon Oluşturma

Yukarıdaki veriler ile örneği deneyimlemek için örnek bir koleksiyon oluşturacağız. Ekrana ekleyeceğimiz bir butonun OnSelect özelliğine aşağıdaki kodu yazarak koleksiyon yaratılmalıdır.

ClearCollect( Sorular;
{
Soru:    “Soru”;
Soru_no:   “1”;
Soru_tur:    “Radio”   }
;
{
Soru:    “Soru”;
Soru_no:   “2”;
Soru_tur:  “Rating”  }
;
{
Soru:    “Soru”;
Soru_no:   “3”;
Soru_tur:    “Slider”   }
)

Nesneleri Galeride Göstermek

Örnekteki işlemleri yapmak için ekrana Galeri(Gallery)nesnesi eklenmelidir. Bu galeri nesnesinin Items özelliğine Sorular koleksiyonu bağlanmalıdır.

Koleksiyondaki her bir sorunun yanıtlanma türü mevcut Soru_tur kolonunda belirtilmiştir. Soruların yanıtlanma türüne göre galeri içerisine Radio Button, Rating ve Slider eklenmiştir. Bu nesnelerin her birinin Visible özelliğine IF formülleri yazılacak ve böylece soru tüne göre ilgili nesne gösterilirken diğerleri gizlenecek.

 

Radio Button Visible Kodu: If(ThisItem.Soru_tur=”Radio”;true;false)

Rating Visible Kodu: If(ThisItem.Soru_tur=”Rating”;true;false)

Slider Visible Kodu: If(ThisItem.Soru_tur=”Slider”;true;false)

 

Diğer Power Apps yazılarına link üzerinden erişebilirsiniz.

Eğer fonksiyonunun kullanımı için linke göz atabilirsiniz.[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][mk_image src=”https://peakup.org/wp-content/uploads/2023/12/powerapps_imza_son.gif” image_size=”full”][/vc_column][/vc_row]

Değişken Türleri

[vc_row][vc_column][vc_column_text]Power Apps içerisinde kullandığımız her bir nesne ya da özellik değişken olarak kullanılabilir. Örneğin bir TextBox içindeki değeri TextBox1.Text olarak çağırabiliriz, böylece bu nesne, içerisinde metinsel ifade taşıyan bir değişkenmiş gibi kullanılmış olur. Bir nesnenin rengini, içindeki yazıyı, kenarlık bilgisi gibi tüm değerler bu mantıkla çağrılarak kullanılabilmektedir. Bu açıdan bakıldığında tüm nesnelere ve özelliklere değişken gözüyle bakabiliriz. Bu konuda yazılmış diğer makalemizi okumak için linke göz atabilirsiniz.

Temel manada her nesne değişken gibi kullanılabiliyor olsada, esasında değişken olmak üzere tasarlanmış gerçek fonksiyonlar da mevcut. Değişken atama ve kullanma konusunda alanında uzman bu fonksiyonlar Power Apps için 3 kategori altında incelenmiştir diyebiliriz. Bu değişkenler, statik bir Label’ın sayfalar arası veri taşımasından ziyade, bir değeri artan ya da azalan şekilde hesaplamak gibi daha dinamik işlemlerde kullanılmaktadır.

Power Apps Değişken Türleri

1-Genel Değişkenler:

Set

  • Global/genel bir değişkendir, uygulamanın tüm ekranlarından başvurulabilir.
  • Uygulamanın herhangi bir yerinden oluşturulabilir ve başvurulabilir değişken türüdür.
  • Sayı, Metin dizesi, Boole, Kayıt ve Tablo gibi veri türlerinde değer alabilir.
  • Set(değişken_adı; değer)

2-Bağlam Değişkenleri:

UpdateContext

  • yalnızca bir ekrandan başvurulabilir değişkenlerdir.
  • tek bir değer, bir kayıt, bir tablo, bir nesne başvurusu, bir formüldeki herhangi bir sonuç
  • UpdateContext({değişken_adı : değer })

3-Koleksiyon:

Collect & ClearCollect

  • Uygulamanın herhangi bir yerinden oluşturulabilen ve başvurulabilen tablo tutar.
  • Daha sonra kullanılmak üzere yerel cihaza kaydedilebilir.
  • Bir tablo içinde kolon bazında ya da satır bazında farklı veriler girilebilir.
  • Collect her oluşturulduğunda veriyi tekrar tekrar üstüste yazar
  • ClearCollect var olan tabloyu her defasında temizleyerek sıfırdan oluşturur.
  • Collect( tablo adı ;{kolon1: “değer1” ; kolon2: “değer2”; kolon3: “değer3” ;…})
  • Collect( tablo adı ;{kolon1: “değer1” ; kolon2: “değer2”}; { kolon1: “değer1” ; kolon3: “değer3”} ; {…})

Koleksiyon kullanımı hakkında yazılan diğer makaleye link üzerinden ulaşabilirsiniz.[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][mk_image src=”https://peakup.org/wp-content/uploads/2023/12/powerapps_imza_son.gif” image_size=”full”][/vc_column][/vc_row]

GUID Fonksiyonu

GUID Fonksiyonu Nedir?

GUID fonksiyonu ile tüm ekranlarda anlık olarak random id üretilmektedir. ID değerleri, Common Data Service ve SQL Server gibi veritabanı sistemleri tarafından anahtar olarak kullanılır.

Fonksiyon tek başına kullanıldığında, sayı,büyük veya küçük harf, tire içerebilir. Göründüğü gibi bu fonksiyon gayet uzun sonuçlar döndürmekte ancak bazı fonksiyonlar kullanılarak bu fonksiyon da yönetilebilir.

guid

GUID fonksiyon her hesaplandığında farklı bir değer döndürür. Formülde başka hiçbir değişiklik olmazsa uygulamanız yürütüldüğü sürece aynı değere sahip olur.

Bağımsız değişken olmadan kullanıldığında geçici bir fonksiyondur. Fonksiyonun sonucunu görüntüleyebilmek ya da kaydedebilmek için Label içine yazılabilir. Sonucun aktif değişmesi için değişkene aktarılabilir. 

Sayfa geçişinde, uygulama açılısı esnasında, verileri kaydederken ya da timer ile random id oluşturulabilir.

GUID Fonksiyonu ve Örnek Kullanımlar

Collect

Örneğin bir koleksiyon oluşturarak belirli bir kolona bu fonksiyon aktarılabilir.

Collect(Table1; {   Guid_Columns: GUID()  } )

Mid

GUID fonksiyonu sayı,büyük veya küçük harf, tire içeren uzun bir sonuç üretir. Örneğin yalnızda 5 karakterlik bir sonuç üretmek istediğinizde Mid fonksiyonu kullanılabilir.

Ekrana bir Label ekleyerek Text özelliğine Mid(GUID(); 1 ;5) yazıldığında 5 haneli bir GUID oluşmaktadır.

Set

Öte yandan sürekli olarak yeni bir değişken id oluşturulması gerektiğinde SET değişkeni kullanılabilir.

Ekrana ekleyeceğiniz bir butonun OnSelect Özelliğine Set(Guid_olustur ; Mid(GUID(); 1 ;5)) ve az önce eklenen Label’ın Text özelliğine ise Guid_olustur  değişkeni yazılır. Artık butona her tıklandığında yeni bir değer oluşacaktır ve bu değer Label içerisinde görünecektir.

GUID() Fonksiyonun genel kullanımı için linke tıklayınız.

Diğer Power Apps yazılarına link üzerinden erişebilirsiniz.

Metin Fonksiyonları

Power Apps Formül Yazımı

PowerApps’in kendi yazılım dili ve kendine özel fonksiyonları bulunmaktadır. Bu fonksiyonların yanısıra Excel’de var olan birçok fonksiyonu da bünyesinde barındırmaktadır. Bu fonksiyonlar Excel’deki gibi tarihsel, metinsel, istatiksel gibi fonksiyon grupları olarak kategorilere ayrılmadan genel bir çerçevede kullanıma sunulmuştur. Bu yazıda metin fonksiyonları incelenecektir.

Excel’den aşina olacağınız formül yazım diliyle, PowerApps ile kodlama yapmak çok pratik.

Tüm formülleri nesneler üzerinden yazabiliyorsunuz. İlgili nesneyi seçtikten sonra Formula Bar üzerinden yazılabilir.

*Formüller yazılırken virgül (,) ya da noktalı virgül (;) (tarayıcı diline bağlı değişir) kullanılarak yazılabilir, eşittir kullanmanız gerekmez.

Metin Fonksiyonları

Power Apps fonksiyonları içerisinde Concatenate, Left, Right, Mid, Len, Upper, Lower gibi başlıca metin fonksiyonları yer almaktadır. Bu fonksiyonlar ile metinsel ifadeleri düzenleyebilir ya da oluşturabilirsiniz.

Örnek olarak içerisinde Metin Fonksiyonları yazan bir textbox için aşağıdaki formülleri yazalım. Bu textboxın adı txt_sampletext‘dır.

Concatenate işlevi tek sütunlu tabloları birleştirir. Bu işlevi bağımsız dizeler ile kullandığınızda & işlecinin kullanılmasıyla eşdeğerdir.

Concatenate(metin; metin; metin)

Concatenate(txt_sampletext.Text;  txt_sampletext.Text;  txt_sampletext.Text)

 

Left işlevi, bir metnin başındaki karakterleri döndürür.

Left (soldan alınacak metin; alınacak karakter sayısı)

Left(txt_sampletext.Text;1)

 

Mid işlevi, bir dizenin ortasındaki karakterleri döndürür.

Mid(parça alınacak metin; parça alınmaya başlanamak için başlangıç sayısı;  alınacak karakter sayısı)

Mid(txt_sampletext.Text;3;1)

 

Right işlevi, bir dizenin sonundaki karakterleri döndürür.

Right(sağdan alınacak metin; alınacak karakter sayısı)

Right(txt_sampletext.Text;1)

 

Len işlevi, bir metin dizesinin içerisindeki tüm karakterleri sayarak bir sayı söyler.

Len(metin)

Len(txt_sampletext.Text)

 

Lower işlevi, tüm harfleri küçük harfe dönüştürür.

Lower(txt_sampletext.Text)

 

Upper işlevi, tün harfleri büyük harfe dönüştürür.

Upper(txt_sampletext.Text)

 

Proper işlevi, tüm sözcüklerin ilk harfini büyük harfe dönüştürür.

Proper(txt_sampletext.Text)

 

Trim işlevi, bir metin dizesindeki kelimeler arasındaki tüm fazla boşlukları kaldırarak tek boşluğa indirir.

Trim(txt_sampletext.Text)

 

TrimEnds işlevi bir metin dizesinin başındaki ve sonundaki tüm boşlukları kaldırır ancak kelimeler arasındaki boşlukları değiştirmez.

TrimEnds(txt_sampletext.Text)

Diğer tüm fonksiyonların listesine link üzerinden erişebilirsiniz.

Formül Ekranı Oluşturarak Formülleri Yönetmek

Uygulama ekranlarında formül ile kurallar oluşturarak interaktif akış sağlayabilir ya da görsel anlamda işlem yapabilirsiniz.

Genellikle, belirlenen nesneler için gizleme, gösterme, dondurma, düzenlemeye açma ya da renk, konum, boyut değişiklikleri yapılmakta.

Uygulama senaryosundaki duruma göre departman, kullanıcı maili, lokasyon, unvan, medeni durum, ya da kullanıcı seçimlerine göre nesneleri veya işlemleri, belirli koşullara bağlayabilirsiniz. Bu kontrolleri tüm uygulama senaryolarında rahatlıkla ve çok esnek şekilde uygulayabilirsiniz.

Bu yazıda, ekrandaki koşulları merkezi şekilde yönetmeyi ve formül değerlendirme sürelerini ele alacağız. En önemlisi de formül değerlendirme sürelerinin tamamlandıktan sonra işlem yapılmasının öneminden bahsedeceğiz.

Formül Değerlendirmesi Nedir?

Formül değerlendirmesi, yazılan formülün üreteceği sonuç esnasında yapılan sınamadır. Formülün performansına göre belirli bir süre zarfı gerektirir.

Formül Değerlendirmesi Neden Uzar?

Formülün performansına göre süre uzayacak ya da kısalacaktır. Ekranlardaki koşullar karmaşıklaştıkça, iç içe formüller kullanılması, birbiri ile ilişkili farklı nesnelerin kontrolünün tamamlanmasının beklenmesi, veri kaynağından gelen yanıta göre işlem yapılması gibi başlıca sebepler formüllerin değerlendirme süresini uzatabilmektedir.

Bu nedenle formül değerlendirmelerini en hızlı şekilde çalışacak hale getirmek önemlidir. Değerlendirme işlemini henüz tamamlamamış bir formülün yanıtı geciktiğinde default değeri bir yanıt olarak kabul edilebilir ve yanlış işlemlere sebep olunabilir.

Formül değerlendirilmezse ne olur?

Değerlendirme işlemini henüz tamamlamamış bir formülün yanıtı geciktiğinde default değeri, bir yanıt olarak kabul edilebilir ve yanlış işlemlere sebep olunabilir.  Formül değerlendirmesi bitmeden bir sonraki işleme geçilmesi yanlış sonuçlar üretecektir. Yani belirttiğiniz koşul sağlansa bile bu koşulun sonucu için geç yanıt döndüğü için koşul sağlanmamış gibi bir işlem olabilir. Koşullar gerektiği kadar hızlı davranmadığında formülleri ya da formüllerin çalıştığı ekranları yönetmek için işlemler yapmak ve formülleri gözden geçirmek gerekir

Formüller nasıl yönetilmeli?

  • Formüller için bir değerlendirme ekranı yapılmalıdır.
  • Her zaman üzerinde durduğumuz gibi doğru isimlendirmeye çok dikkat edilmeli. Formülün değerlendirildiği Label için yaptığı işe ya da ürettiği sonuca göre isimlendirilme yapılmalı.
  • Eğer fonksiyonunun kullanımı ile formülün sonucu 1 ve 0 sonucunu üretir hale getirilmelidir.
  • OnSelect, OnVisible,OnScan gibi işlemler anlık işlemler olduğundan, Bekleme süresi uzun tüm formüller Labellar yardımı ile dışarda hesaplandıktan sonra, yalnızca 1,0 kontrolü çalıştırılmalıdır.

 

IF KARAR YAPISI İLE ŞARTA GÖRE İŞLEMLER

Bu yazımızda sizlere; makro tarafında olmazsa olmaz bir karar/koşul yapısından bahsediyor olacağım. Yazının sonunda IF Karar yapısı nedir, ne zaman ve nasıl kullanılırı öğrenmiş olacağız.

 

IF KARAR YAPISI NEDİR?

Bu

koşul yapısı; bütün programlama dillerinde olan, bazı şartların gerçekleşmesi veya gerçekleşmemesi durumunda ayrı-ayrı kod bloklarının çalıştırılmasına imkân veren yapıdır.

Belirtilen koşuldan geri dönen True/False Boolean değerine göre işlemler yapabilmenizi sağlar.
Eğer koşulun True Doğru olduğu söylenirse, belirtilen koşul(lar)ın altında bulunan ifadeler uygulanır.
Koşulun False Yanlış olduğu söylenirse, IF yapısından sonra belirtilen ifadeler uygulanır. İlaveten, duruma göre Else veya ElseIF ifadelerini belirttiysek o satırların da kontrolünü sağlar ve ne zaman sonuç True dönerse orada belirtilen komutlar uygulanır.

 

NE ZAMAN KULLANILIR? 

Kod yazarken, Eğer ile başlayan bir düşüncemiz/şartımız varsa ve bir veya birden fazla şarta göre işlemler yaptırmak istiyorsak genellikle bu yapıyı kullanırız. Bu yapıdan başka birkaç Karar/Koşul yapısı daha mevcuttur, bunlar; Select Case, IIF, Choose ve Switch yapılarıdır. Bu yapılara da hâkim olmak kod yazarken sizi rahatlatacaktır.

 

NASIL KULLANILIR?

Öncelikle yazım kalıbı veya söz dizimi dediğimiz durumu, yani bu IF yapısını VBA tarafında nasıl yazabiliriz ona bir bakalım.

 

YAZIM KALIBI

Yazım kalıbı Syntax aşağıdaki gibidir..
Mavi renkli kısımlar sabittir.
Kırmızı renkli kısımlar değişkendir.

If koşul(lar) Then
‘Kodlarınız
End If

Mantık olarak kabaca şöyle düşünebilirsiniz; “Eğer bu sayı 10’dan büyükse bunları yap.” gibi..

Eğer tek bir koşulumuz şartımız varsa, yukarıdaki kalıbı bu şekilde de kullanabilirsiniz.
If koşul(lar) Then ‘Kodlarınız
Tek şart varsa, End If ifadesini kaldırıp, koşulu Then ifadesinin yanına yazabilirsiniz.
If ve Then arasındaki koşulumuz da, duruma göre birden fazla olabilir.
Yani örneğin; A sütunundaki hücrelerdeki sayılar 10‘dan büyükse ve boş değilse gibi, And, Or, Xor vb. Mantıksal operatörleri de kullanabilirsiniz.

Şimdi bu kısmı tam olarak anlamanız için ufak bir kod örneği verelim..

If sayi > 10 And sayi < 20 Then

Tek bir If .. Then kalıbı arasında mantıksal operatörler kullanarak, koşulumuzu kendi içinde 2-3-4…’e çıkarabilirsiniz. Diyelim ki; A2:A10 hücre aralığında bazı sayılarımız var ve bu sayılardan 10‘dan büyük olanların B sütununa büyük ifadesini yazdıralım.

Bunun için bize gerekli olan kodlar bu şekildedir;

Sub IF_Kosul_Yapisi()
    For i = 2 To 10
        If Cells(i, "A") > 10 Then
            Cells(i, "B") = "Büyük"
        End If
    Next i
End Sub

Bu kodların nasıl çalıştığını gif resimde görerek daha iyi anlayabilirsiniz.

IF yapısı

 

BİRDEN FAZLA KOŞUL VE ELSE

Eğer birden fazla koşulumuz var ise ve mantık olarak, Eğer böyleyse bunu yap, değilse şunu yap gibi, iki farklı duruma göre işlem yapmak istiyorsanız, bunu da yine tek bir satırda bu şekilde yazabileceğiniz gibi;

If Cells(i, "A") > 10 Then Cells(i, "B") = "Büyük" Else Cells(i, "B") = "Küçük"

alt alta Else ifadesiyle birlikte de yazabilirsiniz. O zaman kalıbımız bu şekilde olacaktır.
If koşul(lar) Then
‘Doğruysa Kodlarınız
Else
‘Yanlışsa Kodlarınız
End If

Örnek kodlarımız..

If Cells(i, "A") > 10 Then
    Cells(i, "B") = "Büyük"
        Else
    Cells(i, "B") = "Küçük"
End If

Yukarıdaki kod, 10‘dan büyük olan hücrelerin sütununa Büyük, küçük olanların da sütununa Küçük yazar.

 

ELSEIF

Şimdi de ElseIf DeğilseEğer ifadesini dahil ederek koşullarımızı artıralım.
Bu kalıpta da mantığı kabaca şöyle düşünebilirsiniz; “Eğer bu böyleyse bunu yap, değilse eğer şöyleyse şunu yap, değilse eğer öyleyse onu yap.” gibi..

Yazım Kalıbı bu şekildedir..
If koşullar Then
‘kodlarınız
ElseIf koşullar Then
‘kodlarınız
ElseIf koşullar Then
‘kodlarınız
End If

Sonuc sütununa sonuçlarımızı bu şartlara göre yazdıralım.

  • Eğer sayı sıfıra eşitse Sıfır yazsın.
  • Eğer sayı 10’a eşitse Eşit yazsın.
  • Eğer sayı 10’dan küçükse Küçük yazsın.
  • Eğer sayı 10’dan büyükse Büyük yazsın.

Belirttiğimiz bu şartlarımıza göre, bize gereken kodlar bu şekilde olacaktır..

Sub Eger_Kosul_Yapısı_2()
    Dim i As Integer
    For i = 2 To Range("A65536").End(3).Row
        If Cells(i, "A") = 0 Then
            Cells(i, "B") = "Sıfır"
        ElseIf Cells(i, "A") = 10 Then
            Cells(i, "B") = "Eşit"
        ElseIf Cells(i, "A") < 10 Then
            Cells(i, "B") = "Küçük"
        ElseIf Cells(i, "A") > 10 Then
            Cells(i, "B") = "Büyük"
        End If
    Next i
End Sub

Bu kodları da gif resim üzerinde nasıl çalıştığını görerek daha net anlayabilirsiniz.

 

ELSEIF ve ELSE BİRLİKTE

Son olarak kodlarımıza, eğer yukarıda belirttiğimiz şartların hiçbirine uymuyorsa, o zaman End If satırından önce Else değilse ifadesi dahil edilerek, bu şekilde hücreye başka bir sonuç da yazdırılabilir.

Sub Eger_Kosul_Yapısı_3()
    Dim i As Integer
    For i = 2 To Range("A65536").End(3).Row
        If Cells(i, "A") = 0 Then
            Cells(i, "B") = "Sıfır"
        ElseIf Cells(i, "A") = 10 Then
            Cells(i, "B") = "Eşit"
        ElseIf Cells(i, "A") < 10 Then
            Cells(i, "B") = "Küçük"
        Else
            Cells(i, "B") = "Büyük"
        End If
    Next i
End Sub

 

Daha fazla detay için Visual Basic’te Koşul Yapılarını buradan inceleyebilirsiniz.

 

Diğer yazılarımızda görüşmek üzere, hoşça kalın. 🙋🏻‍♂️
Bu yazımızı çevrenizle paylaşarak birçok kişinin de bilgi sahibi olmasını sağlayabilirsiniz. 👍🏻

Listeleri Koşullu Tasarlamak

Galeri içerisinde Eğer(If) formüllü yazarak koşullu listeler tasarlanabilir. Bu koşullar ile nesnelerin renk, görünüm, boyut, konum gibi bir çok özelliğini kontrol etmek mümkün. Koşullar ile sayesinde kişi/departman bazlı yetkilendirmeler yapılabilir, ekranlardaki butonlar gösterilip/gizlenebilir, takipsel süreçlerde durum bilgisi renklerle ifade edilebilir.

Koşullu Listeler Tasarlamak

Bu örnekte galeri içindeki kayıtlar içerdiği bilgiye göre renklerle ifade edilmekte. Departman bilgisi “Eğitim” olan tüm kayıtlar mor renk ile ifade edilirken Satış departmanı ise Gri renk ile gösterilmekte.

Galeri içerisindeki her bir kaydı bireysel olarak değerlendirilebilmek için ThisItem kelimesi kullanılmaktadır. Böylece mevcut kayıtlar içinden, ilgili satırın kendi verisine erişilebilir.

Kayıt işlemi esnasında ad soyad bilgisi ayrı ayrı yazılmakta. Ad Soyad yanyana yazabilmek için & birleştirme operatörü kullanılmaktadır.

ThisItem.P_ad & ” ” & ThisItem.P_soyad

Koşul Eklemek

Kayıtları renklendirmek için galeri içerisine bir boş bir Label eklenir ve galerinin sol tarafına yerleştirilir.

Label’ın Fill özelliğine If(ThisItem.P_departman=”Eğitim”;Purple; Gray) 

Bu söz dizimi ile galerideki her bir satır ayrı ayrı değerlendirilecek ve departman bilgisi kontrol edilecek. Departman Eğitim ise Mor, farklı bir departman ise Gri renkle gösterilecek.

Renk bilgisi doğrudan Purple,Red,Blue olarak yazılabildiği gibi RGB kodları üzerinden de yazılabilir.

Özel bir renk kodu kullanmak istediğinizde RGBA() fonksiyonu kullanılmaktadır.
Bu fonksiyon RGBA(255; 255 ; 255 ; 1) olarak da yazılmaktadır. Formülün son parametresi 0 ile 1 arasında değer alır ve oluşan rengin saydamlığını etkiler.

Diğer Power Apps yazılarına link üzerinden erişebilirsiniz.

Eğer fonksiyonunun kullanım detayları için linke tıklayınız.