hledger-lib-1.2: Core data types, parsers and functionality for the hledger accounting tools

Safe Haskell | None
Language | Haskell2010

Hledger.Reports.ReportOptions

Contents

- Orphan instances

Description

Options common to most hledger reports.

Synopsis

- data ReportOpts = ReportOpts {
  - period_ :: Period
  - interval_ :: Interval
  - clearedstatus_ :: Maybe ClearedStatus
  - cost_ :: Bool
  - depth_ :: Maybe Int
  - display_ :: Maybe DisplayExp
  - date2_ :: Bool
  - empty_ :: Bool
  - no_elide_ :: Bool
  - real_ :: Bool
  - format_ :: Maybe FormatStr
  - query_ :: String
  - average_ :: Bool
  - related_ :: Bool
  - balancetype_ :: BalanceType
  - accountlistmode_ :: AccountListMode
  - drop_ :: Int
  - row_total_ :: Bool
  - no_total_ :: Bool
  - value_ :: Bool
  - pretty_tables_ :: Bool
  }
- data BalanceType
  - = PeriodChange
  - | CumulativeChange
  - | HistoricalBalance
- data AccountListMode
  - = ALDefault
  - | ALTree
  - | ALFlat
- type FormatStr = String
- defreportopts :: ReportOpts
- rawOptsToReportOpts :: RawOpts -> IO ReportOpts
- checkReportOpts :: ReportOpts -> ReportOpts
- flat_ :: ReportOpts -> Bool
- tree_ :: ReportOpts -> Bool
- whichDateFromOpts :: ReportOpts -> WhichDate
- journalSelectingAmountFromOpts :: ReportOpts -> Journal -> Journal
- queryFromOpts :: Day -> ReportOpts -> Query
- queryFromOptsOnly :: Day -> ReportOpts -> Query
- queryOptsFromOpts :: Day -> ReportOpts -> [QueryOpt]
- transactionDateFn :: ReportOpts -> Transaction -> Day
- postingDateFn :: ReportOpts -> Posting -> Day
- reportStartDate :: Journal -> ReportOpts -> IO (Maybe Day)
- reportEndDate :: Journal -> ReportOpts -> IO (Maybe Day)
- reportStartEndDates :: Journal -> ReportOpts -> IO (Maybe (Day, Day))
- tests_Hledger_Reports_ReportOptions :: Test

# Documentation

data ReportOpts Source #

Standard options for customising report filtering and output, corresponding to hledger's command-line options and query language arguments. Used in hledger-lib and above.

Constructors

ReportOpts |

Fields

- period_ :: Period
- interval_ :: Interval
- clearedstatus_ :: Maybe ClearedStatus
- cost_ :: Bool
- depth_ :: Maybe Int
- display_ :: Maybe DisplayExp
- date2_ :: Bool
- empty_ :: Bool
- no_elide_ :: Bool
- real_ :: Bool
- format_ :: Maybe FormatStr
- query_ :: String
- average_ :: Bool
- related_ :: Bool
- balancetype_ :: BalanceType
- accountlistmode_ :: AccountListMode
- drop_ :: Int
- row_total_ :: Bool
- no_total_ :: Bool
- value_ :: Bool
- pretty_tables_ :: Bool

Instances

Data ReportOpts Source # |

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ReportOpts -> c ReportOpts #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ReportOpts #

toConstr :: ReportOpts -> Constr #

dataTypeOf :: ReportOpts -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c ReportOpts) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ReportOpts) #

gmapT :: (forall b. Data b => b -> b) -> ReportOpts -> ReportOpts #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ReportOpts -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ReportOpts -> r #

gmapQ :: (forall d. Data d => d -> u) -> ReportOpts -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ReportOpts -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ReportOpts -> m ReportOpts #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ReportOpts -> m ReportOpts #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ReportOpts -> m ReportOpts #

Show ReportOpts Source # |
Methods showsPrec :: Int -> ReportOpts -> ShowS # show :: ReportOpts -> String # showList :: [ReportOpts] -> ShowS #
Default ReportOpts Source # |
Methods def :: ReportOpts #

data BalanceType Source #

Which "balance" is being shown in a balance report.

Constructors

PeriodChange | The change of balance in each period.
CumulativeChange | The accumulated change across multiple periods.
HistoricalBalance | The historical ending balance, including the effect of all postings before the report period. Unless altered by, a query, this is what you would see on a bank statement.

