ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Desktop.Reports Namespace / ReportFactory Class / CreateReport Method / CreateReport(String,ReportDataSource) Method
The name of the report.
ReportDataSource object defining data source, fields, and definition query for the report.
Example Version

CreateReport(String,ReportDataSource) Method
Creates a new report and adds it to a project. The source data for the report can be either a Layer or Table or a data connection to the data. This method must be called on the MCT. Use QueuedTask.Run. Not supported for custom report templates (.rptt).
Syntax

Parameters

name
The name of the report.
reportDataSource
ReportDataSource object defining data source, fields, and definition query for the report.

Return Value

The created report.
Exceptions
ExceptionDescription
This method or property must be called within the lambda passed to QueuedTask.Run.
reportDataSource
Example
Create report
//Note: Call within QueuedTask.Run()
//The fields in the datasource used for the report
//This uses a US Cities dataset
var listFields = new List<CIMReportField> {
          //Grouping should be the first field
          new CIMReportField{Name = "STATE_NAME", FieldOrder = 0, Group = true, SortInfo = FieldSortInfo.Desc}, //Group cities using STATES
          new CIMReportField{Name = "CITY_NAME", FieldOrder = 1},
          new CIMReportField{Name = "POP1990", FieldOrder = 2, },
      };
//Definition query to use for the data source
var defQuery = "STATE_NAME LIKE 'C%'";
//Define the Datasource
var reportDataSource = new ReportDataSource(featureLayer, defQuery, listFields);
//The CIMPage defintion - page size, units, etc
var cimReportPage = new CIMPage
{
  Height = 11,
  StretchElements = false,
  Width = 6.5,
  ShowRulers = true,
  ShowGuides = true,
  Margin = new CIMMargin { Bottom = 1, Left = 1, Right = 1, Top = 1 },
  Units = LinearUnit.Inches
};

//Report template
var reportTemplates = await ReportTemplateManager.GetTemplatesAsync();
var reportTemplate = reportTemplates.Where(r => r.Name == "Attribute List with Grouping").First();

//Report Styling
var reportStyles = await ReportStylingManager.GetStylingsAsync();
var reportStyle = reportStyles.Where(s => s == "Cool Tones").First();

//Field Statistics
var fieldStatisticsList = new List<ReportFieldStatistic> {
          new ReportFieldStatistic{ Field = "POP1990", Statistic = FieldStatisticsFlag.Sum}
          //Note: NoStatistics option for FieldStatisticsFlag is not supported.
      };
var report = ReportFactory.Instance.CreateReport("USAReport", reportDataSource, cimReportPage, fieldStatisticsList, reportTemplate, reportStyle);
Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3 or higher.
See Also