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