[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Orgmode] how to clear computed values
From: |
Cecil Westerhof |
Subject: |
Re: [Orgmode] how to clear computed values |
Date: |
Wed, 11 Jul 2007 10:26:25 +0200 |
Op wo, 11-07-2007 te 08:15 +0200, schreef Carsten Dominik:
> If you want to understand why things come out the way they
> do, use formular debugging (this is an option in the menu, but
> cou can also toggle it with `C-C {'). When you then execute
> calculations in the table (for example with `C-u C-c C-c')
> you will get detailed information about variable substitution,
> and you will see the final expression that gets evaluated.
That is a good tip. ;-}
> For example, you are trying things like
>
> (and $1 $2 ...
>
> but of course both the empty string and the number 0 are
> "true" in Lisp, the only thing false in Lisp is "nil".
That explains my problems.
> If you want to fix it, you can, by *really* taking control.
> For example, define the following function that tests
> if a value is not zero
>
> (defun nz (n) (not (= n 0.)))
>
> and then write your table like this:
>
> |---------+------+---------+--------+-------+----------+--------|
> | kmstand | km's | prijs/l | liters | prijs | prijs/km | km/l |
> |---------+------+---------+--------+-------+----------+--------|
> | 155111 | | | | | | |
> | 156146 | 1035 | 102.2 | 62.25 | 63.62 | 6.147 | 16.627 |
> | | | | | | | |
> |---------+------+---------+--------+-------+----------+--------|
> #+TBLFM: $2='(if (and (nz @-1$-1) (nz $1) (> $1 @-1$-1)) (- $1 @-1$-1)
> "");N::$5='(if (and (nz $3) (nz $4)) (format "%.2f" (/ (* $3 $4) 100))
> "");N::$6='(if (and (nz $2) (nz $5)) (format "%.3f" (/ (* $5 100) $2))
> "");N::$7='(if (and (nz $2) (nz $4)) (format "%.3f" (/ $2 $4)) "");N
That works perfect.
> Yes, those equations look longish - use the formula
> editor to edit them.
That is also a nice tool yes.
> Also, consider to put the "#" marker in the first column,
> to get this table to recompute automatically while
> you step through with TAB. Use C-# in the first data line
> to insert the "#" if you want to make sure that your
> existing formulas are modified to reflect the new
> column numbers. The result will be this:
That is also very usefull.
> Hope this helps.
It certainly did.
I made another improvement. It would be nice to have a notification when
there is a problem with kmstand.
I made the folowing:
|---+------------+---------+-------------------+---------+--------+-------+----------+--------|
| | datum | kmstand | km's | prijs/l | liters |
prijs | prijs/km | km/l |
|---+------------+---------+-------------------+---------+--------+-------+----------+--------|
| # | | 155111 | Verkeerde kmstand | | |
| | |
| # | 2007-07-09 | 156146 | 1035 | 102.2 | 62.25 |
63.62 | 6.147 | 16.627 |
| # | | 6953 | Verkeerde kmstand | | |
| | |
| # | | | | | |
| | |
|---+------------+---------+-------------------+---------+--------+-------+----------+--------|
#+TBLFM: $4='(if (and (nz @-1$3) (nz $3)) (if (> $3 @-1$3) (- $3 @-1$3)
"Verkeerde kmstand") "");N::$7='(if (and (nz $5) (nz $6)) (format "%.2f" (/ (*
$5 $6) 100)) "");N::$8='(if (and (nz $4) (nz $7)) (format "%.3f" (/ (* $7 100)
$4)) "");N::$9='(if (and (nz $4) (nz $6)) (format "%.3f" (/ $4 $6)) "");N
In this example the first two digits of kmstand where not input at row 3
and you get a message. But you get also a message at the first row. Is
it possible to circumvent this?
Is it possible to define functions in an org-file? For example: it would
be nice to have more extensive checking on the values. Also the nz could
be defined. It is in my .emacs now, but when I transfer the file to
another computer, there is a risk that it doe not work anymore.
It would be nice if I did input kmstand that with tab you go to prijs/l.
(Skipping fields with formula's.) And when giving tab on the field
liters going to the field kmstand. Is that something that could be made?
--
Cecil Westerhof <address@hidden>
- [Orgmode] how to clear computed values, Cecil Westerhof, 2007/07/10
- Re: [Orgmode] how to clear computed values, Carsten Dominik, 2007/07/11
- Re: [Orgmode] how to clear computed values,
Cecil Westerhof <=
- Re: [Orgmode] how to clear computed values, Carsten Dominik, 2007/07/11
- Re: [Orgmode] how to clear computed values, Cecil Westerhof, 2007/07/11
- Re: [Orgmode] how to clear computed values, Carsten Dominik, 2007/07/11
- Re: [Orgmode] how to clear computed values, Cecil Westerhof, 2007/07/11
- Re: [Orgmode] how to clear computed values, Carsten Dominik, 2007/07/11
Re: [Orgmode] how to clear computed values, Cecil Westerhof, 2007/07/11