Catch case with empty or zero data lists before handing off to graph code.

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@4281 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Robert Graham Merkel 2001-05-25 07:12:36 +00:00
parent 3c1c2a1a5f
commit 29678f8a6f
2 changed files with 89 additions and 52 deletions

View File

@ -17,6 +17,10 @@
2001-05-25 Robert Graham Merkel <rgmerk@mira.net> 2001-05-25 Robert Graham Merkel <rgmerk@mira.net>
* src/scm/report/average-balance.scm: catch all-zero-data
case, display warning message rather than let the graphing
code catch it.
* src/scm/html-utilities.scm: display report title * src/scm/html-utilities.scm: display report title
string in gnc:html-no-account-warning and string in gnc:html-no-account-warning and
gnc:html-make-empty-data-warning. API changed. gnc:html-make-empty-data-warning. API changed.

View File

@ -293,9 +293,16 @@
(beforebegindate (gnc:timepair-end-day-time (beforebegindate (gnc:timepair-end-day-time
(gnc:timepair-previous-day begindate))) (gnc:timepair-previous-day begindate)))
(all-zeros? #t)
;; startbal will be a commodity-collector ;; startbal will be a commodity-collector
(startbal '())) (startbal '()))
(define (list-all-zeros? alist)
(if (null? alist) #t
(if (not (= 0.0 (car alist)))
#f
(list-all-zeros? (cdr alist)))))
(define (monetary->double foreign-monetary date) (define (monetary->double foreign-monetary date)
(gnc:numeric-to-double (gnc:numeric-to-double
(gnc:gnc-monetary-amount (gnc:gnc-monetary-amount
@ -378,6 +385,11 @@
(col-labels '()) (col-labels '())
(col-colors '())) (col-colors '()))
(if (memq 'AvgBalPlot plot-type) (if (memq 'AvgBalPlot plot-type)
(let
((number-data
(map
(lambda (row) (list-ref row 2)) data)))
(if (not (list-all-zeros? number-data))
(begin (begin
(gnc:html-barchart-append-column! (gnc:html-barchart-append-column!
barchart barchart
@ -386,9 +398,14 @@
(append col-labels (append col-labels
(list (list-ref columns 2)))) (list (list-ref columns 2))))
(set! col-colors (set! col-colors
(append col-colors (list "blue"))))) (append col-colors (list "blue")))
(set! all-zeros? #f)))))
(if (memq 'GainPlot plot-type) (if (memq 'GainPlot plot-type)
(let ((number-data
(map (lambda (row) (list-ref row 7)) data)))
(if (not (list-all-zeros? number-data))
(begin (begin
(gnc:html-barchart-append-column! (gnc:html-barchart-append-column!
barchart barchart
@ -397,13 +414,22 @@
(append col-labels (append col-labels
(list (list-ref columns 7)))) (list (list-ref columns 7))))
(set! col-colors (set! col-colors
(append col-colors (list "green"))))) (append col-colors (list "green")))
(set! all-zeros? #f)))))
(if (memq 'GLPlot plot-type) (if (memq 'GLPlot plot-type)
(begin (let ((debit-data
(map (lambda (row) list-ref row 5) data))
(credit-data
(map (lambda (row) list-ref row 6) data)))
;; debit column ;; debit column
(if (not (and
(list-all-zeros? debit-data)
(list-all-zeros? credit-data)))
(begin
(gnc:html-barchart-append-column! (gnc:html-barchart-append-column!
barchart barchart
(map (lambda (row) (list-ref row 5)) data)) number-data)
(set! col-labels (set! col-labels
(append col-labels (append col-labels
(list (list-ref columns 5)))) (list (list-ref columns 5))))
@ -418,8 +444,11 @@
(append col-labels (append col-labels
(list (list-ref columns 6)))) (list (list-ref columns 6))))
(set! col-colors (set! col-colors
(append col-colors (list "red"))))) (append col-colors (list "red")))
(set all-zeros? #f)))))
(if (not all-zeros?)
(begin
(gnc:html-barchart-set-col-labels! (gnc:html-barchart-set-col-labels!
barchart col-labels) barchart col-labels)
(gnc:html-barchart-set-col-colors! (gnc:html-barchart-set-col-colors!
@ -431,7 +460,11 @@
(gnc:html-barchart-set-width! barchart width) (gnc:html-barchart-set-width! barchart width)
(gnc:html-barchart-set-height! barchart height) (gnc:html-barchart-set-height! barchart height)
(gnc:html-barchart-set-height! barchart height) (gnc:html-barchart-set-height! barchart height)
(gnc:html-document-add-object! document barchart))) (gnc:html-document-add-object! document barchart))
(gnc:html-document-add-object!
document
(gnc:html-make-empty-data-warning
(_ "Average Balance"))))))
;; make a table (optionally) ;; make a table (optionally)
(if show-table? (if show-table?