[Gnucash-changes] r11812 - gnucash/branches/cashutil/cashutil - HTML documentation

Neil Williams codehelp at cvs.gnucash.org
Thu Nov 3 11:09:13 EST 2005


Author: codehelp
Date: 2005-11-03 11:09:11 -0500 (Thu, 03 Nov 2005)
New Revision: 11812

Added:
   gnucash/branches/cashutil/cashutil/website/
   gnucash/branches/cashutil/cashutil/website/cashutil.css
   gnucash/branches/cashutil/cashutil/website/cashutil.html
   gnucash/branches/cashutil/cashutil/website/favicon.png
   gnucash/branches/cashutil/cashutil/website/gnucash.html
   gnucash/branches/cashutil/cashutil/website/images/
   gnucash/branches/cashutil/cashutil/website/images/control_your_finan.jpg
   gnucash/branches/cashutil/cashutil/website/images/logo.png
   gnucash/branches/cashutil/cashutil/website/images/webding.png
   gnucash/branches/cashutil/cashutil/website/index.html
   gnucash/branches/cashutil/cashutil/website/manpages.html
Log:
HTML documentation

Added: gnucash/branches/cashutil/cashutil/website/cashutil.css
===================================================================
--- gnucash/branches/cashutil/cashutil/website/cashutil.css	2005-11-03 11:30:47 UTC (rev 11811)
+++ gnucash/branches/cashutil/cashutil/website/cashutil.css	2005-11-03 16:09:11 UTC (rev 11812)
@@ -0,0 +1,97 @@
+BODY {
+	font-family:"Free Sans",helvetica,verdana,arial,clean,sans-serif;
+	font-size:1em;
+	color:black;
+	background-color:white;
+	border: 0px;
+	margin: 0px;
+}
+#head {
+	background-color: #5D8A76;
+	color: white;
+	font-size:0.9em;
+	padding:0.2em;
+}
+#head a:link {
+	color:white;
+	background-color:transparent;
+	}
+
+#head a:visited {
+	color:white;
+	background-color:transparent;
+	}
+
+#head a:active {
+	color:white;
+	background-color:transparent;
+	}
+#tail {
+	font-size:0.8em;
+	clear:both;
+	float:none;
+	background-color: #5D8A76;
+	color: white;
+	margin-left:0;
+	margin-right:0;
+	padding-top:0.1em;
+	padding-bottom:0.1em;
+	line-height:0.5em;
+}
+#gnclogo {
+	border-style: none;
+	width: 179px;
+	height: 45px;
+	margin-left: 0;
+	margin-top: 0;
+	margin-bottom: 5px;
+	border: 0;
+	padding: 0;
+}
+#news	{
+	float:left;
+	color: white;
+	width: 20%;
+	color: black;
+}
+#general {
+	background:#BBED93;
+	padding-bottom:0.2em;
+}
+.othernews {
+	background-color: white;
+}
+.dot	{
+	border-style:none;
+	width: 8px;
+	height: 8px;
+	margin-left: 8px;
+	margin-right: 8px;
+}
+#content {
+	float:left;
+	width:75%;
+	margin-left:2em;
+	text-align:justify;
+}
+#news LI	{
+	list-style-image:url(images/webding.png);
+}
+#location {
+	padding-left:0.3em;
+}
+#language {
+	 float:right;
+	 margin-right:1em;
+}
+.linktop {
+	position:relative;
+	top:0.5em;
+}
+#gnucash {
+	width:125px;
+	height:125px;
+	padding:1em;
+	border-style:none;
+}
+

