I only have backward dependencies so I tried the first code block.
I put it in ..emacs and tried, but I got a message starting as the message
below.
I could not paste it into the email for some reason...

The tables work as expected when I do it manually.

Any idea what could be wrong?



Error meassage:

org-recalculate-all-tables: Wrong number of arguments: #[(function)
"ŠŒ~ˆebˆÄÅÆ#ƒ:


Best regards,
Johan






On Fri, Apr 30, 2010 at 5:03 PM, Carsten Dominik
<carsten.domi...@gmail.com>wrote:

>
> On Apr 30, 2010, at 4:07 PM, Johan Ekh wrote:
>
>  Hi all,
>> I have a series of tables in a single file. Each table have some fields
>> that depends on fields
>> in the previous table. Thus, if I change something in the first table, I
>> must go down manually
>> and recalculate (or iterate) each table. Is there a way to recalculate all
>> tables in a file simultaneously?
>>
>
>
> Hi Johan,
>
> This should work if the dependence is only backwards.
>
> (defun org-recalculate-all-tables ()
>   (interactive)
>   (org-table-map-tables (lambda () (org-table-recalculate t)) t))
>
> If you have dependencies in both directions, this might work (untested):
>
> (defun org-iterate-all-tables ()
>  (interactive)
>  (let* ((imax 10)
>         (checksum (md5 (buffer-string)))
>         c1
>         (i imax))
>    (catch 'exit
>      (while (> i 0)
>        (setq i (1- i))
>        (org-table-map-tables (lambda () (org-table-recalculate t)) t)
>        (if (equal checksum (setq c1 (md5 (buffer-string))))
>            (progn
>              (message "Convergence after %d iterations" (- imax i))
>              (throw 'exit t))
>          (setq checksum c1)))
>      (error "No convergence after %d iterations" imax))))
>
> If it does, this could be added to org-hacks on Worg.
>
> HTH
>
> - Carsten
>
>
_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

Reply via email to