FileMaker değer listesi oluştururken seçimi kolaylaştırmak için aralara seperatör ekleyebilirsiniz. Bunun için sadece bir – (tire) karakteri koymanız yeterli.
Layout ve Scriptler’de seperatör ekleme düğmesi olmayan FileMaker’ın eski sürümlerinde, aynı yöntemle scriptler, layout isimlerinin arasında da seperatör koyabilirsiniz.
FileMaker varsayılan davranışı alanlardan çıktığınızda kaydı otomatik olarak kaydeder. Layout/Layout Setup menüsünden bu ayarı değiştirmek mümkün. Ancak bu çözüm UX (user experience) konusunda çok başarılı sayılmaz. Kayıt girmeye devam ederken farkında olmadan alan dışında bir konuma tıkladığınızda “Kaydedeyim mi?” diye soruyor. Sunulan seçenekler, kaydet, geri dön ve vazgeç kullanıcının kafasını karıştırabiliyor.
Daha iyi kullanıcı deneyimi için kullanıcıya kaydet/vazgeç düğmeleri ile kontrolü vermek daha doğru bir tercih olacaktır. Script (betik) ve script trigger (betik tetikleyicisi) kullanarak bunu sağlamak mümkün.
Standart olarak FileMaker’da alanlardan çıkıldığında başlatılan commit (kaydetme) prosedürü çalışıyor. Layout tercihlerine göre kaydı otomatik olarak kaydediyor veya “kaydedeyim mi” diyalog penceresini çıkartıyor. Bunun için “commit” (kaydetme) prosesini durdurmak gerekiyor. Öncelikle yapmamız gereken alanlardan çıkıldığında başlayan bu prosesi durdurmak olacak. Bu konuda script trigger yardımı alıyoruz. “Before event” (olay öncesi) script triggerları Exit Script [0] şeklinde sonlandırdığınızda tetikleyen olayı durdurur. Mesela bu örnekte OnRecordCommit trigger’ı ile tetiklenen script 0 yanıtı ile sonlandırıldığında commit prosesini de durdurmuş olacak.
Kullanacağımız yöntemin özetle anahtar noktaları;
Trigger ile tetiklediğimiz script $$kaydet global değişkeni 1 değerini almadığı durumlarda işlemi durduracak.
Kullanıcı kaydet düğmesine tıkladığında çalışan script ise öncelikle $$kaydet değişkenine 1 değerini atayıp commit prosesinin tamamlanmasını sağlayacak.
Kullanıcı vazgeç düğmesine tıklarsa “Revert Record” ile değişiklikleri geri alacak.
Tabi bu 3 temel kuralın dışında ilave kontroller ile örneği zenginleştirdik. Örnek dosyamızda aynı zamanda FileMaker 16 yeniliklerinden Card tipinde pencere kullanımını gösterdik.
FileMaker’da tekrarlı alanlar sayesinde benzer tipteki bilgier için tablomuzdaki alan sayısını azaltabiliyoruz. Hesaplamalarda GetRepetition fonksiyonu ile alanın istediğimiz tekrarını çekebiliriz.
Bunun daha pratik yolu var, bir çok yazılım dilinde array’deki (dizi) değeri çekmek için kullanılan köşeli parantezler FileMaker’da da çalışıyor. Üstelik layout (yerleşim) modunda merge field yaparken dahi bu yöntemi kullanabiliyorsunuz.
Ayrıca köşeli parantez içine doğrudan sayı girebildiğiniz gibi $değişken yada $$global_değişken de girebilirsiniz.
Örnekler
Hesaplama alanı içerisinde TekrarlıAlanim[2] şeklinde 2. tekrardaki bilgi çekilebilir.
Bir çok hesaplamayı FileMaker’da Calculation alanlar sayesinde yapıyoruz. Metinsel, Matematiksel, İstatistiksel vb. kategorilere ayrılmış bir çok ön tanımlı fonksiyonu kullanarak karmaşık hesaplamalar yaptırmak mümkün.
Ancak hesaplama karmaşıklaştıkça sonradan okuması da zor oluyor. Bu noktada Comment (yorum yada hatırlatıcı diyebiliriz) satırlarının önemi kendini hissettiriyor.
Hesaplama formülünde çift slash (//) işareti, satır sonuna kadar olan bölümü comment satırına çevirir, yani hesaplamaya dahil etmez. Hesaplama ile ilgili açıklamaları/ipuçlarını başına // ekleyerek yazabilirsiniz.
Slash yıldız (/*) ise birden çok satırı comment haline getirmek için kullanılabilir ve yıldız slash (*/) ile kapatılır.
Comment satırları hatırlatıcı notlar için kullanılabildiği gibi, geçici olarak pasif yapmak istediğiniz satırların başına da koyabilirsiniz. Satırı silmediğiniz için, daha sonra ihtiyaç olduğunda tekrar aktif hale kolayca getirebilirsiniz.
Özellikle çoklu kullanıcı sistemlerde yapılan değişikliklerin ne zaman, kimin tarafından yapıldığını tutmak önemli hale geliyor. Log tutma aynı zamanda veri girişi yapan kullanıcıların daha dikkatli olmasını sağlıyor. Ayrıca yanlışlıkla yapılan değişikliklerde eski veriye ulaşma imkanı sunuyor.
Ancak FileMaker’ın standart bir log tutma özelliği yok. Auto-enter alanlar sayesinde sadece kayıt üzerinde en son değişikliği kimin ve ne zaman yaptığı bilgisini saklayabiliyoruz.
Son değişiklik tarihi yeterli olmadığı için alternatif loglama çözümlerini uzun zamandır kullanıyoruz. FileMaker 13’le beraber gelen Get(ModifiedFields) fonksiyonu ile çok pratik şekilde log tutmak mümkün. Bu fonksiyonu kullanan eXcelisys firmasının çok güzel bir çözümü mevcut. Basitçe kendi uygulamanıza ekleyebiliyorsunuz.
Bu uygulamayı baz alarak örnek bir dosya hazırladık, örnek dosyayı yazının sonundaki bağlantıdan indirebilirsiniz. Yöntemin anlatıldığı makaleye ulaşmak için buraya tıklayabilirsiniz.
Dosyayı kendi veritabanınıza uygulamak için bir kaç adım yeterli;
ChangeLogger özel fonksiyonunu dosyasınıza aktarın (FileMaker Pro Advanced gerektirir)
TimeStamp (zaman damgası) tipinde, st_ModTS isimli bir alan tanımlayın.
st_ModTS alanının auto-enter seçeneğini değişiklik zamanını verecek şekilde düzenleyin.
Metin tipinde, st_ChangeLog isimli bir alan tanımlayın.
st_ChangeLog alanının auto-enter seçeneklerinde calculation olarak belirleyin ve aşağıdaki hesaplamayı girin
Case ( st_ModTS ; Liste ( ChangeLogger ( Get ( ModifiedFields ) ; Self ) ; st_ChangeLog ) )
st_ChangeLog alanı için auto enter seçeneklerinde “Do not replace exsiting value” seçeneğinin işaretini kaldırmayı unutmayın.
Başlangıç scripti ile $$sistem_LogIstisnaAlanlar isimli global değişken oluşturun. Log tutamak istemediğiniz alanları bu değişkene yazın. Geri kalan tüm alanlarda otomatik olarak log tutulacak.
Son zamanlarda, özellikle FileMaker’ın eski sürümünü kullanan müşterilerimizden dosya paylaşımı (file sharing) ile ilgili gelen şikayet telefonları arttı. Halbuki FileMaker’da network paylaşımı yapmak basit ve pratiktir. İletilen hata mesajları ile ilgili araştırmamız neticesinde sorunun en kolay çözümünü bulduk!
Aşağıdaki yöntem sorununuzu çözmezse işletim sistemi, filemaker sürümü gibi bilgilerde yorum bırakmaktan çekinmeyin.
Hata Mesajları
“Başka bir kullanıcı bu bilgisayarda FileMaker Pro kullanarak zaten dosyalar paylaştırdığından FileMaker dosyalar paylaştıramıyor.”
“Ağ yığını başlatılamadığından FileMaker bir dosyayı paylaştıramıyor veya dosyanın istemcisi olamıyor.”
“FileMaker cannot share or be a client of a file because the networking stack could not be initialized.”
“FileMaker cannot share files because another user is already sharing files using FileMaker Pro in this computer.”
Etkilenen Sürümler
FileMaker Pro 7
FileMaker Pro 8,
FileMaker Pro 8.5
FileMaker Pro 9
FileMaker Pro 10
FileMaker Pro 11 (and FileMaker Pro Advanced)
İşletim Sistemi: Windows XP, Windows Vista, Windows 7, Windows 8, Windows 10
Bu problemin en basit yöntemi FileMaker kurulum dosyaları içerisinde yer alan server.pem dosyasını yenilemek.
Dosyanın konumu: Program Files/FileMaker/FileMaker Pro X/server.pem
Server.pem dosyasının çalışan halini network paylaşımının sorunsuz çalıştığı bir bilgisyardan alabilirsiniz. Böyle bir imkanınız yoksa server.pem dosyasının düzgün halini aşağıdaki bağlantıdan indirebilirsiniz: www.yazalim.com/filemaker-networking-file
Dosyayı aynı konuma kopyalayın. (C:/Program Files/FileMaker/FileMaker Pro X/ )
Diğer olası problemler
FileMaker’da dosya paylaşımı (network file sharing) oldukça kolaydır. Doğrudan FileMaker Pro veya FileMaker Pro Advanced ile File/Sharing/Share with FileMaker Clients seçeneği ile dosyayı paylaşıma açabilirsiniz.
Eğer yukarıdaki hata mesajlarını alıyorsanız veya dosya paylaşımında sorun yaşıyorsanız sebepleri şunlar olabilir;
Windows/MacOs Firewall veya kullandığınız anti virüs yazılımı 5003 portunu engelliyor olabilir. (FileMaker dosya paylaşımı için 5003 TCP portunu kullanır).
Dosya ismi paylaşımda gizlensin seçeneği işaretlenmiş olabilir.
Bilgisayarlar birbirine erişemeyen farklı ağlara bağlı olabilirler.
Apple yazılım ve (bazı) donanımlarında olduğu gibi her yıl yeni bir sürümle karşımıza çıkıyor. Geçtiğimiz hafta FileMaker 16’nın Türkçe sürümü de yayınlandı. 16 ile gelen yenilikleri Mobility, Development (Geliştirme), Integration (Entegrasyon), Security (Güvenlik), Scalability (Ölçeklenirlik) başlıkları altında topluyor FileMaker.
Biz de kendi gözümüzle ön plana çıkan FileMaker 16’da gelen yenilikleri değerlendirelim.
Pencereler
FileMaker 16’da görünümü özellikle Windows tarafında dikkate değer değişiklikler barındırıyor. Bazen şikayet ettiğimiz ana gri pencerenin içindeki küçük pencereler mantığından 16 ile kurtuluyoruz. Ayırca bu yenilikle beraber her pencerenin kendi menüsü ayrı tanımlanabiliyor, eski sürümde menüler ana pencere olduğu için bu yapılamıyordu.
Yeni görünümde ekranı sadeleştiren bir değişik de pencerenin en altındaki büyütme araç çubuğunun kaldırılmış olması. Özellikle layout tasarımında yakınlaştırma kontrollerini (zoom controls) sıklıkla kullandığım için buna alışmam biraz zaman alacak.
Card Window
UI/UX konularında çok işimize yarayacak gelişmeler Card Window tipi ile geliyor. Card window ile pencere içinde belirli bölgede başka bir yerleşim (layout) görüntüleyebiliyoruz. Card Window’un dışında hoşuma giden küçük bir bir yenilik New Window script adımında gideceği yerleşimi (layout) seçebiliyor olmamız. Bu yeni pencere açarken çalışmasını istemediğimiz OnLayoutLoad triger’ının (tetikleyici) istenmedik davranışından kurtulmuş oluyoruz. Card Window’u anlatan tek başına bir yazı oluşturmaya başladık bile.
Karmaşık layoutlar üzerinde çalışan geliştiriciler için büyük bir nimet. Başka nesnelerin arkasında kalan, slider panelinin içinde görünmeyen kısıma gelmiş nesneleri Layout Object Window ile çok kolay tespit edebiliriz. En güzel yanlarından biri de göster/gizle simgesi ile çalışırken görmek istemediğimiz öğeleri saklayabiliyor olmak.
Entegrasyon Yenilikleri
FileMaker geliştiricilerinin çok seveceği bir özellik de entegrasyon konularında gelen yenilikler. Calculation Engine (hesaplama motoru) için JSON fonksiyonları ve cURL script adımı ile herhangi bir plug-in’e ihtiyaç duymadan web servisleri ile entegrasyonunu mümkün kılıyor.
Ayrıca FileMaker Server, RESTful servis oluşturabileceğiniz bir arayüz (beta olarak) sunuyor. Örneğin FileMaker datanızı Tableau yazılımı görsel raporlama için güzel bir çözüm sunabilirsiniz.
Geliştirilmiş Data Viewer
Script debugger’da sıklıkla kullandığımız Data Viewer artık daha kullanışlı. Otomatik tamamlama, live preview, sytax error kontrolü ile UX derecesini artırmış
Performans
FileMaker, 13. sürümden beri her yıl performans açısından iyileştirmelerle geliyor. FileMaker 16’da da bu değişmedi. Web Direct artık tek makinede (single machine deployment) 100 kullanıcıya kadar, +4 worker machine desteği ile toplam 500 kullanıcıya hizmet verebilecek noktaya gelmiş.
iOS Platformu’na Gelen Yenilikler
FileMaker son zamanlarda mobil’e büyük yatırımlar yapıyor. 16. sürümle de iBeacon, GeoFence, Signature Capture, Animations, Plugin’s başlığında toplayabileceğimiz büyük yenilikler var.
Geofence ile belirli bir bölgeye/alana girdiğimizde script tetikleyebiliyoruz. Bu özellik iOS’un push notification sistemini kullanıyor, bu sayede FileMaker kapalı olsa dahi script tetiklemek mümkün.
Signature Capture’da gelen küçük (ama gerekli) bir yenilik ile penceredeki içeriği görerek imza alabiliyoruz.
Animations ile daha iOS arayüz animasyonları mümkün oluyor. Liste ekranından detaya giderken ekranın sağa kayması yada uçarı kaçması UX konusunda elimizi güçlendiriyor.
En önemlilerinden biri ise FileMaker Go için plug-in desteği. Plug-in geliştiriciler iOS uyumlu pluginleri tanıtmaya başladılar bile..
Sonuç
FileMaker 16 ile bizi heyecanlandıran bir çok özellik geldi, bu yazımızda bunlardan belli başlıları hakkında kısa değerlendirmeler yaptık. Başlıca yazıyı hak eden özellikler ve arkada kalmış küçük güzellikler için yeni yazılarımızla karşınızda olacağız.