*** empty log message ***

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@2166 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Dave Peticolas 2000-04-07 21:06:23 +00:00
parent 77130e8dee
commit cf305fbddf
13 changed files with 3160 additions and 3148 deletions

View File

@ -1,3 +1,9 @@
2000-04-07 Dave Peticolas <peticola@cs.ucdavis.edu>
* Makefile.in: changed [ -e filename ] to [ -f filename ]
* src/scm/report.scm: Changed the report format to be a record.
2000-04-05 Dave Peticolas <peticola@cs.ucdavis.edu> 2000-04-05 Dave Peticolas <peticola@cs.ucdavis.edu>
* configure.in: removed check for eperl * configure.in: removed check for eperl

View File

@ -146,24 +146,24 @@ install:
# Put these in the opposite order of precedence. Final bin/gnucash link will # Put these in the opposite order of precedence. Final bin/gnucash link will
# point to the last one that exists... # point to the last one that exists...
-[ -e gnucash.qt.static ] && \ -[ -f gnucash.qt.static ] && \
${MAKE} FLAVOR=qt.static GNC_BINDIR=${GNC_BINDIR} install-bin ${MAKE} FLAVOR=qt.static GNC_BINDIR=${GNC_BINDIR} install-bin
-[ -e gnucash.qt ] && ${MAKE} FLAVOR=qt GNC_BINDIR=${GNC_BINDIR} install-bin -[ -f gnucash.qt ] && ${MAKE} FLAVOR=qt GNC_BINDIR=${GNC_BINDIR} install-bin
-[ -e gnucash.motif.static ] && \ -[ -f gnucash.motif.static ] && \
${MAKE} FLAVOR=motif.static GNC_BINDIR=${GNC_BINDIR} install-bin ${MAKE} FLAVOR=motif.static GNC_BINDIR=${GNC_BINDIR} install-bin
-[ -e gnucash.motif ] && ${MAKE} FLAVOR=motif GNC_BINDIR=${GNC_BINDIR} install-bin -[ -f gnucash.motif ] && ${MAKE} FLAVOR=motif GNC_BINDIR=${GNC_BINDIR} install-bin
-[ -e gnucash.gnome.static ] && \ -[ -f gnucash.gnome.static ] && \
${MAKE} FLAVOR=gnome.static GNC_BINDIR=${GNC_BINDIR} install-bin ${MAKE} FLAVOR=gnome.static GNC_BINDIR=${GNC_BINDIR} install-bin
-[ -e gnucash.gnome ] && ${MAKE} FLAVOR=gnome GNC_BINDIR=${GNC_BINDIR} install-bin -[ -f gnucash.gnome ] && ${MAKE} FLAVOR=gnome GNC_BINDIR=${GNC_BINDIR} install-bin
# Make sure at least one succeeded # Make sure at least one succeeded
[ \ [ \
-e ${GNC_BINDIR}/gnucash.motif -o \ -f ${GNC_BINDIR}/gnucash.motif -o \
-e ${GNC_BINDIR}/gnucash.motif.static -o \ -f ${GNC_BINDIR}/gnucash.motif.static -o \
-e ${GNC_BINDIR}/gnucash.gnome -o \ -f ${GNC_BINDIR}/gnucash.gnome -o \
-e ${GNC_BINDIR}/gnucash.gnome.static -o \ -f ${GNC_BINDIR}/gnucash.gnome.static -o \
-e ${GNC_BINDIR}/gnucash.qt -o \ -f ${GNC_BINDIR}/gnucash.qt -o \
-e ${GNC_BINDIR}/gnucash.qt.static \ -f ${GNC_BINDIR}/gnucash.qt.static \
] ]
$(INSTALL) src/quotes/gnc-prices ${GNC_BINDIR} $(INSTALL) src/quotes/gnc-prices ${GNC_BINDIR}

5941
po/fr.po

File diff suppressed because it is too large Load Diff

View File

