Christian Stimming's report patch.

This extends the income/expense chart so that you can also view the profit
as a third bar besides the income and expense. Those options are on the
"Display" tab now.


git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@3815 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Dave Peticolas 2001-03-21 22:35:47 +00:00
parent 034eb6859b
commit 42378bf3e6

View File

@ -9,14 +9,15 @@
(gnc:depend "date-utilities.scm") (gnc:depend "date-utilities.scm")
(let ((pagename-general (N_ "General")) (let ((pagename-general (N_ "General"))
(optname-show-net (N_ "Show Net Profit"))
(optname-from-date (N_ "From")) (optname-from-date (N_ "From"))
(optname-to-date (N_ "To")) (optname-to-date (N_ "To"))
(optname-accounts (N_ "Accounts")) (optname-accounts (N_ "Accounts"))
(optname-stepsize (N_ "Step Size")) (optname-stepsize (N_ "Step Size"))
(optname-report-currency (N_ "Report's currency")) (optname-report-currency (N_ "Report's currency"))
(pagename-display (N_ "Display Format")) (pagename-display (N_ "Display"))
(optname-inc-exp (N_ "Show Income/Expense"))
(optname-show-profit (N_ "Show Net Profit"))
(optname-plot-width (N_ "Plot Width")) (optname-plot-width (N_ "Plot Width"))
(optname-plot-height (N_ "Plot Height"))) (optname-plot-height (N_ "Plot Height")))
@ -28,15 +29,9 @@
(lambda (new-option) (lambda (new-option)
(gnc:register-option options new-option)))) (gnc:register-option options new-option))))
(add-option
(gnc:make-simple-boolean-option
pagename-general optname-show-net
"a" (N_ "Show a single bar with net profit instead of
side-by-side bars with income and expense") #f))
(gnc:options-add-date-interval! (gnc:options-add-date-interval!
options pagename-general options pagename-general
optname-from-date optname-to-date "aa") optname-from-date optname-to-date "a")
(add-option (add-option
(gnc:make-multichoice-option (gnc:make-multichoice-option
@ -72,16 +67,26 @@
(gnc:lookup-global-option "International" (gnc:lookup-global-option "International"
"Default Currency")))) "Default Currency"))))
(add-option
(gnc:make-simple-boolean-option
pagename-display optname-inc-exp
"a" (_ "Show Income and Expenses?") #t))
(add-option
(gnc:make-simple-boolean-option
pagename-display optname-show-profit
"b" (_ "Show the net profit?") #f))
(add-option (add-option
(gnc:make-number-range-option (gnc:make-number-range-option
pagename-display optname-plot-width pagename-display optname-plot-width
"a" (_ "Width of plot in pixels.") 400 "c" (_ "Width of plot in pixels.") 400
100 1000 0 1)) 100 1000 0 1))
(add-option (add-option
(gnc:make-number-range-option (gnc:make-number-range-option
pagename-display optname-plot-height pagename-display optname-plot-height
"b" (_ "Height of plot in pixels.") 400 "d" (_ "Height of plot in pixels.") 400
100 1000 0 1)) 100 1000 0 1))
(gnc:options-set-default-section options pagename-general) (gnc:options-set-default-section options pagename-general)
@ -125,8 +130,7 @@
report-currency report-currency
exchange-fn))))) exchange-fn)))))
(let* ((show-net? (op-value pagename-general optname-show-net)) (let* ((to-date-tp (gnc:timepair-end-day-time
(to-date-tp (gnc:timepair-end-day-time
(vector-ref (op-value pagename-general (vector-ref (op-value pagename-general
optname-to-date) 1))) optname-to-date) 1)))
(from-date-tp (gnc:timepair-start-day-time (from-date-tp (gnc:timepair-start-day-time
@ -137,6 +141,8 @@
(report-currency (op-value pagename-general (report-currency (op-value pagename-general
optname-report-currency)) optname-report-currency))
(show-net? (op-value pagename-display optname-show-profit))
(show-incexp? (op-value pagename-display optname-inc-exp))
(height (op-value pagename-display optname-plot-height)) (height (op-value pagename-display optname-plot-height))
(width (op-value pagename-display optname-plot-width)) (width (op-value pagename-display optname-plot-width))
@ -147,7 +153,8 @@
(exchange-fn-internal (gnc:make-exchange-function exchange-alist)) (exchange-fn-internal (gnc:make-exchange-function exchange-alist))
(exchange-fn (lambda (foreign) (exchange-fn (lambda (foreign)
(exchange-fn-internal foreign report-currency))) (exchange-fn-internal foreign report-currency)))
(dates-list (gnc:dateloop (dates-list (gnc:dateloop
;; FIXME: gnc:dateloop is toast (see ML)
(gnc:timepair-start-day-time from-date-tp) (gnc:timepair-start-day-time from-date-tp)
(gnc:timepair-end-day-time (gnc:timepair-end-day-time
(decdate to-date-tp DayDelta)) (decdate to-date-tp DayDelta))
@ -181,20 +188,26 @@
chart (gnc:commodity-get-mnemonic report-currency)) chart (gnc:commodity-get-mnemonic report-currency))
(gnc:html-barchart-set-row-labels-rotated?! chart #t) (gnc:html-barchart-set-row-labels-rotated?! chart #t)
(if show-net? (if show-incexp?
(begin
(gnc:html-barchart-append-column! chart
(map + income-list expense-list))
(gnc:html-barchart-set-col-labels! chart (list (_ "Net Profit")))
(gnc:html-barchart-set-col-colors! chart (list "red")))
(begin (begin
(gnc:html-barchart-append-column! chart income-list) (gnc:html-barchart-append-column! chart income-list)
(gnc:html-barchart-append-column! chart (map - expense-list)) (gnc:html-barchart-append-column! chart (map - expense-list))))
(gnc:html-barchart-set-col-labels! chart (if show-net?
(list (_ "Income") (gnc:html-barchart-append-column!
(_ "Expense"))) chart (map + income-list expense-list)))
(gnc:html-barchart-set-col-colors! chart (list "blue" "red")))) (gnc:html-barchart-set-col-labels!
chart (append
(if show-incexp?
(list (_ "Income") (_ "Expense")) '())
(if show-net?
(list (_ "Net Profit")) '())))
(gnc:html-barchart-set-col-colors!
chart (append
(if show-incexp?
'("blue" "red") '())
(if show-net?
'("green") '())))
(gnc:html-document-add-object! document chart) (gnc:html-document-add-object! document chart)
; (gnc:html-document-add-object! ; (gnc:html-document-add-object!