/// <summary>
		/// Creates the report
		/// </summary>
		/// <returns></returns>
		private async Task CreateReport()
    {
      ReportDataSource reportDataSource = null;
      Report report = null;
			//_isCreateReport = false;
			var reportTemplate = await GetReportTemplate(SelectedReportTemplate);			
      await QueuedTask.Run(() =>
      {
        //Adding all fields to the report
        List<CIMReportField> reportFields = new List<CIMReportField>();
        var selectedReportFields = ReportFields.Where((fld) => fld.IsSelected);
        foreach (var rfld in selectedReportFields)
        {
          var cimReportField = new CIMReportField() { Name = rfld.Name };
          reportFields.Add(cimReportField);
          //Defining grouping field
          if (rfld.Name == SelectedGroupField?.Name)
            cimReportField.Group = true;
          //To DO: Do sort info here.
        }

        //Report field statistics
        List<ReportFieldStatistic> reportFieldStats = new List<ReportFieldStatistic>();

        if (SelectedStatsField != null)
        {
          ReportFieldStatistic reportStat = new ReportFieldStatistic();
          reportStat.Field = SelectedStatsField.Name;
          reportStat.Statistic = (FieldStatisticsFlag)Enum.Parse(typeof(FieldStatisticsFlag), SelectedStatsOption);
          reportFieldStats.Add(reportStat);
        }

        //Set Datasource
        reportDataSource = new ReportDataSource(SelectedLayer, "", IsUseSelection, reportFields);

        try
        {
          report = ReportFactory.Instance.CreateReport(ReportName, reportDataSource, null, reportFieldStats, reportTemplate, SelectedReportStyle);					
          //_isCreateReport = true;
        }
        catch (System.InvalidOperationException e)
        {
          if (e.Message.Contains("Group field defined for a non-grouping template"))
          {
            MessageBox.Show("A group field cannot be defined for a non-grouping template.");
          }
          else if (e.Message.Contains("Grouping template specified but no group field defined"))
          {
            MessageBox.Show("A group field should be defined for a grouping template.");
          }
        }
      });
			//Open the report
			IReportPane iNewReportPane = await ProApp.Panes.CreateReportPaneAsync(report); //GUI thread

		}
        public static async void GetReport(string reportName)
        {
            #region Get a specific report
            ReportProjectItem reportProjItem = Project.Current.GetItems <ReportProjectItem>().FirstOrDefault(item => item.Name.Equals(reportName));
            Report            report         = reportProjItem?.GetReport();
            #endregion
            #region Open a Report project item in a new view
            //Open a report project item in a new view.
            //A report project item may exist but it may not be open in a view.

            //Reference a report project item by name
            ReportProjectItem reportPrjItem = Project.Current.GetItems <ReportProjectItem>().FirstOrDefault(item => item.Name.Equals("MyReport"));

            //Get the report associated with the report project item
            Report reportToOpen = await QueuedTask.Run(() => reportPrjItem.GetReport());

            //Create the new pane
            IReportPane iNewReporttPane = await ProApp.Panes.CreateReportPaneAsync(reportToOpen); //GUI thread

            #endregion
        }