Docs / Reports

Reports

Run, build, and schedule reports on any data in the system.

The Report Library

The Report Library is the home for every saved report. Find it in the sidebar under System → Reports → Library. Each row shows the report’s name, description, the data it starts from (Base Table), and how many columns and joined tables it uses.

The badge in the Type column tells you where a report came from:

  • Starter — ready-made reports that ship with the app. They cannot be deleted, but you can copy one and make it your own.
  • Shared — a custom report that was saved as visible to all users.
  • Private — a custom report that was not shared.

Use the All / Starter / Custom buttons and the search box at the top to narrow the list.

Running a report

Every row has action buttons on the left:

  • Run Report (play button) — runs it right in a window. If the report was built with questions (for example Which location?), you answer them first, then click Run Report. A search box above the results lets you filter what came back.
  • Export Excel — downloads the results as a spreadsheet without opening them first.
  • View Details (info button) — shows what the report is made of: base table, columns, joins, filters, sort, and row limit.
  • Copy — opens the Report Builder with a copy loaded, so you can tweak it without touching the original. This button only appears if you have the report-builder permission.

If results say limit reached, the report hit its row cap — see Building a custom report for raising the Max Rows setting.

Building a custom report

The Report Builder lets you pull a custom report from almost any data in the system — no spreadsheets, no technical skills needed. It appears under System → Reports → Builder only if your user group has the report-builder permission.

Pick a starting point

The Data Source panel on the left lists every reportable table, grouped by area — Inventory & Products, Purchasing, Sales & Customers, Production & BOM, Maintenance & Assets, Quality & NCR, Gauging & Calibration, Tooling & Operations, Workforce & Labor, Cost Centers, and more. Pick the table that matches the main thing your report is about; everything else can be joined in.

The six steps
  1. Related Tables (Joins) — flip a switch to connect related data. Enabling a join reveals deeper joins from that table, so you can chain as far as you need.
  2. Select & Order Columns — click columns on the left to add them, drag to reorder. The field search also finds fields in related tables and adds the needed link automatically.
  3. Calculated Fields — combine two fields with math (Add, Subtract, Multiply, Divide, Percentage), text (Concatenate), or date gaps (Days Between, Months Between, and so on).
  4. Filters — narrow the results; see Filters, date ranges, and ask-me prompts.
  5. Grouping — turn detail rows into totals; see Grouping, totals, and duplicate rows.
  6. Sort & Limit — choose the order and a Max Rows cap (500 by default, up to 10,000).

A Live Preview bar at the bottom shows a sample as you build, so you can see immediately whether you are on the right track. Run Report shows the full results and Export Excel downloads them.

Click Save Report to name it and optionally tick Make visible to all users — that is what makes it Shared instead of Private in the The Report Library. Export Config and Import Config move a report design between systems as a small file, without any of the data.

Filters, date ranges, and ask-me prompts

Filters keep a report focused — without them you get every row, up to the row limit. Add as many as you need in the Filters step of the Building a custom report; they are all combined with AND, meaning a row must pass every filter to appear.

Each filter is a column, a comparison, and a value. The comparisons include Equals, Not Equals, Less Than, Greater Than, Contains, Not Contains, Is Empty, and Is Not Empty. Date columns get extra, friendlier choices: On Date, Before, After, Between, Last X Days, Last X Months, and rolling periods like This Week, This Month, This Quarter, and This Year. Rolling periods are perfect for saved reports because they stay current — a This Month filter always means the month you run it in.

The small keyboard/columns toggle next to the value box switches between comparing against a typed value and comparing against another column — handy for things like “quantity on hand is below the reorder point.”

Ask the person running it

Tick Ask the user for this value when they run the report and write the question to show (for example Which location?). Now the value is not baked in: whenever someone runs the report from the The Report Library, a short form appears first asking for the value. One saved report can serve everyone, instead of one copy per location or per customer.

Grouping, totals, and duplicate rows

Grouping turns a long list of detail rows into a summary — one row per product, per supplier, per month. In the Grouping step of the Building a custom report, pick a table and column and click Add Group By. You can stack several group-by columns for finer breakdowns.

Once you group, every column that is not in the group-by list needs a rule for how to squash its values into one. That is the Aggregate Functions list: choose Sum, Average, Count, Count Distinct, Min, or Max for each column. Anything you leave on Auto (First) just shows the first value it finds — fine for names and codes, misleading for quantities.

Prefer to keep every detail line? Tick Show all lines with subtotals — the report shows every row and inserts subtotal and grand-total rows at each group break, like a classic printed ledger.

Why are my rows duplicated?

Some joins connect one record to many related rows — one product to many bins, one order to many lines. The builder warns you with a yellow notice: “Each X can have many Y.” Without grouping, each record repeats once per related row, so sums and counts can look inflated. Click Group by in the notice to collapse back to one row each, or Keep duplicate rows if the repetition is exactly what you want (for example, a row per bin).

A related filter option, Only pick matching groups, keep totals across all rows, lets a filter choose which groups to show while the totals still count every row — for example, show only short-stocked items but total Min/Max over every bin.

Emailing reports on a schedule

The Report Scheduler emails a saved report to anyone, automatically, on the days you choose. Find it under System → Reports → Scheduler (it appears only with the scheduling permission).

Creating a schedule

Click Add Schedule, then:

  • Pick a saved Report from the The Report Library and name the schedule.
  • Enter Recipients as comma-separated email addresses, and choose the Format: Excel (.xlsx) or PDF.
  • Set when it sends. The Quick Presets cover common patterns — Daily, Weekdays, Every Monday, 1st of Month, 1st & 15th, and more — or build your own rules: Every Day, Days of Week, Days of Month, or Every N Days, each with a send time and optional start and end dates. You can combine several rules in one schedule.

The three-month calendar on the right shows a green dot on every day the report will go out, so you can sanity-check the rules before saving.

Managing schedules

Each schedule shows an Active or Paused badge plus its next and last run. The row buttons let you Run Now (sends the email immediately and shows the results), Edit, Pause/Resume, View Log, and Delete. The log records every send with a Success, Failed, or Skipped status, the row count, and any error message — your first stop when an email did not arrive.

The gear button opens Report Email Settings: leave it empty to send through the company email settings, or set up a dedicated server here. It supports a plain password or app password, Google OAuth2, and Office 365 OAuth2, and the Send Test button confirms everything works before the first real delivery.