FilemakerTurk, AYS Bilişim ve Beyaz Net tarafından desteklenmektedir.
Filemaker Danışmanınız
AYS Bilişim
Mehmet KAYA
 0532 231 07 27
 0216 318 55 80
 mkaya@aysbilisim.net
						

Value List - Değer Listesi

+1 oy
1,092 kez görüntülendi

Herkese selam ederim,

Bir tane Value List oluşturdum. Değerleri alandan kullandırıyorum. Oluşturduğum liste çalışıyor her hangi bir sorun yok. Listede bulunan isimlere göre seçimi yapıp o isime ait kayıtları listeliyor, istediğim sonuca ulaşabiliyorum.

Sorunum; Bu Değer listesinde " Tümü " bir seçeneği koyup tüm isimlere ait kayıtları nasıl listelerim?

İlgi ve desteğiniz için şimdiden teşekkür eder, hayırlı günler dilerim.

 

Örnek Dosya

Saygılarımla.

5, Mayıs, 2017 Filemaker Advanced kategorisinde ercanD (71,080 puan) tarafından soruldu
6, Mayıs, 2017 ercanD tarafından düzenlendi

3 Cevaplar

+4 oy
Önce değer listenizin içerisine Tümü diye bir seçenek koyup,

Bir script yazıp,

eğer değer listesinde Tümü Seçili ise show all record derseniz sorununuz çözülür gibi...
6, Mayıs, 2017 Fatih Baştürk (22,500 puan) tarafından cevaplandı
İlk önce ilginiz için teşekkür ederim.

Değer listesini alandan çekip ( use values from field ) kullanıyorum. Buraya bu seçeneği nasıl koya bilirim?
Örnek dosyayı ekledim. Müsaitseniz bakarsanız sevinirim.
Sofor ve Donem Sec adlı scriptinizde if den sonraki bölümde, tümü seçilmişse, show all record demişsiniz.. ondan sonra halt script derseniz çözülür... script devam edince sort record isteğinizi bozuyor gibi...
Ben herhalde tam olarak anlatamadım. Acemiliğime verin lütfen. Benim istediğim soforsec e tümü seçeneği eklemek. 1 yazan düğmenin sağındaki soforsec field i. Burada tümü seçeneğinin çıkması ve tümü tıklandığı zaman tümünün gösterilmesi.
Size de gece gece zahmet veriyorum Kusuruma bakmayın.
Merhaba... soforsec fieldi value olarak soforNo dan verileri alıyor... Kurgunuz bunun üzerine kurulu.. soforNo da autoenter ve validation sekmelerinde karışıklığa neden olmaması için benzersiz numaralar alıyor... dolayısıyla soforsec e Tümü eklemek için ya kurgunuzu değiştireceksiniz yada scriptle listelemek istediğiniz bölüme show all record diyerek bütün kayıtları göstereceksiniz... Gece gece aklıma gelen bu..
Daha farklı çözümler de mutlaka olacaktır...
Kurguyu nasıl değiştirebilirim işin açıkçası hiç bir bilgim yok. Fakat tecrübe ettiğim show all record kullandığım zaman her ne kadar ekranda görünse de raporu yazdır değim zaman yazıcı çıktısında aynı raporu alamıyorum. Yazdır betiğinde de bilgim dahilinde bir şeyler yapmaya çalışsam da bunda da muvaffak olamadım.

Başka bir alternatif bulamaz isem sizin dediğiniz gibi kurgu değişikliğine gidebilirim her ne kadar nasıl yapılacağını bilemesem de...

İlgi ve desteğiniz için teşekkür ederim.
+2 oy
Farklı bir bakıştan...

ŞoförNo kullanarak ŞoförNoList diye bir calc alan oluşturun.

ŞoförNoList (calc) =  ŞoförNo & ¶ & "TÜMÜ"  olsun.

Tümü olanları seç dediğinde tüm şoförler gelir. :)
6, Mayıs, 2017 Optisyen (56,580 puan) tarafından cevaplandı
Optisyen hocam şu anda çalışma dosyasından uzakta olduğumdan dolayı herhangi bir şey yapamıyorum. Özledim! Çalışma dosyalarından ayrı kalmak ne zormuş. :)
Seyahatten döner dönmez tavsiyenizi uygulayıp durumu sizler ile paylaşacağım.

ilgi ve desteğiniz için size de çok teşekkür ederim.
+1 oy

Herkese selam ederim;

İlk önce  Optisyen hocanın dediklerini uyguladım sonra basturk69  hocanın dediklerini, her ikisinde de başarılı olamadım. Ben sizlerin ifade ettiği geçersiz olacağını düşünmedim. Ben mutlaka bir yerlerde yanlış yapıyorum ki sonuca ulaşamadım. 

Daha sonra her iki hocamdan da biraz esinlenerek ve alıntı yaparak sonuca ulaştım. Optisyen hocamın dediği gibi, soforsecad isimli bir calculation field oluşturdum. 

İçine 

If ( "Tümü" = ""; "Tümü";
If ( soforId = 1; "ŞOFÖR BİR";
If ( soforId = 2; "ŞOFÖR İKİ";
If ( soforId = 3; "ŞOFÖR ÜÇ";
If ( soforId = 4; "ŞOFÖR DÖRT";
If ( soforId = 5; "ŞOFÖR BEŞ";
If ( soforId = 6; "ŞOFÖR ALTI";
If ( soforId = 7; "ŞOFÖR YEDİ";"0"
))))))))

