[register.scm] show progressbar when building report

This commit is contained in:
Christopher Lam 2020-09-11 18:21:05 +08:00
parent 444d954116
commit c7b0aca44a

View File

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