Really full currency support in Pnl-report

Christian Stimming stimming@uclink.berkeley.edu
Mon, 09 Oct 2000 02:49:09 -0700


This is a multi-part message in MIME format.
--------------66D15B7B85A50D0D63C7F5C1
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hi,

This is a balance and pnl-report with full multiple currency support in
a usable shape (without any hard-coded exchange rates as it was the case
in my patch yesterday).

Changes: See last mail. Additionally:

* The parameters have now three sections: Currencies, Display and
Report. Under Currencies, you choose some "foreign" currencies and
specify their exchange rate against the "domestic" currency. Exchange
rate r means: domestic currency = r * foreign currency. The Widget
offers up to five other currencies -- okay, it's not perfect and it
looks pretty ugly, but it works. Anyone who likes to code a better
solution is strongly encouraged to do so. Suggestion: Make a list of
currency-value pairs with the value field editable. Or, make a new
widget with a currency-option and a (value) textfield and give two
buttons "More", "Fewer" to dynamically add more of these pairs.

* In the "Display" tab, one can choose whether or not the account type
should be displayed. One can also choose whether the foreign currency
columns should be displayed or not. That setting has no impact on any
calculations, only on the display.

The enclosed patch is a full replacement for the one from yesterday,
i.e. yesterday's patch may go to /dev/null.

Christian
--------------66D15B7B85A50D0D63C7F5C1
Content-Type: application/octet-stream;
 name="gnucash.diff.gz"
Content-Transfer-Encoding: x-uuencode
Content-Disposition: attachment;
 filename="gnucash.diff.gz"

begin 644 gnucash.diff.gz
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
;H$ZA-.2=<M\TDDD]"$@5(4V:%Z11L$_8:@``
`
end

--------------66D15B7B85A50D0D63C7F5C1--