Skip to main content

applyStyleItem

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

Класс TableFrameElement предоставляет доступ к возможностям, которые позволяют вам изменять способ отображения табличной информации в классе Layout.

Обсуждение

Элемент фрейма таблицы - это специализированное зарамочное оформление карты, имеющее связанный элемент MapFrame, а также динамически связанное с объектом Слой или Таблица для отображения его строк и полей. Метод listElements для класса Layout возвращает список Python всех возможных элементов компоновки. Чтобы вернуть список только объектов TableFrameElement, используйте константу TABLEFRAME_ELEMENT для параметра element_type. Значение wildcard также может быть использовано для дальнейшей тонкой настройки поиска на основе значения name элемента. Важно, чтобы у каждого элемента компоновки было свое уникальное имя, чтобы на него можно было ссылаться с использованием скрипта ArcPy.

Все параметры, доступные методу createTableFrameElement класса Layout, также доступны в классе TableFrameElement, например, mapframe, table и fields, что делает возможным внесение изменений в существующие фреймы таблиц. Существует ряд свойств, которые можно использовать для изменения размера и положения фрейма таблицы. Вы также можете изменить внешний вид фрейма таблицы с помощью метода sortFields или управлять строками, которые появляются в таблице с помощью метода setQuery. Элементы фрейма таблицы также имеют методы getDefinition и setDefinition, которые можно использовать для изменения дополнительных свойств, которые не доступны классу TableFrameElement. Дополнительные сведения см. в приведенных ниже примерах и в разделе справки по доступу к CIM Python.

Синтаксис

applyStyleItem()

Свойства

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

anchor

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

Возвращает одно из следующих строковых значений, которые описывают текущую позицию якоря. Чтобы изменить значение, используйте метод setAnchor.

  • BOTTOM_LEFT_CORNER—В левом нижнем углу

  • BOTTOM_MID_POINT—Снизу по центру

  • BOTTOM_RIGHT_CORNER—В правом нижнем углу

  • CENTER_POINT—В центре

  • LEFT_MID_POINT—Слева по центру

  • RIGHT_MID_POINT—Справа по центру

  • TOP_LEFT_CORNER—В левом верхнем углу

  • TOP_MID_POINT—Сверху по центру

  • TOP_RIGHT_CORNER—В правом верхнем углу

String

elementHeight

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

Высота элемента в единицах страницы.

Double

elementPositionX

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

x-положение позиции точки якоря элемента. Единицы измерения задаются или считываются в единицах страницы.

Double

elementPositionY

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

y-положение позиции точки якоря элемента. Единицы измерения задаются или считываются в единицах страницы.

Double

elementWidth

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

Ширина элемента в единицах страницы.

Double

fields

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

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

List

isOverflowing

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

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

Boolean

locked

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

Если установлено значение True, элемент нельзя выбрать графически в виде компоновки.

Boolean

longName

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

Полное имя элемента, включая информацию о группе, если она существует. Например, элемент с именем 'Table Frame' в групповом элементе с именем 'Group Element' вернет значение longName, равное 'Group Element\\Table Frame'. Если элемент не входит в группу, longName будет таким же, как и значение name.

String

mapFrame

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

Ссылка на связанный MapFrame.

MapFrame

name

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

Имя элемента. Важно, чтобы у всех элементов были уникальные имена, благодаря чему на них можно было бы ссылаться с помощью параметра wildcard функции listElements объекта Layout.

String

parentGroupElement

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

Если элемент находится в группе, возвращаемым значением будет GroupElement, в противном случае будет возвращено NoneType.

GroupElement

query

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

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

  • ALL_ROWS—Отобразите все строки таблицы.

  • MAPSERIES_ROWS—Отобразите строку, связанную с текущим индексным объектом, если включена серия пространственных карт.

  • VISIBLE_ROWS—Отобразите только видимые объекты во фрейме карты.

String

table

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

Объект Layer или Table, связанный с фреймом таблицы.

Object

type

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

Возвращает значение TABLEFRAME_ELEMENT.

String

visible

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

Возвращает True, если элемент является видимым в компоновке.

Boolean

Методы

applyStyleItem(style_item)

Применяет StyleItem к TableFrameElement.

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

style_item

A reference to a StyleItem in a project.

StyleItem

getDefinition(cim_version)

Возвращает определение CIM элемента фрейма таблицы.

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

cim_version

A string that represents the major version of the CIM that will be used.

  • V2—The 2.x version of the CIM will be used.

  • V3—The 3.x version of the CIM will be used.

String

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

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

Object

Возвращает определение CIM для значения TableFrameElement.

setAnchor(anchor)

Метод setAnchor, управляющий положением якоря для значения TableFrameElement.

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

anchor

