Quoting Phil Longstaff <plongst...@rogers.com>:
I played around last night with how reports are loaded in the system.
I basically replaced:
(use-module (gnucash report report-A))
(use-module (gnucash report report-B))
which appears in standard-reports.scm, with
(define (get-report-list) (list
'report-A
'report-B
))
(for-each (lambda (x) (resolve-module (append '(gnucash report) x)))
(get-report-list))
which does nothing new, but does allow me to replace
(get-report-list) with a function which returns the names of all .scm
files. This will then allow a user/developer to just drop a new
report file into the reports directory, restart gnucash, and it will
be picked up. Or, (get-report-list) could read the list of report
file names from a standard-report-names.txt file, which would allow
the user/developer to drop a report file into the reports directory,
add the file name to the standard-report-names.txt, then restart. My
preference is for the former (fewer steps), but a little more
difficult.
The reports directory currently holds all of the report files (both
standard and business) as well as some support files. I think what I
will do is create a 'standard-reports' subdirectory to the reports
directory, and put the standard reports (or symlinks) there.
get-report-list will then have a single directory from which to get
all of the file names.
Comments?
How do you determine the runtime location of this directory?
So long as it can be determined at runtime (and not a compile-time
constant) I think this is a perfectly reasonable idea.
Phil
-derek
--
Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
Member, MIT Student Information Processing Board (SIPB)
URL: http://web.mit.edu/warlord/ PP-ASEL-IA N1NWH
warl...@mit.edu PGP key available
_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel