Run, build, and schedule reports on any data in the system.
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:
Use the All / Starter / Custom buttons and the search box at the top to narrow the list.
Every row has action buttons on the left:
If results say limit reached, the report hit its row cap — see Building a custom report for raising the Max Rows setting.
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.
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.
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 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.”
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 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.
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.
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).
Click Add Schedule, then:
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.
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.