Краткая информация
Объект ReportSection ссылается на раздел отчета в отчете. Он обеспечивает доступ к общим свойствам, таким как определяющий запрос и метод установки источника базовых данных.
Обсуждение
Отчет ArcGIS Pro может содержать несколько разделов отчета. Доступ к разделам отчета осуществляется с помощью метода listSections объекта Report. Это возвращает список Python объектов ReportSection и ReportLayoutSection. На каждый раздел отчета можно ссылаться по уникальному значению name и он имеет REPORT_SECTION type.
ReportSection имеет источник данных, который можно идентифицировать с помощью свойства referenceDataSource. Чтобы изменить источник данных, используйте метод setReferenceDataSource. Метод сопоставляет поля нового источника данных с полями отчета, заданными исходным источником данных. Названия полей (а не их псевдонимы) должны точно совпадать, в том числе и с учетом регистра.
Чтобы применить фильтр к записям, экспортируемым в PDF, измените свойство раздела отчета definitionQuery. Чтобы исключить раздел отчета из экспортированного PDF-файла, задайте для свойства visible значение false.
Свойства
Свойство | Описание | Тип данных |
definitionQuery (чтение и запись) | Определяющий запрос первого ReportSection. Используйте его для применения фильтра к записям, экспортируемым в PDF. | String |
metadata (чтение и запись) | Получите или задайте информацию класса Метаданные для отчета. Обратите внимание, что установка метаданных зависит от значения свойства isReadOnly. | Metadata |
name (чтение и запись) | Имя отчета. Важно, чтобы у всех отчетов были уникальные имена, благодаря чему на них было бы легко ссылаться по имени. | String |
referenceDataSource (только чтение) | Информация о подключении к источнику базовых данных первого ReportSection. | Dictionary |
Обзор метода
Метод | Описание |
setReferenceDataSource (data_source) | Задает источник базовых данных раздела отчета. |
Методы
Пример кода
Следующий скрипт получает все разделы отчета из отчета:
aprx = arcpy.mp.ArcGISProject(r"C:\DemoData\NationalParks.aprx")
report = aprx.listReports("National Parks Report")[0]
sections = [s.name for s in report.listSections() if s.type=="REPORT_SECTION"] # Get list of report section names
for s in sections:
print(s)
# National Parks Overview
# Park Highlights
# Annual Review
Следующий скрипт задает видимость раздела отчета как False:
aprx = arcpy.mp.ArcGISProject(r"C:\DemoData\NationalParks.aprx")
report = aprx.listReports("National Parks Report")[0]
section = report.listSections("National Parks Overview")[0] # Find the report section by name
section.visible = False
Следующий скрипт устанавливает источник базовых данных для второго раздела отчета в таблицу на карте:
aprx = arcpy.mp.ArcGISProject(r"C:\DemoData\NationalParks.aprx")
map = aprx.listMaps("National Parks")[0] # Find a map in the project
table = map.listTables()[0] # Find the first table in the map
report = aprx.listReports("National Parks Report")[0]
section = report.listSections()[1] # Find the report section by index
section.setReferenceDataSource(table)
Следующий скрипт изменяет определяющий запрос для третьего раздела отчета:
aprx = arcpy.mp.ArcGISProject(r"C:\DemoData\NationalParks.aprx")
report = aprx.listReports("National Parks Report")[0]
section = report.listSections("Annual Review")[0] # Find the report section by name
section.definitionQuery = "ParkName = 'Yosemite'"