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 (Только для чтения) |
Возвращает одно из следующих строковых значений, которые описывают текущую позицию якоря. Чтобы изменить значение, используйте метод
|
String |
|
elementHeight (Чтение / Запись) |
Высота элемента в единицах страницы. |
Double |
|
elementPositionX (Чтение / Запись) |
x-положение позиции точки якоря элемента. Единицы измерения задаются или считываются в единицах страницы. |
Double |
|
elementPositionY (Чтение / Запись) |
y-положение позиции точки якоря элемента. Единицы измерения задаются или считываются в единицах страницы. |
Double |
|
elementWidth (Чтение / Запись) |
Ширина элемента в единицах страницы. |
Double |
|
fields (Чтение / Запись) |
Список строк, представляющих имена полей таблицы, отображаемых во фрейме таблицы. |
List |
|
isOverflowing (Только для чтения) |
Возвращает |
Boolean |
|
locked (Чтение / Запись) |
Если установлено значение |
Boolean |
|
longName (Только для чтения) |
Полное имя элемента, включая информацию о группе, если она существует. Например, элемент с именем ' |
String |
|
mapFrame (Чтение / Запись) |
Ссылка на связанный |
MapFrame |
|
name (Чтение / Запись) |
Имя элемента. Важно, чтобы у всех элементов были уникальные имена, благодаря чему на них можно было бы ссылаться с помощью параметра |
String |
|
parentGroupElement (Только для чтения) |
Если элемент находится в группе, возвращаемым значением будет |
GroupElement |
|
query (Только для чтения) |
Возвращает одно из следующих строковых значений, представляющих текущий запрос, определяющий, какие строки должны отображаться. Чтобы изменить значение, используйте метод
|
String |
|
table (Чтение / Запись) |
Object |
|
|
type (Только для чтения) |
Возвращает значение |
String |
|
visible (Чтение / Запись) |
Возвращает |
Boolean |
Методы
applyStyleItem(style_item)
Применяет StyleItem к TableFrameElement.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
style_item |
A reference to a |
StyleItem |
getDefinition(cim_version)
Возвращает определение CIM элемента фрейма таблицы.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
cim_version |
A string that represents the major version of the CIM that will be used.
|
String |
Возвращаемое значение
| Тип данных | Объяснение |
|---|---|
|
Object |
Возвращает определение CIM для значения |
setAnchor(anchor)
Метод setAnchor, управляющий положением якоря для значения TableFrameElement.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
anchor |
A string that specifies the location of the anchor position.
|
String |
setDefinition(definition_object)
Метод setDefinition задает определение CIM для элемента фрейма таблицы.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
definition_object |
A modified CIM definition object originally retrieved using |
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) |
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.
|
List |
Пример кода
Следующий скрипт создает фрейм таблицы в компоновке. Он использует функцию для создания конверта, используемого для размещения фрейма таблицы в компоновке.
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')
Следующий скрипт ссылается на существующий фрейм таблицы и использует методы класса для изменения его оформления. Скрипт вносит дополнительные изменения в свойства, доступные через доступ к 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)
Следующий скрипт создает серию пространственных карт перед созданием нового фрейма таблицы. Он завершается установкой значения 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')