Public oForm oForm = Createobject('myForm') oForm.Show() Define Class myForm As Form DataSession = 2 Height = 300 Width = 480 Add Object label1 As Label With ; Caption = "Principal", Left = 20, Width = 50, Top = 25 Add Object label2 As Label With ; Caption = "Interest", Left = 20, Width = 50, Top = 55 Add Object label3 As Label With ; Caption = "Months", Left = 20, Width = 50, Top = 85 Add Object label4 As Label With ; Caption = "Start", Left = 20, Width = 50, Top = 115 Add Object txtprincipal As TextBox With ; Value = 000000000.000, Left = 80, Top = 25, Width = 100 Add Object txtinterest As TextBox With ; Value = 0, Left = 80, Top = 55, Width = 100 Add Object txtmonths As TextBox With ; Value = 12, Left = 80, Top = 85, Width = 100 Add Object txtstart As TextBox With ; Value = (Date()), Left = 80, Top = 115, Width = 100 Add Object cmdCalculate As CommandButton With ; Top = 145, Left = 80, Caption = "Go" Add Object grddistribution As Grid With ; Height = 280, Left = 190, Top = 5, Visible = .F., Width = 280 Procedure cmdCalculate.Click With Thisform lnPayment = Payment( .txtprincipal.Value,; .txtinterest.Value,; .txtmonths.Value) Create Cursor crsDist (From d, To d, Amount Y) For ix=0 To .txtmonths.Value ldCurrent = Gomonth(.txtstart.Value,m.ix) *? ldCurrent *wait ldFrom = Iif(m.ix =0 , m.ldCurrent, ; Date( Year(m.ldCurrent), Month(m.ldCurrent), 1)) ldTo = Iif(m.ix = .txtmonths.Value, m.ldCurrent,; Gomonth(m.ldCurrent,1)-Day(Gomonth(m.ldCurrent,1))) ************************* Do Case Case m.ix = 0 lnLeft = 30 - (Day(m.ldTo)-Day(m.ldCurrent)) lnAmount = m.lnPayment * ((Day(m.ldTo)-Day(m.ldCurrent))/30) Case m.ix = .txtmonths.Value lnAmount = m.lnPayment * (m.lnLeft/30) Otherwise lnAmount = m.lnPayment ENDCASE Insert Into crsDist (From,To,Amount) ; values ; ( m.ldFrom, m.ldTo,m.lnAmount) Endfor Locate .grddistribution.RecordSource = 'crsDist' .grddistribution.Visible = .T. Endwith Endproc>>hi,
>> >> Insert Into crsDist (From,To,Amount) ; >> values ; >> ( m.ldFrom, m.ldTo,m.lnAmount) >> Endfor >> >> IF month(txtstart)=2 or month(txtstart)=4 or month(txtstart)=6 or month (txtstart)=9 or month(txtstart)=11 and day(txtstart)=1 >> >>use crsDist >>go bottom >>m.val=amount >>delet the last record >> >>go top first record >>amount=amount+m.val >>>>thanks