## 📈 Use the Report Viewer

On the web app, open any named report, then follow this walkthrough to set the date range and to print, export, or email the result from the viewer toolbar.

### 📝 Steps

1. On the **web** app, open the sidebar **REPORTING**. This menu is not on the native POS — to print a thermal report from a POS/tablet, use **MANAGEMENT → Report** instead.
2. Choose **Report Category**, then choose **Report Name**. Picking a category auto-selects its first report. You only see categories and reports your account is allowed to view.
3. Click the **Start Time** field to open the picker.
4. Pick the date from the calendar.
5. Pick a time from the 30-minute list, or type the value directly as `yyyy-MM-dd HH:mm`.
6. Click the **End Time** field and set it the same way — calendar for the date, 30-minute list or `yyyy-MM-dd HH:mm` for the time. The default range is today **00:00** through **23:59**.
7. Wait for the preview to refresh. If it does not update on its own, click the toolbar **Refresh** button.
8. To download a PDF, click **Export** on the toolbar and choose **PDF**.
9. To download an Excel file, click **Export** again and choose **XLSX (Excel)** instead. Your browser's download bar shows the finished file.
10. To print, click **Print** on the toolbar to open the print preview / browser print dialog.
11. To email the report, click **Send Email**. Fill in **To** with the recipient, optionally add **CC**, leave **From** as the pre-filled no-reply@posx.ai, check **Subject** (pre-filled as `{company name}-{report name}`), pick **Format** (PDF or XLSX), then click **Send**.
12. If **To** is empty or not a valid address, the dialog shows "Email field is required" or "Email format is not valid" — fix it and click **Send** again.
13. If a required parameter is empty, the app shows "Please fill in all required parameters before generating the report" — fill in both **Start Time** and **End Time**, then try again.
14. Watch for these notifications: "Report expired, refreshing..." means the session is auto-refreshing, just wait; "Report server unavailable, please try again later" or "Network error, please check your connection and try again" mean you should wait and retry; "Report failed to load, please reopen this page" means close and reopen the page.

> **💡 Tip:** **REPORTING** is web only. Do not look for this menu on the native POS. If a session expires, let the auto-refresh finish instead of closing the page. Need on-screen charts with no file? Use **ANALYTICS** — that dashboard does not export.

---

## 🎬 Video Guide

[Watch Demo Video](https://support.agenteehq.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBaXNEIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--d41cc5bb7335debfbb2d711e228f06c5fc135f8c/use-the-report-viewer-EN.mp4)