@ -854,8 +854,7 @@ xaccReadQIFTransaction (int fd, Account *acc, int guess_name,
* for the very, very first transaction. This also seems to be the case * for the very, very first transaction. This also seems to be the case
* for Quicken 5.0 (and others?). * for Quicken 5.0 (and others?).
*/ */
if (opening_balance) { if (opening_balance && guess_name) {
if (guess_name) {
/* remove square brackets from name, remove carriage return ... */ /* remove square brackets from name, remove carriage return ... */
qifline = &qifline[1]; qifline = &qifline[1];
if ('[' == qifline[0]) { if ('[' == qifline[0]) {
@ -868,7 +867,6 @@ xaccReadQIFTransaction (int fd, Account *acc, int guess_name,
tmp = strchr (qifline, '\n'); tmp = strchr (qifline, '\n');
if (tmp) *tmp = 0x0; if (tmp) *tmp = 0x0;
xaccAccountSetName (acc, qifline); xaccAccountSetName (acc, qifline);
}
} else { } else {
/* locate the transfer account */ /* locate the transfer account */
xfer_acc = xaccGetXferQIFAccount (acc, qifline); xfer_acc = xaccGetXferQIFAccount (acc, qifline);

View File

@ -1,3 +1,23 @@
/********************************************************************\
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as *
* published by the Free Software Foundation; either version 2 of *
* the License, or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License*
* along with this program; if not, contact: *
* *
* Free Software Foundation Voice: +1-617-542-5942 *
* 59 Temple Place - Suite 330 Fax: +1-617-542-2652 *
* Boston, MA 02111-1307, USA gnu@gnu.org *
* *
\********************************************************************/
/* /*
* FILE: * FILE:
* Session.h * Session.h
@ -25,22 +45,6 @@
* Copyright (c) 1998, 1999 Linas Vepstas * Copyright (c) 1998, 1999 Linas Vepstas
*/ */
/********************************************************************\
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as *
* published by the Free Software Foundation; either version 2 of *
* the License, or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License*
* along with this program; if not, write to the Free Software *
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
\********************************************************************/
#ifndef __XACC_SESSION_H__ #ifndef __XACC_SESSION_H__
#define __XACC_SESSION_H__ #define __XACC_SESSION_H__
@ -52,7 +56,7 @@ typedef struct _session Session;
/** PROTOTYPES ******************************************************/ /** PROTOTYPES ******************************************************/
/* /*
* The xaccMallocSession() routine simply mallocs memory for a session object. * The xaccMallocSession() routine simply mallocs memory for a session object.
* The xaccInitSession() routine initializes memry for a session object. * The xaccInitSession() routine initializes memory for a session object.
* The xaccSessionDestroy() routine frees the associated memory. * The xaccSessionDestroy() routine frees the associated memory.
* Note that this routine does *not* free the account group! * Note that this routine does *not* free the account group!
*/ */

View File

@ -17,7 +17,7 @@
(define (gnc:date-get-month datevec) (define (gnc:date-get-month datevec)
(+ (vector-ref datevec 4) 1)) (+ (vector-ref datevec 4) 1))
(define (gnc:date-get-week-day datevec) (define (gnc:date-get-week-day datevec)
(vector-ref datevec 6)) (+ (vector-ref datevec 6) 1))
;; jan 1 == 1 ;; jan 1 == 1
(define (gnc:date-get-year-day datevec) (define (gnc:date-get-year-day datevec)
(+ (vector-ref datevec 7) 1)) (+ (vector-ref datevec 7) 1))

View File

@ -13,8 +13,8 @@
;; to generate the reports menu whenever a new window opens and to ;; to generate the reports menu whenever a new window opens and to
;; figure out what to do when a report needs to be generated. ;; figure out what to do when a report needs to be generated.
;; ;;
;; The key is the string naming the report and the value is the ;; The key is the string naming the report and the value is the report
;; rendering thunk. ;; structure.
(define (gnc:run-report report-name options) (define (gnc:run-report report-name options)
;; Return a string consisting of the contents of the report. ;; Return a string consisting of the contents of the report.
@ -34,22 +34,22 @@
(lambda (item) (display-report-list-item item port)) (lambda (item) (display-report-list-item item port))
lines)))) lines))))
(define (call-report rendering-thunk options) (define (call-report renderer options)
(let ((lines (rendering-thunk options))) (let ((lines (renderer options)))
(report-output->string lines))) (report-output->string lines)))
(let ((report (hash-ref *gnc:_report-info_* report-name))) (let ((report (hash-ref *gnc:_report-info_* report-name)))
(if (not report) (if (not report)
#f #f
(let ((rendering-thunk (gnc:report-rendering-thunk report))) (let ((renderer (gnc:report-renderer report)))
(call-report rendering-thunk options))))) (call-report renderer options)))))
(define (gnc:report-menu-setup win) (define (gnc:report-menu-setup win)
(define menu (gnc:make-menu "_Reports" (list "_Settings"))) (define menu (gnc:make-menu "_Reports" (list "_Settings")))
(define menu-namer (gnc:new-menu-namer)) (define menu-namer (gnc:new-menu-namer))
(define (add-report-menu-item name report)
(define (add-report-menu-item name report)
(let* ((report-string "Report") (let* ((report-string "Report")
(title (string-append (gnc:_ report-string) ": " (gnc:_ name))) (title (string-append (gnc:_ report-string) ": " (gnc:_ name)))
(item #f)) (item #f))
@ -77,14 +77,17 @@
(hash-for-each add-report-menu-item *gnc:_report-info_*)) (hash-for-each add-report-menu-item *gnc:_report-info_*))
(define (gnc:define-report version name option-generator rendering-thunk) (define report-record-structure
(make-record-type "report-record-structure"
; The data items in a report record
'(version name options-generator renderer)))
(define (gnc:define-report . args)
;; For now the version is ignored, but in the future it'll let us ;; For now the version is ignored, but in the future it'll let us
;; change behaviors without breaking older reports. ;; change behaviors without breaking older reports.
;; ;;
;; FIXME: If we wanted to be uber-dynamic we might want to consider ;; The renderer should be a function that accepts one argument,
;; re-generating the menus whenever this function is called. ;; a set of options, and generates the report.
;; The rendering-thunk should be a function that generates the report
;; ;;
;; This code must return as its final value a collection of strings in ;; This code must return as its final value a collection of strings in
;; the form of a list of elements where each element (recursively) is ;; the form of a list of elements where each element (recursively) is
@ -106,17 +109,38 @@
;; ("<html>" "</html>") ;; ("<html>" "</html>")
;; ("<html>" " some text " "</html>") ;; ("<html>" " some text " "</html>")
;; ("<html>" ("some" ("other" " text")) "</html>") ;; ("<html>" ("some" ("other" " text")) "</html>")
(let ((report (vector version name option-generator rendering-thunk)))
(hash-set! *gnc:_report-info_* name report)))
(define (gnc:report-version report) (define (blank-report)
(vector-ref report 0)) ;; Number of #f's == Number of data members
(define (gnc:report-name report) ((record-constructor report-record-structure) #f #f #f #f))
(vector-ref report 1))
(define (gnc:report-options-generator report) (define (args-to-defn in-report-rec args)
(vector-ref report 2)) (let ((report-rec (if in-report-rec
(define (gnc:report-rendering-thunk report) in-report-rec
(vector-ref report 3)) (blank-report))))
(if (null? args)
in-report-rec
(let ((id (car args))
(value (cadr args))
(remainder (cddr args)))
((record-modifier report-record-structure id) report-rec value)
(args-to-defn report-rec remainder)))))
(let ((report-rec (args-to-defn #f args)))
(if (and report-rec
(gnc:report-name report-rec))
(hash-set! *gnc:_report-info_*
(gnc:report-name report-rec) report-rec)
(gnc:warn "gnc:define-report: bad report"))))
(define gnc:report-version
(record-accessor report-record-structure 'version))
(define gnc:report-name
(record-accessor report-record-structure 'name))
(define gnc:report-options-generator
(record-accessor report-record-structure 'options-generator))
(define gnc:report-renderer
(record-accessor report-record-structure 'renderer))
(define (gnc:report-new-options report) (define (gnc:report-new-options report)
(let ((generator (gnc:report-options-generator report))) (let ((generator (gnc:report-options-generator report)))

View File

@ -410,11 +410,7 @@
(string-db 'store 'report-for-and "Report for %s and all subaccounts.") (string-db 'store 'report-for-and "Report for %s and all subaccounts.")
(gnc:define-report (gnc:define-report
;; version 'version 1
1 'name "Account Balance Tracker"
;; Name 'options-generator runavg-options-generator
"Account Balance Tracker" 'renderer average-balance-renderer))
;; Options
runavg-options-generator
;; renderer
average-balance-renderer))

View File

@ -240,30 +240,23 @@
(string-db 'store 'pnl-desc "This page shows your profits and losses.") (string-db 'store 'pnl-desc "This page shows your profits and losses.")
(gnc:define-report (gnc:define-report
;; version 'version 1
1 'name "Balance sheet"
;; Menu name 'options-generator balsht-options-generator
"Balance sheet" 'renderer (lambda (options)
;; Options Generator (generate-balance-sheet-or-pnl
balsht-options-generator (string-db 'lookup 'bal-title)
;; Code to generate the report (string-db 'lookup 'bal-desc)
(lambda (options) options
(generate-balance-sheet-or-pnl (string-db 'lookup 'bal-title) #t)))
(string-db 'lookup 'bal-desc)
options
#t)))
(gnc:define-report (gnc:define-report
;; version 'version 1
1 'name "Profit and Loss"
;; Menu name 'options-generator pnl-options-generator
"Profit and Loss" 'renderer (lambda (options)
;; Options (generate-balance-sheet-or-pnl
pnl-options-generator (string-db 'lookup 'pnl-title)
;; Code to generate the report (string-db 'lookup 'pnl-desc)
(lambda (options) options
(generate-balance-sheet-or-pnl #f))))
(string-db 'lookup 'pnl-title)
(string-db 'lookup 'pnl-desc)
options
#f))))

View File

@ -902,76 +902,79 @@
(make-report-spec (make-report-spec
"Status" (budget-delta-html-proc) 'gnc:report-first budget-report-get-delta))) "Status" (budget-delta-html-proc) 'gnc:report-first budget-report-get-delta)))
(gnc:define-report (define (gnc:budget-renderer options)
;; version (let* ((begindate (gnc:lookup-option options "Report Options" "From"))
1 (enddate (gnc:lookup-option options "Report Options" "To"))
;; Name (begin-date-secs (car (gnc:timepair-canonical-day-time
"Budget" (gnc:option-value begindate))))
;; Options (end-date-secs (car (gnc:timepair-canonical-day-time
budget-report-options-generator (gnc:option-value enddate))))
;; renderer (budget-hash (make-hash-table 313))
(lambda (options) (budget-list '())
(let* ((begindate (gnc:lookup-option options "Report Options" "From")) (update-hash (for-each
(enddate (gnc:lookup-option options "Report Options" "To")) (lambda (entry)
(begin-date-secs (car (gnc:timepair-canonical-day-time (set! budget-list (cons
(gnc:option-value begindate)))) (make-budget-line
(end-date-secs (car (gnc:timepair-canonical-day-time entry
(gnc:option-value enddate)))) (make-empty-budget-report entry))
(budget-hash (make-hash-table 313)) budget-list))
(budget-list '()) (for-each
(update-hash (for-each (lambda (account)
(lambda (entry) (make-budget-hash-entry
(set! budget-list (cons budget-hash account
(make-budget-line (make-budget-line entry
entry (budget-line-get-report
(make-empty-budget-report entry)) (car budget-list)))))
budget-list)) (budget-entry-get-accounts entry)))
(for-each (cdr gnc:budget-entries))))
(lambda (account)
(make-budget-hash-entry
budget-hash account
(make-budget-line entry (budget-line-get-report (car budget-list)))))
(budget-entry-get-accounts entry)))
(cdr gnc:budget-entries))))
(set! budget-list (cons (make-budget-line (car gnc:budget-entries) (set! budget-list (cons (make-budget-line (car gnc:budget-entries)
(make-empty-budget-report (make-empty-budget-report
(car gnc:budget-entries))) (car gnc:budget-entries)))
budget-list)) budget-list))
(budget-calculate-actual! budget-hash (car budget-list) begin-date-secs end-date-secs) (budget-calculate-actual! budget-hash
(car budget-list) begin-date-secs end-date-secs)
(for-each (for-each
(lambda (line) (lambda (line)
(begin (begin
(budget-calculate-nominal! line begin-date-secs end-date-secs) (budget-calculate-nominal! line begin-date-secs end-date-secs)
(budget-calculate-expected! line begin-date-secs end-date-secs) (budget-calculate-expected! line begin-date-secs end-date-secs)
(budget-calculate-delta! line))) (budget-calculate-delta! line)))
budget-list) budget-list)
(let ((report-specs (let ((report-specs
(case (gnc:option-value (case (gnc:option-value
(gnc:lookup-option options "Report Options" "View")) (gnc:lookup-option options "Report Options" "View"))
((full) gnc:budget-full-report-specs) ((full) gnc:budget-full-report-specs)
((balancing) gnc:budget-balance-report-specs) ((balancing) gnc:budget-balance-report-specs)
((status) gnc:budget-status-report-specs) ((status) gnc:budget-status-report-specs)
(else (gnc:debug (list "Invalid view option" (else (gnc:debug (list "Invalid view option"
(gnc:option-value (gnc:option-value
(gnc:lookup-option options "Report Options" "View")))))))) (gnc:lookup-option options
(list "Report Options"
(html-start-document) "View"))))))))
"<p>This is a budget report. It is very preliminary, but you may find it useful. To actually change the budget, currently you have to edit budget-report.scm.</p>" (list
(html-start-table) (html-start-document)
(html-table-row-manual "<p>This is a budget report. It is very preliminary, but you may find it useful. To actually change the budget, currently you have to edit budget-report.scm.</p>"
;;(map-in-order (html-start-table)
(map (html-table-row-manual
(lambda (spec) ;;(map-in-order
(html-cell-header (map
(report-spec-get-header spec))) (lambda (spec)
report-specs)) (html-cell-header
;;(map-in-order (report-spec-get-header spec)))
(budget-html budget-list report-specs) report-specs))
(budget-totals-html (cdr budget-list) report-specs) ;;(map-in-order
(html-end-table) (budget-html budget-list report-specs)
(html-end-document)))))) (budget-totals-html (cdr budget-list) report-specs)
(html-end-table)
(html-end-document)))))
(gnc:define-report
'version 1
'name "Budget"
'options-generator budget-report-options-generator
'renderer gnc:budget-renderer)

View File

@ -111,11 +111,6 @@
(string-db 'store 'net "Net") (string-db 'store 'net "Net")
(gnc:define-report (gnc:define-report
;; version 'version 1
1 'name "Stock Portfolio"
;; Menu name 'renderer folio-renderer))
"Stock Portfolio"
;; Options Generator
#f
;; Renderer
folio-renderer))

View File

@ -355,16 +355,16 @@
(gnc:define-report (gnc:define-report
;; The version of this report. ;; The version of this report.
1 'version 1
;; The name of this report. This will be used, among other things, ;; The name of this report. This will be used, among other things,
;; for making its menu item in the main menu. You need to use the ;; for making its menu item in the main menu. You need to use the
;; untranslated value here! It will be registered and translated ;; untranslated value here! It will be registered and translated
;; elsewhere. ;; elsewhere.
"Hello, World" 'name "Hello, World"
;; The options generator function defined above. ;; The options generator function defined above.
options-generator 'options-generator options-generator
;; The rendering function defined above. ;; The rendering function defined above.
hello-world-renderer)) 'renderer hello-world-renderer))

View File

@ -547,11 +547,7 @@
(string-db 'store 'net-inflow "Net Inflow") (string-db 'store 'net-inflow "Net Inflow")
(gnc:define-report (gnc:define-report
;; version 'version 1
1 'name "Account Transactions"
;; Name 'options-generator trep-options-generator
"Account Transactions" 'renderer gnc:trep-renderer))
;; Options
trep-options-generator
;; renderer
gnc:trep-renderer))