Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

reports: formal output - a letterhead and signature block bound to a declared record (company), carried by the print and a server-side XLSX/PDF export

Open
#7,882 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
28/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
java, sql, yaml
Domain
api, backend

Research direction

Start by reading the report generation entry points named in the issue, printReport() and exportCsv(), and inspect the referenced gen/<report>/reports/<Report>/report.js examples. Then trace the existing /export and XslFoRenderer paths and how report parameters and i18n catalogs are handled. Done means reports declaring a letterhead and signatures include the specified record fields, period and names in print/PDF and XLSX, while reports without those declarations stay unchanged.

Written by the indexing model from the issue text.

Description

What is missing

A generated report page (kind: balance, kind: statement, plain aggregation) prints and exports a bare table: printReport() renders the /export rows into a minimal print document titled with the report name, and exportCsv() downloads CSV. A statutory ledger report handed to an auditor, a tax office or a bank is a formal document: it carries the entity it is about and is signed. There is no way to declare that, so every module that needs it would hand-write a print template per report.

Seen in BusinessIntents base-journal (14.88.0): TrialBalance, GeneralLedger, CustomerBalances, BalanceSheet, IncomeStatement (gen/<report>/reports/<Report>/report.js).

Proposed shape (discussion-first)
reports:
  - name: TrialBalance
    kind: balance
    ...
    letterhead:
      record: { entity: Company, model: companies, by: parameter }   # a report parameter picks the record (or `base: true` = the flagged row)
      fields: [name, registrationNumber, vatNumber, Address, City]   # rendered as the header block
      period: true                                                   # "for the period <from> - <to>" from the window parameters, + the run date
    signatures:
      - { label: Compiled by, from: ChiefAccountant }                # a field of the letterhead record
      - { label: Manager,     from: Manager }
  • The print document and a server-side export (XLSX with raw numbers; PDF through the existing XslFoRenderer path) carry the header block, page numbers and the signature block; the on-screen page shows the header line.
  • Labels and the period phrase go through the module's i18n catalogs like every other generated string.
  • Number formatting in the print/PDF follows the report's numeric columns (#,##0.00), the XLSX keeps raw numbers.
Acceptance

A report declaring letterhead/signatures renders to print/PDF with the company's identifiers, the window and the two signature names taken from the record; XLSX carries the same header rows above the raw data; a report without them is unchanged.

Downstream: BusinessIntents/base-journal#82 (formal output for the ledger reports and statements), which waits on this construct.

Dominant language
Java
Stars
278
Forks
97
Avg merge
16h 46m
Merged PRs (30d)
265

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from eclipse-dirigible/dirigible

All issues in eclipse-dirigible/dirigible

Similar issues

More Java issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.