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
						

Script ile tablo oluşturma sorunu...

+1 oy
837 kez görüntülendi

Merhabalar... Script ile bir tabloya veriler aktarıyorum. Set Variable ve Set Fied ile...Sınıflara öğrencileri yerleştirirken her sınıfın belli bir kapasitesi var ve örneğin 6. sınıflar ve 8. sınıflar aynı sırada oturmayacak gibi koşullar var. Bunlarda sıkıntı yok fakat x sınıfının kapasitesi (sıra sayısı) 15 ve ben bu sınıfa 15 adet 6. sınıf 13 adet 8. sınıf öğrencisi yerleştirmek istiyorum. Bir script oluşturdum loop ile 15 öğrenciyi öncelikle yerleştiriyorum. İkinci loop ile de diğer 13 öğrenciyi yerleştirmeye çalışıyorum fakat döngüden çıkamıyorum. Çeşitli Raporlar alacağım için de dağıtım adlı tablomda yerleştirilen bütün öğrencilerin olması gerekiyor. Yardımcı olursanız sevinirim. Teşekkürler...

12, Kasım, 2015 Scripts kategorisinde Fatih Baştürk (22,610 puan) tarafından soruldu

2 Cevaplar

+2 oy
 
En İyi Cevap
sanırım şöyle.
8. sınıfları atarken

Go to Record/Request/Page              
adımından sonra new record dediğiniz için yeni kayıt atıyor. fakat 6. sınıflar için go to record için bir numara belirtmiyorsunuz.
ya yaptığınız tabloda 6. sınıfları 8. sınıfların peşine new record ile 16-17-18 olarak ekleyin yada loop öncesinde  set variable ile bir sayaç oluşturabilirsiniz.
Set Variable [$a; Value:1] gibi

loop içerisinde de Go to Record/Request/Page [$a]
dediğinizde 1. satırdaki kayda gidecektir. istediğiniz alanları set field ile şekillendirirsiniz.

End loop dan önce de a yı Set Variable [$a; Value:$a+1] ile bir arttırmanız gerekir.
loop un başına if ile $a=15 ise exit loop demelisiniz.

şöyle özetleyeyim.

