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
						

CASE CALCULATION HAKKINDA

+3 oy
485 kez görüntülendi
MERHABALAR,

AŞAĞIDAKİ CASE FORMÜLÜ NEDEN ÇALIŞMAZ?

YAPMAK İSTEDİĞİM ŞEY ŞUDUR: KİTAP KÜNYESİ ADLI BİR FIELD AÇTIM VE İÇERİSİNE CALCULATION İLE FARKLI SIRALANARAK KİTABIN AKADEMİK KÜNYESİNİ YAZIYORUM. EĞER KTP_KünyesiSçnk ADLI FIELD  "APA" SEÇİLDİYSE KİTAP KÜNYESİNİ TARİF ETTİĞİM ŞEKİLDE YAZMASI, KTP_KünyesiSçnk ADLI FIELD  "CHICAGO" SEÇİLDİYSE İKİNCİ TARİF ETTİĞİM ŞEKİLDE YAZMASI.

Case (KTP_KünyesiSçnk = "APA"; RightWords ( KTP_Yazarı; 1) & If ( WordCount ( KTP_Yazarı ) = 2; ", " & Left ( KTP_Yazarı; 1) & ". ") & If ( WordCount ( KTP_Yazarı) = 1; ". ") & "(" & KTP_BasımYılı & "). " & TextStyleAdd ( KTP_Adı; Italic) & ". " & KTP_BasımYeri & ": " & KTP_Yayınevi);

KTP_KünyesiSçnk = "CHICAGO"; RightWords ( KTP_Yazarı; 1) & If ( WordCount ( KTP_Yazarı ) = 2; ", " & Left ( KTP_Yazarı; 1) & ". ") & If ( WordCount ( KTP_Yazarı) = 1; ". ") & KTP_Adı & ". " & KTP_BasımYeri & ": " & KTP_Yayınevi  & ", " & KTP_BasımYılı & ". " & KTP_SayfaSayısı  & "sf.") )

SANKİ İKİNCİ KOŞUL BİRİNCİ KOŞULU BİRLEŞTİREMEDİM GİBİ BİR HATA VERİYOR.

TEŞEKKÜRLER.
23, Aralık, 2015 Scripts kategorisinde mehmetevli (2,500 puan) tarafından soruldu

4 Cevaplar

+2 oy
 
En İyi Cevap

Hamit Bey'in önerdiği gibi Let ile sadeleştirildim formülü. Yazar adı farklı yerlede kullanılıyor mesela. Bunu Let fonksiyonu ile hesaplama içinde bir değişken tanımlayıp ihtiyaç olan kısımlarda kullandım.

Formülü birleşik yazmak yerine enter ve boşluk karaketerleriyle ayırınca düzenlemesi daha rahat oluyor. Uzun süre sonra baksanız bile kısa sürede anlayabiliyorsunuz.

 

Let (

Yazar = RightWords ( KTP_Yazarı; 1) &
        If ( WordCount ( KTP_Yazarı ) = 2; ", " & Left ( KTP_Yazarı; 1) & ". ") &
        If ( WordCount ( KTP_Yazarı) = 1; ". ") ;

Case (
      KTP_KünyesiSçnk = "APA";
      Yazar & "(" & KTP_BasımYılı & "). " & TextStyleAdd ( KTP_Adı; Italic) & ". " & KTP_BasımYeri & ": " & KTP_Yayınevi ;

      KTP_KünyesiSçnk = "CHICAGO";
      Yazar & KTP_Adı & ". " & KTP_BasımYeri & ": " & KTP_Yayınevi  & ", " & KTP_BasımYılı & ". " & KTP_SayfaSayısı  & "sf."

) //Case bitis

) //Let bitis

 

24, Aralık, 2015 F. Osman Cabi (197,920 puan) tarafından cevaplandı
28, Aralık, 2015 mehmetevli tarafından seçilmiş
Çok teşekkür ederim Osman bey zahmet oldu.
+2 oy

valla çok uzun geldi tam takip edemedim formülü ama son parantezi ancak son parantezi kapamadan önce 

*KTP_KünyesiSçnk="" ; "" ; * "Error" ) şeklinde bir dener misin..

iki satır birleşiminde problem göremedim ben.

23, Aralık, 2015 poseidon3d (24,450 puan) tarafından cevaplandı
+2 oy
Mehmet bey maşallahın var. Ben bile scripti incelemekten aciz kaldım. Biraz bakın halleden arkadaş olmazsa yardımcı olurum.
24, Aralık, 2015 Mehmet KAYA (165,360 puan) tarafından cevaplandı
hocam emekliyoruz işte..
+1 oy

SONUNA BAHSETTİĞİNİZ ERROR LU SATIRI DA EKLEDİM ANCAK SONUÇ DEĞİŞMEDİ. BENİM YAZDIĞIM HALİYLE ÇALIŞTIRDIĞIMDA an operator is expected here DİYOR VE İLİŞİKTEKİ RESİMDEKİ GİBİ SADECE İKİNCİ KOŞUL KISMINI BOYUYOR.

FORMÜL BİRAZ KARIŞIK EVET. ANCAK SADECE BİRİNCİ KOŞUL KISMINI YAZDIĞIMDA İSTEDİĞİM SONUCU VERİYOR. ANCAK İKİNCİ KOŞULLA BİRLİKTE YAZDIĞIMDA HATA VERİYOR.

İLGİNİZE TEŞEKKÜRLER

24, Aralık, 2015 mehmetevli (2,500 puan) tarafından cevaplandı
ikinci satırı tek başına eklediğinizde çalışıyor mu?
Size tavsiyem bu tur hesaplamalarinizi Let funtiyonunun icerinde yapiniz. Formul ve kosullarinizda daha bir ceki duzen olacaktir.
...