API questions
David Goodenough
david.goodenough at linkchoose.co.uk
Fri Jun 10 12:34:26 EDT 2016
On Friday 10 June 2016 09:24:58 John Ralls wrote:
> > On Jun 10, 2016, at 8:43 AM, David Goodenough
> > <david.goodenough at linkchoose.co.uk> wrote:>
> > On Friday 10 June 2016 08:29:01 John Ralls wrote:
> >>> On Jun 10, 2016, at 7:06 AM, David Goodenough
> >>> <david.goodenough at linkchoose.co.uk> wrote:>
> >>>
> >>> On Friday 10 June 2016 06:59:38 John Ralls wrote:
> >>>>> On Jun 10, 2016, at 2:05 AM, David Goodenough
> >>>>> <david.goodenough at linkchoose.co.uk> wrote:
> >>>>>
> >>>>> I notice when looking at the API pages that a method is defined as
> >>>>> starting
> >>>>> at a given line, and then the code below always starts on the next
> >>>>> line,
> >>>>> i.e. missing out the prototype. For example:-
> >>>>>
> >>>>> Definition at line 116 of file print-session.c.
> >>>>>
> >>>>> 117 {
> >>>>> 118 return print_settings;
> >>>>> 119 }
> >>>>>
> >>>>> Would it not be possible to show line 116 as well? This seems to be a
> >>>>> consistent problem throughout the docs.
> >>>>
> >>>> The prototype is in very large print above the description. Repeating
> >>>> it
> >>>> in
> >>>> the listing would be redundant.
> >>>
> >>> OK, missed that. It just looked odd at first glance that the line
> >>> number
> >>> immedately before the code was not in the code that was shown.
> >>>
> >>>>> The reason I was looking was to generate customer reports via the API.
> >>>>> I would like to be able to generate a report for each customer who
> >>>>> either
> >>>>> has a non-zero balance or where some transaction (invoice or receipt
> >>>>> of
> >>>>> payment) happened last month (or since rather since I last ran the
> >>>>> program). I then want to export the report as a PDF. I have looked my
> >>>>> way through the API docs but could not see how to generate reports, or
> >>>>> to
> >>>>> check for the balance or the presence of transactions since a date.
> >>>>>
> >>>>> I found docs on how to create invoices, but also need to be able to
> >>>>> export them as PDFs and could not locate the API for that either. I
> >>>>> notice
> >>>>> in the gnucash XML files that the last direcorty to which invoices (
> >>>>> and
> >>>>> I
> >>>>> guess customer reports ) were exported is stored, is this available
> >>>>> from
> >>>>> the API.
> >>>
> >>> I think having read a bit further that this is in the customer
> >>> dictionary?
> >>>
> >>>>> What I want to be able to write is a program that will generate
> >>>>> reports
> >>>>> for all relevant customers, and then send an email to each customer
> >>>>> who
> >>>>> has either an invoice and/or a report containing both.
> >>>>>
> >>>>> Any pointers gratefully received.
> >>>>
> >>>> PDF generation is provided by (IIRC) libgtk as part of printing
> >>>> support.
> >>>> You won't find the code for that in GnuCash itself.
> >>>
> >>> OK, but I still need to tell it to generate the customer report, and to
> >>> check whether I need to do so?
> >>
> >> Sorry, neither of those questions make sense.
> >
> > I will try to restate them:-
> >
> > 1) From the UI I can request a customer report and tell the UI to export
> > it as a PDF. How do I achieve the same from the API?
>
> The reports module is written in Scheme, so anything having to do with
> reports must use Scheme. That API isn't documented via Doxygen (Doxygen
> doesn't know how to parse Scheme), so you'll have to study the code in
> src/reports. You may find http://wiki.gnucash.org/wiki/Custom_Reports
> helpful
Great, I will have a look and see what is there.
> .
>
> I already told you that GnuCash's API doesn't know how to export PDFs. It
> knows how to write HTML. You'll have to find an external library or utility
> to convert the HTML to PDF.
Yes I know how to convert HTML toPDF, so that is no problem.
> > 2) Looking at the customer report I can see if the report shows a non-zero
> > balance or has transactions in the last month. How can I check the
> > balance
> > and see if there are invoices or receipts for a given customer in the last
> > month though the API?
>
> You will have to extract the logic of the report to replicate its query and
> calculations and test the results.
WIll do,
Thank you
David
> > Obviously I would like to have dataset format independance rather than
> > going direct to the data, so I want to do as much as possible through the
> > API.
> >
> > David
> >
> >> Regards,
> >> John Ralls
More information about the gnucash-user
mailing list