Report

Краткая информация

Объект Report ссылается на отчет в файле проекта ArcGIS Pro (.aprx). Он обеспечивает доступ к общим свойствам и методам.

Обсуждение

Проект ArcGIS Pro может содержать несколько отчетов. Отчеты доступны с помощью применения метода listReports для объекта ArcGISProject, который возвращает список Python объектов Report. Важно, чтобы каждый отчет имел уникальное имя, благодаря этому на конкретный отчет можно будет ссылаться по его name. Каждый отчет имеет свойства metadata, которые можно просмотреть или изменить.

Объект Report, возвращаемый с помощью метода listReports, также представляет первый ReportSection. Свойство referenceDataSource можно изменить с помощью метода setReferenceDataSource. definitionQuery можно применить к первому разделу отчета для фильтрации строк, экспортируемых в PDF. Метод listSections дает доступ ко всем разделам отчета и объектам ReportLayoutSection в отчете.

Используйте метод exportToPDF для экспорта отчета в документ .pdf.

Свойства

СвойствоОписаниеТип данных
definitionQuery
(чтение и запись)

Определяющий запрос первого ReportSection. Используйте его для применения фильтра к записям, экспортируемым в PDF.

String
metadata
(чтение и запись)

Получите или задайте информацию класса Метаданные для отчета. Обратите внимание, что установка метаданных зависит от значения свойства isReadOnly.

Metadata
name
(чтение и запись)

Имя отчета. Важно, чтобы у всех отчетов были уникальные имена, благодаря чему на них было бы легко ссылаться по имени.

String
referenceDataSource
(только чтение)

Информация о подключении к источнику базовых данных первого ReportSection.

Dictionary

Обзор метода

МетодОписание
exportToPDF (out_pdf, {page_range_type}, {page_range}, {starting_page_number}, {total_page_number}, {resolution}, {image_quality}, {compress_vector_graphics}, {image_compression}, {embed_fonts}, {jpeg_compression_quality})

Экспортирует отчета в файл формата Portable Document Format (PDF).

getDefinition (cim_version)

Получает определение CIM отчета.

listSections ({wildcard})

Возвращает список Python объектов ReportSection и ReportLayoutSection отчета.

openView ()

Открывает и активизирует новую панель вида отчета в приложении.

setDefinition (definition_object)

Задает определение CIM отчета.

setReferenceDataSource (data_source)

Задает источник данных отчета.

Методы

exportToPDF (out_pdf, {page_range_type}, {page_range}, {starting_page_number}, {total_page_number}, {resolution}, {image_quality}, {compress_vector_graphics}, {image_compression}, {embed_fonts}, {jpeg_compression_quality})
ПараметрОписаниеТип данных
out_pdf

Строка, представляющая путь и имя выходного файла для экспорта.

String
page_range_type

Строка, определяющая тип диапазона страниц для экспорта. По умолчанию – ALL.

  • ALLЭкспортируются все страницы отчета.
  • LASTЭкспортирует последнюю страницу отчета.
  • EVENЭкспортирует четные страницы отчета.
  • ODDЭкспортируются нечетные страницы отчета.
  • RANGEЭкспортирует страницы, перечисленные в параметре page_range.

(Значение по умолчанию — ALL)

String
page_range

Строка, определяющая экспортируемые страницы, если используется опция RANGE в параметре page_range_type (например, 1, 3, 5-12). Если используется любое другое значение page_range_type, параметр page_range будет игнорироваться.

String
starting_page_number

Задает сдвиг нумерации страниц, который позволит добавить дополнительные страницы в начало отчета. По умолчанию значение сдвига равно 1.

(Значение по умолчанию — 1)

Integer
total_page_number

Общее число надписываемых страниц, например, когда ваш отчет отображает X из Y страниц. Это может быть полезным, если вы хотите объединить несколько отчетов в один. Значением по умолчанию является -1. Это значит, что замещение отсутствует.

(Значение по умолчанию — None)

Integer
resolution

Целое число, определяющее разрешение файла для экспорта в точках на дюйм (dpi).

(Значение по умолчанию — 96)

Integer
image_quality

Строка, определяющая качество выходного изображения.

  • BESTКачество выходного изображения с коэффициентом сжатия 1
  • BETTERКачество выходного изображения с коэффициентом сжатия 2
  • NORMALКачество выходного изображения с коэффициентом сжатия 3
  • FASTERКачество выходного изображения с коэффициентом сжатия 4
  • FASTESTКачество выходного изображения с коэффициентом сжатия 5

(Значение по умолчанию — BEST)

String
compress_vector_graphics

Логический параметр, управляющий сжатием векторных и текстовых частей выходного файла. Сжатие изображения определяется отдельно.

(Значение по умолчанию — True)

Boolean
image_compression

Строка, которая определяет схему сжатия, используемую для сжатия изображения или растровых данных в выходном файле.

  • ADAPTIVEАвтоматически выбирает лучший тип сжатия для каждого изображения на странице. JPEG используется для крупных изображений со множеством уникальных цветов. DEFLATE используется для всех других изображений.
  • JPEGСжатие данных с потерями.
  • DEFLATEСжатие данных без потерь.
  • LZWLempel-Ziv-Welch, сжатие данных без потерь
  • NONEНет сжатия данных.
  • RLEСжатие с кодированием по длинам серий

(Значение по умолчанию — ADAPTIVE)

String
embed_fonts

Логический параметр, управляющий внедрением шрифтов в файле для экспорта. Внедрение шрифтов позволяет правильно отображать текстовые и символьные маркеры при просмотре документа на компьютере без установленных шрифтов.

(Значение по умолчанию — True)

Boolean
jpeg_compression_quality

