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
						

Scripti Bekletme ve Field'i Değişkene Nasıl Alırız?

+3 oy
736 kez görüntülendi

Merhaba

Bir hücreye girdiğimde script çalışmaya başlayacak. hücrede değişikliği yapıp çıkarken script çalışmaya devam edecek. Bunu tek scriptle yapmamız gerekecek.

Diğeri

Script adımlarında, girdiğim hücrenin adını değişkene alacak, go to field le  değişkendeki hücreye gidecek

bunlar yapılabilirmi?

17, Haziran, 2018 Scripts kategorisinde Muhteshem (52,960 puan) tarafından soruldu

3 Cevaplar

+2 oy
tam anlamadım ama yapılır :)

 

ama belki yapmaya gerek de yoktur, ulaşmaya çalıştığımız şeyi örnek üzerinde anlatabilir misiniz?
18, Haziran, 2018 F. Osman Cabi (197,900 puan) tarafından cevaplandı
hücreye girince
   
perforfind
pouseresumescript
hücreden çıkarken devam edecek
replacefield
exit script

pouseresume den sonra ne konulduğunda hücreden çıkınca devam etsin.
Selam ederim Süleyman Bey;

Hocam betiği ikiye bölebilirsiniz. Birinci betik alana girdiğiniz zaman çalışır ikinci betik alandan çıktığınız zaman çalışır. Betiği durdurmanıza da gerek kalmaz.

Hayırlı günler dilerim.
Saygılarımla.
Teşekkür ederim.
Değişik  yöntemler olabilir yalnız tek skripte çözebilir miyiz ve nasıl ?
Tek script olmasını istiyorsanız "on commit" triger'ını da kullanabilirsiniz. Alana girerken değil, kayıt kaydedilirken betik çalışır. Kontrollerinizi yapıp eğer o alan değişmişse, get(modifiedfields) fonksiyonu ile bunu tespit edebiliyorsunuz, gerekli işlemleri uygulatabilirsiniz.
0 oy

İkinci soru için,script içinde Get (ActiveFieldName) ile alan adını alabilirsin ancak GotoField içinde değişken kullanamayacağın için onun yerine alana obje olarak bir isim vererek önce Get(ActiveLayoutObjectName) ile adını çekip GotoObject ile gidilebilir.Ancak bu ne amaçla kullanılacak onu tam olarak anlayamadım...

 

İlk soru için söyleyebileceğim; Tek script iki ayrı biçimde tetiklenmesi gerektiği için klasik tetikleyiciler yerine sanal tetikleyiciler (virtual triggers) ve bazı kontroller kullanmak işe yarayabilir.Alttaki linklerden bir fikir edinebilirsin..Ancak asıl amacın ne olduğu konusunda detaylı bilgi verilirse bunlara gerek kalmadan çözüm bulunabilir....

 

Virtual Script Triggers   -    Tetikleyicileri Durdurma   -   Tetikleyicileri Kontrol Edebilen Fonksiyonlar

 

19, Haziran, 2018 Şemsi Saracoğlu (133,920 puan) tarafından cevaplandı
Cevaplar için teşekkür ederim.

Bir scriptle birden fazla hücredeki değişikleri ile,l, kayıtlarda yaptırmak içindi.

Örn. Hücreye girilince ıd leri aynı olan kayıtları buldurup, hücrede değişiklik yapınca bulunan kayıtların tümünde aynı hücredeki bilgileri değiştirmek. burda ki sıkıntı aynı id leri buldurunca kursor hücreden çıkıyor.  önce hücreyi değiştirip sonra kaydı buldurmak olabilirdi, bekleyen scripti hücreden çıkınca nasıl devam edeceğini bilemedim.

trigerde objeenter de yapabilirmiyimi uygulamaya çalıştım.
obje exit i kullamak istemedim.
Süleyman, önce girdiğin alanın içeriğini Get (ActiveFieldContents) ile değişkene alıp Find ile benzerlerini bulunca ReplaceFieldContents ile tümünü birden değiştirebilirsin..
0 oy

Herkese selam ederim;

 

Süleyman Hocam; Sorunuz hala geçerli mi? Bir cevap bulabildiniz mi bilemiyorum ama. Naçizane örnek bir dosya hazırladım. Dosyayı bir inceleyin isterseniz.

Örnek Dosya

 

Herkese hayırlı günler dilerim.

Saygılarımla.

3, Ağustos, 2018 ercanD (71,050 puan) tarafından cevaplandı
Teşekkür ederim
İki tıklamalı bir çözüm olmuştu.  Sizin   Çözümün daha iyi olduğuna inanıyorum  kontrol edince yazarım tekrar .
...