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
						

Sınav sorum yardım lütfen

+3 oy
990 kez görüntülendi
Oluşturacağınız bir düğmeye basıldığında 1'den kendi okul numaranızın son 4 hanesine kadar her biri numaranızın son iki hanesi miktarınca artarak giden bir script geliştiriniz. Geliştirdiğiniz scriptin ana mantığını kısaca açıklayınız.

Örneğin okul numaranız 1020305668
Birinci kayıtta belirleyeceğiniz alanın değeri 1,
İkinci kayıtta belirleyeceğiniz alanın değeri 69,
Üçüncü kayıtta belirleyeceğiniz alanın değeri 137,
Dördüncü kayıtta belirleyeceğiniz alanın değeri 205.
15, Haziran, 2017 Scripts kategorisinde Bgm.grsy (360 puan) tarafından soruldu
18, Haziran, 2017 Mehmet KAYA tarafından yeniden açıldı
Hangi okulda/kursta filemaker sınavdasınız?

Bu arada soruyu sınav esnasında sormuyorsunuz umarım :)

açık kitap/internet sınavlar doğrudan sonuç yerine sonuca ulaştıracak kaynağa erişmek içindir
Yok yok sınavda değildim
okul/bölüm nedir?

Selçuk, Erciyes, Marmara'da FileMaker dersi olduğunu biliyorum, sizin okulunuz farklıysa listeye ekleyeyim.

3 Cevaplar

+1 oy
 
En İyi Cevap

Örnek Dosyayı indirmek için tıklayınız.

UMARIM DOĞRU ANLAMIŞIMDIR. TOPLAMDA 84 VEYA 85 KAYIT ÜRETİLİYOR.


#Okul Nosunun Son 4 Değerini alır
Set Variable [ $S4; Value:GetAsNumber ( Right ( sill::Okul No; 4)) ]


#Okul Nosunun son 2 değerini alır.
Set Variable [ $s2; Value:Right ( sill::Okul No ; 2) ]


#Eğer Okul Nosu 0 ile başlarsa ilk kaydı bir olarak açar.
If [ Left ( sill::Okul No; 1)=0 ]
New Record/Request
Set Field [ sill::Ekle; 1 ]
End If


#Okul Nosunun ilk değerin ilk kayda atar.
New Record/Request
Set Field [ sill::Ekle; Left ( sill::Okul No; 1) ]


Loop
New Record/Request
Go to Record/Request/Page [ Previous ]
Set Variable [ $Deger; Value:sill::Ekle ]
Go to Record/Request/Page [ Next ]
Set Field [ sill::Ekle; $s2 + $deger ]
Set Variable [ $Deger; Value:GetAsNumber ( sill::Ekle ) ]
#Oluşturulan değer Okul nosunun son 4 rakamından büyükse scripti durdurur.
Exit Loop If [ $deger ≥ $S4 ]
End Loop

16, Haziran, 2017 Mehmet KAYA (166,370 puan) tarafından cevaplandı
16, Haziran, 2017 Mehmet KAYA tarafından seçilmiş
+2 oy

Herkese selam ederim;

Ben mi yanlış anladım. Eğer soruyu yanlış anlamadıysam sorunun aşağısında verilen örnek yanlış; Örnek yanlış değil diyorsanız ben soruyu anlamamışım.

 

Okul numaranızın başından son dört hanesine kadar rakamların her biri...

Yani numara 1020305668 ise 

102030

... rakamların her biri numaranızın son iki miktarınca artarak...

1 + 68
0 + 68
2 + 68
0 + 68
3 + 68
0 + 68

dediğim gibi soruya göre örneğinin bu şekilde olması gerekiyor. 

Saygılarımla.

15, Haziran, 2017 ercanD (73,590 puan) tarafından cevaplandı
102030 adetlik kayıt seti için ilki 1'den başlayacak şekilde, sırasıyla her bir kayıtta bir öncekinden 68 artarak devam edecek.
Merhabalar cevap verdiğiniz için teşekkür ederim. 1 rakamı 1 . kayıtta 1, 2.kayıtta 68+1, 3.kayıtta 69+68, 4.kayıtta 137+68 olarak gidiyor
+2 oy

Eğer 4 adet kayıt mevcutsa sadece Replace komutu ile rakamlar hesaplatılaiblir.

Replace içinde kullanılacak formül şu olabilir:

1 + Right ( OgrenciNo;2) * ( Get(RecordNumber) -1 )

 

Eğer kayıtları da scriptle oluşturacaksak döngü kullanmak gerekir. Mesela şu şekilde bir script işimizi görür;

Set Variable [ $sayac ; 1 ]

Set Variable [ $deger ; 1 ]

Loop

    New Record/Request

    Set Field [ BelirlenecekAlan ; $deger ] 

    Set Variable [ $deger ; $deger + Right ( OgrenciNo;2) ]

    Set Variable [ $sayac ; $sayac + 1 ]

    Exit Loop If [ $sayac > 4 ]

End Loop

 

 

16, Haziran, 2017 F. Osman Cabi (200,340 puan) tarafından cevaplandı
16, Haziran, 2017 F. Osman Cabi tarafından düzenlendi
Şu an evde değilim eve gidince deneyip yazabilir miyim burdan size?
ben fm tarafında denemedim, doğrudan metin olarak yazdım. bir deneyin, çalışmasını umuyorum.

bu arada soru metni ile örnek çok uyuşmuyor sanki. örneği baz alarak yazılmış bir kod.

soru net olmadığı için iki alternatif sunmuştum, ikincisinin soruluyor olma ihtimali daha yüksek.
Osman Hocam,benim anladığım (örneğe göre) ; Her bir kayda 1'den başlayıp 68 artarak numara verilecek (son dört rakamın değeri,yani 5668'e ulaşıncaya kadar.Bu da örneğe göre Floor ile 83 kayıt yapıyor)..Tabii doğru anladıysam,toplam kayıt sayısı için aşağıdaki formül kullanılabilir mi?

Floor ( Right ( TABLO::OKUL NUMARASI; 4) / Right ( TABLO::OKUL NUMARASI; 2))
şemsi bey merhaba. ben de 6 kayıt olduğunu düşünüyorum ; çünkü verdiği örnekte her bir numara için ayrı ayrı kayıt yazmış ve son 4 hanesine kadar diyor
Set Variable [ $sayac ; 1 ] bunu nasıl yazıyorum fm'da? sizin kullandığınız türkçe sanırım
tekrar okuyunca ben de o şekilde anladım, örneğe odaklanınca soru detayını atladım sanırım. yalnız floor mu ceiling mi olacak? floor rakama tam ulaşmıyor..
Script Menüsünden Script WorkSpace'i açıp soldaki menüden yeni script ekleyerek yazabilirsiniz. cevaba ekran görüntüsü koydum..

derken mehmet bey'in örnek dosya gönderdiğini farkettim, iş görür sanırım.
...