A string that specifies the location of the anchor position.

  • BOTTOM_LEFT_CORNER—The anchor will be set at the bottom left corner position.

  • BOTTOM_MID_POINT—The anchor will be set at the bottom center position.

  • BOTTOM_RIGHT_CORNER—The anchor will be set at the bottom right corner position.

  • CENTER_POINT—The anchor will be set at the center position.

  • LEFT_MID_POINT—The anchor will be set at the left center position.

  • RIGHT_MID_POINT—The anchor will be set at the right center position.

  • TOP_LEFT_CORNER—The anchor will be set at the top left corner position.

  • TOP_MID_POINT—The anchor will be set at the top center position.

  • TOP_RIGHT_CORNER—The anchor will be set at the top right corner position.

String

setDefinition(definition_object)

Метод setDefinition задает определение CIM для элемента фрейма таблицы.

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

definition_object

A modified CIM definition object originally retrieved using getDefinition.

Object

setQuery(query_rows)

Метод setQuery управляет отображением строк во фрейме таблицы.

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

query_rows

A keyword string that serves as a filter and specifies the rows that will be displayed in the table frame.

  • ALL_ROWS—All rows in the table will be displayed.

  • MAPSERIES_ROWS—The row associated with the current index feature will be displayed if a spatial map series is enabled.

  • VISIBLE_ROWS—Only the visible features in the map frame will be displayed.

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

String

sortFields(field_info[field_info,...])

Метод sortFields сортирует фрейм таблицы, используя список пар ключ-значение словаря для одного или нескольких полей.

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

field_info[field_info,...]

A list of Python dictionaries that each contain field sorting information. The dictionary keys are defined below.

  • name—A string that represents the name of the field used to sort.

  • ascending—A Boolean value of True will sort in ascending order. The default value is True.

  • caseSensitive—A Boolean value of True will honor case while sorting. The default value is True.

List

Пример кода

TableFrameElement, пример 1

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

def MakeRec_UL(ulx, uly, w, h):
    xyRecList = [[ulx, uly], [ulx+w, uly], [ulx+w,uly-h], [ulx,uly-h], [ulx,uly]]
    array = arcpy.Array([arcpy.Point(*coords) for coords in xyRecList])
    rect = arcpy.Polygon(array)
    return rect

p = arcpy.mp.ArcGISProject('current')
m = p.listMaps('Map')[0]
lyr = m.listLayers('States*')[0]
lyt = p.listLayouts('Create*')[0]
mf = lyt.listElements()[0]

#States table frame
tfStyle = p.listStyleItems('ArcGIS 2D', 'TABLE_FRAME', 'Blue Alternating Rows')[0]
tfEnv = MakeRec_UL(0.5, 5, 7.5, 4)
tfFields = ['STATE_NAME', 'STATE_ABBR', 'POP2000', 'POP2010']
tf = lyt.createTableFrameElement(tfEnv, mf, lyr, tfFields, tfStyle, 'States TableFrame')

#Display only visible rows
tf.setQuery('VISIBLE_ROWS')
TableFrameElement, пример 2

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

p = arcpy.mp.ArcGISProject('current')
lyt = p.listLayouts('Modify*')[0]
tf = lyt.listElements('TABLEFRAME_ELEMENT', 'States*')[0]

#Modify table frame
tf.setQuery('VISIBLE_ROWS')
tf.sort({'name':'STATE_NAME', 'ascending':True, 'caseSensitive':True})

#Modify additional properties using the CIM
tf_cim = tf.getDefinition('V3')
tf_cim.minFontSize = 8
tf_cim.alternate1RowBackgroundCount = 2
tf_cim.alternate2RowBackgroundCount = 2
tf_cim.balanceColumns = False
tf_cim.columnGap = 75
tf_cim.fittingStrategy = 'AdjustColumnsAndSize'
tf.setDefinition(tf_cim)
TableFrameElement, пример 3

Следующий скрипт создает серию пространственных карт перед созданием нового фрейма таблицы. Он завершается установкой значения query на MAPSERIES_ROWS.

def MakeRec_UL(ulx, uly, w, h):
    xyRecList = [[ulx, uly], [ulx+w, uly], [ulx+w,uly-h], [ulx,uly-h], [ulx,uly]]
    array = arcpy.Array([arcpy.Point(*coords) for coords in xyRecList])
    rect = arcpy.Polygon(array)
    return rect

p = arcpy.mp.ArcGISProject('current')
m = p.listMaps('Map')[0]
lyr = m.listLayers('GreatLakes')[0]
lyt = p.listLayouts('MapSeries')[0]
mf = lyt.listElements()[0]

#Create a spatial map series
lyt.createSpatialMapSeries(mf, lyr, 'NAME', 'AREA')

#Create a table frame
tfStyle = p.listStyleItems('ArcGIS 2D', 'TABLE_FRAME', 'Orange Alternating Rows')[0]
tfEnv = MakeRec_UL(0.5, 5.75, 7.5, 2)
tf = lyt.createTableFrameElement(tfEnv, mf, lyr, ['NAME', 'AREA'], tfStyle, 'Great Lakes TableFrame')

#Set the query to match mapseries rows
tf.setQuery('MAPSERIES_ROWS')