Looking for feedback for 2-step view style reports

Christian Stimming stimming at tuhh.de
Sun Oct 3 14:26:10 EDT 2010

Dear Matt,

your ideas sound very good so far, but also rather ambitious. My current take 
on the reporting subsystem and definitions of extra levels of abstraction 
before the final rendering is that this problem is a hard one. IMHO every of 
gnucash's currently available levels of abstraction of a report still has 
serious drawbacks. We saw several attempts over the years to define some level 
"which has all the numbers but no rendering yet", but IMHO they all got stuck 
in some clumsy state. Just recently I've been working on defining some 
completely new reports, and - sorry for any fellow developer reading this - it 
still sucks as much as it did 10 years ago. I'd be more than happy to see a 
working implementation which really relieved the report writer from thinking 
about the rendering design or vice versa, but I just think this problem proved 
too hard to be solved so far. I.e. if you can find a good solution, chances 
are good that others are more than happy to incorporate it in here as well.

I think the big problem is that "a data structure (which I'm calling 
docstruct) which consists of a vector full of named lists"  might still not 
yet cover all cases of interest for the report that should be shown to the 
user. For example, names or numbers that should also contain a hyperlink might 
need special treatment - probably your list elements need some sort of 
attributes where things like a hyperlink can go to. Also, the various 
completely different levels of grouping were one issue where the different 
report scm files took completely different approaches, implying that a common 
level of abstraction for that part seems rather difficult.

That being said, the gnucash reporting interface is open for many different 
approaches. We can add a different reporting subsystem for a set of 
complementary reports which we didn't have beforehand, and they can  live in 
parallel to the old existing reports without any difficulties. My advice to 
you is to just go ahead with your ideas and implementing that sort of report 
which you have in mind as an application, without bothering about backward 
compatibility or any of the existing reports. Just go ahead and try your 
ideas, ideally with one particular fully implemented example where we can see 
the results "from the user's point of view". I'm looking forward to hearing 
how things are going.

Best Regards,


Am Saturday 02 October 2010 schrieb Matt Whipple:
>  I'm presently looking to modify the report system so that a semantic
> representation of the data can be returned, and wanted to get some
> feedback from anyone more familiar with the system (or languages
> involved).  My personal goal is to allow for outputting XML, but rather
> than just modify the existing formatting in the reports to use that
> output I'm thinking of changing the report system so that there is a
> clearly defined gathering of data which is then passed to a renderer.
> My thoughts are to represent each document as a data structure (which
> I'm calling docstruct) which consists of a vector full of named lists.
> This would then be complemented by a set or sets of functions in charge
> of populating the data (ultimately possibly updating the app data though
> that falls outside of "reports"), and a set or sets of functions which
> use the data in the structure to render a presentable form.  The names
> within the structure would allow for self-documenting and a decent
> amount of attempted automatic behavior which could be selectively
> overridden (ideally having basic functionality by just creating an empty
> structure with names).  Let me know of any feedback.

More information about the gnucash-devel mailing list