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
						

Farklı "layout" ve "tablo"larda aynı görevi yapan "field"ler için ortak script

+2 oy
937 kez görüntülendi

Herkese merhaba

Farklı layout içerisinde on/off butonları oluşturdum. Bu butonlar aynı işi yapıyorlar, bir field için 0 ya da 1 değeri veriyorlar. Bu fieldlerin isimleri tüm tablolalarda aynı ise bir ortak script oluşturabilirmiyim. Tablo adını girmek yerine aktif layoutun bulunduğu tablo şeklinde bir tanımlama yapabilir miyim? Sorunumu anlatabilmek için problemle ilgili dosyayı ekte gönderiyorum. 

http://filemakerturk.com/?qa=blob&qa_blobid=3704873520128387844

Bu dosyadaki tüm butonlar için farklı script oluşturdum. Şimdiden teşekkürler.

12, Ekim, 2017 Scripts kategorisinde HulusiNeci (5,520 puan) tarafından soruldu
12, Ekim, 2017 HulusiNeci tarafından düzenlendi

4 Cevaplar

+3 oy
 
En İyi Cevap

Bir örnek de benden gelsin.

13, Ekim, 2017 Recep Güney (70,020 puan) tarafından cevaplandı
13, Ekim, 2017 F. Osman Cabi tarafından seçilmiş
bu düğme portalın içinde çalışmayacaktır, bu tip istisnai durumlar için tablo adı script parametresi ile örnek geliştirilebilir. eğer parametre yoksa Get(LayoutTableName)'den alır. parametre varsa doğrudan parametreyi tablo ismi olarak alır.
Scriptin ilk adımında Go to Object ile tablonun alanına gidildiği için çalışacaktır.
Bu alanı gizleyip/göstermek de size kalmış...
kesinlikle haklısın, ben "layout table name" gibi okudum nedense
Layout sabit, portalın sürekli değiştiği bir senaryoyu mu kastediyorsun yoksa?
Yok, tamamen bir şeyi* yanlış görmemden kaynaklı. hazır çözümü varken başka bir sorun çıkarayım, layoutta bir den fazla on/off butonu varsa ne olacak :)


* Scriptte alanın değil layout'un tablosunu çekiyorsun sanmıştım.
Allah çektirmesin diyorum :)
+2 oy
12, Ekim, 2017 Mehmet KAYA (166,370 puan) tarafından cevaplandı
Hocam affınıza sığınarak bir düzeltme yaptım. Kusura bakmayın.

Pasif düğmelere scripti bağlamayı unutmuşsunuz galiba. :(

filemakerturk.com/?qa=blob&qa_blobid=6095512000258644469

Saygılarımla.
bende çalışmadı "This script cannot be found or has been deleted." uyarısı verdi.
filemakerturk.com/?qa=blob&qa_blobid=6095512000258644469

bağlantıdakini indirirsen çalışacaktır.
Çok teşekkürler ama aslında benim yapmak istediğim programı yaparken eklediğim her layout için ayrı ayrı script yazmamaktı. Bu çözüm de ise içerisinde benim ayrı scriptleri yazacağım şeyleri bir scriptin içerisinde yazmış oluyorum.

Tabloların adını hiç girmeden böyle bir scripti oluşturmak mümkün mü? Yani aktif layoutun içerisindeki aktif tablo içerisindeki "durumu" fieldini güncelle şeklinde bir script olabilir mi? Bu şekilde tablo ismi değişse ya da yeni tablo eklesem bile scripti güncellemem gerekmeyecek.

Set field by name adında bir komut var ama bu komutu bu problem için bir türlü çalıştıramadım
+1 oy

Hulusi Bey, ortak bir script oluşturma amacınız varolan tablolar için mümkün,sırasıyla layoutları dolaşan ve içerdiği alanları/alanı set eden bir script olabilir..Ancak yeni oluşturacağınız bir tablo ve/veya layout için mümkün olabileceğini sanmıyorum.

 

İşinize yaramasada konuya yakın olduğunu düşündüğüm bir örnek:

 

  Bir alanın hangi layoutlar içinde kullanıldığını sorgulayan örnek bir dosya linkte mevcut (aktif bir alanın geçerli layout dışında hangi layoutlarda kullanıldığı bilgisini veriyor). Layout Names ve Field Names fonksiyonları kullanılmış..(Örnekte,farklı layoutlarda  bir alanın kendisi kullanılmışsa doğru sonuç alınabilir, bir alan adının başka tablolarda kullanılması işe yaramaz.Yani Tapu ve Tarla adlı iki ayrı tabloda Durum isimli birer alan bulunuyorsa doğal olarak bunlar farklı alanlar anlamına gelir)

 

13, Ekim, 2017 Şemsi Saracoğlu (135,530 puan) tarafından cevaplandı
+1 oy

Tüm cevaplar için teşekkürler.

Ben daha basit bir script yazmaya çalıştım, mantık olarak doğru görünüyor ama çalışmıyor. Nerede hata yaptım bir bakabilir misiniz?

http://filemakerturk.com/?qa=blob&qa_blobid=8208265817879861739

14, Ekim, 2017 HulusiNeci (5,520 puan) tarafından cevaplandı
...