reports::PivotCell Class Reference

#include <pivotgrid.h>

Inheritance diagram for reports::PivotCell:

Collaboration diagram for reports::PivotCell:

Collaboration graph

List of all members.

Public Member Functions

 PivotCell ()
 PivotCell (const MyMoneyMoney &value)
PivotCell operator+= (const PivotCell &right)
PivotCell operator+= (const MyMoneyMoney &value)
const QString formatMoney (int fraction, bool showThousandSeparator=true) const
const QString formatMoney (const QString &currency, const int prec, bool showThousandSeparator=true) const
MyMoneyMoney calculateRunningSum (const MyMoneyMoney &runningSum)
MyMoneyMoney cellBalance (const MyMoneyMoney &_balance)
bool isUsed (void) const

Static Public Member Functions

static PivotCell stockSplit (const MyMoneyMoney &factor)

Private Attributes

MyMoneyMoney m_stockSplit
MyMoneyMoney m_postSplit
bool m_cellUsed

Detailed Description

The fundamental data construct of this class is a 'grid'. It is organized as follows:

A 'Row' is a row of money values, each column is a month. The first month corresponds to m_beginDate.

A 'Row Pair' is two rows of money values. Each column is the SAME month. One row is the 'actual' values for the period, the other row is the 'budgetted' values for the same period. For ease of implementation, a Row Pair is implemented as a Row which contains another Row. The inherited Row is the 'actual', the contained row is the 'Budget'.

An 'Inner Group' contains a rows for each subordinate account within a single top-level account. It also contains a mapping from the account descriptor for the subordinate account to its row data. So if we have an Expense account called "Computers", with sub-accounts called "Hardware", "Software", and "Peripherals", there will be one Inner Group for "Computers" which contains three Rows.

An 'Outer Group' contains Inner Row Groups for all the top-level accounts in a given account class. Account classes are Expense, Income, Asset, Liability. In the case above, the "Computers" Inner Group is contained within the "Expense" Outer Group.

A 'Grid' is the set of all Outer Groups contained in this report.

Constructor & Destructor Documentation

reports::PivotCell::PivotCell (  )  [inline]

reports::PivotCell::PivotCell ( const MyMoneyMoney value  ) 

Member Function Documentation

static PivotCell reports::PivotCell::stockSplit ( const MyMoneyMoney factor  )  [static]

PivotCell reports::PivotCell::operator+= ( const PivotCell right  ) 

PivotCell reports::PivotCell::operator+= ( const MyMoneyMoney value  ) 

Reimplemented from MyMoneyMoney.

const QString reports::PivotCell::formatMoney ( int  denom,
bool  showThousandSeparator = true 
) const

This is a convenience method. It behaves exactly as the above one, but takes the information about precision out of the denomination denom. No currency symbol is shown. If you want to see a currency symbol, please use formatMoney(const MyMoneyAccount& acc, const MyMoneySecurity& sec, bool showThousandSeparator) instead.

denom is often set to account.fraction(security).

Reimplemented from MyMoneyMoney.

const QString reports::PivotCell::formatMoney ( const QString &  currency,
const int  prec,
bool  showThousandSeparator = true 
) const

This method returns a formatted string according to the settings of _thousandSeparator, _decimalSeparator, _negativeMonetarySignPosition, _positiveMonetaryPosition, _negativePrefixCurrencySymbol and _positivePrefixCurrencySymbol. Those values can be modified using the appropriate set-methods.

currency The currency symbol
prec The number of fractional digits
showThousandSeparator should the thousandSeparator symbol be inserted (true) or not (false) (default true)

Reimplemented from MyMoneyMoney.

MyMoneyMoney reports::PivotCell::calculateRunningSum ( const MyMoneyMoney runningSum  ) 

MyMoneyMoney reports::PivotCell::cellBalance ( const MyMoneyMoney _balance  ) 

bool reports::PivotCell::isUsed ( void   )  const [inline]

Member Data Documentation

The documentation for this class was generated from the following file:

Generated on Wed Jan 26 13:11:40 2011 for KMyMoney by  doxygen 1.5.6