HowTo:  Label a related table

相关信息
Article ID: 43341
Software:
ArcGIS for Desktop Advanced 10.1, 10.2, 10.2.1, 10.2.2, 10.3
ArcGIS for Desktop Standard 10.1, 10.2, 10.2.1, 10.2.2, 10.3
ArcGIS for Desktop Basic 10.1, 10.2, 10.2.1, 10.2.2, 10.3
Platforms:
Windows Server 2008, Windows 7, Windows 8, Server 2008 R2

问题描述
Instructions provided describe how to label a related table using Python. There is no 'out-of-the-box' functionality to label a related table.


A basic understanding of Python functions and search cursors is needed.

已邀请:

EsriSupport

赞同来自:

解决方案
The code below creates a FindLabel Python function. Relates are never created, but the two key fields are compared in a double iteration.

1. Open the Label Expression dialog box. a. Right-click the feature class to be labeled and select Properties. b. Click the Labels tab. c. Click Expression to open the Label Expression dialog box.
2. Select Python as the parser and check the Advanced check box.
3. Copy-paste the following code. Note that [keyfield], [FirstLabel], key1, key2, L, L2, and myDataTable must be changed to match the environment. •
[keyfield] and key1 are the key fields in the feature class, used to relate to the related table. 
[FirstLabel] and L are the field in the feature class to be labeled.
• key2 is the key field in the related table.
• L2 is the field in the related table that should also be labeled. myDataTable is the path and name of the related table.
def FindLabel ([keyField], [FirstLabel]):
import arcpy

key1 = [keyField] # Key field in feature class
key2 = "ID" # Key field in related table
L = [FirstLabel] # Label field in feature class
L2 = "Label2" # Label field in related table
myDataTable = r"<path-to-related-table>" # Path to related table

cur = arcpy.da.SearchCursor(myDataTable, [key2, L2])
for row in cur:
if str(key1) == str(row[0]):
L = L + " " + str(row[1])
return L


4. Click OK to return to the Layer Properties dialog box.
5. Click Apply to see the labels.


其它相关参考
  1. About joining and relating tables
  2. Can I symbolize or label my features based on a related tableNo, it is not possible to symbolize or label features based on fields in a related table. To label or symbolize attributes from a table, a join must be made to the features. ArcGIS can only symbolize or label features with a 1-to-1 relationship to...


创建及修改时间
Created: 10/29/2014

Last Modified: 11/14/2014
原文链接
http://support.esri.com/en/kno ... 43341

要回复问题请先登录注册