olacak şekilde şoför isimlerini yazdım.

basturk69 hocanın dediği gibi biraz kurguyu değiştirdim.

Value List te  " use custom values " seçerek buraya da 

Tümü
ŞOFOR BİR
ŞOFOR İKİ
ŞOFOR ÜÇ
ŞOFOR DÖRT
ŞOFOR BEŞ
ŞOFOR ALTI
ŞOFOR YEDİ

şeklinde yazdım.

Scripti de

Enter Find Mode [ ]
If [ SoforSec = "Tümü" ]
Omit Multiple Records [ ]
Else
Set Field [ soforAdSoyad; SoforSec ]
End If
If [ DonemSecAd = "Tümü" ]
Show All Records
Else
Set Field [ DonemAd; DonemSecAd ]
If [ Get(FoundCount) = 0 ]
Show Custom Dialog [ Title: "Dikkat"; Message: "İstediğiniz döneme ait herhangi bir kayıt bulunamadı"; Default Button: “TAMAM”,
Commit: “Yes” ]
Show All Records
End If
End If
Perform Find [ ]

şeklinde ayarladıktan sonra yaptığım testlerde sonuca ulaştığımı gördüm. Ama ne kadar mantıklı inanın bilmiyorum. 

SoforSec = "Tümü" satırından sonra 

Show All Records kullandığımda dönemsel listelemeyi alamıyordum Biraz deneme yanılma ile " Omit Multiple Records " u keşfettim. 

Bir " Tümü " için yaşadığım iki saatlik maceramı sizler ile paylaşmak istedim. Dediğim gibi bu ne kadar mantıklı inanın hiç bir fikrim yok. Hatalarını düzeltmenizi rica ederim.

Gösterdikleri ilgi ve destek için her iki hocama da teşekkür eder, hayırlı günler dilerim.

 

Saygılarımla.

 

8, Mayıs, 2017 ercanD (71,080 puan) tarafından cevaplandı
8, Mayıs, 2017 ercanD tarafından düzenlendi
Kolay işi zorlaştırıyorsunuz gibime geliyor.
Dosyayı uzun süre inceleyemedim ama ilk gördüğüm Şoför ID ile ilgili bir çok alanın oluşturulduğu.

Bence şunu yapın.
Şoför ID:  text yapın.
Şoför 001 den başlasın 1 artsın dediniz mi yine serial olarak her yeni kayıtta artırır prg.
value List i from Şoför ID seçmek daha kullanışlıdır. Her eklenen yeni şoför buradaki listeye de eklenir.
Şoför Listesinin en başına ilk kayıt olarak TÜMÜ yazın. Ondan sonra serial işini ayarlayın. Sorgulamadaki listede de bu en başta gelsin. ilk harf Ş den önce bir harf olursa en üstte yoksa en sonda görürsünüz.
Mesela TÜMÜ listenin en altında görünür.
BÜTÜN ŞOFÖRLER listenin en üstünde görünür.
Hocam yerden göğe kadar haklısınız. Her yeni bir şoför eklendiği zaman hem calc ı hem de value list i düzenlemek zorunda kalacağım.


Aslında bu dediğinizi işin başında denedim. Ancak SOFORLER layout una girdiğim ve bir sonraki (bir önceki kayıt ), dediğim zaman sanki tümü isimli bir şoför varmış gibi görünüyor. Yada şoförlerin yaptığı işleri listelediğimde orada tümü diye bir şoför var ve hiç iş yapmamış görünüyor. Bunu gizlemenin bir yolu var mı? Ya da ben mi bir şeyleri eksik yada yanlış yapıyorum.
Şoförler Layoutunda  tümü isimli bir şoför varmış gibi görünsün sıkıntı yok.
Şoförlerin yaptığı işleri listelediğimde orada tümü diye bir şoför var ve hiç iş yapmamış görünüyor ya burada da TÜMÜ kaydı için OMIT yaptırırsınız Layouta girince .
veya script ile diğer kayıtları buldurup TÜMÜ kaydını gizlemiş olursunuz.
Birçok yolla yapılabilir bu isteğiniz.
Aklınızla bin yaşayın, oldu herhalde!!!  :)))

Betiği de aşağıdaki gibi yazdım. Dogru mudur?

Enter Find Mode [ Pause:Off]
Set Field [Soforler::Ad; "Tümü"]
Ommit Record
Perform Find [ ]

Listeye de kayıtlara da uyguladım betiği. herhangi bir sorum yok gibi görünüyor. Akşama raporlar ve Value List için de uygulayacağım bakalım. Onlarda da sorun çıkmayacakmış gibime geliyor ya bakalım hayrlısı.

İlgilendiğiniz için çok çok teşekkür ederim.
Akşam diğer işlemleri de yaptım. Herhangi bir sorun çıkmadı. Şimdilik iyi gidiyor. Bakalım bu projede beni daha ne gibi sürprizler bekliyor. :)

Tekrar çok teşekkür eder, ilgi ve desteklerinizin devamı temennisi ile hayırlı günler dilerim. :)

Saygılarımla.
...