Thanks for bringing this up, it would be a useful tool.

I get an error using the functions as well

org-recalculate-all-tables:
org-recalculate-all-tables: Wrong number of arguments: (lambda (function) "Apply FUNCTION to the start of all tables in the buffer." (save-excursion (save-restriction (widen) (goto-char (point-min)) (while (re-search-forward org-table-any-line-regexp nil t) (message "Mapping tables: %d%%" (/ (* 100.0 (point)) (buffer-size))) (beginning-of-line 1) (when (looking-at org-table-line-regexp) (save-excursion (funcall function)) (or (looking-at org-table-line-regexp) (forward-char 1))) (re-search-forward org-table-any-border-regexp nil 1)))) (message "Mapping tables: done")), 2

org-iterate-all-tables:
while: Wrong number of arguments: (lambda (function) "Apply FUNCTION to the start of all tables in the buffer." (save-excursion (save-restriction (widen) (goto-char (point-min)) (while (re-search-forward org-table-any-line-regexp nil t) (message "Mapping tables: %d%%" (/ (* 100.0 (point)) (buffer-size))) (beginning-of-line 1) (when (looking-at org-table-line-regexp) (save-excursion (funcall function)) (or (looking-at org-table-line-regexp) (forward-char 1))) (re-search-forward org-table-any-border-regexp nil 1)))) (message "Mapping tables: done")), 2


On 05/05/2010 03:37 PM, Johan Ekh wrote:


Any idea what could be wrong?



Error meassage:

org-recalculate-all-tables: Wrong number of arguments: #[(function) "S(OE~^eb^ÄÅÆ#f:


Best regards,
Johan






On Fri, Apr 30, 2010 at 5:03 PM, Carsten Dominik <carsten.domi...@gmail.com <mailto: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
_______________________________________________
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