Gnucash report amendments

Christopher Lam christopher.lck at gmail.com
Tue Sep 30 07:35:51 EDT 2014


Thank you Geert and Mark.
This .py is handy! And I'll keep on gnawing at scheme.
C

On 25 September 2014 23:47, Mark Phillips <mark at phillipsmarketing.biz>
wrote:

> 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.
> >
>
> _______________________________________________
> 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.
>


More information about the gnucash-user mailing list