1)
http://www.medikosoft.com/cetin/FoxyClasses.zip
bu linki kullanarak FoxyClasses'ı indir. Bir yere aç (ben d:/FoxyClasses olarak kullanıyorum).
-Form'a, bir tane locatorgrid koy.
-cSQL propertysine:
Visual Fox Pro
soyadi, adi, sskno, tcno from personel order by 1,2
yaz (soyad, ad seklinde sıralama yapmak istediğini farzettim).
Gridi istersen formatlayıp lKeepFormat .T. yapabilirsin ya da bırak formatı o ayarlasın.
Form'un DataEnvironment'ına personel tablosunu ekle.
followTable: personel
followField: sskNo
olarak ayarla. İşin personel kısmı hazır.
2) Form'a combo ekle. Combonun init'ine:
Visual Fox Pro
with this
.RowSourceType = 3
.RowSource = "select distinct yil from sigorta where sskNo = personel.sskNo order by 1 into cursor crsYillar"
.BoundTo = .T.
.Style = 2
endwith
yaz. Bu yıllar combosu. Adını cmbYillar koy.
Combonun Valid (InteractiveChange de olur):
3) Locatorgrid'in AfterRowColChange:
Visual Fox Pro
lparameters nColIndex
dodefault(m.nColIndex)
thisform.cmbYillar.Requery()
thisform.cmbYillar.ListIndex = 1
thisform.UpdateSigorta()
4) 2.Grid'i koy. Adı grdSigorta olsun. Form.Init'ine:
Visual Fox Pro
with this.grdSigorta
.RecordSourcetype = 4
.RecordSource = "select 1 as ay, gun1 as gun, cast(ucret1 as y) as ucret"+;
" from sigorta where sskNo = personel.sskNo and yil=crsYillar.yil" +;
" union " +;
" select 2 as ay, gun2 as gun, cast(ucret2 as y) as ucret"+;
" from sigorta where sskNo = personel.sskNo and yil=crsYillar.yil" +;
" into cursor crsSigorta"
endwith
5) Form'a metod ekle ve adını "UpdateSigorta" koy. Kodu:
Visual Fox Pro
with thisform.grdSigorta
.RecordSource = .RecordSource
endwith
Bu kadar. Ancak bunları kafamdan yazdım, hiç test etmedim, haberin olsun.