Found a mismatch on I801972COL cRate = 0 laArr[1]= 0.100000000 Cnt:1 Fnd:.F. Recno: 93204 Inv_No: I801737 Salesman: COL Rate: 10 Share: 100 Inv_No + Salesman: I801737COL Variables: I801737COL LEN(fields): 11 LEN(Vars): 11
LOCAL lnRecno, laArr[1] local laArrChk[1], lnRun, lnCheck, llSeekfnd, lcMess, cCinv lnCheck = 10 SELECT Pay_Item DO softseek WITH cpay SCAN WHILE pay_no=cpay DO CASE CASE rtv_pay$'IM' .AND. VAL(Pay_Item.inv_no)<960000 cCinv=rtv_pay+LTRIM(inv_no) camt=amount IF rtv_pay='I' SELECT invoice ELSE SELECT MEMO ENDIF SEEK Pay_Item.inv_no IF gr_total>0 cSnh=cSnh+snh*Pay_Item.amount/gr_total SELECT comision lnRecno = RECNO() SELECT SUM(rate*SHARE/10000) AS crate, count(*) ; WHERE inv_no+salesman = m.ccinv + m.Slsman ; FROM comision INTO ARRAY laArrAs you see, the cCinv variable is declared as local (I just added this declaration) and calculated only once right before the select sum. Why would it change?
>>SELECT Comision >>lnRecno = RECNO() && Dunno what for >> >>local laArrChk [1], lnRun, lnCheck, llSeekfnd, lcMess >>lnCheck = 10 >> >>SELECT SUM(rate*SHARE/10000) AS crate, count(*) ; >> WHERE inv_no+salesman = m.ccinv + m.Slsman ; >> FROM comision INTO ARRAY laArr >> >>if laArr[1,2]>0 >> if laArr[1,2]<=6000 >> SELECT ; >> Recno(), inv_no, salesman, rate, SHARE ; >> , inv_no+salesman, m.ccinv + m.Slsman ; >> , Len(inv_no+salesman), Len(m.ccinv + m.Slsman) ; >> WHERE inv_no+salesman = m.ccinv + m.Slsman ; >> FROM comision INTO ARRAY laArrChk >> assert _tally=laArr[1,2] >> else >> SELECT top m.lnCheck ; >> Recno(), inv_no, salesman, rate, SHARE ; >> , inv_no+salesman, m.ccinv + m.Slsman ; >> , Len(inv_no+salesman), Len(m.ccinv + m.Slsman) ; >> WHERE inv_no+salesman = m.ccinv + m.Slsman ; >> FROM comision INTO ARRAY laArrChk >> endif >>endif >> >>SELECT Comision >>SET ORDER TO com_inv IN comision >>IF SEEK(m.ccinv + m.Slsman) >> SUM (rate*SHARE/10000) TO cRate WHILE inv_no+salesman = m.ccinv + m.Slsman >> llSeekfnd = .t. >>ELSE >> cRate = 0 >>endif >> >>lcRate = EVL(laArr[1],0) >>IF NOT m.cRate = m.lcRate >> =MESSAGEBOX("Found a mismatch on " + m.ccinv + ":" + m.Slsman) >> lcMess = "Found a mismatch on " + m.ccinv + m.Slsman + " cRate = " + ; >> TRANSFORM(m.cRate) + " laArr[1]= " + TRANSFORM(m.lcRate) >> _cliptext = _cliptext + m.lcMess >> =File_Log(m.lcMess ; >> + " Cnt:" + TRANSFORM(laArr[1,2]) >> + " Fnd:" + TRANSFORM(m.llSeekfnd) >> + Chr(13)+chr(10)) >> for lnRun = 1 to min(alen(laArrChk, 1), m.lnCheck) >> =File_Log(":1:" + Transform(laArrChk[m.lnRun, 1]) ; >> +":2:" + Transform(laArrChk[m.lnRun, 2]) ; >> +":3:" + Transform(laArrChk[m.lnRun, 3]) ; >> +":4:" + Transform(laArrChk[m.lnRun, 4]) ; >> +":5:" + Transform(laArrChk[m.lnRun, 5]) ; >> +":6:" + Transform(laArrChk[m.lnRun, 6]) ; >> +":7:" + Transform(laArrChk[m.lnRun, 7]) ; >> +":8:" + Transform(laArrChk[m.lnRun, 8]) ; >> +":9:" + Transform(laArrChk[m.lnRun, 9]) ; >> +Chr(13)+chr(10)) >> next >>ENDIF>>