Skip to main content

export

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

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

Обсуждение

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

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

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

Синтаксис

export()

Свойства

Имя Объяснение Тип данных

definitionQuery

(Чтение / Запись)

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

String

metadata

(Чтение / Запись)

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

Metadata

name

(Чтение / Запись)

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

String

pageInfo

(Только для чтения)

Ширина, высота, единицы измерения и поля страницы отчета.

Ключи словаря определяются следующим образом:

  • height—Высота отчета в единицах страницы.

  • width—Ширина отчета в единицах страницы.

  • units—Ключевое слово единицы страницы отчета. Поддерживаемые значения inch, point, centimeter и millimeter.

  • margins—Ключевое слово полей отчета. Поддерживаемые значения буферного расстояния NORMAL, MODERATE, WIDE и NARROW.

Dictionary

referenceDataSource

(Только для чтения)

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

  • dataset—Имя набора данных.

  • workspace_factory—Тип рабочей области.

  • connection_info—Строка, представляющая путь к рабочей области

Dictionary

Методы

export(export_format, {report_export_options}, {display_options})

Метод export экспортирует Report, используя указанный export_format и, дополнительно, различные report_export_options или display_options.

Имя Объяснение Тип данных

export_format

The supported export format object is PDFFormat.

Object

report_export_options

(Дополнительный)

The ReportExportOptions object that includes changes to default property values.

Object

display_options

(Дополнительный)

The DisplayOptions object that includes changes to the default property values.

Object

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).

Прежние версии:

Этот метод заменен на export в версии 3.4 ArcGIS Pro и остается для использования только в устаревших скриптах. Все усовершенствования и будущие разработки будут осуществляться только методом экспорта.

Имя Объяснение Тип данных

out_pdf

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

String

page_range_type

(Дополнительный)

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

  • ALL—Export all pages of the report.

  • LAST—Export the last page of the report.

  • EVEN—Export the even numbered pages of the report.

  • ODD—Export the odd numbered pages of the report.

  • RANGE—Export the pages listed in the page_range parameter .

(Значение по умолчанию — 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—An output image quality resample ratio of 1

  • BETTER—An output image quality resample ratio of 2

  • NORMAL—An output image quality resample ratio of 3

  • FASTER—An output image quality resample ratio of 4

  • FASTEST—An output image quality resample ratio of 5

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

String

compress_vector_graphics

(Дополнительный)

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

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

Boolean

image_compression

(Дополнительный)

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

  • ADAPTIVE—Automatically selects the best compression type for each image on the page. JPEG will be used for large images with many unique colors. DEFLATE will be used for all other images.

  • JPEG—A lossy data compression.

  • DEFLATE—A lossless data compression

  • LZW—Lempel-Ziv-Welch, a lossless data compression

  • NONE—Compression is not applied

  • RLE—Run-length encoded compression

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

String

embed_fonts

(Дополнительный)

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

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

Boolean

jpeg_compression_quality

(Дополнительный)

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

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

Integer

getDefinition(cim_version)

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

Имя Объяснение Тип данных

cim_version

A string that represents the major version of the CIM.

String

Возвращаемое значение

Тип данных Объяснение

Object

Возвращает определение CIM для объекта Report.

listSections({wildcard})

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

Имя Объяснение Тип данных

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 отчета.

openView()

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

setDefinition(definition_object)

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

Имя Объяснение Тип данных

definition_object

A modified CIM definition object originally retrieved using getDefinition.

Object

setReferenceDataSource(data_source)

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

Имя Объяснение Тип данных

data_source

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

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

Object

updatePageInfo(pageInfo)

Обновляет информацию о странице отчета.

Имя Объяснение Тип данных

pageInfo

The keys for the dictionary are defined as follows:

  • height—The report's height in page units.

  • width—The report's width in page units.

  • units—The report's page unit keyword. The supported values are inch, point, centimeter, and millimeter.

  • margins—The report's margins keyword. The supported margin values are NORMAL, MODERATE, WIDE, and NARROW.

Dictionary

Пример кода

Отчет, пример 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
Отчет, пример 6

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

aprx = arcpy.mp.ArcGISProject(r'C:\projects\WaterSupply.aprx')
report = aprx.listReports('Suppliers')[0] # Find the report by name
df = report.getDefinition('V3') # Get the current CIM definition of the report

report_section = df.elements[0] # Find the first report section in the CIM
report_header = report_section.elements[4] # Find the report header subsection
title_text = report_header.elements[3] # Find the title text element

symbol = title_text.graphic.symbol.symbol # Get the text symbol
symbol.fontFamilyName = "Arial" # Change the font

report.setDefinition(df) # Set the new CIM definition
Отчет, пример 7

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

aprx = arcpy.mp.ArcGISProject('current') # This must be run in the application
map = aprx.listMaps('TaxLots')[0] # Find the map by name

# Define report properties
ds = map.listTables('Owners')[0] # Find the data source table by name
pi = {'width': 297, 'height': 420, 'units': 'MILLIMETER', 'margins': 'WIDE'} # Define page info
f = [{'fieldName': 'Name', 'sortInfo': 'DESC', 'groupField': False},
        {'fieldName': 'Address', 'sortInfo': 'ASC', 'groupField': False},
        {'fieldName': 'Status', 'sortInfo': 'None', 'groupField': False}] # Define fields
s = [] # Pass no statistics

report = aprx.createReport(
            page_info = pi,
            data_source = ds,
            fields = f,
            statistics = s,
            name = 'Owners') # Create the report

report_view = report.openView() # Open a new report view
Отчет, пример 8

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

aprx = arcpy.mp.ArcGISProject('current') # This must be run in the application
map = aprx.listMaps('TaxLots')[0] # Find the map by name

# Define report properties
ds = map.listTables('Owners')[0] # Find the data source table by name
pi = {'width': 297, 'height': 420, 'units': 'MILLIMETER', 'margins': 'WIDE'} # Define page info
f = [{'fieldName': 'Name', 'sortInfo': 'DESC', 'groupField': False},
        {'fieldName': 'Address', 'sortInfo': 'ASC', 'groupField': False},
        {'fieldName': 'Status', 'sortInfo': 'None', 'groupField': False}] # Define fields
s = [] # Pass no statistics

report = aprx.createReport(
            page_info = pi,
            data_source = ds,
            fields = f,
            statistics = s,
            name = 'Owners') # Create the report

report_view = report.openView() # Open a new report view