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
