[GNC] Balsheet-eg.scm problem

Geert Janssens geert.gnucash at kobaltwit.be
Thu Aug 23 12:44:12 EDT 2018


Op donderdag 23 augustus 2018 15:17:34 CEST schreef Derek Atkins:
> Hi,
> 
> "Stephen M. Butler" <kg7je at arrl.net> writes:
> > I tripped over a few more typos that seemingly were unrelated to the
> > errors produced.
> > 
> > I can get this set of files to work usurping the balsheet-eg.scm
> > report.  If I change that back to balsheet-fmtd.scm (and fix the name
> > dependencies in the file), it isn't seen by GNC.
> > 
> > Moving the files down to standard-reports throws other errors that I
> > can't figure out.  So, what has to happen to get the report to load
> > independent of balsheet-eg?
> 
> [snip]
> 
> >>>> 3068: 9 [try-module-autoload (gnucash report business-reports) #f]
> >>>> 2404: 8 [save-module-excursion #<procedure 55a8a488cc90 at
> >>>> ice-9/boot-9.scm:3069:17 ()>]
> >>>> 3088: 7 [#<procedure 55a8a488cc90 at ice-9/boot-9.scm:3069:17 ()>]
> >>>> In unknown file:
> >>>>    ?: 6 [primitive-load-path "gnucash/report/business-reports" ...]
> >>>> In business-reports.scm:
> >>>>  123: 5 [#<procedure 55a8a470a7c0 ()>]
> >>>> In ice-9/boot-9.scm:
> >>>> 3589: 4 [process-use-modules (((gnucash report balsheet-eg)))]
> >>>>  705: 3 [map #<procedure 55a8a3761d40 at ice-9/boot-9.scm:3589:25
> >>>> (mif-args)> ((#))]
> >>>> 3590: 2 [#<procedure 55a8a3761d40 at ice-9/boot-9.scm:3589:25
> >>>> (mif-args)> (#)]
> >>>> 2870: 1 [resolve-interface (gnucash report balsheet-eg) #:select ...]
> >>>> In unknown file:
> >>>>    ?: 0 [scm-error misc-error #f ...]
> >>>> 
> >>>> ERROR: In procedure scm-error:
> >>>> ERROR: no code for module (gnucash report balsheet-eg)
> 
> Basically, the issue being reported is that it is trying to find "gnucash
> report balsheet-eg" but it can't.  WHY it thinks there is "no code for
> module" is a different question.  One possibility is caching -- you
> should definitely clear your guile cache.  You can also "touch" the .scm
> files to make them look newer so they get recompiled.
> 
> I was under the impression that all the files in standard-reports get
> auto-loaded.So just pulling a new report in there should be
> sufficient.

That is correct. However Stephen has put his customized balsheet-fmtd.scm 
report in
/usr/local/share/gnucash/scm/gnucash/report
instead of
/usr/local/share/gnucash/scm/gnucash/report/standard-reports

Files in the former directory are not automatically loaded, a historical 
artifact we should one day fix. 

>  HOWEVER the e-guile reports MIGHT be different.

What is different about the e-guile reports is that they are business reports. 
And contrary to the standard reports they are only loaded if explicitly 
mentioned in
/usr/local/share/gnucash/scm/gnucash/report/business-reports.scm
(in a use-modules construct).

> 
> Also, ensure the file name and path matches the module name.
> 
This is the problem IMO. The attached balsheet-fmtd.scm (renamed to balsheet-
eg.scm) defines this module:
(define-module (gnucash report balsheet-fmtd))
As this file replaces balsheet-eg.scm there no longer is a module defined by
(define-module (gnucash report balsheet-eg))

And hence gnucash complains it can't find that one.

To solve this, restore the original balsheet-eg.scm and instead add a line in 
business-reports.scm like this:

(use-modules (gnucash report balsheet-fmtd))

Better still: don't mess with the installation directory at all and instead 
follow
https://wiki.gnucash.org/wiki/Custom_Reports#Loading_Your_Report
to load your custom report.

Regards,

Geert




More information about the gnucash-user mailing list