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
						

İlişkili Kayıtların Sonuncusunu Alma

+3 oy
311 kez görüntülendi
Merhabalar,

Şu soruya bir formül bulamadım yardımcı olabilir misiniz?

A table da öğrencilerin kimlik bilgileri var.

B table da da bu öğrencilerin her dersten girdiği sınavlardaki puan gelişimi var. (field isimleri: öğrenci no,ders adı, sınav tarihi, sınav notu)

Bu iki table öğrenci no ile ilişkili.

Ben öğrencilerin B table ındaki her dersten girilen TARİH OLARAK GİRDİĞİM EN SON puanlarını oradan alarak farklı bir layout ta şöyle bir tablo oluşturmak istiyorum:

Ahmet

1.1.2016                   Matematik                95

4.5.2016                   Kimya                      64

3.3.2016                   Türkçe                     88

 

Bildiğim tüm yöntemleri ve script konutlarını denedim, ancak olmadı. List modunda bir layout oluşturdum (Table A dan bilgileri çekiyor), header kısmına öğrenci adlarından ve no larından oluşan bir field yaptım. oradan find ve öğrenci no yu yazınca bu list modundaki layout ta aşağıdaki body kısmında her bir satıra o öğrencinin farklı bir dersten 1 sınav notunu getirdi ekrana. Ancak tarih olarak ilk girdiğim sınav notunu getirdi. ben ise son girdiğim sınav notunu istiyorum.

LAST formülünü denedim beceremedim. script ile şöyle birşey denedim bu da çalışmadı:

set variable öğrenci no $no ---  go to Layout B --- enter find mode -- set field $no -- perform find -- bu aşamadan sonra o öğrencinin tüm dersler tüm notlar listeleniyor. loop ile çözülecek muhtemelen ama devam ettiremedim.

Yardımcı olabilir misiniz? Teşekkür ederim.
21, Mayıs, 2016 Uygulamalar kategorisinde mehmetevli (2,510 puan) tarafından soruldu
21, Mayıs, 2016 Mehmet KAYA tarafından yeniden kategorilendirildi

1 cevap

+4 oy
 
En İyi Cevap

SET ERROR CAPTURE [ON]

SET VARIABLE [$DERS; B::DERS adı]

set variable öğrenci no $no

SET VARIABLE [$DERS; B::DERS ADI]

go to Layout B ---

enter find mode --

set field $no --

SET FILED [DERS ADI ; $DERS]

perform find --

SORT RECORD [TARİH]

GO TO RECORD/REQUETS [LAST]

SET VARIABLE [$NOT ; SINAV NOTU]

GO TO LAYOUT [GİTMEK İSTEDİĞİN LAYOUT]

COMMENT: (NE YAPMAK İSTİYORSUN DAHA ÖNCE METEMETİK İ NOTUNU TAŞIMIŞSAN, ÖNCE Ö ĞRENCİNİN MATEMETİK KAYDINI BUL DEĞİŞTİR. )

ENTER FİND MODE

SET FİLED [OGR. NO ; $NO]

SET FİLED [DERS; $DERS]

PERFORM FİND

SET FİLED [SINAV NOTU; $NOT]


COMMENT: (ÖĞRENCİNİN MATEMETİĞİNİ HİÇ TAŞIMAMIŞ İSEN YENİ KAYIT OLUŞTUR. )


İF [Get(lasterror)=401]

NEW RECORD/REQUEST

SET FILED [ÖGRENCİ NO : $NO]

SET FILED [ders : $DERS;]

SET FILED [SINAV NOTU : $NOT;]

END IF

GO TO LAYOUT [NEREYE İSTERSEN]

21, Mayıs, 2016 Mehmet KAYA (166,370 puan) tarafından cevaplandı
23, Mayıs, 2016 mehmetevli tarafından seçilmiş
Elinize sağlık hocam çok teşekkür ederim. Uygun yerlere Loop ekleyince tam olarak çalıştı.
...