Scheduled Transactions Unparsable Formula

John Ralls jralls at ceridwen.us
Mon May 2 01:20:37 EDT 2016


> On May 1, 2016, at 7:13 PM, 子風 <zpsyhapcst at gmail.com> wrote:
> 
> John Ralls 於 2016/5/1 下午 10:29 寫道:
>>> On May 1, 2016, at 1:57 AM, 子風 <zpsyhapcst at gmail.com> wrote:
>>> 
>>> GnuCash 2.6.12
>>> Window 7 32bit
>>> 
>>> When I try to use Scheduled Transactions and make it more automatic.
>>> 
>>> So I modified the "fin.scm" to meet what I need.
>>> 
>>> But I can't do it. It always shows the error message "Couldn't parse redit-formula".
>>> 
>>> The credit-formula is "computeInterestIncrementFixed(10422:i)"
>>> 
>>> However, if I replaced "i" with "-i" like "computeInterestIncrementFixed(10422:-i)", it would be OK.
>>> 
>>> But It is not what I need.
>>> 
>>> There are source code as below. And I run it online working fine.
>>> 
>>> https://repl.it/CLmn/1
>>> 
>>> ;; for fixed rate once in a year
>>> (define ratePublic 0.0116)
>>> 
>>> (define (gnc:futureValueR a t)
>>>    (if (<= t 0)
>> Shouldn't that be "if (>= t 0)"?
> I tried this as below, but it still had the same error message.
> And when I used "computeInterestIncrement" like online example, it still had the same error message.
> (define (gnc:futureValueR a t)
>    (if (> t 0)
>        (round (* (+ 1 ratePublic) (gnc:futureValueR a (- t 1))))
>        a
>     )
> )
>> 
>>>        a
>>>        (round (* (+ 1 ratePublic) (gnc:futureValueR a (- t 1))))
>>>     )
>>> )
>>> 
>>> (define (gnc:computeInterestIncrementFixed a t)
>>>  (let ((thisVal (gnc:futureValueR a t))
>>>        (prevVal (gnc:futureValueR a (- t 1)))
>>>       )
>>>    (- thisVal prevVal)
>>>  )
>>> )
>>> 

Oh, sorry, missed the "a" for the condition being true.

I'm confused. computeInterestIncrement raises "can't parse credit-formula" but computeInterestIncrementFixed doesn't if you pass -i for the second argument but does if you pass i? 

The way you wrote the call above, computeInterestIncrementFixed(10422:i) isn't right, it needs to have spaces around the ':'
like computeInterestIncrementFixed(10422 : i), the parser tokenizes on spaces. Did you just type it without spaces here and had it right in GnuCash?

I can enter computeInterestIncrement(1000 : 100 : 12 : i) and GnuCash doesn't raise an error.

Regards,
John Ralls




More information about the gnucash-devel mailing list