custom reports - negative numbers in red
David J. Bakeman
dbakeman at comcast.net
Tue Apr 16 13:12:35 EDT 2013
Don't know if this will help or not but I found that when changing the
style sheet for the eguile invoice I had to restart gnucash to see any
changes.
On 04/15/2013 10:13 AM, Lt. Goose wrote:
> Hi all,
>
> I've fiddled a bit more with html-styles and style-sheets, but I'm getting
> stuck trying to add a style to the html-document style-sheet. I've been
> able to display negative amounts in red (as easy as using the right class
> type that can be seen in stylesheet-plain.scm , for instance). I finally
> used "number-cell-neg" with the default gnc:make-html-table-cell/markup and
> I got the result I expected.
>
> However, if I try to add a new style to the style-sheet, it never gets
> rendered into the final report (when exporting the html report, the new
> style is nowhere to be seen). I suppose that the style-sheet is loaded
> after the report is rendered, overriding any style set and making it
> useless to add it in the report renderer.
>
> I'd like to display columns alternating background color (in the same
> fashion as it is done with rows). In order to do that easier, I'd like to
> add two new styles to the document's style-sheet. What I've been trying to
> add is something like this for each style:
>
> (gnc:html-document-set-style-text!
> document
> (string-append
> "td.alt-col-number-cell { background: gray }\n" ))
>
> to no avail, because the style td.alt-col-number-cell does not appear in
> the final html document.
>
> I've managed to render the actual td data with the right class values,
> using this:
> (gnc:html-document-set-style!
> document "alt-col-number-cell"
> 'tag "td"
> 'attribute (list "class" "number-cell alt-col"))
>
> and then rendering the value in a cell with
> (gnc:make-html-table-cell/markup "alt-col-number-cell" ...)
>
>
> So, does somebody know if there is a way to add a new style to the
> style-sheet inside the report renderer? I think I could modify the
> stylesheet-plain.scm or the fancy or any of the other scm files, but it
> would be much cleaner if I could do it inside the report code. And of
> course, I'd rather do it using CSS instead of using plain html-markup codes
> inside the report.
>
> Any help or suggestions will be greatly appreciated.
>
> Regards,
> Gus.
>
> 2013/4/5 Carsten Rinke <carsten.rinke at gmx.de>
>
>> Hi Gus,
>>
>> sorry to say, but I think I cannot help you with the style sheets as I did
>> not explore them yet.
>> I am still stuck with writing the clumsy scheme phrases ;-)
>>
>> Once that you find a good way forward, please document your experiences in
>> http://wiki.gnucash.org/wiki/**Custom_Reports<http://wiki.gnucash.org/wiki/Custom_Reports>
>> (and I'd appreciate if you sent an update notification to this list after
>> that)
>>
>> Kind regards,
>> Carsten
>>
>>
>>
>> On 04/04/2013 06:35 PM, Lt. Goose wrote:
>>
>>> Thanks for your help, Carsten.
>>> I was able to display red text for negative amounts (they came from a
>>> commodity-collector, by the way). However, though the result displays
>>> right, the generated html overhead can be a bit heavy (depending on the
>>> time-interval and the number of accounts, and the scheme code turns even
>>> more unreadable ;-) ). I tried with something like this, changing the value
>>> to a formatted html-text:
>>>
>>> (gnc:make-html-table-cell/**markup "number-cell" (gnc:make-html-text
>>> (gnc:html-markup "b" (gnc:html-markup "font color=red"
>>> (gnc:make-gnc-monetary (gnc-default-currency) act-bal))))))
>>>
>>> Of course, using html-text and html-markup, I can render almost any html
>>> code (I'm still struggling to change the background color of a cell),
>>> though it would be nicer if I could just use something like the
>>> "number-cell" markup used for the whole cell (the <td> tag) and let the CSS
>>> stylesheet do the formatting. In other words, is it possible to dynamically
>>> modify/add styles to the report stylesheet (I mean within the report
>>> options or report code, for example)?
>>>
>>> I'd rather include something like this in the report (this is taken from
>>> the html-exported report):
>>>
>>> <style type="text/css">
>>> td.number-cell { font-family: Segoe UI; font-size: 10pt; }
>>> td.number-header { text-align: right; font-family: Segoe UI; font-size:
>>> 10pt; }
>>> td.neg { color: red; }
>>> </style>
>>>
>>> For example, adding a new style for cells:
>>> td.neg-number-cell { font-family: Segoe UI; font-size: 10pt; color: red }
>>>
>>> Is there a way to define such a style? Some kind of gnc:make-html-style
>>> interface?
>>>
>>> Also, notice the "td.neg" style defined in the stylesheet, that I haven't
>>> been able to use. How should I do it?
>>>
>>> Thanks again in advance for your comments.
>>> Gus.
>>>
>>>
>>> 2013/4/3 Carsten Rinke <carsten.rinke at gmx.de <mailto:carsten.rinke at gmx.de
>>>
>>> Hi Gus,
>>>
>>> for text I would start playing around with something like this:
>>>
>>> (gnc:make-html-text
>>> (gnc:html-markup "color=red" "negative amount")
>>> )
>>>
>>> or similar (not sure about the font color commands in HTML).
>>>
>>> If this works for tables I don't know.
>>>
>>> What is the HTML code that you want to achieve?
>>>
>>> Kind regards,
>>> Carsten
>>>
>>>
>>>
>>> On 04/02/2013 06:06 PM, Lt. Goose wrote:
>>>
>>> Hi all,
>>> I've been using gnucash for some months and lately I've been
>>> trying to
>>> create my own reports (learning a bit of scheme in the
>>> meantime). I've
>>> managed to render a table with the data I need (some kind of
>>> cash-flow
>>> report that reports several accounts in columns, sorted by the
>>> date where
>>> at least one transaction took place - so that you know your
>>> total balance
>>> change everyday any transaction happened). I've got it running
>>> now after
>>> some investigation.
>>>
>>> Anyhow, what I'm trying to do now is to format the output in a
>>> fancier way,
>>> but I cannot find the way to format a html-cell with a
>>> negative number
>>> (using the option to display negative numbers in red). For
>>> instance, I'm
>>> writing this and I'm getting a normal cell:
>>>
>>> (total-value (gnc:make-html-table-cell/**markup
>>> "total-number-cell" (car
>>> value)))
>>>
>>> I've tried other markup texts like "neg-total-number-cell" or
>>> simply "neg"
>>> but to no avail. Does anybody know how to format this?
>>>
>>> And it'd be fantastic to have a reference of predefined markup
>>> texts that
>>> are configured in the style sheets.
>>>
>>> Thanks in advance.
>>>
>>> Gus.
>>> ______________________________**_________________
>>> gnucash-user mailing list
>>> gnucash-user at gnucash.org <mailto:gnucash-user at gnucash.**org<gnucash-user at gnucash.org>
>>> https://lists.gnucash.org/**mailman/listinfo/gnucash-user<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