Skip to Content
Hashem.sa
  • Home
  • Services
  • Odoo Notes
  • About
  • Contact us
  • 0
  • 0
  • ebraheem@brioche.me
  • الْعَرَبيّة English (US)
  • Sign in
  • Contact Us
Hashem.sa
  • 0
  • 0
    • Home
    • Services
    • Odoo Notes
    • About
    • Contact us
  • ebraheem@brioche.me
  • الْعَرَبيّة English (US)
  • Sign in
  • Contact Us

Split Odoo's Merged General Ledger Cell Into 3 Columns

Entry number, reference and label are one truncated cell. They should not be.
  • All Blogs
  • Odoo Notes
  • Split Odoo's Merged General Ledger Cell Into 3 Columns
  • August 18, 2026 by
    Split Odoo's Merged General Ledger Cell Into 3 Columns
    Ebraheem Hashem

    Run the General Ledger in Odoo 19 and each line's identity arrives as one string: the journal entry number, the entry reference in brackets and the journal item label, glued together in the leading cell. When that string is longer than the column — which, with a reversal or a POS closing entry, it usually is — Odoo truncates it with an ellipsis.

    That is not a matter of taste. In an audit report, a truncated cell is missing data, and it stays missing in the export. General Ledger — Split Entry No. / Reference / Label Columns turns that one cell into three real columns — Entry Number, Reference, Label — and leaves only the entry number in the leading cell.

    STOCK ODOO 19Journal EntryINV/2026/00355 (Reversal of closing entry POSS/2025/12/0005 for or…WITH THE MODULEEntry NumberReferenceLabelINV/2026/00355Reversal of POSS/2025/12/0005Sales untaxed
    The merged, truncated cell becomes three columns you can scan down a page and land in a spreadsheet.

    Why this matters more than it sounds

    The three pieces of information do different jobs and get used by different people. The entry number is the internal key you match on. The reference is what ties a line to the world outside Odoo — a supplier invoice number, a payment reference, a document your auditor is holding. The label is what the line actually was. Merged into one string, none of them can be scanned down a page or landed in its own spreadsheet column.

    Then the string gets long. A reversal line reads something like POSS/2025/12/0007 (Reversal of POS closing entry POSS/2025/12/0005 for order Clo … and stops. The reference the auditor asked for is inside the part that was cut.

    Odoo itself does not think these belong together. The Journal Items list view has Journal Entry and Label as separate columns. The Journal Report presents name, account and label separately. Odoo 17's General Ledger even carried a distinct Communication column. Splitting them is the native pattern almost everywhere in Odoo — it is the ledger reports that concatenate.

    Why the obvious workarounds fail

    Widen the column or export and split in Excel. Text-to-columns on a bracketed, variable-length string, where the label may itself contain brackets, is not a reliable split. And you cannot recover a value the report truncated before export — the characters are gone.

    Use Odoo Studio. Studio cannot add columns to the accounting reports; they are not standard list views. Practitioners report that fields added through Studio simply cannot be used there, and that among core fields some work and others silently do not.

    Write it yourself. This is the honest path and it is a real job: inherit the report handler, extend the SQL that builds the lines, override the column-name and line-building methods. One widely-read forum thread walks through exactly this. It works — and then column availability shifts between versions, the query changes underneath you, and you re-verify it every upgrade.

    Buy a dynamic-reports suite. You get a second reporting engine to reconcile against Odoo's. If what you want is Odoo's General Ledger, with Odoo's drill-down, made readable, a parallel suite is a large answer to a small question.

    What the module does

    It adds three real columns to the standard General Ledger — Entry Number (the move name), Reference (the move reference) and Label (the journal item label) — and keeps only the entry number in the leading cell, so nothing is duplicated and nothing is truncated.

    It does not rewrite the report. The columns are filled by post-processing the rows Odoo has already produced. The report's own logic — the query, the totals, the currency handling, the unfolding, the audit drill-down — is Odoo's and stays Odoo's.

    It fails safe by construction. The fill is wrapped in try/except, and the module also no-ops entirely on any report that is not the General Ledger. If the fill raises, the exception is swallowed rather than propagated: the report still renders, with Odoo's own figures and Odoo's own drill-down intact, and the three added columns are left blank or partially filled. It degrades to less information, never to a broken report and never to a wrong number. For a report that supports an audit, that is the failure mode you want.

    Reconciliation and audit get faster immediately. You can scan a column of references down the page instead of reading three facts out of one sentence per row, and the export lands in a shape a spreadsheet can actually work with.

    Uninstall reverts it completely.

    What it does not do

    It only touches the General Ledger. The Partner Ledger, Aged Receivable and Aged Payable reports are unchanged — as are the Trial Balance and everything else in account_reports.

    It adds those three columns and no others. It does not add invoice date, due date, partner reference, analytic distribution or vendor details, and it does not let you pick arbitrary fields from account.move — that would mean rewriting the query, which is precisely the risk the design avoids.

    It is not an Excel export engine and does not change how export works, beyond the columns now being separate. The three added columns are not sortable and add no new filters — they make the report readable and the export usable, they do not turn it into a queryable grid.

    It does not change any figure. Debit, credit, balance, currency, filters, comparisons and the drill-down are untouched.

    Requirements: Odoo 19.0 with the Enterprise Accounting app (account_reports). It cannot run on Community, because the report it extends does not exist there. Published for the 19.0 series.

    How to use it

    1. Purchase and install the module, then update the apps list.
    2. Open Accounting → Reporting → General Ledger.
    3. The three columns appear automatically. There is nothing to configure.
    4. Export as usual — the columns carry through.

    Where it sits against the alternatives

    The closest priced comparable on 19.0 adds invoice-identity columns to the Partner Ledger at around $39, which sets the band for a single-report column module. A free module adds one analytic column to the General Ledger — useful, different problem, and it demonstrates that this kind of clean extension is possible in 19.0 rather than requiring surgery. I could not find another module on 19.0 that splits entry number, reference and label in the General Ledger.

    At $39 this is a fix, not a suite: one report, three columns, no second reporting engine to maintain.

    FAQ

    Why does Odoo's General Ledger show the entry number, reference and label in one cell?

    It is how the report's line name is assembled — the journal entry number, the entry reference in brackets and the journal item label are concatenated into the leading cell. When the combined string is longer than the column it is truncated with an ellipsis, so part of the information is unreadable on screen and in export.

    Can Odoo Studio add a column to the General Ledger?

    No. The accounting reports are not standard list views, so Studio cannot add columns to them. Practitioners report that Studio fields cannot be used in these reports at all, and that even some core fields work while others silently do not.

    What does it take to add a column to the General Ledger by hand?

    Inheriting the report handler, extending the SQL query that builds the report lines, and overriding the column-name and line-building methods. It is a real development job, it has to be re-verified at every upgrade, and column availability has changed between versions before.

    Will this module break my General Ledger if something goes wrong?

    No. It never rewrites the report's own logic — it post-processes rows the General Ledger has already produced, and the fill is wrapped in try/except. If it fails, the report still renders with Odoo's own figures and drill-down, and the three added columns are simply left blank or partially filled. It degrades to less information, never to a broken report or a wrong number. Uninstalling reverts it completely.

    Does it change the numbers or the drill-down?

    No. Debit, credit, balance, currency, filters, comparisons, unfolding and the audit drill-down are all Odoo's, untouched.

    Do I need Odoo Enterprise?

    Yes. The module depends on account_reports, the Enterprise accounting reporting engine. It cannot be installed on Odoo Community.

    Get it

    General Ledger — Split Entry No. / Reference / Label Columns — $39 USD, one-time, on the Odoo Apps Store: apps.odoo.com/apps/modules/19.0/eh_account_gl_columns

    Requires Odoo 19.0 Enterprise Accounting (account_reports). Licensed OPL-1. Includes 90 days of support by email at ebraheem@brioche.me — questions answered within 24 hours. One purchase covers one Odoo major version.

    Built for a multi-company group in Saudi Arabia reconciling real ledgers on Odoo 19, then generalised for sale.

    General Ledger — Split Entry No. / Reference / Label Columns

    $39 USD — one-time, on the Odoo Apps Store

    Odoo 19.0, Enterprise Accounting · Licensed OPL-1 · 90 days of support included · One purchase covers one Odoo major version.

    Get it on the Odoo Apps StoreAsk a question first

    Need this fitted to your business, not just installed?

    EHC takes on consultancy, projects and ongoing services — Odoo implementation, process and controls design, data migration, and custom development like the module above.

    What EHC doesEmail Ebraheem
    in Odoo Notes
    One Odoo Digest Email for All Your Companies
    Why multi-company digests return zeros, and how to get a combined total.

    Have a system that is not telling you the truth?

    Let's look at it together.

    Email

    ebraheem@brioche.me

    What EHC does

    Services, consultancy and projects

    Written work

    Odoo Notes

    EHC · hashem.sa
    • Home
    • •
    • Services
    • •
    • Odoo Notes
    • •
    • About
    • •
    • Contact
    • •
    • Privacy Policy
    Copyright © EHC · Ibrahim Mahmoud Hashim Trading One Person Company · Unified no. 7037243677
    الْعَرَبيّة | English (US)
    Powered by Odoo - The #1 Open Source eCommerce