Reports
Complete guide to NkapBooks Reports — General Ledger, Profit & Loss, Balance Sheet, Trial Balance, Stock Ledger, Stock Balance, GSTR-1, GSTR-2, export options, report printing, and inline inventory adjustments.
9. Reports
NkapBooks provides a comprehensive suite of financial and inventory reports that give you real-time visibility into your business performance. Every report is generated from the underlying double-entry ledger entries and stock ledger entries, ensuring accuracy and auditability.
| Report | Category | Location | Description |
|---|---|---|---|
| General Ledger | Financial | Reports → General Ledger | Chronological list of all accounting transactions |
| Profit & Loss | Financial | Reports → Profit And Loss | Revenue minus expenses for a given period |
| Balance Sheet | Financial | Reports → Balance Sheet | Snapshot of financial position at a point in time |
| Trial Balance | Financial | Reports → Trial Balance | All accounts with opening, period, and closing balances |
| Stock Ledger | Inventory | Reports → Stock Ledger | Detailed log of all inventory transactions |
| Stock Balance | Inventory | Reports → Stock Balance | Current stock levels with inline adjustment |
| GSTR-1 | Regional (India) | Reports → GSTR-1 | Outward supplies report for GST filing |
| GSTR-2 | Regional (India) | Reports → GSTR-2 | Inward supplies report for GST filing |
9.0 Report Architecture
All reports in NkapBooks are built on a common architecture that provides consistent behavior across the entire reporting suite.
Base Report Class
Every report extends the abstract Report base class, which provides:
| Feature | Description |
|---|---|
| Reactive Filters | Changing any filter automatically re-fetches and re-renders report data |
| Column Definitions | Each report defines its own columns with field type, alignment, and width |
| Pagination | Large reports support paginated display for performance |
| Export Actions | Built-in CSV and JSON export for every report |
| Print View | Dedicated print layout accessible via the printer icon |
| Auto-Refresh | Reports detect when underlying data changes and prompt a refresh |
Report Hierarchy
Report (base)
├── LedgerReport (accounting entries)
│ ├── GeneralLedger
│ └── AccountReport (financial statements)
│ ├── ProfitAndLoss
│ ├── BalanceSheet
│ └── TrialBalance
├── StockLedger (inventory entries)
│ └── StockBalance
└── BaseGSTR (GST reports)
├── GSTR1
└── GSTR2
Report Page UI
The report page consists of three main sections:
| Section | Description |
|---|---|
| Header | Report title, export dropdown (CSV/JSON), print button, and special actions |
| Filter Bar | Up to 5 filter controls arranged in a grid — changes trigger immediate data reload |
| Report Body | Tabular data display with sortable columns, color-coded values, and clickable links |
Accessing Reports
Reports are accessed from the sidebar under Reports, or via direct URL:
| URL Pattern | Example |
|---|---|
/report/:reportClassName | /report/GeneralLedger |
/report-print/:reportName | /report-print/general-ledger |
You can also navigate to a specific report with pre-set filters by passing query parameters:
| Parameter | Example |
|---|---|
account | /report/GeneralLedger?account=Sales |
party | /report/GeneralLedger?party=John%20Doe |
defaultFilters | /report/GeneralLedger?defaultFilters={"account":"Sales"} |
9.1 General Ledger
The General Ledger is the most detailed financial report. It shows a chronological list of every accounting ledger entry in the system — every debit and credit created by invoices, payments, journal entries, shipments, and purchase receipts.
Data Source
The General Ledger reads directly from the AccountingLedgerEntry table. Each row represents one side of a double-entry transaction:
| Field | Type | Description |
|---|---|---|
name | Int | Auto-incrementing entry ID |
account | Link → Account | The GL account debited or credited |
date | Date | Transaction date |
debit | Currency | Debit amount (absolute value) |
credit | Currency | Credit amount (absolute value) |
referenceType | Data | Schema name of the source document |
referenceName | Data | Name/ID of the source document |
party | Link → Party | Associated customer or supplier |
reverted | Check | Whether this entry has been cancelled/reversed |
reverts | Data | Name of the entry this one reverses (if applicable) |
Filters
| Filter | Type | Description |
|---|---|---|
| Ref Type | Select | Filter by source document type: All, Sales Invoices, Purchase Invoices, Payments, Journal Entries, Shipment, Purchase Receipt |
| Ref Name | Dynamic Link | Filter by specific document name (changes based on Ref Type selection) |
| Account | Link → Account | Filter by specific GL account |
| Party | Link → Party | Filter by specific customer or supplier |
| From Date | Date | Show entries on or after this date |
| To Date | Date | Show entries on or before this date |
| Group By | Select | Group entries by: None, Party, Account, or Reference |
| Include Cancelled | Check | When enabled, shows reverted/cancelled entries |
| Ascending Order | Check | When enabled, sorts oldest-first instead of newest-first |
Columns
| # | Column | Type | Description |
|---|---|---|---|
| 1 | # | Int | Row number (sequential index) |
| 2 | Account | Link | GL account name |
| 3 | Date | Date | Entry date |
| 4 | Debit | Currency | Debit amount |
| 5 | Credit | Currency | Credit amount |
| 6 | Balance | Currency | Running balance (debit − credit) |
| 7 | Party | Link | Customer or supplier name |
| 8 | Ref Name | Data | Source document ID |
| 9 | Ref Type | Data | Source document type (displayed as label) |
| 10 | Reverted | Check | Shows "Reverted" if the entry was cancelled (only visible when "Include Cancelled" is checked) |
Grouping Behavior
When Group By is set to anything other than "None":
- Entries are grouped by the selected field (Party, Account, or Reference).
- Each group ends with an italicized Total row showing the sum of debits, credits, and net balance for that group.
- A blank spacer row separates each group.
Closing Row
Every General Ledger report ends with a bold Closing row that shows:
- Total Debit: Sum of all debit entries
- Total Credit: Sum of all credit entries
- Net Balance: Total Debit − Total Credit
Auto-Refresh
The General Ledger automatically detects when AccountingLedgerEntry records are created or deleted and sets a refresh flag. The next time you view the report, it will re-fetch the latest data.
Workflow Example
Scenario: You want to see all transactions for customer "Acme Corp" in the last quarter.
- Navigate to Reports → General Ledger
- Set Party = "Acme Corp"
- Set From Date to the start of the quarter
- Set To Date to the end of the quarter
- Optionally set Group By = "Reference" to see entries grouped by invoice/payment
- Click Export → CSV to download the data for your records
9.2 Profit & Loss Statement
The Profit & Loss Statement (also called Income Statement) shows your business's revenue minus expenses over a defined period. It answers the question: "Did we make money or lose money during this period?"
Data Source
The Profit & Loss report reads from AccountingLedgerEntry and filters to accounts with root types Income and Expense only.
Root Types
| Root Type | Balance Must Be | Description |
|---|---|---|
| Income | Credit | Revenue, sales, other income |
| Expense | Debit | Cost of goods, operating expenses, etc. |
Filters
The Profit & Loss shares the AccountReport filter set:
| Filter | Type | Options / Description |
|---|---|---|
| Based On | Select | Fiscal Year — specify from/to year; Until Date — specify a to-date and count |
| Periodicity | Select | Monthly, Quarterly, Half Yearly, Yearly — determines column granularity |
| To Date | Date | (Until Date mode) End date for the report |
| Count | Int | (Until Date mode) Number of periods to show (e.g., 3 months) |
| From Year | Int | (Fiscal Year mode) Starting fiscal year |
| To Year | Int | (Fiscal Year mode) Ending fiscal year |
| Consolidate Columns | Check | Merge all periods into a single column |
| Hide Group Amounts | Check | Hide balances for group (parent) accounts, showing only leaf accounts |
Report Structure
The Profit & Loss report displays data in the following order:
- Income accounts — hierarchical tree of all income accounts with period balances
- Total Income (Credit) — bold summary row summing all income
- (empty row)
- Expense accounts — hierarchical tree of all expense accounts with period balances
- Total Expense (Debit) — bold summary row summing all expenses
- (empty row)
- Total Profit — bold row showing Income − Expenses, color-coded:
- 🟢 Green if positive (profit)
- 🔴 Red if negative (loss)
Columns
| Column | Description |
|---|---|
| Account | Account name (indented by hierarchy level) |
| Period columns | One column per period (e.g., "Mar 2024", "Feb 2024", "Jan 2024") — shows the balance for that period |
The number and labels of period columns depend on the Periodicity and Count settings. Each column header displays the end date of that period.
Account Hierarchy
Accounts are displayed in a tree structure:
- Root-level accounts (bold) — e.g., "Income", "Direct Income"
- Sub-accounts (indented) — e.g., "Sales", "Service Revenue"
- Leaf accounts — the actual accounts where transactions are posted
Group accounts show the sum of all their children. When Hide Group Amounts is checked, only leaf accounts display values.
Period Comparison
The key power of the P&L report is period comparison:
- Set Periodicity = "Monthly" and Count = 12 to see a full year month by month
- Set Periodicity = "Yearly" with Based On = "Fiscal Year" to compare this year vs. last year
- Set Consolidate Columns to see a single total for the entire date range
9.3 Balance Sheet
The Balance Sheet provides a snapshot of your company's financial position at a specific point in time. It follows the fundamental accounting equation:
Assets = Liabilities + Equity
Data Source
The Balance Sheet reads from AccountingLedgerEntry and filters to accounts with root types Asset, Liability, and Equity.
Root Types
| Root Type | Balance Must Be | Description |
|---|---|---|
| Asset | Debit | Cash, receivables, inventory, fixed assets |
| Liability | Credit | Payables, loans, accrued expenses |
| Equity | Credit | Capital, retained earnings |
Filters
The Balance Sheet uses the same AccountReport filter set as Profit & Loss:
| Filter | Type | Description |
|---|---|---|
| Based On | Select | Fiscal Year or Until Date |
| Periodicity | Select | Monthly, Quarterly, Half Yearly, Yearly |
| To Date / Count | Date / Int | (Until Date mode) |
| From Year / To Year | Int | (Fiscal Year mode) |
| Consolidate Columns | Check | Single column for entire range |
| Hide Group Amounts | Check | Hide group account balances |
Report Structure
The Balance Sheet displays three sections in order:
- Asset accounts — hierarchical tree with period balances
- Total Asset (Debit) — bold summary row
- (empty row)
- Liability accounts — hierarchical tree with period balances
- Total Liability (Credit) — bold summary row
- (empty row)
- Equity accounts — hierarchical tree with period balances
- Total Equity (Credit) — bold summary row
Verification Rule
A correctly balanced set of books will always show:
Total Assets = Total Liabilities + Total Equity
If these don't balance, it indicates an issue with your chart of accounts setup or unbalanced journal entries (which NkapBooks prevents by design).
Columns
| Column | Description |
|---|---|
| Account | Account name (indented by hierarchy level) |
| Period columns | Cumulative balance at the end of each period |
9.4 Trial Balance
The Trial Balance lists every account in your chart of accounts along with its opening balance, period activity (debits and credits), and closing balance. It is the primary verification tool to ensure your books are balanced.
Data Source
The Trial Balance reads from AccountingLedgerEntry and includes all five root types: Asset, Liability, Income, Expense, and Equity.
Filters
| Filter | Type | Description |
|---|---|---|
| From Date | Date | Start of the reporting period |
| To Date | Date | End of the reporting period |
| Hide Group Amounts | Check | Hide balances for parent/group accounts |
Date Range Logic
The Trial Balance divides time into three ranges:
| Range | From | To | Purpose |
|---|---|---|---|
| Opening | Beginning of time (0001-01-01) | From Date | Accumulated balance before the period |
| Period | From Date | To Date | Activity during the selected period |
| Closing | To Date | End of time (9999-12-31) | Activity after the period (rarely used) |
Columns
| # | Column | Description |
|---|---|---|
| 1 | Account | Account name (indented by hierarchy level, bold for root accounts) |
| 2 | Opening (Dr) | Total debit balance before the From Date |
| 3 | Opening (Cr) | Total credit balance before the From Date |
| 4 | Debit | Total debits during the period |
| 5 | Credit | Total credits during the period |
| 6 | Closing (Dr) | Total debit balance after the period |
| 7 | Closing (Cr) | Total credit balance after the period |
Verification
The Trial Balance serves as a verification tool:
- Total Opening Debits should equal Total Opening Credits
- Total Period Debits should equal Total Period Credits
- Total Closing Debits should equal Total Closing Credits
If any of these don't balance, there may be data integrity issues.
Account Hierarchy
Like the P&L and Balance Sheet, accounts are displayed in a tree structure grouped by root type:
- Asset accounts
- Liability accounts
- Income accounts
- Expense accounts
- Equity accounts
Each section is separated by an empty row.
Default Date Range
If no dates are specified, the Trial Balance defaults to the current fiscal year:
- From Date: Fiscal year start
- To Date: Fiscal year end minus one day
9.5 Stock Ledger
The Stock Ledger is the most detailed inventory report. It shows a chronological log of every stock transaction — every item movement, shipment, purchase receipt, and adjustment — with running balances and valuation.
Data Source
The Stock Ledger reads from the StockLedgerEntry table and computes valuation using the configured method (FIFO or Moving Average).
Schema — StockLedgerEntry
| Field | Type | Description |
|---|---|---|
date | Datetime | When the stock movement occurred |
item | Link → Item | The inventory item |
rate | Currency | Unit rate of the transaction |
quantity | Float | Positive = inward, Negative = outward |
location | Link → Location | Warehouse/location |
batch | Link → Batch | Batch number (if batch tracking is enabled) |
serialNumber | Data | Serial number (if serial tracking is enabled) |
referenceName | Data | Source document name |
referenceType | Data | Source document type |
Computed Fields
The Stock Ledger computes additional fields using a stock queue (FIFO) or moving average algorithm:
| Computed Field | Description |
|---|---|
| Balance Quantity | Running total of quantity in stock after this entry |
| Incoming Rate | The rate at which stock was received (for inward entries) or the COGS rate (for outward entries) |
| Valuation Rate | Current average cost per unit (FIFO or Moving Average) |
| Balance Value | Total value of remaining stock (Balance Qty × Valuation Rate) |
| Value Change | Change in total stock value caused by this entry |
Filters
| Filter | Type | Description |
|---|---|---|
| Ref Type | Select | All, Stock Movements, Shipment, Purchase Receipt, Inventory Adjustment |
| Ref Name | Dynamic Link | Specific source document |
| Item | Link → Item | Filter by specific item |
| Location | Link → Location | Filter by specific warehouse |
| Batch | Link → Batch | Filter by batch (only shown if batches are enabled in Inventory Settings) |
| From Date | Date | Show entries on or after this date |
| To Date | Date | Show entries on or before this date |
| Group By | Select | None, Item, Location, Reference |
| Ascending Order | Check | Sort oldest-first |
Columns
| # | Column | Type | Description |
|---|---|---|---|
| 1 | # | Int | Row number |
| 2 | Date | Datetime | Entry date and time |
| 3 | Item | Link | Item name (clickable → opens Item form) |
| 4 | Location | Link | Warehouse name (clickable → opens Location form) |
| 5 | Batch | Link | Batch name (only if batches enabled) |
| 6 | Serial Number | Data | Serial number (only if serial numbers enabled) |
| 7 | Quantity | Float | Quantity change (🟢 green if positive, 🔴 red if negative) |
| 8 | Balance Qty. | Float | Running balance quantity |
| 9 | Incoming Rate | Currency | Rate at which stock was valued |
| 10 | Valuation Rate | Currency | Current average unit cost |
| 11 | Balance Value | Currency | Total value of stock on hand |
| 12 | Value Change | Currency | Change in stock value (🟢 green if positive, 🔴 red if negative) |
| 13 | Ref. Name | Dynamic Link | Source document (clickable → opens the document) |
| 14 | Ref. Type | Data | Source document type label |
Grouping Behavior
When Group By is set to Item or Location:
- Entries are grouped by the selected field.
- Groups are separated by blank spacer rows.
- Row numbering continues sequentially across groups.
Valuation Methods
The Stock Ledger uses the valuation method configured in Inventory Settings:
| Method | How It Works |
|---|---|
| FIFO (First In, First Out) | Oldest stock is consumed first. Valuation rate reflects the cost of the oldest remaining stock. |
| Moving Average | Each inward transaction updates the average cost. Outward transactions use the current average. |
The valuation is computed using a stock queue per item-location-batch combination. Each queue tracks individual stock lots with their rates and quantities.
Auto-Refresh
The Stock Ledger watches for changes to StockLedgerEntry records (creation, deletion, and bulk deletion from cancellations) and automatically flags the report for refresh.
9.6 Stock Balance
The Stock Balance report shows the current stock position for all items across all locations. Unlike the Stock Ledger (which shows every transaction), the Stock Balance shows summarized quantities and values — making it ideal for inventory audits and reorder planning.
Relationship to Stock Ledger
The Stock Balance extends the Stock Ledger class and reuses its data-fetching logic. It processes the same StockLedgerEntry data but aggregates it into summary rows per item-location-batch combination.
Filters
| Filter | Type | Description |
|---|---|---|
| Item | Link → Item | Filter by specific item |
| Location | Link → Location | Filter by specific warehouse |
| Batch | Link → Batch | Filter by batch (only if batches enabled) |
| From Date | Date | Period start for incoming/outgoing calculations |
| To Date | Date | Period end |
| Show Zero Quantity | Check | Include items with zero stock balance (also adds tracked items with no transactions) |
Columns
| # | Column | Type | Color | Description |
|---|---|---|---|---|
| 1 | # | Int | — | Row number |
| 2 | Item | Link | — | Item name (clickable) |
| 3 | Location | Link | — | Warehouse name (clickable) |
| 4 | Batch | Link | — | Batch name (only if batches enabled) |
| 5 | Balance Qty. | Float | 🟢/🔴 | Current quantity on hand |
| 6 | Balance Value | Float | — | Total value of stock |
| 7 | Opening Qty. | Float | — | Quantity before the From Date |
| 8 | Opening Value | Float | — | Value before the From Date |
| 9 | In Qty. | Float | 🟢 Green | Quantity received during the period |
| 10 | In Value | Currency | — | Value of received stock |
| 11 | Out Qty. | Float | 🔴 Red | Quantity shipped/consumed during the period |
| 12 | Out Value | Currency | — | Value of outgoing stock |
| 13 | Valuation Rate | Currency | — | Current cost per unit |
Balance Calculation
For each item-location-batch combination:
| Field | Formula |
|---|---|
| Opening | Sum of all stock entries before From Date |
| Incoming | Sum of positive quantities during the period |
| Outgoing | Sum of negative quantities during the period (shown as positive) |
| Balance | Opening + Incoming − Outgoing |
Show Zero Quantity
When Show Zero Quantity is enabled, the report:
- Includes item-location combinations that exist but have a zero balance.
- Additionally queries all items with
trackItem = trueand all locations, then adds rows for combinations that have no stock ledger entries at all — useful for identifying items you stock but have never purchased.
Inline Inventory Adjustment
The Stock Balance report has a unique inline adjustment feature not found in other reports:
How It Works
- Click the Inventory Adjustment button in the report header.
- The report enters adjustment mode — the Balance Qty. column becomes editable.
- Click on any Balance Qty. cell and type a new quantity.
- Modified rows are tracked (shown with a counter in the header).
- Click Apply Adjustments (N) where N is the number of modified rows.
- A confirmation dialog appears showing:
- Item, location, and batch for each adjustment
- Current quantity vs. new quantity
- Quantity difference
- A Reason field (required) and optional Remarks
- On confirmation, NkapBooks automatically creates Inventory Adjustment documents:
- One document per location (adjustments are grouped by location)
- Items with positive differences get positive quantities (stock increase)
- Items with negative differences get negative quantities (stock decrease)
- Documents are immediately submitted
Adjustment Workflow
| Step | Action | Description |
|---|---|---|
| 1 | Enter Mode | Click "Inventory Adjustment" button |
| 2 | Edit Quantities | Click cells in the Balance Qty column and type new values |
| 3 | Review | Badge shows count of pending changes |
| 4 | Apply | Click "Apply Adjustments" button |
| 5 | Confirm | Fill in reason and remarks in the dialog |
| 6 | Auto-Create | System creates and submits Inventory Adjustment documents |
| 7 | Refresh | Report automatically refreshes to show updated balances |
Cancel Adjustment Mode
Click Cancel to exit adjustment mode without making any changes. All pending edits are discarded. Changing any filter while in adjustment mode also clears all pending edits.
9.7 GSTR-1 (India)
The GSTR-1 report is designed for Indian businesses that need to file their outward supplies return with the GST portal. It auto-populates data from submitted Sales Invoices.
Data Source
GSTR-1 reads from submitted, non-cancelled Sales Invoices within the selected date range. For each invoice, it:
- Fetches the invoice details (date, amounts, taxes).
- Looks up the Party record for GSTIN and address information.
- Determines the Place of Supply from the party's address or GSTIN prefix.
- Calculates whether the supply is intra-state or inter-state based on the company's GSTIN.
- Computes tax amounts (IGST, CGST, SGST) from the invoice's tax entries.
Transfer Types
| Transfer Type | Code | Description | Criteria |
|---|---|---|---|
| B2B | B2B | Business-to-Business | Party has GSTIN |
| B2C-Large | B2CL | Business-to-Consumer (Large) | No GSTIN, inter-state, invoice ≥ ₹2,50,000 |
| B2C-Small | B2CS | Business-to-Consumer (Small) | No GSTIN, intra-state OR invoice < ₹2,50,000 |
| Nil Rated | NR | Nil Rated, Exempted, Non-GST | Tax rate = 0% |
Filters
| Filter | Type | Description |
|---|---|---|
| Transfer Type | Select | B2B, B2C-Large, B2C-Small, or Nil Rated |
| Place | AutoComplete | Filter by state/place of supply (uses India state code map) |
| From Date | Date | Start of reporting period |
| To Date | Date | End of reporting period |
Columns
| Column | Description |
|---|---|
| GSTIN No. | Customer's GST number (only for B2B transfer type) |
| Party | Customer name |
| Invoice No. | Sales invoice number |
| Invoice Value | Grand total of the invoice |
| Invoice Date | Date of the invoice |
| Place of supply | State where the supply was made |
| Rate | Combined GST rate |
| Taxable Value | Net total (before tax) |
| Reverse Chrg. | "Y" if reverse charge applies, "N" otherwise |
| Integrated Tax | IGST amount (for inter-state supplies) |
| Central Tax | CGST amount (for intra-state supplies) |
| State Tax | SGST amount (for intra-state supplies) |
JSON Export (GST Portal Format)
The GSTR-1 supports a special JSON export format compatible with the GST portal:
| Transfer Type | JSON Structure |
|---|---|
| B2B | Grouped by customer GSTIN (ctin), with invoices containing itemized tax details (HSN code, taxable value, CGST, SGST, IGST, Cess) |
| B2CL | Grouped by place of supply (pos), with invoices containing itemized IGST details |
| B2CS | Flat list with supply type (INTRA/INTER), place, taxable value, and tax amounts |
The exported JSON includes:
- GST version identifier
- Company GSTIN
- Filing period (month/year)
- Transfer-type-specific data arrays
9.8 GSTR-2 (India)
The GSTR-2 report covers inward supplies — purchases from suppliers. It auto-populates data from submitted Purchase Invoices.
Data Source
GSTR-2 reads from submitted, non-cancelled Purchase Invoices within the selected date range.
Transfer Types
GSTR-2 only supports the B2B transfer type (purchases are always from registered businesses with GSTIN).
Filters
Same as GSTR-1: Transfer Type, Place, From Date, To Date.
Columns
Same column structure as GSTR-1 but populated with purchase invoice data instead of sales invoice data.
JSON Export
The GSTR-2 JSON export follows the same format as GSTR-1 B2B data but sourced from purchase invoices. The export includes supplier GSTIN and itemized purchase details.
9.9 Report Features
Export Options
Every report in NkapBooks supports two export formats:
CSV Export
| Feature | Description |
|---|---|
| Format | Standard comma-separated values |
| Headers | Column labels from the report |
| Empty Rows | Preserved as blank lines |
| Number Formatting | Values are formatted to the configured display precision, with trailing zeros removed |
| Date Formatting | Dates are exported in ISO 8601 format |
| Save Dialog | System file picker lets you choose the save location |
JSON Export
| Feature | Description |
|---|---|
| Format | Structured JSON object |
| Columns | Array of {fieldname, label} objects |
| Rows | Array of objects with label-keyed values |
| Filters | Current filter state preserved in the export |
| Metadata | Includes timestamp, report name, software name, and version |
The JSON export structure:
| Field | Description |
|---|---|
columns | List of column definitions |
rows | List of row data objects |
filters | Map of active filter values |
timestamp | Export timestamp (ISO 8601) |
reportName | Internal report identifier |
softwareName | "NkapBooks" |
softwareVersion | Current app version |
Print View
Every report has a dedicated print view accessible via:
- The printer icon (🖨️) in the report header
- Keyboard shortcut Ctrl+P (or ⌘+P on macOS)
- Direct URL:
/report-print/:reportName
The print view:
- Renders the report in a clean, printer-friendly layout
- Removes interactive elements (filters, buttons)
- Preserves the current filter state
- Can be printed directly or saved as PDF via the browser's print dialog
Pagination
Reports with large datasets (GeneralLedger, StockLedger, StockBalance, GSTR-1, GSTR-2) enable pagination:
| Feature | Description |
|---|---|
| Page Size | Configurable rows per page |
| Navigation | Previous/Next page controls |
| Smooth Scrolling | Data loads incrementally for performance |
Clickable Links
Many report cells are clickable links that navigate to the related document:
| Column | Navigates To |
|---|---|
| Item (Stock reports) | Item detail form |
| Location (Stock reports) | Location detail form |
| Batch (Stock reports) | Batch detail form |
| Ref. Name (Stock reports) | Source document (Stock Movement, Shipment, etc.) |
| Account (Financial reports) | (displayed as text, filterable) |
| Party (Financial reports) | (displayed as text, filterable) |
Color Coding
Reports use color to highlight important values:
| Color | Meaning | Used In |
|---|---|---|
| 🟢 Green | Positive/favorable value | Quantity increase, value increase, profit |
| 🔴 Red | Negative/unfavorable value | Quantity decrease, value decrease, loss |
| Bold | Summary/total row | Closing rows, total rows |
| Italics | Group subtotal | Group-by total rows |
Role-Based Access
Report access can be controlled via role permissions:
| Permission | Description |
|---|---|
| Report | When enabled for a role, users with that role can view reports |
| Export | When enabled, users can export report data to CSV/JSON |
9.10 Report Summary
Financial Reports Comparison
| Feature | General Ledger | Profit & Loss | Balance Sheet | Trial Balance |
|---|---|---|---|---|
| Shows | Individual entries | Income vs. Expense | Assets vs. Liabilities + Equity | All accounts |
| Granularity | Transaction-level | Period summaries | Period summaries | Period summaries |
| Root Types | All | Income, Expense | Asset, Liability, Equity | All 5 |
| Grouping | Party, Account, Reference | By account hierarchy | By account hierarchy | By root type |
| Date Ranges | Single range | Multiple periods | Multiple periods | Opening/Period/Closing |
| Periodicity | N/A | Monthly to Yearly | Monthly to Yearly | N/A |
| Best For | Auditing, tracing | Performance review | Financial position | Verification |
Inventory Reports Comparison
| Feature | Stock Ledger | Stock Balance |
|---|---|---|
| Shows | Individual stock entries | Summarized balances |
| Granularity | Transaction-level | Item-Location-Batch level |
| Grouping | Item, Location, Reference | None |
| Valuation | Per-entry rates | Aggregated rates |
| Inline Editing | No | Yes (Inventory Adjustment mode) |
| Best For | Stock tracing, auditing | Inventory counts, reordering |