Reports in Frappe Framework v15
What Are Reports in Frappe Framework?
Reports in Frappe Framework v15 are structured data views used to analyze, summarize, and monitor business information inside the Frappe Desk. Reports allow users to retrieve DocType data using filters, calculations, and visual indicators without directly interacting with raw records.
Reports are a core part of ERPNext’s analytics and decision-making layer.
Why Are Reports Important in ERPNext?
Reports transform transactional data into actionable insights. They help businesses track performance, monitor operations, and ensure compliance.
Key Benefits
- Centralized business analytics
- Real-time operational visibility
- Role-based access to data
- Customizable and reusable reports
Who Uses Frappe Reports?
Target Audience
- ERPNext End Users
- Business Analysts
- ERPNext Developers
- ERP Administrators
Technical Prerequisites
- Frappe Framework v15
- DocTypes with stored data
- User roles and permissions
What Are the Types of Reports in Frappe v15?
Frappe Framework v15 supports three primary report types, each designed for a specific use case.
1. Standard Report
Standard Reports are auto-generated tabular reports based on DocTypes. They require minimal configuration and are useful for quick data listings.
Use Case: Simple record views with filters.
2. Query Report
Query Reports use SQL queries to fetch and aggregate data. They are ideal for complex joins and performance-optimized reporting.
Key Characteristics
- Written using SQL
- Stored as Report DocTypes
- Filter-driven and dynamic
3. Script Report
Script Reports use Python logic to generate data dynamically. They allow advanced calculations and business rules.
Key Characteristics
- Python-based execution
- Supports charts and summaries
- Used for advanced analytics
How Do Reports Work in the Frappe Desk?
Reports are accessed from:
- Workspaces
- Report Lists
- DocType dashboards
When a report runs, Frappe evaluates permissions, applies filters, executes the report logic, and renders results in the Desk interface.
How Are Filters Used in Reports?
Filters allow users to narrow report results without modifying code.
Common Filter Types
- Date
- Link (DocType-based)
- Select
- Check
- Data
Filters are defined inside the Report configuration and rendered dynamically in the Desk.
How Are Permissions Applied to Reports?
Frappe v15 enforces strict permission checks:
- Users must have access to the Report
- Underlying DocType permissions are validated
- Sensitive fields are automatically restricted
This ensures secure data access across ERPNext.
Real-World ERPNext Reporting Use Cases
Industry Relevance
- Finance: General Ledger, Trial Balance
- Sales: Order and Invoice analysis
- Manufacturing: Production and Work Order tracking
- HR: Attendance and Payroll reports
Reports adapt to industry-specific business needs.
Best Practices for Designing Reports
- Choose the correct report type for performance
- Keep filters minimal and relevant
- Avoid heavy calculations in Query Reports
- Use Script Reports for complex logic
- Clearly name reports and filters
Common Issues and Troubleshooting
Report Not Loading
- Check user permissions
- Verify SQL or Python logic
- Confirm DocType availability
Incorrect Data
- Validate filters
- Review joins and conditions
- Ensure correct date ranges
Advanced Concepts in Frappe Reporting
Reports vs Dashboards
| Feature | Reports | Dashboards |
| Purpose | Detailed analysis | High-level overview |
| Data | Tabular | Visual |
| Interaction | Filters | Charts |
Reports are the foundation for dashboard visualizations.
Integration Patterns
Frappe Reports integrate seamlessly with:
- Dashboards and Charts
- Workspaces
- Server Calls
- REST APIs
- Scheduled Jobs
They are central to ERPNext’s reporting ecosystem.
Official References (Verified)
Desk Reports Documentation (v15):
https://docs.frappe.io/framework/user/en/desk/reports
Frappe GitHub (v15):