Cabitaş Mühendislik Tic. Ltd. Şti.

Claris FileMaker Geri Düğmesi: “Back Button”

  • 25.11.2022
  • 62 Görüntülenme

Çoğu program bünyesinde bir önceki ekrana dönebileceğiniz bir arayüz ögesi barındırır. Özellikle web kullanımının yaygınlaşması “geri düğmesinin” kullanım alışkanlıklarının yerini oldukça güçlendirdi. Biraz iddialı olsa da geri düğmesi iyi bir kullanıcı deneyiminin (UX) olmazsa olmazıdır da diyebiliriz. Kim bir önceki ekrana dönmek için anasayfaya dönüp yeniden merdivenleri çıkmak ister veyahut programı yeniden başlatmak ister ki? Örneğin; Firma listesinde bir arama yaptınız ve bir kaydın detayına geçtiniz. İşlemleriniz bittikten sonra geri dönmek isteyebilirsiniz ya da yanlışlıkla başka bir ekrana geçmiş olabilirsiniz. Bu durumda işlerinizi hızlandırmak için 1 tık uzağınızdaki geri butonu, tam da aradığınız çözüm olacaktır.

Claris FileMaker ile geri düğmesi nasıl yapılır bu yazımızda paylaşıyoruz. Burada önerdiğimiz ve uygulaması oldukça pratik olan geri butonu, kayıtlar arası geçişi sağlamaz, ya da arama sonuçlarınızı geri yüklemez. Bir önceki ekrana (layout) geçen, Claris Pro, FileMaker Pro, FileMaker Go ve WebDirect uyumlu bir tekniktir. Temel olarak otomatik tetiklenen (script trigger ile On Layout Exit eylemini kullanarak) bir script ve geri gitmek için düğme ile yapmak mümkün.

Tetiklenen Script: NAV_LogLayout

Hedef, geçilen layoutları global bir değişkende saklamaktır. Global değişken ya da global alan tercih edilmeli çünkü; her ikisi de geçerli kullanıcının oturumuna özeldir ve diğer kullanıcıları etkilemez. Global alan ve global değişkenlerle ilgili mini eğitim videomuzdan bu konunun detaylarını izleyebilirsiniz.

Scriptimiz oldukça basit;

If [ $$trigger_off ≠ 1]

Set Variable [$$lay.prev; Value: List ( Get (LayoutName); $$lay.prev)]

Else

Set Variable [$$trigger_off; Value: “”]

End If

Bu scriptin öncelikli görevi Set Variable komutu ile $$lay.prev isimli değişkene o anda bulunduğunuz yerleşim (layout) adını eklemek. İlaveten belirli durumlarda bu işlemi engellemek için $$trigger_off değişkeni ile belli şartlarda çalışmasını engelliyoruz. Örneğin uygulamanızda bir script, işlemleri gerçekleştirmek için başka ekranlara geçiyorsa bu geçişleri $$lay.prev değişkenine log’lamak istemeyebiliriz. Tam da bu durumda ilgili script $$trigger_off değişkenini 1 yaparsanız, 1 kez bu scriptin çalışmaması sağlanmış olacak.

NAV_LogLayout olarak isimlendirdiğimiz script, kayıt altına almak istediğimiz veya başka deyişle “geri” özelliği ile dönmek istediğimiz yerleşimlerde (Layout) OnLayoutExit koşulunda otomatik çalışmalı. Bunun için yerleşim modundayken Layout Menüsünden Layout Setup’ı seçin ve Script Triggers sekmesinde “OnLayoutExit” olayı için yazdığınız scripti seçerek otomatik tetiklemeyi ayarlayın.

Birinci adımımız tamamdı. Artık NAV_LogLayout scriptinin tetiklendiği yerleşimler (layout) $$lay.prev isimli global değişkende, en son bulunduğumuz yerleşim (layout) adı ilk sırada olacak şekilde alt alta listelenecektir. Data Viewer ile değişkendeki değerleri görebilirsiniz.

Geri Script’i: NAV_Back

Set Variable [$$trigger_off; Value: 1]

Set Variable [$currentLayout; Value: Get(LayoutName)]

Loop

Set Variable [$layoutName; Value: GetValue ($$lay.prev;1)]

Set Variable [$$lay.prev; Value: MiddleValues ($$lay.prev;2;25)]

Exit Loop If [$layoutName ≠ $currentLayout or IsEmpty($layoutName)]

End Loop

Go to Layout [$layoutName; Animation:None]

Set Variable [$$trigger_off; Value: “”]

Bu scripti geri işlemi gerektiren layoutlarda butona aksiyon olarak tanımlayarak kullanacağız. Scriptin görevi oldukça basit. $$lay.prev değişkeninde ilk sıradaki yerleşime gitmesi için Go to Layout komutu çalıştırmak. Ama birkaç detayla olası problemlerin önüne geçmemiz de olmazsa olmazımız.

İlk olarak scriptin en başında $$trigger_off değişkenini 1 olarak ayarlıyoruz, bu sayede bulunduğumuz yerleşimden geri giderken trigger scriptin işlem yapmasını engelliyoruz. Bunu yapmazsak geri düğmesi ilk kullanıldığı anda düzgün çalışacak, ancak ikinci ve diğer geri düğmesine tıklamalarınızda sadece son 2 ekran (layout) arasında dolaşıp duracaktır.

İkinci kontrolümüz ise bir şekilde $$lay.prev’da bulunan değerin hali hazırda bulunduğumuz yerleşim olması. Bu durumda kullanıcı geri düğmesinin çalışmadığını varsayacak. Bu yüzden en üstteki yerleşim adından başlayarak farklı bir yerleşim (Layout) adı ile karşılaşana kadar çalışacak bir döngü kuruyoruz.

Bu döngü şu şekilde çalışıyor; geri komutu verdikçe, yani geri gitmek istediğimiz layout için bulunduğumuz layouttaki geri butonuna tıkladıkça, bulunduğumuz layoutun adını yerel bir değişkene (local variable) alıyoruz ($currentLayout), ve sonra döngüye giriyor. Döngüde global değişkenimizdeki ilk değeri yine yerel bir değişkene (local variable) alınıyor. Bu gitmek istediğimiz yerleşimin (layout) ismidir. Bulunduğumuz yerleşim ($currentLayout) gitmek istediğimiz yerleşim ($layoutName) ile aynı değilse gitmek istediğimiz yerleşim adına ulaştık demektir.

Döngü içindeki detaylardan bir diğeri de $$lay.prev değişkenin güncellenmesidir. Bunun için MiddleValues fonksiyonu 2 değerden başlayarak $$lay.prev değişkenindeki layout listesini güncellemiş oluruz.

Döngüden çıktıktan sonra da Go to Layout adımı ile önceki tasarıma (layout) geçilebilir.

Bu şekilde “geri” işlemi yapılmasını istediğiniz layoutlara butonu ve triggerı ekleyerek, arama yapmanıza gerek kalmadan tek tuşla önceki layout geçişini sağlayabilirsiniz.

 

Claris FileMaker Geri Düğmesi: “Back Button”

İndirme linki mail adresinize gönderilmiştir.

Bu web sayfası kullanıcı deneyiminizi geliştirmek için çerezler kullanır.