Gnucash report amendments

Mark Phillips mark at phillipsmarketing.biz
Thu Sep 25 11:47:27 EDT 2014


Christopher,

I had a similar requirement with the Gnucash reports. I generated html
reports for a trust's income statement, balance sheet, and transaction
report for a month of activities and then posted them to a secure web site
for the benefit of the beneficiaries. The stock Gnucash reports had
internal links that did not work outside of Gnucash.

I found it was MUCH easier to write a little Python script to change the
internal Gnucash links to external links between the transaction report and
the income and balance sheet reports than to attempt to change the actual
Gnucash reports. I have attached a copy of the python script which you may
find useful as a starting point for the changes you want to make.

Mark

On Thu, Sep 25, 2014 at 8:13 AM, Geert Janssens <geert.gnucash at kobaltwit.be>
wrote:

> Dear Christopher,
>
> On Sunday 21 September 2014 23:21:53 Christopher Lam wrote:
> > Dear devs
> >
> > First and foremost I am very grateful for the ongoing work on gnucash
> > development.
> >
> > I am most grateful for the "Saved report configuration" UI in 2.6
> > release.
> >
> I'm happy you like the improvements.
>
> > For my workflow I'd like to generate a report, and export HTML to be
> > annotated and sent to accountant. And I have tried hacking the Scheme
> > reports but I find them far too esoteric.
> >
> Heh, it's true that scheme follows a totally different programming
> paradigm than say C, or python or perl.
>
> It takes some time to get used to. After that is actually a relatively
> simple language with powerful features.
>
> > Yet I'd like to request some pointers to hacking scheme. My request
> > relates to making small changes with the default transaction report,
> > illustrated thus or in attachment
> > http://imgur.com/JDbdQGq
> >
> > I feel this is a relatively small change; can anyone show me how?
> There are several aspects of your change request.
>
> I'll take the account part as an example.
> The account header is generated in transaction.scm ,line 156.
> This function uses gnc:html-markup-anchor to create the hyperlink.
> gnc:html-markup-anchor is a function that takes two arguments - the
> address of the hyperlink and the descriptive text.
> The first of these arguments is generated with gnc:account-anchor-text,
> which generates a virtual address for an account. This virtual address
> only works inside gnucash and is what you want to eliminate.
> The second parameter, the descriptive text is provided by the account-
> namestring function.
>
> So what you want to achieve here is to replace the complete gnc:html-
> markup-anchor function with only the account-namestring function and
> then the hyperlink is gone.
>
> Next you will have to figure out how to add another column to the
> account line in which you re-add the gnc:html-markup-anchor (and even
> its wrapper gnc:make-html-text) line in full, except for the account-
> namestring function. Based on your mockup, the descriptive text would be
> the literal string "[Open]".
>
> Adding another column is more tricky. In the same function you see that
> the result of function gnc:make-html-text is passed to add-subheading-
> row.
>
> That function takes the integral data generated by gnc:make-html-text
> and wraps it in a table cell (line 130 in the file). So this function
> effectively expects to get data for only one cell, while you want it to
> accept data for two cells. So that needs extending in some way. One way
> to do it would be to pass it a list of output from gnc:make-html-text
> values and create a cell for each object on the list. Then you can put
> these generated cells on a list together to pass to gnc:html-table-
> append-row/markup!. As you can see in line 135, this function already
> expects a list of cells albeit the current code only passes a list of
> one cell.
>
> With this you will also have to keep in mind that a parameter "width" is
> passed to add-subheading-row. This parameter is used to indicate the
> total amount of columns there are in the final table. Since the row
> cells only have one cell so far, width is used to specify the proper
> col-span (line 131). The moment you add a column with your hyperlinks
> the number of columns will change which you probably have to correct in
> multiple spots in the code.
>
> That's a first descriptive explanation of changes that should happen.
> Will that allow you to make the changes you need ?
>
> On the other hand, if scheme is to esoteric you may consider using
> something like perl to process the generated html before opening the
> file in Excel. It should be fairly easy to write a regular expression
> that strips all html anchors.
>
> Regards,
>
> Geert
> _______________________________________________
> gnucash-user mailing list
> gnucash-user at gnucash.org
> https://lists.gnucash.org/mailman/listinfo/gnucash-user
> -----
> Please remember to CC this list on all your replies.
> You can do this by using Reply-To-List or Reply-All.
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: transaction_linker_3.py
Type: text/x-python
Size: 4592 bytes
Desc: not available
URL: <http://lists.gnucash.org/pipermail/gnucash-user/attachments/20140925/bd54c4a8/attachment.py>


More information about the gnucash-user mailing list