gnucash maint: [register.scm] show progressbar when building report

Christopher Lam clam at code.gnucash.org
Fri Sep 11 06:21:32 EDT 2020


Updated	 via  https://github.com/Gnucash/gnucash/commit/c7b0aca4 (commit)
	from  https://github.com/Gnucash/gnucash/commit/444d9541 (commit)



commit c7b0aca44a5b93ef7f7f35ca325e2848187e31b0
Author: Christopher Lam <christopher.lck at gmail.com>
Date:   Fri Sep 11 18:21:05 2020 +0800

    [register.scm] show progressbar when building report

diff --git a/gnucash/report/reports/standard/register.scm b/gnucash/report/reports/standard/register.scm
index 89dc1ba5b..a65c9d763 100644
--- a/gnucash/report/reports/standard/register.scm
+++ b/gnucash/report/reports/standard/register.scm
@@ -61,6 +61,7 @@
   (vector-ref columns-used 14))
 
 (define columns-used-size 15)
+(define reportname (N_ "Register"))
 
 (define (num-columns-required columns-used)
   (do ((i 0 (+ i 1))
@@ -558,6 +559,7 @@
          (total-value (gnc:make-commodity-collector))
          (debit-value (gnc:make-commodity-collector))
          (credit-value (gnc:make-commodity-collector))
+         (work-to-do (length splits))
          (action-for-num? (qof-book-use-split-action-for-num-field
                            (gnc-get-current-book))))
 
@@ -568,8 +570,11 @@
                         multi-rows? action-for-num? ledger-type?))
 
     (let loop ((splits splits)
+               (work-done 0)
                (odd-row? #t))
 
+      (gnc:report-percent-done (* 100 (/ work-done work-to-do)))
+
       (cond
 
        ;; ----------------------------------
@@ -577,6 +582,7 @@
        ;; add debit/credit totals to the table
        ;; ----------------------------------
        ((null? splits)
+
         (when reg-report-show-totals?
           (add-subtotal-row (G_ "Total Debits") leader table used-columns
                             debit-collector "grand-total" #f)
@@ -597,7 +603,7 @@
        ;; This split should be skipped or the report errors out.  See
        ;; bug #639082
        ((null? (xaccSplitGetAccount (car splits)))
-        (loop (cdr splits) (not odd-row?)))
+        (loop (cdr splits) (1+ work-done) (not odd-row?)))
 
        ;; ----------------------------------
        ;; process the splits list
@@ -638,6 +644,7 @@
              (xaccTransGetSplitList (xaccSplitGetParent current))))
 
           (loop (cdr splits)
+                (1+ work-done)
                 (not odd-row?))))))
     table))
 
@@ -654,6 +661,8 @@
          (title (opt-val "General" "Title"))
          (query (gnc-scm2query query-scm)))
 
+    (gnc:report-starting (G_ reportname))
+
     (qof-query-set-book query (gnc-get-current-book))
 
     (let* ((splits (if journal?
@@ -667,6 +676,8 @@
       (gnc:html-document-add-object! document table)
       (qof-query-destroy query))
 
+    (gnc:report-finished)
+
     document))
 
 (define register-report-guid "22104e02654c4adba844ee75a3f8d173")
@@ -680,7 +691,7 @@
 
 (gnc:define-report
  'version 1
- 'name (N_ "Register")
+ 'name reportname
  'report-guid register-report-guid
  'options-generator options-generator
  'renderer reg-renderer



Summary of changes:
 gnucash/report/reports/standard/register.scm | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)



More information about the gnucash-changes mailing list