Added: gnucash/branches/cashutil/cashutil/website/cashutil.html
===================================================================
--- gnucash/branches/cashutil/cashutil/website/cashutil.html	2005-11-03 11:30:47 UTC (rev 11811)
+++ gnucash/branches/cashutil/cashutil/website/cashutil.html	2005-11-03 16:09:11 UTC (rev 11812)
@@ -0,0 +1,838 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
+<HTML
+><HEAD
+><TITLE
+>cashutil</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
+REL="HOME"
+HREF="index.html"><LINK
+REL="UP"
+TITLE="manpages"
+HREF="manpages.html"><LINK
+REL="PREVIOUS"
+TITLE="manpages"
+HREF="manpages.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+SUMMARY="Header navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+></TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="manpages.html"
+ACCESSKEY="P"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+>&nbsp;</TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><H1
+><A
+NAME="CASHUTIL"
+></A
+>cashutil</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN9"
+></A
+><H2
+>Name</H2
+>cashutil&nbsp;--&nbsp;	Querying GnuCash databases as objects using QOF.
+	</DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN12"
+></A
+><H2
+>synopsis</H2
+><P
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>cashutil</I
+></SPAN
+>
+		[<CODE
+CLASS="OPTION"
+>--version</CODE
+>] |
+		[<CODE
+CLASS="OPTION"
+>-?</CODE
+>|<CODE
+CLASS="OPTION"
+>--help</CODE
+>] |
+		[<CODE
+CLASS="OPTION"
+>--usage</CODE
+>] |
+		[<CODE
+CLASS="OPTION"
+>-i</CODE
+>|<CODE
+CLASS="OPTION"
+>--input</CODE
+>
+		<KBD
+CLASS="USERINPUT"
+>filename</KBD
+>] |
+		[<CODE
+CLASS="OPTION"
+>-l</CODE
+>|<CODE
+CLASS="OPTION"
+>--list</CODE
+>] |
+		[<CODE
+CLASS="OPTION"
+>--explain</CODE
+>] |
+		[<CODE
+CLASS="OPTION"
+>-d</CODE
+>|<CODE
+CLASS="OPTION"
+>--database</CODE
+>
+		<KBD
+CLASS="USERINPUT"
+>string</KBD
+>]
+		[<CODE
+CLASS="OPTION"
+>-t</CODE
+>|<CODE
+CLASS="OPTION"
+>--date</CODE
+>
+		<KBD
+CLASS="USERINPUT"
+>string</KBD
+>]
+		[<CODE
+CLASS="OPTION"
+>-e</CODE
+>|<CODE
+CLASS="OPTION"
+>--exclude</CODE
+>
+		<KBD
+CLASS="USERINPUT"
+>string</KBD
+>]
+		[<CODE
+CLASS="OPTION"
+>-s</CODE
+>|<CODE
+CLASS="OPTION"
+>--sql</CODE
+>
+		<KBD
+CLASS="USERINPUT"
+>string</KBD
+>]
+		[<CODE
+CLASS="OPTION"
+>-f</CODE
+>|<CODE
+CLASS="OPTION"
+>--sql-file</CODE
+>
+		<KBD
+CLASS="USERINPUT"
+>filename</KBD
+>]
+		[<CODE
+CLASS="OPTION"
+>-w</CODE
+>|<CODE
+CLASS="OPTION"
+>--write</CODE
+>
+		<KBD
+CLASS="USERINPUT"
+>filename</KBD
+>]
+	</P
+><P
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>cashutil</I
+></SPAN
+>
+	<CODE
+CLASS="OPTION"
+>--shell</CODE
+>
+	</P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN47"
+></A
+><H2
+>Description</H2
+><P
+>GnuCashUtil converts GnuCash QSF XML to queriable objects.
+	Cashutil writes selected GnuCash data to QSF XML offline storage and
+	runs SQL-type queries on the XML file.
+	</P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN50"
+></A
+><H2
+>Commands</H2
+><P
+>Use exactly one of -i, -l, --shell or --explain.</P
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+><CODE
+CLASS="OPTION"
+>-i</CODE
+>,
+			<CODE
+CLASS="OPTION"
+>--input</CODE
+>
+			<TT
+CLASS="FILENAME"
+>filename</TT
+></DT
+><DD
+><P
+>		Query the offline storage in <TT
+CLASS="FILENAME"
+>filename</TT
+>
+		</P
+></DD
+><DT
+><CODE
+CLASS="OPTION"
+>-l</CODE
+>,
+		<CODE
+CLASS="OPTION"
+>--list</CODE
+></DT
+><DD
+><P
+>		Lists all databases supported by the current QOF framework.
+		Any options are ignored.
+		</P
+></DD
+><DT
+><CODE
+CLASS="OPTION"
+>--explain</CODE
+></DT
+><DD
+><P
+>		List the fields within the specified database and exit, requires -d.
+		</P
+></DD
+><DT
+><CODE
+CLASS="OPTION"
+>--shell</CODE
+></DT
+><DD
+><P
+>Start the QOF interactive shell.</P
+></DD
+></DL
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN78"
+></A
+><H3
+>Shell</H3
+><P
+>	The shell provides interactive data input and export.
+	</P
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+><CODE
+CLASS="OPTION"
+>add</CODE
+> <KBD
+CLASS="USERINPUT"
+>[object]</KBD
+></DT
+><DD
+><P
+>Add a new instance of the object.</P
+></DD
+><DT
+><CODE
+CLASS="OPTION"
+>edit</CODE
+><KBD
+CLASS="USERINPUT"
+> [object]</KBD
+></DT
+><DD
+><P
+>Select one instance and edit the parameter values.</P
+></DD
+><DT
+><CODE
+CLASS="OPTION"
+>delete</CODE
+> <KBD
+CLASS="USERINPUT"
+>[object]</KBD
+></DT
+><DD
+><P
+>Select one instance for deletion.</P
+></DD
+><DT
+><CODE
+CLASS="OPTION"
+>list</CODE
+></DT
+><DD
+><P
+>Synonym for the --list command outside the shell.</P
+></DD
+><DT
+><CODE
+CLASS="OPTION"
+>print</CODE
+> <KBD
+CLASS="USERINPUT"
+>[object]</KBD
+></DT
+><DD
+><P
+>Select one instance and print the parameter values.</P
+></DD
+><DT
+><CODE
+CLASS="OPTION"
+>explain</CODE
+> <KBD
+CLASS="USERINPUT"
+>[object]</KBD
+></DT
+><DD
+><P
+>Synonym for the --explain command outside the shell.</P
+></DD
+><DT
+><CODE
+CLASS="OPTION"
+>load</CODE
+> <KBD
+CLASS="USERINPUT"
+>[filename]</KBD
+></DT
+><DD
+><P
+>		Replace the current book with data from the file.
+        Prompt to save the current book, if any.
+		</P
+></DD
+><DT
+><CODE
+CLASS="OPTION"
+>write</CODE
+> <KBD
+CLASS="USERINPUT"
+>[filename]</KBD
+></DT
+><DD
+><P
+>		      Write out the current book. If no filename is given,
+			  write to the original file. (uses STDOUT if STDIN is used.)
+		</P
+></DD
+><DT
+><CODE
+CLASS="OPTION"
+>merge</CODE
+> <KBD
+CLASS="USERINPUT"
+>[filename]</KBD
+></DT
+><DD
+><P
+>		      Merge data from the file into the current book.
+		</P
+></DD
+><DT
+><CODE
+CLASS="OPTION"
+>sql</CODE
+></DT
+><DD
+><P
+>		 Run a SQL statement.
+		 </P
+></DD
+><DT
+><CODE
+CLASS="OPTION"
+>help</CODE
+> | <CODE
+CLASS="OPTION"
+>?</CODE
+></DT
+><DD
+><P
+>		This screen.
+		</P
+></DD
+><DT
+><CODE
+CLASS="OPTION"
+>quit</CODE
+> | <CODE
+CLASS="OPTION"
+>q</CODE
+> | <CODE
+CLASS="OPTION"
+>exit</CODE
+></DT
+><DD
+><P
+>		         Quit the shell
+		</P
+></DD
+></DL
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN153"
+></A
+><H2
+>Options</H2
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN155"
+></A
+><H3
+>cashutil options</H3
+><P
+>Use -dte, optionally with either -s or -f, followed by -w.
+	  </P
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+><CODE
+CLASS="OPTION"
+>-d</CODE
+>,
+		<CODE
+CLASS="OPTION"
+>--database</CODE
+>
+		<KBD
+CLASS="USERINPUT"
+>string</KBD
+></DT
+><DD
+><P
+>			Shorthand to only query objects within one
+			specific supported database.
+			</P
+></DD
+><DT
+><CODE
+CLASS="OPTION"
+>-t</CODE
+>,
+		<CODE
+CLASS="OPTION"
+>--date</CODE
+>
+		<KBD
+CLASS="USERINPUT"
+>string</KBD
+></DT
+><DD
+><P
+>			Shorthand to only query objects that contain the specified date.
+			Specify dates using YY-MM-DD, YY-MM or just YY. Single digits
+			can omit the leading zero, e.g. 04-12-1, 1st December 2004 - years
+			less than 100 are assumed to be in the 21st century.
+			Years prior to 2000 can be specified as YYYY-MM-DD etc.
+			This value is taken as a range, 05-03-01 includes all times
+			between Tue Mar  1 00:00:00 UTC 2005 and Tue Mar  1 23:59:59 UTC 2005.
+			05-03 includes all dates and times between Tue Mar  1 00:00:00 UTC 2005
+			and Thu Mar 31 23:59:59 UTC 2005. 05 includes all dates and times in 2005.
+			</P
+></DD
+><DT
+><CODE
+CLASS="OPTION"
+>-e</CODE
+>,
+		<CODE
+CLASS="OPTION"
+>--exclude</CODE
+>
+		<KBD
+CLASS="USERINPUT"
+>string</KBD
+></DT
+><DD
+><P
+>			Shorthand to exclude a supported database from the query.
+			</P
+></DD
+><DT
+><CODE
+CLASS="OPTION"
+>-s</CODE
+>,
+		<CODE
+CLASS="OPTION"
+>--sql</CODE
+>
+		<KBD
+CLASS="USERINPUT"
+>string</KBD
+></DT
+><DD
+><P
+>			Specify a SQL query on the command line.
+			</P
+></DD
+><DT
+><CODE
+CLASS="OPTION"
+>-f</CODE
+>,
+		<CODE
+CLASS="OPTION"
+>--sql-file</CODE
+>
+		<KBD
+CLASS="USERINPUT"
+>filename</KBD
+></DT
+><DD
+><P
+>			Specify one or more SQL queries contained in a file.
+			</P
+></DD
+><DT
+><CODE
+CLASS="OPTION"
+>-w</CODE
+>,
+		<CODE
+CLASS="OPTION"
+>--write</CODE
+>
+		<KBD
+CLASS="USERINPUT"
+>filename</KBD
+></DT
+><DD
+><P
+>			Write the results of any query to the file.
+			</P
+></DD
+><DT
+><CODE
+CLASS="OPTION"
+>-v</CODE
+>, <CODE
+CLASS="OPTION"
+>--version</CODE
+></DT
+><DD
+><P
+>			Display version of <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>cashutil</I
+></SPAN
+>.
+		</P
+></DD
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN208"
+></A
+><H3
+>help options</H3
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+><CODE
+CLASS="OPTION"
+>-h</CODE
+>, <CODE
+CLASS="OPTION"
+>--help</CODE
+></DT
+><DD
+><P
+>			Display the help synopsis for <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>cashutil</I
+></SPAN
+>.
+		</P
+></DD
+><DT
+><CODE
+CLASS="OPTION"
+>--usage</CODE
+></DT
+><DD
+><P
+>Display a brief usage message and exit.</P
+></DD
+></DL
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN223"
+></A
+><H2
+>Examples </H2
+><DIV
+CLASS="EXAMPLE"
+><A
+NAME="AEN225"
+></A
+><P
+><B
+>Example 1-1.  List all currently supported databases.</B
+></P
+><P
+>      <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>cashutil</I
+></SPAN
+>
+      <CODE
+CLASS="OPTION"
+>-l</CODE
+>
+    </P
+></DIV
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN230"
+></A
+><H2
+>Author</H2
+><P
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>cashutil</I
+></SPAN
+> was written
+      by Neil Williams <CODE
+CLASS="EMAIL"
+>&#60;<A
+HREF="mailto:linux at codehelp.co.uk"
+>linux at codehelp.co.uk</A
+>&#62;</CODE
+>.
+    </P
+><P
+>This  manual  page  was  written by Neil Williams
+      <CODE
+CLASS="EMAIL"
+>&#60;<A
+HREF="mailto:linux at codehelp.co.uk"
+>linux at codehelp.co.uk</A
+>&#62;</CODE
+>
+    </P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN237"
+></A
+><H2
+>Reporting Bugs</H2
+><P
+>Please do NOT report bugs in cashutil to GnuCash.
+	Report bugs via the QOF-devel mailing list.</P
+><P
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>http://lists.sourceforge.net/lists/listinfo/qof-devel</I
+></SPAN
+>
+    </P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN242"
+></A
+><H2
+>Copyright</H2
+><P
+>This program is free software; you can redistribute it and/or
+		modify it under the terms of the GNU General Public License as
+		published by the Free Software Foundation; either version 2 of  the
+		License, or (at  your option) any later version.
+	</P
+><P
+>This program is distributed in the hope that it will be useful,
+		but WITHOUT ANY WARRANTY; without even the implied warranty of
+		MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+		General Public License for more details.
+	</P
+><P
+>You  should  have  received a copy of the GNU General Public
+		License along with this program; if not, write to the Free Software
+		Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+		USA
+	</P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="manpages.html"
+ACCESSKEY="P"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+ACCESSKEY="H"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>manpages</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="manpages.html"
+ACCESSKEY="U"
+>Up</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>&nbsp;</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file

