[office/kmymoney/Handbook-5.2] doc: Completed first pass on QIF import/export.
Jack Ostroff
null at kde.org
Thu Oct 19 00:42:20 BST 2023
Git commit 6d19ac70e7c201118e1f5e8173be579a18d80343 by Jack Ostroff.
Committed on 19/10/2023 at 01:41.
Pushed by ostroffjh into branch 'Handbook-5.2'.
Completed first pass on QIF import/export.
A +45 -0 doc/details-impexp-removed.docbook
M +203 -279 doc/details-impexp.docbook
A +71 -0 doc/preferences-plugin.svg
A +- -- doc/qifimport-qifprofileamount.png
A +- -- doc/qifimport-qifprofilefilter.png
https://invent.kde.org/office/kmymoney/-/commit/6d19ac70e7c201118e1f5e8173be579a18d80343
diff --git a/doc/details-impexp-removed.docbook b/doc/details-impexp-removed.docbook
new file mode 100644
index 000000000..e288b257f
--- /dev/null
+++ b/doc/details-impexp-removed.docbook
@@ -0,0 +1,45 @@
+<!-- This is stuff that was commented out in details.impexp.docbook, from the QIF
+ import section. I am moving it here to clean up that file, but it is still not
+ sure if this material is still needed anywhere. I've modified the nesting to
+ make it look more legal. -->
+
+<sect2><title>Accepting the imported transactions</title>
+
+<para>
+<screenshot>
+ <screeninfo>Imported transactions</screeninfo>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="qifimportverify.png" format="PNG" />
+ </imageobject>
+ <textobject>
+ <phrase>Imported transactions</phrase>
+ </textobject>
+ </mediaobject>
+</screenshot>
+</para>
+
+<para>
+ Some of your transactions may be flashing red in the ledger. This is because they
+ need to be assigned a category. The importer was not able to automatically assign
+ a category based on your past transaction history.
+</para>
+
+<para>
+ Transaction data can be edited or even deleted if needed. To edit a transaction
+ simply double-click on the entry or hit enter when the entry is highlighted. Once
+ finished click on <guibutton>OK</guibutton> to accept the imported transactions or
+ <guibutton>Cancel</guibutton> to remove the imported transactions.
+</para>
+</sect2>
+
+
+<sect2><title>Importing Investments</title>
+<para>
+ Please note that if you are importing a file with investment transactions, those
+ investments must first exist in your &kmymoney; file. The trading symbol is used
+ to match, so please ensure that the symbol in &kmymoney; is exactly the same as the
+ one in the file you're importing.
+</para>
+</sect2>
+
diff --git a/doc/details-impexp.docbook b/doc/details-impexp.docbook
index 3303f82cf..63989ff54 100644
--- a/doc/details-impexp.docbook
+++ b/doc/details-impexp.docbook
@@ -5,7 +5,7 @@
<author> &Ace.Jones; &Ace.Jones.mail; </author>
<author> &Jack.H.Ostroff; &Jack.H.Ostroff.mail; </author>
</authorgroup>
- <date>2023-10-05</date>
+ <date>2023-20-05</date>
<releaseinfo>5.2</releaseinfo>
</chapterinfo>
@@ -19,14 +19,15 @@
<title>&gnucash; Importer</title>
-<sect2>
-<title>&gnucash; Files</title>
+<sect2><title>&gnucash; Files</title>
<para>
- The &kmymoney; &gnucash; importer handles direct reading of standard (&XML;) files
- as produced by &gnucash; versions 1.8 and 2.0. File from more recent versions
- should also be imported without problem, but there is no recent testing to confirm
- this. Specifically, however, the following are not supported:
+ The &kmymoney; &gnucash; importer is known to handle direct reading of standard
+ (&XML;) files as produced by &gnucash; versions 1.8 and 2.0. File from more recent
+ versions should also be imported without problem. There is no recent, formal
+ testing to confirm this, but the developers' mailing list &devlist; has a report of
+ success importing a file from &gnucash; 5.3. Specifically, however, the following
+ are not supported:
</para>
<itemizedlist>
@@ -63,11 +64,9 @@
</para>
</sect2>
-<sect2>
-<title>Similarities, Differences, and Terminology</title>
+<sect2><title>Similarities, Differences, and Terminology</title>
-<sect3>
-<title>Small Business Usage</title>
+<sect3><title>Small Business Usage</title>
<para>
It should be noted that &kmymoney; is a <emphasis>personal</emphasis> finance
@@ -78,11 +77,9 @@
</para>
</sect3>
-<sect3>
-<title>Accounts</title>
+<sect3><title>Accounts</title>
-<sect4>
-<title>Account types</title>
+<sect4><title>Account types</title>
<para>
For both products, the highest level of structure in the file is the
@@ -97,8 +94,7 @@
</para>
</sect4>
-<sect4>
-<title>Categories</title>
+<sect4><title>Categories</title>
<para>
&kmymoney; uses the term Category to denote an account of an Income or Expense
@@ -109,8 +105,7 @@
</para>
</sect4>
-<sect4>
-<title>Structure and Placeholders</title>
+<sect4><title>Structure and Placeholders</title>
<para>
&gnucash; supports the use of Placeholder accounts. In effect, these are just
@@ -122,8 +117,7 @@
</para>
</sect4>
-<sect4>
-<title>Account Type map</title>
+<sect4><title>Account Type map</title>
<informaltable frame='all'>
<tgroup cols='2' align='left' colsep='1' rowsep='1'>
@@ -187,11 +181,9 @@
</sect4>
</sect3>
-<sect3>
-<title>Transactions and Splits</title>
+<sect3><title>Transactions and Splits</title>
-<sect4>
-<title>Balanced transactions</title>
+<sect4><title>Balanced transactions</title>
<para>
In both programs, data is entered in the form of transactions, each generally
@@ -204,8 +196,7 @@
</para>
</sect4>
-<sect4>
-<title>Payees</title>
+<sect4><title>Payees</title>
<para>
&kmymoney; prefers that all transactions have a Payee (a generic term that
@@ -215,8 +206,7 @@
</para>
</sect4>
-<sect4>
-<title>Transfers</title>
+<sect4><title>Transfers</title>
<para>
&kmymoney; uses the term Transfer to describe a transaction which does not
@@ -225,8 +215,7 @@
</para>
</sect4>
-<sect4>
-<title>Reconcile</title>
+<sect4><title>Reconcile</title>
<para>
&kmymoney; provides an account reconciliation function similar to that of
@@ -235,16 +224,14 @@
</sect4>
</sect3>
-<sect3>
-<title>Commodities</title>
+<sect3><title>Commodities</title>
<para>
&gnucash; uses the term Commodity to cover both currencies and non-currency assets.
These are treated separately in &kmymoney;.
</para>
-<sect4>
-<title>Currencies</title>
+<sect4><title>Currencies</title>
<para>
&kmymoney; has built-in support for all foreign <link
@@ -265,8 +252,7 @@
</note>
</sect4>
-<sect4 id="gncsecurities">
-<title>Securities and Investments</title>
+<sect4 id="gncsecurities"><title>Securities and Investments</title>
<para>
Non-currency assets (typically stocks and bonds) are called Securities by
@@ -303,8 +289,7 @@
</para>
</sect4>
-<sect4>
-<title>Prices and currency rates</title>
+<sect4><title>Prices and currency rates</title>
<para>
Security prices and currency exchange rates, as displayed in the &gnucash; Price
@@ -313,8 +298,7 @@
</para>
</sect4>
-<sect4 id="details.impexp.gncquotes">
-<title>Online Quotes</title>
+<sect4 id="details.impexp.gncquotes"><title>Online Quotes</title>
<para>
For obtaining online price and currency rate quotations, &gnucash; uses a Perl
@@ -348,8 +332,7 @@
</sect4>
</sect3>
-<sect3 id="gncschedules">
-<title>Scheduled Transactions</title>
+<sect3 id="gncschedules"><title>Scheduled Transactions</title>
<para>
&kmymoney; does not retain the separation made in &gnucash; between template
@@ -358,8 +341,7 @@
likely to be of great significance.
</para>
-<sect4>
-<title>Schedule types</title>
+<sect4><title>Schedule types</title>
<para>
&kmymoney; classifies all schedules as one of three types: Bills, Deposits, or
@@ -370,8 +352,7 @@
</para>
</sect4>
-<sect4>
-<title>Suspect Schedules</title>
+<sect4><title>Suspect Schedules</title>
<para>
Some features of &gnucash; scheduled transactions are not available in &kmymoney;,
@@ -406,8 +387,7 @@
</sect4>
</sect3>
-<sect3>
-<title>Reports</title>
+<sect3><title>Reports</title>
<para>
&kmymoney; provides a comprehensive selection of configurable reports, described in
@@ -417,8 +397,7 @@
</sect3>
</sect2>
-<sect2>
-<title>Selecting Importer Options</title>
+<sect2><title>Selecting Importer Options</title>
<para id="details.impexp.gncoptions">
<screenshot>
@@ -430,16 +409,14 @@
</screenshot>
</para>
-<sect3>
-<title>Investment Handling</title>
+<sect3><title>Investment Handling</title>
<para>
See <link linkend="gncsecurities">"Securities and Investments"</link> above.
</para>
</sect3>
-<sect3>
-<title>Online Quotes</title>
+<sect3><title>Online Quotes</title>
<para>
Turn this off if you wish to use the native method for future online price quotes.
@@ -448,16 +425,14 @@
</para>
</sect3>
-<sect3>
-<title>Scheduled Transactions</title>
+<sect3><title>Scheduled Transactions</title>
<para>
See <link linkend="gncschedules">"Scheduled Transactions"</link> above.
</para>
</sect3>
-<sect3>
-<title>Decoding Options</title>
+<sect3><title>Decoding Options</title>
<para>
If your native language is written in letters or symbols which are different from
@@ -474,8 +449,7 @@
</para>
</sect3>
-<sect3>
-<title>Transaction Notes option</title>
+<sect3><title>Transaction Notes option</title>
<para>
Under some usage conditions, non-split &gnucash; transactions may contain residual,
@@ -487,8 +461,7 @@
</para>
</sect3>
-<sect3>
-<title>Debug Options</title>
+<sect3><title>Debug Options</title>
<para>
These need only be used in the event of import problems. If you have such
@@ -500,8 +473,7 @@
</sect3>
</sect2>
-<sect2>
-<title>Import Report</title>
+<sect2><title>Import Report</title>
<para>
At the end of processing, the importer produces a report showing the number of
@@ -536,21 +508,18 @@
</sect2>
</sect1>
-<sect1 id="details.impexp.qifimp">
-<sect1info>
+<sect1 id="details.impexp.qifimp"><sect1info>
<author>&Thomas.Baumgart; &Thomas.Baumgart.mail;</author>
<author> &Jack.H.Ostroff; &Jack.H.Ostroff.mail; </author>
</sect1info>
<title>QIF Importer</title>
-<sect2>
-<title>QIF format considered harmful</title>
-
+<sect2><title>QIF format considered harmful</title>
<para>
- Generally speaking, the QIF format should be avoided wherever possible. It is a
- poor choice for transporting financial data. Among other things, QIF suffers from
- these problems:
+ Generally speaking, the QIF format should be avoided wherever possible. For many
+ reasons, it is a poor choice for transporting financial data. Among other things,
+ QIF suffers from these problems:
</para>
<itemizedlist>
@@ -578,12 +547,10 @@
</para>
</sect2>
-<sect2>
-<title>How to import a QIF file</title>
-
+<sect2><title>How to import a QIF file</title>
<para>
- To import a QIF file, first ensure you have a valid &kmymoney; file open. Then
- select <menuchoice> <guimenu>File</guimenu> <guisubmenu>Import</guisubmenu>
+ To import a QIF file, first ensure you have a valid &kmymoney; file open, then
+ select the <menuchoice> <guimenu>File</guimenu> <guisubmenu>Import</guisubmenu>
<guimenuitem>QIF...</guimenuitem> </menuchoice> menu item.
</para>
@@ -598,23 +565,28 @@
</para>
<para>
- The resulting dialog prompts for the QIF filename allowing you to type in the full
+ The resulting dialog prompts for the QIF filename, allowing you to type in the full
path to the file or to locate the file by clicking on the
<guibutton>Browse</guibutton> button.
</para>
<para>
Note that &kmymoney; differentiates between the import of a bank statement file and
- a file with historic data exported from another application. The default is to
- import a bank statement file. In case you are importing data from your previous
- personal finance manager application, select the appropriate option.
+ a file with historic data exported from another application. A bank statement file
+ does not necessarily include all the data related to a single bank statement; it
+ may contain only one or a few transactions. The default is to import a bank
+ statement file. In case you are importing data from your previous personal finance
+ manager application, select the appropriate option.
</para>
<para>
- In general, the default QIF profile should work with your QIF data. In some cases
- it might become necessary to use a modified QIF profile. See the <link
- linkend="details.impexp.qifimp.profile">next section</link> for more details on
- that subject.
+ Next, you need to select a QIF Profile for the import. Because there is no
+ universally standard format for a QIF file, different vendors have taken liberties
+ with the format, and introduced their own nuances. The QIF Profile allows
+ &kmymoney; to know about the peculiarities of your file. In general, the default
+ QIF profile should work with most QIF files. In some cases it might be necessary to
+ use a modified QIF profile. See the <link linkend="details.impexp.qif.profile">
+ next section</link> for more details on that subject.
</para>
<para>
@@ -680,172 +652,9 @@
separate section of this document.
<!-- FIXME: use correct link. -->
</para>
-
-</sect2>
-
-<!-- FIXME: confirm whether to keep or just delete this section -->
-<!--
-<sect2>
-<title>Accepting the imported transactions</title>
-
-<para>
- When &kmymoney; has finished importing the QIF transactions the account will
- be shown with the imported transactions listed in Yellow.
-</para>
-
-<para>
-<screenshot>
- <screeninfo>Imported transactions</screeninfo>
- <mediaobject>
- <imageobject>
- <imagedata fileref="qifimportverify.png" format="PNG" />
- </imageobject>
- <textobject>
- <phrase>Imported transactions</phrase>
- </textobject>
- </mediaobject>
-</screenshot>
-</para>
-
-<para>
- Some of your transactions may be flashing red in the ledger.
- This is because they need to be assigned a category.
- The importer was not able to automatically assign a category based on your past transaction history.
-</para>
-
-<para>
- Transaction data can be edited or even deleted if needed. To edit a
- transaction simply double-click on the entry or hit enter when the entry is
- highlighted. Once finished click on <guibutton>OK</guibutton> to accept the imported
- transactions or <guibutton>Cancel</guibutton> to remove the imported transactions.
-</para>
-
-</sect2>
-
-<sect2><title>Importing Investments</title>
-
-<para>
- Please note that if you are importing a file with investment transactions, those investments must first exist in your &kmymoney; file.
- The trading symbol is used to match, so please ensure that the symbol in &kmymoney; is exactly the same as the one in the file you're importing.
-</para>
-</sect2>
--->
-
-<sect2 id="details.impexp.qifimp.profile">
-<title>Setting up a QIF profile</title>
-
-<para>
- Because there is no universally standard format for a QIF file, different vendors
- have taken liberties with the format, and introduced their own nuances. The QIF
- Profile allows &kmymoney; to know about the peculiarities of your file. To edit an
- existing QIF Profile, or to create a new one, bring up the QIF Importer dialog by
- selecting <menuchoice> <shortcut> <keycombo>&Ctrl;&Shift;<keycap>,</keycap>
- </keycombo> </shortcut> <guimenu>Settings</guimenu> <guimenuitem>Configure
- &kmymoney;...</guimenuitem> </menuchoice> from the main menu, clicking on
- <guilabel>Plugins</guilabel> at the bottom of the left panel, and clicking the
- &configicon; button on the entry for <quote>QIF Importer</quote>.
- <!-- FIXME: do we want to use the plugins icon from that left panel here? -->
-</para>
-
-<para>
- <screenshot>
- <mediaobject>
- <imageobject>
- <imagedata fileref="qifimport-qifprofileeditor.png" format="PNG" />
- </imageobject>
- <textobject>
- <phrase>QIF Profile Editor</phrase>
- </textobject>
- </mediaobject>
- </screenshot>
-</para>
-
-<para>
- On the left, the Profile selector displays a list of all existing QIF Importer
- Profiles, select one to edit its configuration. To create an new profile, press
- the <guibutton>New</guibutton> button. You can rename an existing profile by
- selecting it in the Profile selector and clicking the <guibutton>Rename</guibutton>
- button, and delete on with the <guibutton>Delete</guibutton> button. Clicking the
- <guibutton>Reset</guibutton> button resets all the fields to their default values.
-</para>
-
-<!-- FIXME: what do these all actually do? do we want/need separate images for each?
- -->
-<para>
- The right area of the dialog has four tabs.
-</para>
-
-<para>
- The <quote>General</quote> tab contains a description and fields
-</para>
-
-<para>
- The <quote>Filter</quote> tab allows you to specify a filter program or script to
- be applied when this profile is chosen for import. See the following section for
- more details.
-</para>
-
-<para>
- The <quote>Date</quote> tab
-</para>
-
-<para>
- The <quote>Amounts</quote> tab
-</para>
-
-<note>
-<para>
- Previous versions of &kmymoney; used to have a tab for date and amount
- specifications. &kmymoney; now determines those settings by scanning the file. If
- it cannot figure out the proper settings, it will interrogate the user during
- import.
-</para>
-</note>
-
-<!--
-<para>
- The most commonly changed thing between QIF implementations is the date format.
- So if this is the first time you're importing a QIF file, spend a few moments to figure out what format the dates are in, and set the QIF Profile accordingly.
- See the discussion below on apostrophe format for more details.
-</para>
-
-<para>
- <screenshot>
- <mediaobject>
- <imageobject>
- <imagedata fileref="qifimport-qifprofiledate.png" format="PNG" />
- </imageobject>
- <textobject>
- <phrase>QIF Profile Date</phrase>
- </textobject>
- </mediaobject>
- </screenshot>
-</para>
-
-</sect2>
-
-<sect2><title>Apostrophe format</title>
-
-<para>
- Many common QIF writers use a 2-digit representation for the year.
- This is ambiguous, because the importer cannot know which century the date belongs in.
- To make things even more complicated, QIF files will often used an apostrophe as a year separator to indicate that the date belongs in the OTHER century from the default.
-</para>
-<para>
- For example, if the default century is 1900-1999, the date 12/31/95 would mean 1995. The date 12/31'05 would mean 2005.
-</para>
-<para>
- Because the QIF format is not standardized, it's impossible to know which century is desired.
- This is why you have to explicitly state it in the QIF profile.
- You do this by specifying which century is intended when an apostrophe is found.
- In the example above, you would set the Apostrophe Format to "2000-2099", so dates with an apostrophe will be interpreted as being > year 2000.
- In this case, dates without an apostrophe will be treated as being in the 1900's.
-</para>
--->
</sect2>
<sect2><title>Transaction matching</title>
-
<para>
As noted previously, one of the major drawbacks of the QIF format is the lack of a
unique identifier for each transaction. Thus, if you import a QIF file and some of
@@ -858,12 +667,11 @@
<para>
This can be a problem if you have transactions that look very similar but are
actually different. In this case, you can unmatch those transactions later in the
- ledger view.
+ Ledger View.
</para>
</sect2>
-<sect2>
-<title>Writing an import filter</title>
+<sect2 id="details.impexp.qif.filter"><title>Writing an import filter</title>
<para>
Sometimes you may have data in a custom format, like comma-separated-values (CSV)
@@ -878,12 +686,13 @@
</para>
<para>
- To use a filter, edit your favorite QIF Profile or create a new one, and select the
- Filter tab. Enter the full path to your filter program in the <guilabel>Input
- filter location</guilabel> field, or click the browse icon next to the field and
- navigate to the filter in the <guilabel>File Open...</guilabel> dialog. Then,
- whenever you do a QIF import using this profile, the file you select for importing
- will be run through your filter first
+ To use a filter, edit your favorite QIF Profile or create a new one (see the next
+ section for details on QIF Profiles,) and select the Filter tab. Enter the full
+ path to your filter program in the <guilabel>Input filter location</guilabel>
+ field, or click the browse icon next to the field and navigate to the filter in the
+ <guilabel>File Open...</guilabel> dialog. Then, whenever you do a QIF import using
+ this profile, the file you select for importing will be run through your filter
+ first
</para>
<para>
@@ -923,8 +732,7 @@
</para>
</sect2>
-<sect2>
-<title>Special &kmymoney; QIF extensions</title>
+<sect2><title>Special &kmymoney; QIF extensions</title>
<para>
As already mentioned, one of the major drawbacks of the QIF format is the lack of a
@@ -936,6 +744,132 @@
</sect2>
</sect1>
+<sect1 id="details.impexp.qif.profile"><title>QIF Profiles</title>
+
+<para>
+ To edit an existing QIF Profile, or to create a new one, bring up the QIF Importer
+ dialog by selecting <menuchoice> <shortcut>
+ <keycombo>&Ctrl;&Shift;<keycap>,</keycap> </keycombo> </shortcut>
+ <guimenu>Settings</guimenu> <guimenuitem>Configure &kmymoney;...</guimenuitem>
+ </menuchoice> from the main menu, clicking on <inlinemediaobject> <imageobject>
+ <imagedata fileref='preferences-plugin.svg' format='SVG'/> </imageobject>
+ </inlinemediaobject> <guilabel>Plugins</guilabel> at the bottom of the left panel,
+ and clicking the &configicon; configure button on the entry for <quote>QIF
+ Importer</quote>.
+</para>
+
+<para>
+ Note that because the QIF Importer and the QIF Exporter are implemented as separate
+ plugins, there are separate entries for each on the Plugins configuration dialog.
+ Configuring either one brings up the same Profile Editor dialog.
+</para>
+
+<para>
+ <screenshot>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="qifimport-qifprofileeditor.png" format="PNG" />
+ </imageobject>
+ <textobject>
+ <phrase>QIF Profile Editor</phrase>
+ </textobject>
+ </mediaobject>
+ </screenshot>
+
+ On the left, the Profile selector displays a list of all existing QIF Profiles;
+ select one to edit its configuration. To create an new profile, press the
+ <guibutton>New</guibutton> button. You can rename an existing profile by selecting
+ it in the Profile selector and clicking the <guibutton>Rename</guibutton> button,
+ and delete one with the <guibutton>Delete</guibutton> button. Clicking the
+ <guibutton>Reset</guibutton> button resets all the fields of the currenlty
+ displayed profile to their default values.
+</para>
+
+<!-- FIXME: confirm what each of these actually does, and consider separate
+ screenshots for each tab. -->
+
+<para>
+ The right area of the dialog has four tabs.
+</para>
+
+<para>
+ The <quote>General</quote> tab contains a field for a description of the filter,
+ several fields to specify what &kmymoney; should expect certain fields to look like
+ in the qif file output by the filter, and a checkbox which tells &kmymoney; whether
+ or not to attempt to match similar transactions to avoid duplicates.
+</para>
+
+<para>
+ <screenshot>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="qifimport-qifprofilefilter.png" format="PNG" />
+ </imageobject>
+ <textobject>
+ <phrase>QIF Profile Editor</phrase>
+ </textobject>
+ </mediaobject>
+ </screenshot>
+
+ The <quote>Filter</quote> tab allows you to specify the location of both an import
+ filter, as described in the <link linkend="details.impexp.qif.filter">previous
+ section</link> as well as an output filter, which works similarly, but is applied
+ when writing out a data file. The <guilabel>Input filter file type</guilabel> is
+ not applicable to an output filter, as the file dialog for the file to be written
+ does not require filtering.
+</para>
+
+<para>
+ <screenshot>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="qifimport-qifprofiledate.png" format="PNG" />
+ </imageobject>
+ <textobject>
+ <phrase>QIF Export</phrase>
+ </textobject>
+ </mediaobject>
+ </screenshot>
+
+ The <quote>Date</quote> tab is primarily applicable to QIF Export, as &kmymoney; is
+ usually able to determine the date format by examining the actual data. The primary
+ purpose is to specify the order of the date parts, and the delimiter which separates
+ them.
+</para>
+
+<para>
+ Because the QIF format is not standardized, it's impossible to know which century
+ is meant when using two digit years. In QIF files with two digit years, there is
+ an assumed default century, and an apostrophe is used as the year separator to
+ specify that entry is in the OTHER century. However, since which century is
+ assumed to be the default is not standardized, the <guilabel>Apostrophe
+ Handling</guilabel> field is use for this purpose, indicating the intended century
+ when an apostrophe is used as the year separator. As an example, you would set the
+ Apostrophe Format to "2000-2099", so dates with an apostrophe will be
+ interpreted as being > year 2000. In this case, dates without an apostrophe
+ will be treated as being in the 1900's.
+</para>
+
+<para>
+ <screenshot>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="qifimport-qifprofileamount.png" format="PNG" />
+ </imageobject>
+ <textobject>
+ <phrase>QIF Export</phrase>
+ </textobject>
+ </mediaobject>
+ </screenshot>
+
+ The <quote>Amounts</quote> tab is used on QIF Export to specify the Decimal Symbol
+ and Thousands Separator to be used. However, you need to speicfy those for each
+ line in the QIF file which can contain an amount. To alter those settings, click
+ one of the lines in the upper part of the display, then use the dropdowns below to
+ set the characters to be used.
+</para>
+</sect1>
+
<sect1 id="details.impexp.qifexp"><title>QIF Exporter</title>
<para>
To export one of your accounts to a QIF file, choose
@@ -962,11 +896,9 @@
</textobject>
</mediaobject>
</screenshot>
-</para>
-<para>
The QIF Exporter uses QIF Profiles in a similar way as the QIF Importer, but it
- uses the information in the Profile for format the QIF file being written, rather
+ uses the information in the Profile to format the QIF file being written, rather
than to interpret the file being read. Parallel to the importer, you can use a
custom written filter program. There is a separate field on the Filter Tab of the
QIF Profile editor for an output filter, so you can use the same QIF Profile for
@@ -982,8 +914,7 @@
</sect1info>
<title>OFX Importer Plugin</title>
-<sect2>
-<title>Getting the plugin</title>
+<sect2><title>Getting the plugin</title>
<para>
&kmymoney; will import OFX files painlessly. However, this functionality is
@@ -1018,8 +949,7 @@
</para>
</sect2>
-<sect2>
-<title>What is OFX</title>
+<sect2><title>What is OFX</title>
<para>
OFX stands for <quote>Open Financial Exchange</quote>. According to the
@@ -1051,8 +981,7 @@
</para>
</sect2>
-<sect2>
-<title>Importing an OFX file</title>
+<sect2><title>Importing an OFX file</title>
<para>
The most basic way to import an OFX file is to choose the importer from the
@@ -1084,8 +1013,7 @@
</para>
</sect2>
-<sect2>
-<title>Importing Investments</title>
+<sect2><title>Importing Investments</title>
<para>
Please note that if you are importing a file with investment transactions,
@@ -1095,8 +1023,7 @@
</para>
</sect2>
-<sect2 id="details.impexp.webconnect">
-<title>Web Connect</title>
+<sect2 id="details.impexp.webconnect"><title>Web Connect</title>
<para>
The easiest way to import an OFX file is to set up Web Connect. Visit your
@@ -1114,8 +1041,7 @@
</para>
</sect2>
-<sect2 id="details.impexp.ofxdirectconnect">
-<title>Direct Connect</title>
+<sect2 id="details.impexp.ofxdirectconnect"><title>Direct Connect</title>
<para>
OFX Direct Connect is now supported in &kmymoney;. This gives you the ability
@@ -1185,8 +1111,7 @@
</note>
</sect2>
-<sect2>
-<title>Exporting an OFX file</title>
+<sect2><title>Exporting an OFX file</title>
<para>
It is not possible to export your data as an OFX file currently. If you are
@@ -1207,8 +1132,7 @@
<!-- entity defined in index.docbook -->
&details-impexp-woob;
-<sect1 id="details.impexp.plugins">
-<title>Writing Importer Plugins</title>
+<sect1 id="details.impexp.plugins"><title>Writing Importer Plugins</title>
<para>
&kmymoney; contains explicit support for importer plugins. If you have a
diff --git a/doc/preferences-plugin.svg b/doc/preferences-plugin.svg
new file mode 100644
index 000000000..702d712f0
--- /dev/null
+++ b/doc/preferences-plugin.svg
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg width="32" version="1.1" xmlns="http://www.w3.org/2000/svg" height="32" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
+ <defs id="defs5455">
+ <linearGradient inkscape:collect="always" id="linearGradient4303">
+ <stop style="stop-color:#c6cdd1" id="stop4305"/>
+ <stop offset="1" style="stop-color:#e0e5e7" id="stop4307"/>
+ </linearGradient>
+ <linearGradient inkscape:collect="always" id="linearGradient4227">
+ <stop style="stop-color:#292c2f" id="stop4229"/>
+ <stop offset="1" style="stop-opacity:0" id="stop4231"/>
+ </linearGradient>
+ <linearGradient id="linearGradient3819">
+ <stop style="stop-color:#eff0f1" id="stop3821"/>
+ <stop offset="1" style="stop-color:#bdc3c7" id="stop3823"/>
+ </linearGradient>
+ <linearGradient inkscape:collect="always" id="linearGradient4303-3">
+ <stop style="stop-color:#197cf1" id="stop4305-6"/>
+ <stop offset="1" style="stop-color:#21c9fb" id="stop4307-4"/>
+ </linearGradient>
+ <linearGradient inkscape:collect="always" id="linearGradient5193" xlink:href="#linearGradient4303-3" y1="540.79797" y2="521.79797" x1="384.57144" gradientUnits="userSpaceOnUse" x2="409.57147" gradientTransform="matrix(1 0 0 1 -6.00005 4)"/>
+ <linearGradient inkscape:collect="always" id="linearGradient4903">
+ <stop style="stop-color:#eef1f2" id="stop4905"/>
+ <stop offset="1" style="stop-color:#f9fafb" id="stop4907"/>
+ </linearGradient>
+ <linearGradient inkscape:collect="always" id="linearGradient5324" xlink:href="#linearGradient4903" y1="537.24286" y2="507.798" x1="401.57144" gradientUnits="userSpaceOnUse" x2="384.57144" gradientTransform="matrix(1 0 0 1 -4.00005 5)"/>
+ <linearGradient inkscape:collect="always" xlink:href="#linearGradient4256-6" id="linearGradient6638" y1="534.79797" y2="510.798" gradientUnits="userSpaceOnUse" x2="0" gradientTransform="matrix(1 0 0 1 -182.85714 -77.1501)"/>
+ <linearGradient id="linearGradient4256-6">
+ <stop style="stop-color:#8cbdf8" id="stop4258-2"/>
+ <stop offset="1" style="stop-color:#d5e8ff" id="stop4260-8"/>
+ </linearGradient>
+ <linearGradient inkscape:collect="always" xlink:href="#linearGradient4227" id="linearGradient6640" y1="513.38367" x1="396.57144" y2="531.38367" gradientUnits="userSpaceOnUse" x2="412.57144" gradientTransform="matrix(1 0 0 1 -182.85714 -76.73579)"/>
+ <linearGradient inkscape:collect="always" xlink:href="#linearGradient4232" id="linearGradient4849" y1="43" y2="5" gradientUnits="userSpaceOnUse" x2="0" gradientTransform="matrix(1.0810811 0 0 1.0810811 199.76834 420.70195)"/>
+ <linearGradient id="linearGradient4232">
+ <stop style="stop-color:#3889e9" id="stop4234-0"/>
+ <stop offset="1" style="stop-color:#5ea5fb" id="stop4236"/>
+ </linearGradient>
+ <linearGradient inkscape:collect="always" id="linearGradient5464" xlink:href="#linearGradient4303" y1="539.79797" y2="503.798" x1="432.57144" gradientUnits="userSpaceOnUse" x2="412.57144" gradientTransform="matrix(1 0 0 1 -10.00005 4)"/>
+ <linearGradient inkscape:collect="always" id="linearGradient5324-8" xlink:href="#linearGradient4903" y1="536.79797" y2="509.3006" x1="384.57144" gradientUnits="userSpaceOnUse" x2="396.32709" gradientTransform="matrix(-1 0 0 1 805.14281 5)"/>
+ <linearGradient inkscape:collect="always" id="linearGradient4290-2">
+ <stop style="stop-color:#7cbaf8" id="stop4292"/>
+ <stop offset="1" style="stop-color:#f4fcff" id="stop4294"/>
+ </linearGradient>
+ <linearGradient inkscape:collect="always" id="linearGradient5785" xlink:href="#linearGradient4290-2" y1="34" y2="22.724428" x1="9" gradientUnits="userSpaceOnUse" x2="3.746097" gradientTransform="matrix(1 0 0 1 379.57138 505.798)"/>
+ </defs>
+ <metadata id="metadata5458"/>
+ <g inkscape:label="Capa 1" inkscape:groupmode="layer" id="layer1" transform="matrix(1 0 0 1 -384.57143 -515.798)">
+ <path inkscape:connector-curvature="0" style="fill:#2980b9;fill-rule:evenodd" id="path5195" d="m 397.57138,530.798 6,0 0,2 -6,6 z"/>
+ <path inkscape:connector-curvature="0" style="fill:#289769;fill-rule:evenodd" id="path5195-7-4-3-1" d="m 397.57138,537.798 6,-6 0,1 -6,6 z"/>
+ <path inkscape:connector-curvature="0" style="fill:url(#linearGradient5193);fill-rule:evenodd" id="path5167-5" d="m 384.57141,544.798 14,0 0,-9 2.5,-2.5 2.5,-2.5 -2.5,-2.5 -2.5,-2.5 0,-8 -14,0 z"/>
+ <path inkscape:connector-curvature="0" style="fill:#99a1a7;fill-rule:evenodd" id="path5195-7" d="m 408.57138,523.798 -6,0 0,4 6,6 z"/>
+ <path inkscape:connector-curvature="0" style="fill:#289769;fill-rule:evenodd" id="path5195-7-4-3" d="m 408.57138,532.798 -6,-6 0,1 6,6 z"/>
+ <path inkscape:connector-curvature="0" style="fill:url(#linearGradient5464);fill-rule:evenodd" id="path5167" d="m 416.57138,544.798 -14,0 0,-9 5,-5 -5,-5 0,-8 14,0 z"/>
+ <path inkscape:connector-curvature="0" style="fill:#2980b9;stroke-linejoin:round;stroke-width:0.5" id="rect5150-0" d="m 398.5714,543.798 -13.99997,0 0,1.99995 13.99997,0 z"/>
+ <path inkscape:connector-curvature="0" style="fill:#99a1a7;stroke-linejoin:round;stroke-width:0.5" id="rect5150" d="m 402.57139,543.798 14.00004,0 0,1.99995 -14.00004,0 z"/>
+ <path inkscape:connector-curvature="0" style="fill:#289769;stroke-linejoin:round;stroke-width:0.5" id="rect5150-30" d="m 402.57139,544.798 14.00004,0 0,0.99992 -14.00004,0 z"/>
+ <path inkscape:connector-curvature="0" style="fill:url(#linearGradient5324);opacity:0.2;fill-rule:evenodd" id="path5316" d="m 384.57143,519.798 0,1 4.5,0 2.5,2.71484 0,14.57032 -2.5,2.71484 -4.5,0 0,1 5,0 3,-3 0,-16 -3,-3 z"/>
+ <path inkscape:connector-curvature="0" style="fill:url(#linearGradient5324-8);fill-rule:evenodd" id="path5316-6" d="m 416.57138,519.798 0,22 -5,0 -3,-3 0,-16 3,-3 z"/>
+ <rect width="2" x="402.57138" y="539.79797" height="2" style="fill:#4c5154;stroke-linejoin:round;stroke-width:0.5" id="rect5589"/>
+ <rect width="2" x="402.57138" y="519.79797" height="2" style="fill:#4c5154;stroke-linejoin:round;stroke-width:0.5" id="rect5591"/>
+ <path inkscape:connector-curvature="0" style="fill:#289769;stroke-linejoin:round;stroke-width:0.5" id="rect5150-30-2" d="m 384.57145,544.798 13.99998,0 0,0.99992 -13.99998,0 z"/>
+ <rect width="4" x="411.57138" y="520.79797" height="1" style="fill:#4d4d4d;stroke-linejoin:round;stroke-width:0.5" id="rect5658"/>
+ <rect width="2" x="413.57138" y="522.79797" height="1" style="fill:#4d4d4d;stroke-linejoin:round;stroke-width:0.5" id="rect5660"/>
+ <rect width="1" x="411.57138" y="522.79797" height="1" style="fill:#4d4d4d;stroke-linejoin:round;stroke-width:0.5" id="rect5662"/>
+ <rect width="3" x="412.57138" y="524.79797" height="1" style="fill:#4d4d4d;stroke-linejoin:round;stroke-width:0.5" id="rect5664"/>
+ <path inkscape:connector-curvature="0" style="fill:url(#linearGradient5785);stroke-linejoin:round;stroke-width:0.5" id="rect5666" d="m 385.57138,534.798 0,5 1,0 0,-5 -1,0 z m 2,0 0,1 1,0 0,-1 -1,0 z m 0,2 0,1 1,0 0,-1 -1,0 z m 0,2 0,1 1,0 0,-1 -1,0 z"/>
+ <rect width="2" x="396.57138" y="519.79797" height="2" style="fill:#2980b9;stroke-linejoin:round;stroke-width:0.5" id="rect5591-8"/>
+ <rect width="2" x="396.57138" y="539.79797" height="2" style="fill:#2980b9;stroke-linejoin:round;stroke-width:0.5" id="rect5589-6"/>
+ </g>
+</svg>
diff --git a/doc/qifimport-qifprofileamount.png b/doc/qifimport-qifprofileamount.png
new file mode 100644
index 000000000..52385c434
Binary files /dev/null and b/doc/qifimport-qifprofileamount.png differ
diff --git a/doc/qifimport-qifprofilefilter.png b/doc/qifimport-qifprofilefilter.png
new file mode 100644
index 000000000..c62883ec9
Binary files /dev/null and b/doc/qifimport-qifprofilefilter.png differ
More information about the kde-doc-english
mailing list