From: Cecil Westerhof <CecilWesterhof@xs4all.nl>
To: org-mode <emacs-orgmode@gnu.org>
Subject: Re: how to clear computed values
Date: Wed, 11 Jul 2007 10:26:25 +0200 [thread overview]
Message-ID: <1184142385.6253.115.camel@Barebusta.DecebalComp> (raw)
In-Reply-To: <93de834e13e5289b11185b67cf4162b0@science.uva.nl>
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 <CecilWesterhof@xs4all.nl>
next prev parent reply other threads:[~2007-07-11 8:26 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-10 18:38 how to clear computed values Cecil Westerhof
2007-07-11 6:15 ` Carsten Dominik
2007-07-11 8:26 ` Cecil Westerhof [this message]
2007-07-11 8:49 ` Carsten Dominik
2007-07-11 9:02 ` Cecil Westerhof
2007-07-11 10:19 ` Carsten Dominik
2007-07-11 11:02 ` Cecil Westerhof
2007-07-11 11:21 ` Carsten Dominik
2007-07-11 7:22 ` Cecil Westerhof
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1184142385.6253.115.camel@Barebusta.DecebalComp \
--to=cecilwesterhof@xs4all.nl \
--cc=emacs-orgmode@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).