Set Variable [$a; Value:1]
Loop
Go to Layout [“öğrenci listesi” (öğrenci listesi)]
Enter Find Mode [  ]
Set Field [öğrenci listesi::Sınıfı; "6"]
New Record/Request
Set Field [öğrenci listesi::Durumu; "yerleşti"]
Omit Record
Perform Find [  ]
If [Get ( LastError ) = 401]
Show Custom Dialog [Title:"UYARI"; Message: "6. sınıf öğrencilerinin sınav yeri dağıtımları başarı ile tamamlanmıştır."; Default Button:“TAMAM”, Commit:“Yes”] Exit Script [  ]
End If
Go to Record/Request/Page [Round ( Random * ( Get ( FoundCount ) - 1) ; 0 ) + 1] [No dialog]
Set Variable [$$adı2; Value:öğrenci listesi::Adı
Set Variable [$$soyadı2; Value:öğrenci listesi::Soyadı
Set Variable [$$sınıfı2; Value:öğrenci listesi::Sınıfı]
Set Variable [$$no2; Value:öğrenci listesi::No]
Set Field [öğrenci listesi::Durumu; "yerleşti"]
Go to Layout [“DAĞITIM” (DAĞITIM)]
Go to Record/Request/Page [$a]
Set Field [DAĞITIM::ADI2; $$adı2]
Set Field [DAĞITIM::SOYADI2; $$soyadı2]
Set Field [DAĞITIM::SINIFI2; $$sınıfı2]
Set Field [DAĞITIM::NO2; $$no2]
Exit Loop If [$a = $$YSAY]    
End Loop

kodları işinizi görecektir kanaatindeyim.
12, Kasım, 2015 InDusTry (27,210 puan) tarafından cevaplandı
12, Kasım, 2015 Fatih Baştürk tarafından seçilmiş
Teşekkür ederim.. Eksik yaptığım şey sanırım sayaç oluşturmamakmış. Bunu da öğrenmiş olduk... Tekrar Teşekkürler...
yardımcı olabildiğime sevindim.
iyi çalışmalar.
İkinci bir Sınıf için yerleştirme yapacak isek??
+1 oy
kapasite toplam 15 ve 15 adet 6. sınıf öğrencisini yerleştirdiniz aynı sıraya 8. sınıf öğrencisi yerleşmez kısıtınız varsa 13 adet 8. sınıf öğrencisini aynı sınıfa yerleştiremezsiniz. yanlış mı anladım kısıtlarınızı yanlışımız düzeltebilir misiniz.

Ayrıca yazdığınız scripti kopyalayabilir misiniz, bakıp bilgi vermeye çalışayım.
12, Kasım, 2015 InDusTry (27,210 puan) tarafından cevaplandı
15 sıra olan bir sınıfım var ve her sıraya 2 kişi oturuyor. 15 adet 6. sınıf öğrencisi yerleştirdikten sonra 13 adet 8. sınıf öğrencisini de aynı sıraya yerleştirmek istiyorum.
script acemi işi... :)
Allow User Abort [Off Set Error Capture [On]
 If [ANA SAYFA::SINIF DÜZEYİ = "6. Sınıf - 8. Sınıf"
Go to Layout [“ANA SAYFA” (ANA SAYFA)
Set Variable [$$XSAY; Value:ANA SAYFA::X1
Set Variable [$$derslikadı; Value:ANA SAYFA::Derslik Adı 1
 Loop
Go to Layout [“öğrenci listesi” (öğrenci listesi)]
Enter Find Mode [  ]
Set Field [öğrenci listesi::Sınıfı; "8"]
New Record/Request
Set Field [öğrenci listesi::Durumu; "yerleşti"]
Omit Record
Perform Find [  ]
If [Get ( LastError ) = 401]
Show Custom Dialog [Title:"UYARI"; Message: "8. sınıf öğrencilerinin sınav yeri dağıtımları başarı ile tamamlanmıştır."; Default Button:“TAMAM”, Commit:“Yes”] End If
Go to Record/Request/Page [Round ( Random * ( Get ( FoundCount ) - 1) ; 0 ) + 1] [No dialog]
Set Variable [$$adı; Value:öğrenci listesi::Adı]
Set Variable [$$soyadı; Value:öğrenci listesi::Soyadı]
Set Variable [$$sınıfı; Value:öğrenci listesi::Sınıfı]
Set Variable [$$no; Value:öğrenci listesi::No]
Set Field [öğrenci listesi::Durumu; "yerleşti"]
Go to Layout [“DAĞITIM” (DAĞITIM)]
New Record/Request
Set Field [DAĞITIM::ADI; $$adı]
Set Field [DAĞITIM::SOYADI; $$soyadı]
Set Field [DAĞITIM::SINIFI; $$sınıfı]
Set Field [DAĞITIM::NO; $$no]
Exit Loop If [Get ( RecordNumber ) = $$XSAY]
End Loop
End If
Go to Layout [“ANA SAYFA” (ANA SAYFA)]
Set Variable [$$YSAY; Value:ANA SAYFA::Y1]
Loop
Go to Layout [“öğrenci listesi” (öğrenci listesi)]
Enter Find Mode [  ]
Set Field [öğrenci listesi::Sınıfı; "6"]
New Record/Request
Set Field [öğrenci listesi::Durumu; "yerleşti"]
Omit Record
Perform Find [  ]
If [Get ( LastError ) = 401]
Show Custom Dialog [Title:"UYARI"; Message: "6. sınıf öğrencilerinin sınav yeri dağıtımları başarı ile tamamlanmıştır."; Default Button:“TAMAM”, Commit:“Yes”] Exit Script [  ]
End If
Go to Record/Request/Page [Round ( Random * ( Get ( FoundCount ) - 1) ; 0 ) + 1] [No dialog]
Set Variable [$$adı2; Value:öğrenci listesi::Adı
Set Variable [$$soyadı2; Value:öğrenci listesi::Soyadı
Set Variable [$$sınıfı2; Value:öğrenci listesi::Sınıfı]
Set Variable [$$no2; Value:öğrenci listesi::No]
Set Field [öğrenci listesi::Durumu; "yerleşti"]
Go to Layout [“DAĞITIM” (DAĞITIM)]
Go to Record/Request/Page            BU KISIMDA PROBLEM VAR  
Set Field [DAĞITIM::ADI2; $$adı2]
Set Field [DAĞITIM::SOYADI2; $$soyadı2]
Set Field [DAĞITIM::SINIFI2; $$sınıfı2]
Set Field [DAĞITIM::NO2; $$no2]
Exit Loop If [Get ( RequestCount ) = $$YSAY]    VE BU KISIMDA PROBLEM VAR
End Loop
...