Instances

Eq BalanceType Source # |
Methods (==) :: BalanceType -> BalanceType -> Bool # (/=) :: BalanceType -> BalanceType -> Bool #
Data BalanceType Source # |

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> BalanceType -> c BalanceType #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c BalanceType #

toConstr :: BalanceType -> Constr #

dataTypeOf :: BalanceType -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c BalanceType) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c BalanceType) #

gmapT :: (forall b. Data b => b -> b) -> BalanceType -> BalanceType #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> BalanceType -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> BalanceType -> r #

gmapQ :: (forall d. Data d => d -> u) -> BalanceType -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> BalanceType -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> BalanceType -> m BalanceType #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> BalanceType -> m BalanceType #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> BalanceType -> m BalanceType #

Show BalanceType Source # |
Methods showsPrec :: Int -> BalanceType -> ShowS # show :: BalanceType -> String # showList :: [BalanceType] -> ShowS #
Default BalanceType Source # |
Methods def :: BalanceType #

data AccountListMode Source #

Should accounts be displayed: in the command's default style, hierarchically, or as a flat list ?

Constructors

ALDefault |
ALTree |
ALFlat |

Instances

Eq AccountListMode Source # |
Methods (==) :: AccountListMode -> AccountListMode -> Bool # (/=) :: AccountListMode -> AccountListMode -> Bool #
Data AccountListMode Source # |

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AccountListMode -> c AccountListMode #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AccountListMode #

toConstr :: AccountListMode -> Constr #

dataTypeOf :: AccountListMode -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c AccountListMode) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AccountListMode) #

gmapT :: (forall b. Data b => b -> b) -> AccountListMode -> AccountListMode #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AccountListMode -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AccountListMode -> r #

gmapQ :: (forall d. Data d => d -> u) -> AccountListMode -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> AccountListMode -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> AccountListMode -> m AccountListMode #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AccountListMode -> m AccountListMode #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AccountListMode -> m AccountListMode #

Show AccountListMode Source # |
Methods showsPrec :: Int -> AccountListMode -> ShowS # show :: AccountListMode -> String # showList :: [AccountListMode] -> ShowS #
Default AccountListMode Source # |
Methods def :: AccountListMode #

type FormatStr = String Source #

defreportopts :: ReportOpts Source #

rawOptsToReportOpts :: RawOpts -> IO ReportOpts Source #

checkReportOpts :: ReportOpts -> ReportOpts Source #

Do extra validation of report options, raising an error if there's a problem.

flat_ :: ReportOpts -> Bool Source #

tree_ :: ReportOpts -> Bool Source #

Legacy-compatible convenience aliases for accountlistmode_.

whichDateFromOpts :: ReportOpts -> WhichDate Source #

Report which date we will report on based on --date2.

journalSelectingAmountFromOpts :: ReportOpts -> Journal -> Journal Source #

Convert this journal's postings' amounts to the cost basis amounts if specified by options.

queryFromOpts :: Day -> ReportOpts -> Query Source #

Convert report options and arguments to a query.

queryFromOptsOnly :: Day -> ReportOpts -> Query Source #

Convert report options to a query, ignoring any non-flag command line arguments.

queryOptsFromOpts :: Day -> ReportOpts -> [QueryOpt] Source #

Convert report options and arguments to query options.

transactionDateFn :: ReportOpts -> Transaction -> Day Source #

Select the Transaction date accessor based on --date2.

postingDateFn :: ReportOpts -> Posting -> Day Source #

Select the Posting date accessor based on --date2.

reportStartDate :: Journal -> ReportOpts -> IO (Maybe Day) Source #

The effective report start date is the one specified by options or queries, otherwise the earliest transaction or posting date in the journal, otherwise (for an empty journal) nothing. Needs IO to parse smart dates in options/queries.

reportEndDate :: Journal -> ReportOpts -> IO (Maybe Day) Source #

The effective report end date is the one specified by options or queries, otherwise the latest transaction or posting date in the journal, otherwise (for an empty journal) nothing. Needs IO to parse smart dates in options/queries.

reportStartEndDates :: Journal -> ReportOpts -> IO (Maybe (Day, Day)) Source #

tests_Hledger_Reports_ReportOptions :: Test Source #

# Orphan instances

Default Bool Source # |
Methods def :: Bool #