Added: gnucash/branches/cashutil/cashutil/website/favicon.png
===================================================================
(Binary files differ)


Property changes on: gnucash/branches/cashutil/cashutil/website/favicon.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: gnucash/branches/cashutil/cashutil/website/gnucash.html
===================================================================
--- gnucash/branches/cashutil/cashutil/website/gnucash.html	2005-11-03 11:30:47 UTC (rev 11811)
+++ gnucash/branches/cashutil/cashutil/website/gnucash.html	2005-11-03 16:09:11 UTC (rev 11812)
@@ -0,0 +1,411 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html lang="en_gb"><head>
+<link rel="stylesheet" href="cashutil.css" type="text/css">
+<link rel="icon" href="favicon.png" type="image/x-icon">
+<link rel="shortcut icon" href="favicon.png" type="image/x-icon">
+<meta name="author" content="Neil Williams">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>CashUtil and GnuCash</title>
+</head><body>
+<div id="head">
+<img src="images/logo.png" alt="GnuCash Logo" id="gnclogo">
+<br/><span id="language"> Language:<b>English</b></span>
+<span id="location">Continent: [USA / Europe]</span>
+</div>
+
+<div id="news">
+<div id="general">
+<span class="linktop">
+<img class="dot" src="images/webding.png" alt="marker">
+<b>General Information</b></span>
+<ul>
+<li><a href="index.html">CashUtil home</a></li>
+<li><a href="http://www.gnucash.org/">GnuCash Home </a></li>
+<li><a href="http://qof.sourceforge.net/">QOF home</a></li>
+<li><a href="http://pilot-qof.sourceforge.net/">PilotQOF home</a></li>
+<li><a href="http://code.neil.williamsleesmill.me.uk/preface.html#QOFLIBS">
+QOF Dependencies</a></li>
+<li><a href="http://www.data-freedom.org">Data Freedom</a></li>
+</ul>
+</div>
+
+<div class="othernews">
+<span class="linktop">
+<img class="dot" src="images/webding.png" alt="marker">
+<b>Download</b></span>
+<ul>
+<li><a href="http://code.neil.williamsleesmill.me.uk/cashutil.tar.gz">Package</a></li>
+<li><a href="http://code.neil.williamsleesmill.me.uk/cashutil-source.tar.gz">Source</a></li>
+</ul>
+</div>
+
+<div class="othernews">
+<span class="linktop">
+<img class="dot" src="images/webding.png" alt="marker">
+<b>XML</b></span>
+<ul>
+<li><a href="http://code.neil.williamsleesmill.me.uk/qsf.html">Format</a></li>
+<li><a href="http://qof.sourceforge.net/qsf-object.xsd.xml">Object schema</a></li>
+</ul>
+</div>
+
+<div>
+<span class="linktop">
+<img class="dot" src="images/webding.png" alt="marker">
+<b>Support </b></span>
+<ul><li>
+<a href="http://lists.sourceforge.net/lists/listinfo/qof-devel">Mailing list</a>
+</li>
+<li><a href="manpages.html">Manpage</a></li>
+</ul>
+</div>
+
+<div class="othernews">
+<span class="linktop">
+<img class="dot" src="images/webding.png" alt="marker">
+<b>Development</b></span>
+<ul>
+<li><a href="http://www.linux.codehelp.co.uk/#cashutil">Design</a></li>
+<li><a href="http://code.neil.williamsleesmill.me.uk/cashutil/">Doxygen</a></li>
+</ul>
+</div>
+
+<div class="othernews">
+<span class="linktop">
+<img class="dot" src="images/webding.png" alt="marker">
+<b>GnuCash Information</b></span>
+<ul>
+<li><a href="http://www.gnucash.org/en/links.phtml">Related Financial Software</a></li>
+<li><a href="http://www.gnucash.org/en/articles.phtml">GnuCash in the News</a></li>
+<li><a href="http://www.gnucash.org/en/promote.phtml">GnuCash Banners!</a></li>
+<li><a href="http://www.gnucash.org/en/history.phtml">History &amp; Credits</a></li>
+<li><a href="http://www.gnucash.org/en/quiz-results.phtml">Survey Results</a></li>
+<li><a href="http://www.gnucash.org/en/sizing.phtml">Sizing</a></li>
+</ul>
+</div>
+<a href="http://www.gnucash.org/">
+<img src="images/control_your_finan.jpg" id="gnucash"
+alt="gnucash home page"></a>
+</div>
+
+<div id="content">
+<h1><span class="title">How CashUtil relates to GnuCash</span></h1>
+<h2>Sharing the GnuCash financial logic</h2>
+<p>There has been a long-standing need for a command-line
+interface to GnuCash data. Originally, CashUtil was built as a test-routine
+for QOF but it became increasingly obvious that with a few adjustments to
+file locations and Makefiles, the existing GnuCash source tree could support
+a GUI and a CLI, each installable with or without the other.</p>
+<ol>
+<li>QOF provides the engine but has no financial logic (which makes
+it ideal for it's in other projects like PilotQOF). </li>
+<li>QOF also provides QSF to share data with other projects
+using XML, including PilotQOF.</li>
+<li>CashUtil is linked against the GnuCash source to provide
+the financial objects and ancillary logic.</li>
+<li>CashUtil will also be linked against the GnuCash v2 XML backend</li>
+<li>To achieve this, many changes are required to the existing GnuCash
+source tree.
+<ol style="list-style-type:lower-alpha">
+<li>The existing financial objects, including the business objects, need to
+be collated into a single library that can be shared with CashUtil.</li>
+<li>The existing GnuCash v2 XML backend, including it's business
+object handlers, also need to be collated into a single library.</li>
+<li>Ancillary logic, currently implemented in the GnuCash UI, needs
+to be abstracted into a form that can be installed <b>without</b>
+GnuCash.</li>
+<li>New directories in the source tree and movement of files to
+new locations, plus numerous changes to existing internal GnuCash
+libraries and build rules.</li>
+<li>In addition, QOF is due to be spun-out as a library of it's own
+and this requires other changes in the source. To handle these changes,
+QOF files currently in src/engine in the GnuCash source tree are to
+be moved to lib/qof/ once the G2 branch is merged into CVS HEAD.</li>
+</ol>
+</li>
+<li>Once this is all done, a new set of libraries will be available for
+packaging as a common dependency of CashUtil and GnuCash
+and users should be able to choose to install only CashUtil, only GnuCash
+or both.</li>
+</ol>
+<p>This small test routine has the potential to become a significant
+project with substantial benefits to GnuCash users.</p>
+<p>Additionally, the CLI - including the QOF interactive shell - can be
+easily added to any set of QOF objects to produce another CLI application
+to handle any kind of user data. As it develops, the CLI and shell will
+be folded into PilotQOF and QOFgen to make it even easier to build your
+own CLI for your own data with easy access to data from other QOF
+projects.</p>
+<p>Note also that the
+<a href="http://dwi.sourceforge.net/">DWI project</a> could allow
+the rapid development of GUI projects based on QOF and able to share
+and process data from QOF projects.
+</p>
+
+<div style="float:left;">
+<table border="1" style="border-style:groove;">
+<caption>Files from src/engine also in QOF</caption>
+<colgroup><col><col><col></colgroup>
+<tr><th>File</th><th>Object</th><th>installed</th></tr>
+<tr><td>gnc-date.c</td><td>libqof</td><td>&nbsp;</td></tr>
+<tr><td>gnc-date.h</td><td>&nbsp;</td><td>include</td></tr>
+<tr><td>gnc-engine-util.c</td><td>libqof</td><td>&nbsp;</td></tr>
+<tr><td>gnc-engine-util.h</td><td>&nbsp;</td><td>include</td></tr>
+<tr><td>gnc-event.c</td><td>libqof</td><td>&nbsp;</td></tr>
+<tr><td>gnc-event.h</td><td>&nbsp;</td><td>include</td></tr>
+<tr><td>gnc-event-p.h</td><td>&nbsp;</td><td>&nbsp;</td></tr>
+<tr><td>gnc-numeric.c</td><td>libqof</td><td>&nbsp;</td></tr>
+<tr><td>gnc-numeric.h</td><td>&nbsp;</td><td>include</td></tr>
+<tr><td>gnc-trace.c</td><td>libqof</td><td>&nbsp;</td></tr>
+<tr><td>gnc-trace.h</td><td>&nbsp;</td><td>include</td></tr>
+<tr><td>guid.c</td><td>libqof</td><td>&nbsp;</td></tr>
+<tr><td>guid.h</td><td>&nbsp;</td><td>include</td></tr>
+<tr><td>kvp_frame.c</td><td>libqof</td><td>&nbsp;</td></tr>
+<tr><td>kvp_frame.h</td><td>&nbsp;</td><td>include</td></tr>
+<tr><td>kvp-util.c</td><td>libqof</td><td>&nbsp;</td></tr>
+<tr><td>kvp-util.h</td><td>&nbsp;</td><td>include</td></tr>
+<tr><td>kvp-util-p.h</td><td>&nbsp;</td><td>&nbsp;</td></tr>
+<tr><td>md5.c</td><td>libqof</td><td>&nbsp;</td></tr>
+<tr><td>md5.h</td><td>&nbsp;</td><td>&nbsp;</td></tr>
+<tr><td>qofbackend.c</td><td>libqof</td><td>&nbsp;</td></tr>
+<tr><td>qofbackend.h</td><td>&nbsp;</td><td>include</td></tr>
+<tr><td>qofbackend-p.h</td><td>&nbsp;</td><td>&nbsp;</td></tr>
+<tr><td>qof-be-utils.h</td><td>&nbsp;</td><td>include</td></tr>
+<tr><td>qofbook.c</td><td>libqof</td><td>&nbsp;</td></tr>
+<tr><td>qofbook.h</td><td>&nbsp;</td><td>include</td></tr>
+<tr><td>qof_book_merge.c</td><td>libqof</td><td>&nbsp;</td></tr>
+<tr><td>qof_book_merge.h</td><td>&nbsp;</td><td>include</td></tr>
+<tr><td>qofbook-p.h</td><td>&nbsp;</td><td>&nbsp;</td></tr>
+<tr><td>qofchoice.c</td><td>libqof</td><td>&nbsp;</td></tr>
+<tr><td>qofchoice.h</td><td>&nbsp;</td><td>include</td></tr>
+<tr><td>qofclass.c</td><td>libqof</td><td>&nbsp;</td></tr>
+<tr><td>qofclass.h</td><td>&nbsp;</td><td>include</td></tr>
+<tr><td>qofclass-p.h</td><td>&nbsp;</td><td>&nbsp;</td></tr>
+<tr><td>qofgobj.c</td><td>libqof</td><td>&nbsp;</td></tr>
+<tr><td>qofgobj.h</td><td>&nbsp;</td><td>include</td></tr>
+<tr><td>qof.h</td><td>&nbsp;</td><td>include</td></tr>
+<tr><td>qofid.c</td><td>libqof</td><td>&nbsp;</td></tr>
+<tr><td>qofid.h</td><td>&nbsp;</td><td>include</td></tr>
+<tr><td>qofid-p.h</td><td>&nbsp;</td><td>include</td></tr>
+<tr><td>qofinstance.c</td><td>libqof</td><td>&nbsp;</td></tr>
+<tr><td>qofinstance.h</td><td>&nbsp;</td><td>include</td></tr>
+<tr><td>qofinstance-p.h</td><td>&nbsp;</td><td>include</td></tr>
+<tr><td>qofmath128.c</td><td>&nbsp;</td><td>&nbsp;</td></tr>
+<tr><td>qofmath128.h</td><td>&nbsp;</td><td>&nbsp;</td></tr>
+<tr><td>qofobject.c</td><td>libqof</td><td>&nbsp;</td></tr>
+<tr><td>qofobject.h</td><td>&nbsp;</td><td>include</td></tr>
+<tr><td>qofobject-p.h</td><td>&nbsp;</td><td>&nbsp;</td></tr>
+<tr><td>qofquery.c</td><td>libqof</td><td>&nbsp;</td></tr>
+<tr><td>qofquerycore.c</td><td>libqof</td><td>&nbsp;</td></tr>
+<tr><td>qofquerycore.h</td><td>&nbsp;</td><td>include</td></tr>
+<tr><td>qofquerycore-p.h</td><td>&nbsp;</td><td>&nbsp;</td></tr>
+<tr><td>qofquery-deserial.c</td><td>&nbsp;</td><td>&nbsp;</td></tr>
+<tr><td>qofquery-deserial.h</td><td>&nbsp;</td><td>&nbsp;</td></tr>
+<tr><td>qofquery.h</td><td>&nbsp;</td><td>include</td></tr>
+<tr><td>qofquery-p.h</td><td>&nbsp;</td><td>&nbsp;</td></tr>
+<tr><td>qofquery-serialize.c</td><td>&nbsp;</td><td>&nbsp;</td></tr>
+<tr><td>qofquery-serialize.h</td><td>&nbsp;</td><td>&nbsp;</td></tr>
+<tr><td>qofsession.c</td><td>libqof</td><td>&nbsp;</td></tr>
+<tr><td>qofsession.h</td><td>&nbsp;</td><td>include</td></tr>
+<tr><td>qofsession-p.h</td><td>&nbsp;</td><td>&nbsp;</td></tr>
+<tr><td>qofsql.c</td><td>libqof</td><td>&nbsp;</td></tr>
+<tr><td>qofsql.h</td><td>&nbsp;</td><td>include</td></tr>
+</table>
+</div>
+
+<div style="float:right;">
+<table border="1" style="border-style:groove;">
+<caption>Locations of cashutil/src/objects files in GnuCash</caption>
+<colgroup><col><col><col><col></colgroup>
+<tr><th>File</th><th>GnuCash engine</th><th>Business</th></tr>
+<tr><td>Account.c</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>Account.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>AccountP.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>cap-gains.c</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>cap-gains.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>FreqSpec.c</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>FreqSpec.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>FreqSpecP.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>gncAddress.c</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gncAddress.h</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gncAddressP.h</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gncBillTerm.c</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gncBillTerm.h</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gncBillTermP.h</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gnc-commodity.c</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>gnc-commodity.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>gncCustomer.c</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gncCustomer.h</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gncCustomerP.h</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gncEmployee.c</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gncEmployee.h</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gncEmployeeP.h</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gnc-engine.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>gncEntry.c</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gncEntry.h</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gncEntryP.h</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gnc-filepath-utils.c</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>gnc-filepath-utils.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>gncInvoice.c</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gncInvoice.h</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gncInvoiceP.h</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gncJob.c</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gncJob.h</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gncJobP.h</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gnc-lot.c</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>gnc-lot.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>gnc-lot-p.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>gncOrder.c</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gncOrder.h</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gncOrderP.h</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gncOwner.c</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gncOwner.h</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gncOwnerP.h</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gnc-pricedb.c</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>gnc-pricedb.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>gnc-pricedb-p.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>gncTaxTable.c</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gncTaxTable.h</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gncTaxTableP.h</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gncVendor.c</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gncVendor.h</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>gncVendorP.h</td><td>&nbsp;</td><td>business-core</td></tr>
+<tr><td>Group.c</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>Group.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>GroupP.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>iso-4217-currencies.c</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>messages.c</td><td>src/engine</td><td>&nbsp;</td></tr>
+<tr><td>messages.h</td><td>src/engine</td><td>&nbsp;</td></tr>
+<tr><td>policy.c</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>policy.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>policy-p.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>Query.c</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>QueryCore.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>Query.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>QueryNew.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>QueryObject.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>QueryP.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>SchedXaction.c</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>SchedXaction.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>SchedXactionP.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>Scrub2.c</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>Scrub2.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>Scrub3.c</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>Scrub3.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>Scrub.c</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>Scrub.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>ScrubP.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>SX-book.c</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>SX-book.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>SX-book-p.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>SX-ttinfo.c</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>SX-ttinfo.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>Transaction.c</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>Transaction.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>TransactionP.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>TransLog.c</td><td>src/engine/</td><td>&nbsp;</td></tr>
+<tr><td>TransLog.h</td><td>src/engine/</td><td>&nbsp;</td></tr>
+</table>
+</div>
+
+<div style="clear:both;">
+<p>The above changes could be handled mostly in Makefile changes,
+the single CashUtil object library could be formed from two shared
+libraries, one built in src/engine and one in src/business/business-core
+but questions remain about how the other files in src/engine can be
+handled:</p>
+</div>
+<div>
+<table border="1" style="border-style:groove;" width="75%">
+<caption>Files remaining in src/engine after all moves.</caption>
+<colgroup><col><col><col><col></colgroup>
+<tr><th>File</th><th>Comment</th></tr>
+<tr><td>engine-helpers.c</td><td>g-wrap helper functions</td></tr>
+<tr><td>engine-helpers.h</td><td>g-wrap helper functions</td></tr>
+<tr><td>glib-helpers.c</td><td>g-wrap helper functions</td></tr>
+<tr><td>glib-helpers.h</td><td>g-wrap helper functions</td></tr>
+<tr><td>gnc-associate-account.c</td><td>TOTALLY UNTESTED</td></tr>
+<tr><td>gnc-associate-account.h</td><td>TOTALLY UNTESTED</td></tr>
+<tr><td>gnc-book.h</td><td>Redefines QOF functions with gnc prefix</td></tr>
+<tr><td>gnc-budget-book.c</td><td>Budgets</td></tr>
+<tr><td>gnc-budget-book.h</td><td>Budgets</td></tr>
+<tr><td>gnc-budget-book-p.h</td><td>Budgets</td></tr>
+<tr><td>gnc-budget.c</td><td>Budgets</td></tr>
+<tr><td>gnc-budget-cat.c</td><td>Budgets</td></tr>
+<tr><td>gnc-budget-cat.h</td><td>Budgets</td></tr>
+<tr><td>gnc-budget-cat-p.h</td><td>Budgets</td></tr>
+<tr><td>gnc-budget.h</td><td>Budgets</td></tr>
+<tr><td>gnc-budget-period.c</td><td>Budgets</td></tr>
+<tr><td>gnc-budget-period.h</td><td>Budgets</td></tr>
+<tr><td>gnc-budget-period-p.h</td><td>Budgets</td></tr>
+<tr><td>gnc-budget-period-value.c</td><td>Budgets</td></tr>
+<tr><td>gnc-budget-period-value.h</td><td>Budgets</td></tr>
+<tr><td>gnc-budget-period-value-p.h</td><td>Budgets</td></tr>
+<tr><td>gnc-budget-p.h</td><td>Budgets</td></tr>
+<tr><td>gnc-engine.c</td><td>initialization for Gnucash, not for CashUtil</td></tr>
+<tr><td>gnc-hooks.c</td><td>Glib hook functions</td></tr>
+<tr><td>gnc-hooks.h</td><td>Glib hook functions</td></tr>
+<tr><td>gnc-hooks-scm.h</td><td>Glib hook functions</td></tr>
+<tr><td>GNCId.h</td><td>Redefines QOF types with gnc prefix</td></tr>
+<tr><td>gncmod-engine.c</td><td>initialization for the Engine module</td></tr>
+<tr><td>gncObject.h</td><td>Redefines QOF types with gnc prefix</td></tr>
+<tr><td>gnc-session.h</td><td>Redefines QOF functions with gnc prefix</td></tr>
+<tr><td>gnc-session-scm.c</td><td>Scheme specific code</td></tr>
+<tr><td>gnc-session-scm.h</td><td>Scheme specific code</td></tr>
+<tr><td>gw-engine.c</td><td>Generated by G-Wrap</td></tr>
+<tr><td>gw-engine.h</td><td>Generated by G-Wrap</td></tr>
+<tr><td>gw-kvp.c</td><td>Generated by G-Wrap</td></tr>
+<tr><td>gw-kvp.h</td><td>Generated by G-Wrap</td></tr>
+<tr><td>kvp-scm.c</td><td>Generated by G-Wrap</td></tr>
+<tr><td>kvp-scm.h</td><td>Generated by G-Wrap</td></tr>
+<tr><td>Period.c</td><td>poorly tested</td></tr>
+<tr><td>Period.h</td><td>poorly tested</td></tr>
+</table>
+</div>
+
+<div>
+<h2>Current Hypothesis</h2>
+<p>The following is just a summary of my ideas on how CashUtil could share
+financial logic with GnuCash - with as few changes to the source tree as
+possible and retaining as much CVS history as possible.</p>
+<ol>
+<li>Those files that <b>redefine QOF</b> functions, defines or types with GNC
+prefixes can be retained by GnuCash (possibly deprecating the old names).</li>
+<li>The <b>G-Wrap</b> files can still be generated in situ - as long as they are
+then compiled into a separate library that is not linked against CashUtil.</li>
+<li><b>Scheme specific code</b> could be treated like the G-Wrap code</li>
+<li><b>Budgets</b> may or may not end up in CashUtil - it may not be appropriate to
+port Budgets to a CLI.</li>
+<li>The <b>engine module</b> would be GnuCash only - if it is still used. It could
+incorporate the same libraries as CashUtil with the extra code from these
+excluded files.</li>
+<li>The <b>files from gnucash/src/engine that are also in QOF</b> would be moved
+from src/engine into lib/qof and later removed completely when GnuCash links against
+QOF as an external library.</li>
+<li>Further changes in the <b>GnuCash XML v2 backend</b> (possibly split in
+the same way as the object library between src/backend/file and
+src/business/business-core/file) will remove the need to load the current
+backend using GnuCash specific code - it could be loaded in the same manner
+as QSF. (This will be necessary to use QOF as an external library.)</li>
+<li>Using the <b>business objects</b> as a separate library could offer the
+ability to retain the current Business module for GnuCash whilst integrating
+the business objects tightly into CashUtil.</li>
+</ol>
+<h3>Note</h3>
+<p>None of the above has yet been tested in the real tree and some of it
+may never work, it's just a set of ideas.</p>
+</div>
+
+</div>
+
+<div style="clear:both;float:none;">&nbsp;</div>
+<div id="tail">
+<p style="float:right;padding-right:1em;">
+<a href='http://validator.w3.org/check/referer'>Validate</a></p>
+<p style="text-align:center;"><b>Copyright &copy; 2005 Neil Williams</b></p>
+<p style="text-align:center;">Bugs or problem reports to:
+<a href="http://lists.sourceforge.net/mailman/listinfo/qof-devel">QOF-devel</a>
+mailing list.</p>
+</div>
+</body>
+</html>

Added: gnucash/branches/cashutil/cashutil/website/images/control_your_finan.jpg
===================================================================
(Binary files differ)


Property changes on: gnucash/branches/cashutil/cashutil/website/images/control_your_finan.jpg
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: gnucash/branches/cashutil/cashutil/website/images/logo.png
===================================================================
(Binary files differ)


Property changes on: gnucash/branches/cashutil/cashutil/website/images/logo.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: gnucash/branches/cashutil/cashutil/website/images/webding.png
===================================================================
(Binary files differ)


Property changes on: gnucash/branches/cashutil/cashutil/website/images/webding.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: gnucash/branches/cashutil/cashutil/website/index.html
===================================================================
--- gnucash/branches/cashutil/cashutil/website/index.html	2005-11-03 11:30:47 UTC (rev 11811)
+++ gnucash/branches/cashutil/cashutil/website/index.html	2005-11-03 16:09:11 UTC (rev 11812)
@@ -0,0 +1,267 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html lang="en_gb"><head>
+<link rel="stylesheet" href="cashutil.css" type="text/css">
+<link rel="icon" href="favicon.png" type="image/x-icon">
+<link rel="shortcut icon" href="favicon.png" type="image/x-icon">
+<meta name="author" content="Neil Williams">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>CashUtil - Command line GnuCash</title>
+</head><body>
+<div id="head">
+<img src="images/logo.png" alt="GnuCash Logo" id="gnclogo">
+<br/><span id="language"> Language:<b>English</b></span>
+<span id="location">Continent: [USA / Europe]</span>
+</div>
+
+<div id="news">
+<div id="general">
+<span class="linktop">
+<img class="dot" src="images/webding.png" alt="marker">
+<b>General Information</b></span>
+<ul>
+<li><a href="gnucash.html">Use in GnuCash</a></li>
+<li><a href="#examples">Examples</a></li>
+<li><a href="#progress">Progress</a></li>
+<li><a href="#notes">Problems / issues</a></li>
+<li><a href="#objects">Object support</a></li>
+</ul>
+</div>
+
+
+<div id="othernews">
+<span class="linktop">
+<img class="dot" src="images/webding.png" alt="marker">
+<b>Project Homepages</b></span>
+<ul>
+<li><a href="http://www.gnucash.org/">GnuCash Home </a></li>
+<li><a href="http://qof.sourceforge.net/">QOF home</a></li>
+<li><a href="http://pilot-qof.sourceforge.net/">PilotQOF home</a></li>
+<li><a href="http://code.neil.williamsleesmill.me.uk/preface.html#QOFLIBS">
+QOF Dependencies</a></li>
+<li><a href="http://www.data-freedom.org">Data Freedom</a></li>
+</ul>
+</div>
+
+<div class="othernews">
+<span class="linktop">
+<img class="dot" src="images/webding.png" alt="marker">
+<b>Download</b></span>
+<ul>
+<li><a href="http://code.neil.williamsleesmill.me.uk/cashutil.tar.gz">Package</a></li>
+<li><a href="http://code.neil.williamsleesmill.me.uk/cashutil-source.tar.gz">Source</a></li>
+</ul>
+</div>
+
+<div class="othernews">
+<span class="linktop">
+<img class="dot" src="images/webding.png" alt="marker">
+<b>XML</b></span>
+<ul>
+<li><a href="http://code.neil.williamsleesmill.me.uk/qsf.html">Format</a></li>
+<li><a href="http://qof.sourceforge.net/qsf-object.xsd.xml">Object schema</a></li>
+</ul>
+</div>
+
+<div>
+<span class="linktop">
+<img class="dot" src="images/webding.png" alt="marker">
+<b>Support </b></span>
+<ul><li>
+<a href="http://lists.sourceforge.net/lists/listinfo/qof-devel">Mailing list</a>
+</li>
+<li><a href="manpages.html">Manpage</a></li>
+</ul>
+</div>
+
+<div class="othernews">
+<span class="linktop">
+<img class="dot" src="images/webding.png" alt="marker">
+<b>Development</b></span>
+<ul>
+<li><a href="http://www.linux.codehelp.co.uk/#cashutil">Design</a></li>
+<li><a href="http://code.neil.williamsleesmill.me.uk/cashutil/">Doxygen</a></li>
+</ul>
+</div>
+
+<div class="othernews">
+<span class="linktop">
+<img class="dot" src="images/webding.png" alt="marker">
+<b>GnuCash Information</b></span>
+<ul>
+<li><a href="http://www.gnucash.org/en/links.phtml">Related Financial Software</a></li>
+<li><a href="http://www.gnucash.org/en/articles.phtml">GnuCash in the News</a></li>
+<li><a href="http://www.gnucash.org/en/promote.phtml">GnuCash Banners!</a></li>
+<li><a href="http://www.gnucash.org/en/history.phtml">History &amp; Credits</a></li>
+<li><a href="http://www.gnucash.org/en/quiz-results.phtml">Survey Results</a></li>
+<li><a href="http://www.gnucash.org/en/sizing.phtml">Sizing</a></li>
+</ul>
+</div>
+<a href="http://www.gnucash.org/">
+<img src="images/control_your_finan.jpg" id="gnucash"
+alt="gnucash home page"></a>
+</div>
+
+<div id="content">
+<h1><span class="title">CashUtil: GnuCash
+<acronym title="Command Line Interface">CLI</acronym>.</span></h1>
+<p>A command-line GnuCash interface for Gnucash G2 (G2 is the next GnuCash
+release, compatible with Gnome2) using a modified Pilot-QOF front-end, the
+GnuCash financial objects and current GnuCash XML handlers.</p>
+<p><b>Note</b>: This is not a formal release and the tarball is not signed.
+Feel free to inspect the code. (manpage included).</p>
+<p>The project code is here only temporarily - it will be moved into the GnuCash
+source tree once library requirements are known, to provide CVS access and
+mirrored downloads. This home page will remain. The current tarball requires
+<a href="http://qof.sourceforge.net/">QOF 0.6.0</a> (available only via
+<a href="http://sourceforge.net/projects/qof/">SourceForge</a> CVS)
+to build. See the doxygen output for build information.</p>
+<p>CashUtil uses an interactive shell to add, edit, delete and export
+data. GnuCash XML v2 files and QSF XML files can be loaded into the shell.
+The shell will also merge an external QSF file into the currently loaded book
+and will also be used in PilotQOF.</p>
+<p id="examples">Example 1:</p>
+<code>
+$ cashutil --shell<br/>
+cashutil&gt; load ./gnucashdata.xml<br/>
+cashutil&gt; add Account<br/>
+cash/Account&gt; edit description "test description string"<br/>
+cash/Account&gt; commit<br/>
+cashutil&gt; write<br/>
+cashutil&gt; quit<br/>
+$
+</code>
+<p>Example 2:</p>
+<code>
+$ ./cashutil --shell<br/>
+cashutil> load books/gnucash.xml<br/>
+cashutil> edit Account name Assets<br/>
+cash/Account> edit code 0054<br/>
+cash/Account> commit<br/>
+cashutil> write<br/>
+cashutil> q<br/>
+</code>
+<h2 id="progress">Progress report</h2>
+<h3>Work completed</h3>
+<ul><li><b>GETTEXT</b> support</li>
+<li><b>man page</b></li>
+<li>Clean <b>build environment</b> - once QOF is released, CashUtil will build
+using make distcheck without errors.</li>
+<li><b>Mac OSX / Fink</b> support - has built cleanly on OSX with fink since before first release.
+A proportion of testing and development has been on OSX.</li>
+<li><b>GnuCash backend</b>: Loading and saving GnuCash data files.</li>
+<li><b>Undo</b> support.</li>
+</ul>
+<h3>Functions already supported</h3>
+<p>Most still need to be made more intuitive.</p>
+<ul>
+<li>Non-interactive:<ul>
+<li><b>-i</b>, <b>--input</b> &lt;filename&gt; : Query the GnuCash/QSF XML in &lt;filename&gt;</li>
+<li><b>-l</b>, <b>--list</b> : List all databases supported by the current QOF framework and exit.</li>
+<li><b>--explain</b>  : List the fields within the specified database and exit, requires -d.</li>
+<li><b>-t</b>, <b>--date</b> string  : Shorthand to only query objects that contain the specified date.</li>
+<li><b>-d</b>, <b>--database</b> string : Shorthand to only query objects within one specific supported database.</li>
+<li><b>-e</b>, <b>--exclude</b> string : Shorthand to exclude a supported database from the query.</li>
+<li><b>-s</b>, <b>--sql</b> string : Specify a SQL query on the command line.</li>
+<li><b>-f</b>, <b>--sql-file</b> filename : Specify one or more SQL queries contained in a file.</li>
+<li><b>-w</b>, <b>--write</b> filename : Write the results of any query to the file</li></ul></li>
+<li>Interactive<ul>
+<li><b>add</b> [object] : Add a new instance of the object.</li>
+<li><b>edit</b> [object] : Select one instance and edit (set) the parameter values.</li>
+<li><b>delete</b> [object] : Select one instance for deletion.</li>
+<li><b>list</b> : Synonym for the --list command outside the shell.</li>
+<li><b>print</b> [object] : Select one instance and print the parameter values.</li>
+<li><b>explain</b> [object] : Synonym for the --explain command outside the shell.</li>
+<li><b>load</b> [filename] : Replace the current book with data from the file. Prompt to
+save the current book, if any.</li>
+<li><b>write</b> [filename] : Write out the current book. If no filename is given, write to the original file.
+(uses STDOUT if STDIN is used.)</li>
+<li><b>merge</b> [filename] : Merge data from the file into the current book.</li>
+<li><b>help</b> | <b>?</b> : The help screen.</li>
+<li><b>quit</b> | <b>q</b> | <b>exit</b> : Quit the shell</li>
+</ul></li></ul>
+<h3>Functions requiring completion</h3>
+<ul>
+<li>Interactive<ul>
+<li><b>sql</b> Run a SQL statement.</li>
+</ul></li></ul>
+<h3>Other work still required</h3>
+<ul>
+<li>Folding into the <b>GnuCash source tree</b>.</li>
+</ul>
+<h3 id="notes">Notes</h3>
+<ol>
+<li>CashUtil is G2 only. Data can be loaded from existing GnuCash files or
+from exported QSF files (which is why I wrote it in the first place). The GnuCash
+XML v2 backend is built into CashUtil and is being adapted, along with the
+financial objects and ancillary logic to work as a library that can be shared
+between GnuCash and CashUtil.</li>
+<li>CashUtil is also for data-mining using SQL and it outputs more QSF XML
+which can be used to make your own reports, invoices, print-outs, calculations,
+abstractions, databases .... whatever you like. You can use XSL, Perl, PHP,
+whatever you fancy.</li>
+<li>The data itself can always be updated from more recent G2 exports or
+data files - just save the SQL statements in a file and run them again.</li>
+<li>The QSF XML itself will be importable back into GnuCash (G2) too.</li>
+<li>In due course, CashUtil will be folded into the GnuCash source tree and
+have full access to GnuCash data.</li>
+<li>So far, I've called it "cashutil". (I was short on inspiration).</li>
+<li>Remaining problems include gncCommodity and AccountGroup which do
+not work with QOF. (yet.)</li>
+<li>There's limited financial logic in this program - you cannot create data
+that is incompatible with the *object* but you might be able to create data
+that is financially inconsistent - non-existent accounts are the most
+obvious. GnuCash (via
+<a href="http://code.neil.williamsleesmill.me.uk/">qof_book_merge</a>)
+will deal with problems like that when merging QSF data back into it's own files
+but editing GnuCash files directly puts extra importance on the ancillary
+logic. CashUtil is therefore limited in the type of parameters and objects
+that can be edited, added or deleted. Multi-currency transactions and
+stocks/shares are unsupported and may produce unexpected results.</li>
+<li>During development of CashUtil, logic that is currently included in the
+GnuCash UI will be abstracted into the object library to fill the gaps.</li>
+</ol>
+<h3 id="objects">Object support</h3>
+<p>cashutil currently supports these database table names:
+You can use the names with cashutil -d, in the interactive shell (with
+'add' or 'edit') and in SQL queries (as the table name) with cashutil -s|f
+Descriptions are shown only for readability. Certain objects, like AccountGroup
+and Commodity, are supported but have few or no editable parameters. This
+illustrates the kind of ancillary logic that is yet to be built into CashUtil.</p>
+<table width="75%" border="1">
+<colgroup><col><col></colgroup>
+<tr><th>Name</th><th>Description</th></tr>
+<tr><td>SXTGroup</td><td>Scheduled Transaction Templates</td></tr>
+<tr><td>sched-xaction</td><td>Scheduled Transaction</td></tr>
+<tr><td>FreqSpec</td><td>Frequency Specification</td></tr>
+<tr><td>AccountGroup</td><td>AccountGroup</td></tr>
+<tr><td>Split</td><td>Split</td></tr>
+<tr><td>Trans</td><td>Transaction</td></tr>
+<tr><td>Account</td><td>Account</td></tr>
+<tr><td>CommodityTable</td><td>CommodityTable</td></tr>
+<tr><td>CommodityNamespace</td><td>Namespace</td></tr>
+<tr><td>Commodity</td><td>Commodity</td></tr>
+<tr><td>gncOrder</td><td>Order</td></tr>
+<tr><td>gncTaxTable</td><td>Tax Table</td></tr>
+<tr><td>gncVendor</td><td>Vendor</td></tr>
+<tr><td>gncJob</td><td>Job</td></tr>
+<tr><td>gncInvoice</td><td>Invoice</td></tr>
+<tr><td>gncEntry</td><td>Order/Invoice/Bill Entry</td></tr>
+<tr><td>gncEmployee</td><td>Employee</td></tr>
+<tr><td>gncCustomer</td><td>Customer</td></tr>
+<tr><td>gncBillTerm</td><td>Billing Term</td></tr>
+<tr><td>gncAddress</td><td>Address</td></tr>
+</table>
+<p>Use '-d &lt;database&gt; --explain' to see the list of fields within
+any supported database.</p>
+</div>
+<div style="clear:both;float:none;">&nbsp;</div>
+<div id="tail">
+<p style="float:right;padding-right:1em;">
+<a href='http://validator.w3.org/check/referer'>Validate</a></p>
+<p style="text-align:center;"><b>Copyright &copy; 2005 Neil Williams</b></p>
+<p style="text-align:center;">Bugs or problem reports to:
+<a href="http://lists.sourceforge.net/mailman/listinfo/qof-devel">QOF-devel</a>
+mailing list.</p>
+</div>
+</body>
+</html>

Added: gnucash/branches/cashutil/cashutil/website/manpages.html
===================================================================
--- gnucash/branches/cashutil/cashutil/website/manpages.html	2005-11-03 11:30:47 UTC (rev 11811)
+++ gnucash/branches/cashutil/cashutil/website/manpages.html	2005-11-03 16:09:11 UTC (rev 11812)
@@ -0,0 +1,134 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
+<HTML
+><HEAD
+><TITLE
+>manpages</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
+REL="HOME"
+HREF="index.html"><LINK
+REL="PREVIOUS"
+HREF="index.html"><LINK
+REL="NEXT"
+TITLE="cashutil"
+HREF="cashutil.html"></HEAD
+><BODY
+CLASS="CHAPTER"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+SUMMARY="Header navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+></TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="index.html"
+ACCESSKEY="P"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="cashutil.html"
+ACCESSKEY="N"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="CHAPTER"
+><H1
+><A
+NAME="MANPAGES"
+></A
+>Chapter 1. manpages</H1
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="index.html"
+ACCESSKEY="P"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+ACCESSKEY="H"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="cashutil.html"
+ACCESSKEY="N"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>cashutil</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file



More information about the gnucash-changes mailing list