The built-in CRM report wizard is great for users to quickly and easily create reports in CRM.
Figure: The starting point
But when the user wants to create a report that needs additional totals, different formatting, summaries in the header etc. A custom report is required.
Filtered Views allows the report developer to query underlying SQL data directly. Filtered views are fully compliant with the Microsoft Dynamics CRM security model. When you run a report that obtains data from filtered views, the Microsoft Dynamics CRM security role determines what data you can view in the report.
Figure: Filtered Views in the CRM SQL Database
Fetch is a proprietary query language that is used in Microsoft Dynamics CRM. It is based on a schema that describes the capabilities of the language. The FetchXML language supports similar query capabilities as query expression. It is used primarily as a serialized form of query expression, used to save a query as a user owned saved view in the userquery entity or as an organization owned view in the savedquery entity.
Fetch Restrictions:
What do you need get started writing Fetch based CRM Custom Reports?
Get up and running quickly with Fetch:
More advanced users will have a boilerplate(s) for the various CRM report styles they produce and just build on top of the template.
Here's an example of a before (CRM Wizard) and after (Visual Studio) for an Activity Report:
Figure: Report created using CRM Wizard
Figure: Report updated in Visual Studio
5 enhancements that required a custom report:
More Information: