/// <summary> /// Exports report /// </summary> /// <returns></returns> private async Task ExportReport() { ReportProjectItem reportProjItem = Project.Current.GetItems <ReportProjectItem>().FirstOrDefault(item => item.Name.Equals(ReportName)); Report report = null; await QueuedTask.Run(() => report = reportProjItem?.GetReport()); if (report == null) { MessageBox.Show($"{ReportName} report not found."); return; } //Define Export Options var exportOptions = new ReportExportOptions { ExportPageOption = ExportPageOptions.ExportAllPages, TotalPageNumberOverride = 12, StartingPageNumberLabelOffset = 0 }; //Create PDF format with appropriate settings PDFFormat pdfFormat = new PDFFormat(); pdfFormat.Resolution = 300; pdfFormat.OutputFileName = Path.Combine(Project.Current.HomeFolderPath, report.Name); await ExportAReportToPdf(report, pdfFormat, exportOptions, IsUseSelection); MessageBox.Show($"{ReportName} report exported to {pdfFormat.OutputFileName}"); }
public static Report GetReport(string reportName) { #region Get a specific report ReportProjectItem reportProjItem = Project.Current.GetItems <ReportProjectItem>().FirstOrDefault(item => item.Name.Equals(reportName)); return(reportProjItem?.GetReport()); #endregion }
public static void ModifyReport(string reportName, FeatureLayer featureLayer) { var report = GetReport(reportName); #region Rename Report //Note: Call within QueuedTask.Run() ReportProjectItem reportProjItem = Project.Current.GetItems <ReportProjectItem>().FirstOrDefault(item => item.Name.Equals(reportName)); reportProjItem.GetReport().SetName("RenamedReport"); #endregion #region Modify the Report datasource //Note: Call within QueuedTask.Run() //Remove Groups // The fields in the datasource used for the report var listFields = new List <string> { "STATE_NAME" }; report.RemoveGroups(listFields); //Add Group report.AddGroup("STATE_NAME", true, true, ""); //Modify the Definition Query var defQuery = "STATE_NAME LIKE 'C%'"; report.SetDefinitionQuery(defQuery); #endregion #region Modify the report Page //Note: Call within QueuedTask.Run() var cimReportPage = new CIMPage { Height = 12, StretchElements = false, Width = 6.5, ShowRulers = true, ShowGuides = true, Margin = new CIMMargin { Bottom = 1, Left = 1, Right = 1, Top = 1 }, Units = LinearUnit.Inches }; report.SetPage(cimReportPage); //Change only the report's page height report.SetPageHeight(12); #endregion }
public static Task <bool> DeleteReport(string reportName) { #region Delete a report //Note: Call within QueuedTask.Run() //Reference a reportitem in a project by name ReportProjectItem reportItem = Project.Current.GetItems <ReportProjectItem>().FirstOrDefault(item => item.Name.Equals(reportName)); //Check for report item if (reportItem == null) { return(Task.FromResult <bool>(false)); } //Delete the report from the project return(Task.FromResult <bool>(Project.Current.RemoveItem(reportItem))); #endregion }
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 }