<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1"
 http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
-----BEGIN PGP SIGNED MESSAGE-----<br>
Hash: SHA1<br>
<br>
Shouln'd this kind of work go to the wiki? There will surly be more<br>
people intrested in.<br>
<br>
Regards<br>
<br>
Andreas.<br>
<br>
Larry Evans wrote:<br>
<br>
<span style="white-space: pre;">&gt; On 09/05/2003 01:14 AM, Matthew
Vanecek wrote:<br>
&gt; <br>
&gt;&gt; I've written a simple XSLT transformation for the Gnucash
XML <br>
&gt;&gt; file. It spits out an HTML file with a 4-column table,
"Account<br>
&gt;&gt; Name", "Date Entered", "Number", "Descriptions", "Value". The<br>
&gt;&gt; "Value" column values are preceded by an '='. This makes it
easy<br>
&gt;&gt; to import into OOo Calc, due to the way values are stored in
our<br>
&gt;&gt; XML file.<br>
&gt; <br>
&gt; <br>
&gt; Thanks Matthew,<br>
&gt; <br>
&gt; I've modified it to create a set of tables for each investment.<br>
&gt; Each table makes it fairly easy to calculate the average return
on<br>
&gt; the investment. A simple modification of the stylesheet would
make<br>
&gt; it ideal for use in gnumeric to do the actual calculations.<br>
&gt; <br>
&gt; The stylesheet is attached. Hopefully others will find it useful
<br>
&gt; or modify it, like it did yours, to get exactly what they want.<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt;
----------------------------------------------------------------------<br>
&gt; <br>
&gt; <br>
&gt; &lt;?xml version="1.0"?&gt;<br>
&gt; <br>
&gt; &lt;!-- Copyright (C) 2003 Matt Vanecek<br>
&gt; <br>
&gt; License is hereby granted to freely copy, modify, or distribute <br>
&gt; this work under the terms of the GNU General Public License, as<br>
&gt; found at <a class="moz-txt-link-freetext" href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a>.<br>
&gt; <br>
&gt; ChangeLog: 2005-09-13 Larry Evans WHAT: 1) Downloaded from post
at:<br>
&gt; <br>
&gt; <br>
&gt;
<a class="moz-txt-link-freetext" href="http://article.gmane.org/gmane.comp.gnome.apps.gnucash.devel/10413">http://article.gmane.org/gmane.comp.gnome.apps.gnucash.devel/10413</a><br>
&gt; <br>
&gt; and extracted .xsl file. 2) Renamed. 2005-09-18 Larry Evans
WHAT: <br>
&gt; 1) Restricted accounts to those under "Investments" 2) Grouped<br>
&gt; accounts so each one had transactions table. 3) Added second
table<br>
&gt; for account information, including latest commodity price. WHY: <br>
&gt; 1-3) To allow calculation of average return on investment for
each<br>
&gt; investment from table information for that investment.<br>
&gt; <br>
&gt; --&gt;<br>
&gt; <br>
&gt; &lt;xsl:stylesheet version="1.0"<br>
&gt; xmlns:xsl=<a class="moz-txt-link-rfc2396E" href="http://www.w3.org/1999/XSL/Transform">"http://www.w3.org/1999/XSL/Transform"</a> <br>
&gt; xmlns:gnc=<a class="moz-txt-link-rfc2396E" href="http://www.gnucash.org/XML/gnc">"http://www.gnucash.org/XML/gnc"</a> <br>
&gt; xmlns:cmdty=<a class="moz-txt-link-rfc2396E" href="http://www.gnucash.org/XML/cmdty">"http://www.gnucash.org/XML/cmdty"</a> <br>
&gt; xmlns:price=<a class="moz-txt-link-rfc2396E" href="http://www.gnucash.org/XML/price">"http://www.gnucash.org/XML/price"</a> <br>
&gt; xmlns:act=<a class="moz-txt-link-rfc2396E" href="http://www.gnucash.org/XML/act">"http://www.gnucash.org/XML/act"</a> <br>
&gt; xmlns:trn=<a class="moz-txt-link-rfc2396E" href="http://www.gnucash.org/XML/trn">"http://www.gnucash.org/XML/trn"</a> <br>
&gt; xmlns:split=<a class="moz-txt-link-rfc2396E" href="http://www.gnucash.org/XML/split">"http://www.gnucash.org/XML/split"</a> <br>
&gt; xmlns:ts=<a class="moz-txt-link-rfc2396E" href="http://www.gnucash.org/XML/ts">"http://www.gnucash.org/XML/ts"</a> <br>
&gt; xmlns:cust=<a class="moz-txt-link-rfc2396E" href="http://www.gnucash.org/XML/cust">"http://www.gnucash.org/XML/cust"</a><br>
&gt; <br>
&gt; &lt;xsl:output method="html" indent="yes"
encoding="ISO-8859-1"/&gt;<br>
&gt; <br>
&gt; &lt;xsl:template match="//gnc-v2/gnc:book"&gt; &lt;html&gt; <br>
&gt; &lt;head&gt;&lt;title&gt;Finances
File&lt;/title&gt;&lt;/head&gt; &lt;body&gt;<br>
&gt; <br>
&gt; &lt;xsl:variable name="investments_id"&gt; &lt;xsl:value-of<br>
&gt; select="gnc:account[act:name='Investments']/act:id"/&gt; <br>
&gt; &lt;/xsl:variable&gt;<br>
&gt; <br>
&gt; &lt;xsl:for-each select="gnc:account"&gt; &lt;xsl:sort
select="act:name"/&gt; <br>
&gt; &lt;!-- Only select Investments accounts --&gt; &lt;xsl:if<br>
&gt; test="$investments_id=act:parent"&gt;<br>
&gt; <br>
&gt; &lt;xsl:variable name="act_id"&gt; &lt;xsl:value-of
select="act:id"/&gt; <br>
&gt; &lt;/xsl:variable&gt;<br>
&gt; <br>
&gt; &lt;xsl:variable name="cmdty_id"&gt; &lt;xsl:value-of<br>
&gt; select="act:commodity/cmdty:id"/&gt; &lt;/xsl:variable&gt;<br>
&gt; <br>
&gt; &lt;table border="1"&gt; &lt;caption&gt;account
information&lt;/caption&gt;<br>
&gt; <br>
&gt; &lt;th&gt;name&lt;/th&gt; &lt;th&gt;commodity&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt; &lt;th&gt;on date&lt;/th&gt; <br>
&gt; &lt;tr&gt; &lt;td&gt;&lt;xsl:value-of
select="act:name"/&gt;&lt;/td&gt; &lt;td&gt;&lt;xsl:value-of<br>
&gt; select="$cmdty_id"/&gt;&lt;/td&gt; &lt;td&gt;&lt;xsl:value-of
select= <br>
&gt; "../gnc:pricedb/price [ price:type='last' and<br>
&gt; price:commodity/cmdty:id=$cmdty_id ]/price:value " /&gt;
&lt;/td&gt; <br>
&gt; &lt;td&gt;&lt;xsl:value-of select= "../gnc:pricedb/price [<br>
&gt; price:type='last' and price:commodity/cmdty:id=$cmdty_id <br>
&gt; ]/price:time " /&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt;<br>
&gt; <br>
&gt; &lt;table border="1"&gt; &lt;caption&gt;account
transactions&lt;/caption&gt;<br>
&gt; <br>
&gt; &lt;th&gt;Date Posted&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt; &lt;th&gt;Value&lt;/th&gt; <br>
&gt; &lt;th&gt;Quantity&lt;/th&gt;<br>
&gt; <br>
&gt; &lt;xsl:for-each select="../gnc:transaction"&gt; &lt;xsl:sort<br>
&gt; select="trn:date-posted/ts:date"/&gt;<br>
&gt; <br>
&gt; &lt;xsl:if test="$act_id =
trn:splits/trn:split/split:account"&gt; &lt;tr&gt; <br>
&gt; &lt;td&gt;&lt;xsl:value-of<br>
&gt; select="substring(trn:date-posted/ts:date,1,10)"/&gt;&lt;/td&gt;
<br>
&gt; &lt;td&gt;&lt;xsl:value-of
select="trn:description"/&gt;&lt;/td&gt; <br>
&gt; &lt;td&gt;=&lt;xsl:value-of
select="trn:splits/trn:split/split:value"/&gt;&lt;/td&gt;<br>
&gt; &lt;td&gt;=&lt;xsl:value-of<br>
&gt; select="trn:splits/trn:split/split:quantity"/&gt;&lt;/td&gt;
&lt;/tr&gt; &lt;/xsl:if&gt;<br>
&gt; &lt;/xsl:for-each&gt;<br>
&gt; <br>
&gt; &lt;/table&gt; &lt;HR size="5"/&gt;<br>
&gt; <br>
&gt; &lt;/xsl:if&gt;<br>
&gt; <br>
&gt; &lt;/xsl:for-each&gt;<br>
&gt; <br>
&gt; &lt;/body&gt; &lt;/html&gt; &lt;/xsl:template&gt;<br>
&gt; <br>
&gt; &lt;!-- Root template - weed out the stuff we don't want --&gt; <br>
&gt; &lt;xsl:template match="text() | @*"&gt; &lt;/xsl:template&gt;<br>
&gt; <br>
&gt; &lt;/xsl:stylesheet&gt;<br>
&gt; <br>
&gt; <br>
&gt;
----------------------------------------------------------------------<br>
&gt; <br>
&gt; <br>
&gt; _______________________________________________ gnucash-devel<br>
&gt; mailing list <a class="moz-txt-link-abbreviated" href="mailto:gnucash-devel@gnucash.org">gnucash-devel@gnucash.org</a> <br>
&gt; <a class="moz-txt-link-freetext" href="https://lists.gnucash.org/mailman/listinfo/gnucash-devel">https://lists.gnucash.org/mailman/listinfo/gnucash-devel</a></span><br>
<br>
<br>
-----BEGIN PGP SIGNATURE-----<br>
Version: GnuPG v1.4.1 (GNU/Linux)<br>
Comment: Using GnuPG with Thunderbird - <a class="moz-txt-link-freetext" href="http://enigmail.mozdev.org">http://enigmail.mozdev.org</a><br>
<br>
iD8DBQFDLmhUUmBtSMq5cGURAtkdAKCFi4vEGcRIGuQPpSnegY6lV56tEACgq6rl<br>
uJHjjHHTrEYYcWJGukNafos=<br>
=LLtf<br>
-----END PGP SIGNATURE-----<br>
<br>
</body>
</html>