From 96e0500ea7f69968556a7045c9c16f81b7482164 Mon Sep 17 00:00:00 2001 From: Henning Thielemann Date: Thu, 17 Oct 2024 18:46:51 +0200 Subject: [PATCH] cli: Commands.Register.postingsReportItemAsRecord: format transaction index as integer lib: Write.Spreadsheet.Type: new TypeInteger --- hledger-lib/Hledger/Write/Ods.hs | 11 +++++++++++ hledger-lib/Hledger/Write/Spreadsheet.hs | 1 + hledger/Hledger/Cli/Commands/Register.hs | 2 +- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/hledger-lib/Hledger/Write/Ods.hs b/hledger-lib/Hledger/Write/Ods.hs index 9a8e803d5..4766a7fb4 100644 --- a/hledger-lib/Hledger/Write/Ods.hs +++ b/hledger-lib/Hledger/Write/Ods.hs @@ -69,6 +69,9 @@ printFods encoding tables = " -" : " " : " " : + " " : + " " : + " " : customStyles ++ "" : [] @@ -139,6 +142,7 @@ dataStyleFromType :: Type -> DataStyle dataStyleFromType typ = case typ of TypeString -> DataString + TypeInteger -> DataInteger TypeDate -> DataDate TypeAmount amt -> DataAmount (acommodity amt) (asprecision $ astyle amt) TypeMixedAmount -> DataMixedAmount @@ -234,6 +238,7 @@ borderStyle border = data DataStyle = DataString + | DataInteger | DataDate | DataAmount CommoditySymbol AmountPrecision | DataMixedAmount @@ -299,6 +304,10 @@ formatCell cell = valueType = case cellType cell of + TypeInteger -> + printf + "office:value-type='float' office:value='%s'" + (cellContent cell) TypeAmount amt -> printf "office:value-type='float' office:value='%s'" @@ -343,6 +352,8 @@ styleNames cstyle border dataStyle = case dataStyle of DataDate -> (printf "%s-%s-date" cstyleName bordName, Just "iso-date") + DataInteger -> + (printf "%s-%s-integer" cstyleName bordName, Just "integer") DataAmount comm prec -> let name = numberStyleName (comm, prec) in (printf "%s-%s-%s" cstyleName bordName name, diff --git a/hledger-lib/Hledger/Write/Spreadsheet.hs b/hledger-lib/Hledger/Write/Spreadsheet.hs index bf4b1d95b..fe354b4c9 100644 --- a/hledger-lib/Hledger/Write/Spreadsheet.hs +++ b/hledger-lib/Hledger/Write/Spreadsheet.hs @@ -40,6 +40,7 @@ import Prelude hiding (span) data Type = TypeString + | TypeInteger | TypeAmount !Amount | TypeMixedAmount | TypeDate diff --git a/hledger/Hledger/Cli/Commands/Register.hs b/hledger/Hledger/Cli/Commands/Register.hs index 3e94bcd8d..f407862b2 100644 --- a/hledger/Hledger/Cli/Commands/Register.hs +++ b/hledger/Hledger/Cli/Commands/Register.hs @@ -127,7 +127,7 @@ postingsReportItemAsRecord :: (Spr.Lines border) => AmountFormat -> PostingsReportItem -> [Spr.Cell border T.Text] postingsReportItemAsRecord fmt (_, _, _, p, b) = - [cell idx, + [(cell idx) {Spr.cellType = Spr.TypeInteger}, (cell date) {Spr.cellType = Spr.TypeDate}, cell code, cell desc, cell acct, amountCell (pamount p),