描述
用于访问基本表属性。
讨论
TableView 对象对于管理地图文档 (.mxd) 中的独立表至关重要。它用于访问基本表属性(如数据源信息等)以及设置表的定义查询。除了 TableView 构造函数,ListTableViews 函数也能够引用 TableView 对象。
TableView 构造函数用于在工作空间内引用地图文档外的表。它能够使用 AddTableView 函数将外部表添加到地图文档中。此函数与 MakeTableView 相似,区别在于 MakeTableView 的结果不能永久添加到地图文档中。
ListTableViews 函数返回 TableView 对象的 Python 列表。随后,必须遍历列表中的每个项目,或指定一个索引号以引用具体的 TableView 对象。可在整个地图文档或特定数据框内搜索表。通配符还可用于限制搜索。
定义查询不适用于所有工作空间。使用不同工作空间时,应用正确的 SQL 语法非常重要。例如,文件地理数据库和 shapefile 的文件名都用双引号括起(例如,"文件名"),个人地理数据库的文件名都用方括号括起(例如,[文件名]),而 SDE 连接的文件名没有任何特殊字符(例如,文件名)。有关在地图文档或图层文件中更新工作空间和数据源的详细信息,请参阅使用 arcpy.mapping 更新和修复数据源帮助主题。
可以使用 RemoveTableView 函数从地图文档中移除表。
语法
TableView (table_view_data_source)
参数 | 说明 | 数据类型 |
table_view_data_source | 一个包含完整工作空间路径的字符串,其中包括表名称。 | String |
属性
属性 | 说明 | 数据类型 |
datasetName (只读) | 以表数据集在工作空间(非内容列表)中显示的方式返回其名称。 | String |
dataSource (只读) | 返回表的数据源路径。此属性包含 workspacePath 和 datasetName 的组合。 | String |
definitionQuery (可读写) | 用于获得或设置表的定义查询。 | String |
name (可读写) | 用来以表在 ArcMap 内容列表中显示的方式设置或获得表名称。可包含空格。 | String |
isBroken (只读) | 如果表的数据源损坏,则返回 True。 | Boolean |
workspacePath (只读) | 返回表的工作空间或连接文件的路径。 | String |
方法概述
方法 | 说明 |
findAndReplaceWorkspacePath (find_workspace_path, replace_workspace_path, {validate}) | 使用新工作空间路径替换表的工作空间 |
getSelectionSet () | 以 Python 对象 ID 集的形式返回表选择。 |
replaceDataSource (workspace_path, workspace_type, {dataset_name}, {validate}) | 替换地图文档 (.mxd) 中表的数据源,同时提供切换工作空间类型的功能(例如用 SDE 工作空间替换文件地理数据库工作空间)。 |
setSelectionSet (method, oidList) | 使用 Python 对象 ID 集设置表选择。 |
方法
findAndReplaceWorkspacePath (find_workspace_path, replace_workspace_path, {validate})
参数 | 说明 | 数据类型 |
find_workspace_path | 用于表示要查找的工作空间路径或连接文件的字符串。如果传递了空字符串,则将根据 validate 参数的值将所有工作空间路径替换为 replace_workspace_path 参数。 | String |
replace_workspace_path | 表示要用于替换的工作空间路径或连接文件的字符串。 | String |
validate | 如果设置为 True,则仅在 replace_workspace_path 值为有效工作空间时,才会更新工作空间。如果为无效工作空间,则不会替换该工作空间。如果设置为 False,则无论匹配是否有效,此方法都会将工作空间设置为匹配 replace_workspace_path。在这种情况下,如果匹配不存在,则将损坏表的数据源。 (默认值为 True) | Boolean |
有关详细说明、参数信息、案例和编码示例,请参阅更新和修复数据源帮助主题。
getSelectionSet ()
返回值
数据类型 | 说明 |
List | 以 Python 对象 ID 集的形式返回表选择。 |
提供检索表当前选择的简便方式。
replaceDataSource (workspace_path, workspace_type, {dataset_name}, {validate})
参数 | 说明 | 数据类型 |
workspace_path | 包含新数据或连接文件的工作空间路径的字符串。 | String |
workspace_type | 用于表示新数据的工作空间类型的字符串关键字。
| String |
dataset_name | 用于表示表格在新工作空间中显示的名称(而非内容列表中的表格名称)的字符串。如果未提供 dataset_name,则 replaceDataSource 方法将尝试通过查找与图层的当前数据集属性具有相同名称的表来替换数据集。 | String |
validate | 如果设置为 True,则仅在 workspace_path 值为有效工作空间时,才会更新工作空间。如果为无效工作空间,则不会替换该工作空间。如果设置为 False,则无论匹配是否有效,此方法都会将所有连接设置为匹配 workspace_path。在这种情况下,如果匹配不存在,则将损坏数据源。 (默认值为 True) | Boolean |
有关详细说明、参数信息、案例和编码示例,请参阅更新和修复数据源帮助主题。
setSelectionSet (method, oidList)
参数 | 说明 | 数据类型 |
method | 用于指定要使用的选择方法的字符串。
(默认值为 None) | String |
oidList | 与适当的选择方法一起使用的 Python 对象 ID 集。 | Integer |
此方法提供管理表选择的简便方式。要清空选择,请使用包含空集的 NEW 选择方法。Python 集或列表可用于 oidList,但会针对 Table 对象使用 getSelectionSet 方法返回集。
代码示例
TableView 示例 1
以下脚本将在名为 Transportation 的数据框中查找名为 Customers 的表并设置此表的定义查询。
import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
df = arcpy.mapping.ListDataFrames(mxd, "Transportation")[0]
for table in arcpy.mapping.ListTableViews(mxd, "", df):
if table.name.lower() == "trafficaccidents":
table.definitionQuery = "\"age\" >= 18"
mxd.save()
del mxd
TableView 示例 2
以下脚本引用文件地理数据库中的表并将此表添加到引用的地图文档中。
import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
df = arcpy.mapping.ListDataFrames(mxd, "Transportation")[0]
accidentsTable = arcpy.mapping.TableView(r"C:\Project\Data\Transportation.gdb\Accidents")
arcpy.mapping.AddTableView(df, accidentsTable)
mxd.saveACopy(r"C:\Project\Project2.mxd")
del mxd, accidentsTable