Число, управляющее качеством сжатия, если для параметра image_compression задано значение ADAPTIVE или JPEG. Допустимым является диапазон от 1 до 100. Если значение jpeg_compression_quality равно 100, это обеспечивает наилучшее качество изображений, но при экспорте создаются крупные файлы. Рекомендованный диапазон находится между 70 и 90.

(Значение по умолчанию — 80)

Integer

PDF формат создан с учетом возможности просмотра и печати файлов на разных платформах. Эти файлы часто используются для распространения документов через Интернет и становятся стандартным форматом для обмена документацией. Файлы PDF можно редактировать во многих графических приложениях, здесь сохраняются аннотации, надписи и атрибутивные данные для слоев карты. Экспорт PDF поддерживает встроенные шрифты, поэтому, даже если у пользователей не установлены шрифты Esri, символы все равно будут отображаться корректно.

getDefinition (cim_version)
ПараметрОписаниеТип данных
cim_version

A string that represents the major version of the CIM.

String

Уровень доступа CIM для дополнительных свойств объекта был введен в версии ArcGIS Pro 2.4. Уровень доступа CIM для отчетов был введен в ArcGIS Pro 3.1. Если вы хотите вернуть определение CIM объекта, необходимо указать cim_version. Esri использует спецификацию семантического версионирования. Это означает, что критические изменения API разрешены в основных версиях — например, 3.0 Это даст авторам скриптов Python возможность управления версией CIM, которая будет использоваться во время запуска скрипта, если существует вероятность внесения критических изменений в новой версии. Если вы создаете скрипты для ArcGIS Pro 2.x, укажите значение cim_version как 'V2'. Если вы создаете скрипты для ArcGIS Pro 3.x, укажите значение cim_version как 'V3'. Скрипты, созданные с использованием cim_version 'V2', будут продолжать работать в ArcGIS Pro 3.x.

Более подробно о работе с CIM и примеры см. Доступ к CIM в Python.

listSections ({wildcard})
ПараметрОписаниеТип данных
wildcard

A wildcard is based on the section name and is not case sensitive. A combination of asterisks (*) and characters can be used to help limit the resulting list.

(Значение по умолчанию — None)

String
Возвращаемое значение
Тип данныхОписание
List

Список Python объектов ReportSection и ReportLayoutSection отчета.

Возвращает список Python объектов ReportSection и ReportLayoutSection отчета.

openView ()

Это полезно, если вид отчета еще не открыт или в приложении активен другой вид. Этот метод создает вид отчета, увеличенный до полного размера, и активирует его. Чтобы закрыть другие существующие виды перед открытием нового вида, используйте метод ArcGISProject closeViews.

Примечание:

Этот метод предназначен для запуска в приложении с помощью инструмента-скрипта, блокнота или окна Python. Это не будет иметь никакого эффекта, если запустить его вне приложения.

setDefinition (definition_object)
ПараметрОписаниеТип данных
definition_object

A modified CIM definition object originally retrieved using getDefinition.

Object

Более подробно о работе с CIM и примеры использования см. в разделе Доступ к Python CIM.

setReferenceDataSource (data_source)
ПараметрОписаниеТип данных
data_source

Источник данных, входящий в отчет. Этот параметр может быть объектом Layer, объектом Table или строкой, задающей путь к внешнему источнику данных.

(Значение по умолчанию — None)

Object

Метод setReferenceDataSource задает источник данных, на который ссылается отчет, с использованием объекта Layer, объекта Table или строки, задающей путь к внешнему источнику данных

Пример кода

Отчет, пример 1

Следующий скрипт экспортирует отчет в PDF, используя диапазон страниц:

aprx = arcpy.mp.ArcGISProject(r"C:\DemoData\USA_States.aprx")
report = aprx.listReports("Cities Report")[0] # Find report by name
report.exportToPDF(r"C:\DemoData\CitiesReport.pdf", page_range="2-10")
Отчет, пример 2

Следующий скрипт изменяет метаданные для отчета:

aprx = arcpy.mp.ArcGISProject(r"C:\DemoData\USA_States.aprx")
report = aprx.listReports("States Report")[1] # Find second report by name
md = report.metadata # Get report metadata
md.title = "Modified States Report"
md.save()
Отчет, пример 3

Следующий скрипт задает источник базовых данных для первого раздела отчета в отчете:

aprx = arcpy.mp.ArcGISProject(r"C:\DemoData\USA_States.aprx")
report = aprx.listReports("Counties Report")[0] # Find report by name, this also returns the first report section
report.setReferenceDataSource(r"C:\DemoData\USA_States.gdb\Counties")
print(report.referenceDataSource)
#{'dataset':'counties', 'workspace_factory':'File Geodatabase',
# 'connection_info':{'database':'C:\\DemoData\\USA_States.gdb'}}
Отчет, пример 4

Следующий скрипт изменяет определяющий запрос для первого раздела отчета в отчете:

aprx = arcpy.mp.ArcGISProject(r"C:\DemoData\USA_States.aprx")
report = aprx.listReports()[2] # Find the third report in the project
print(report.name)
# State Population Report
report.definitionQuery = "STATE_NAME = 'California'"
print(report.definitionQuery)
# STATE_NAME = 'California'
Отчет, пример 5

Следующий скрипт получает все объекты раздела отчета и компоновки отчета, используя listSections:

aprx = arcpy.mp.ArcGISProject('current') # Run this from the Python window in Pro
report = aprx.listReports("Complete Report")[0] # Find report by name
sections = report.listSections() # Get all report and report layout sections in a report
for s in sections:
	print(f"Section Name: {s.name} Section Type: {s.type}")
# Section Name: Cover Page Section Type: REPORT_LAYOUT_SECTION
# Section Name: Cities Section Type: REPORT_SECTION
# Section Name: States Section Type: REPORT_SECTION