1 前言
前些日期有人问我ArcMap中要让某个字段的值实现自增有什么方法?我首先想到到像SQLServer中对于数值型字段可以设置自增。所以我打开ArcCatalog查看我发现只提供默认值,没办法只能看一下字段计算器中是否有更好的办法。开始我的方法是在字段计算器中将要自增的值等于默认的OBJECTID值,但是问题又来了,如果删除一个对象后,OBJECTID值变乱,又不能实现自增。但是它提供了支持VB脚本和Python脚本,于是参照帮助文档找到python脚本实现自增的方法,分享给大家。
2 帮助文档解析
打开计算字段实例文档找到(累加计算和顺序计算)
首先分析帮助文档提供的代码,注意红色部分为注释
Parser: Python #程序语言 Expression: autoIncrement() #表达式方法 Code Block: #下面这部分是具体实现,注意在放字段计算器时只需要下面这部分 rec=0 def autoIncrement(): #定义方法名 global rec pStart = 1 #初始值, 可以调整 pInterval = 1 #自增间隔, 可以调整 if (rec == 0): rec = pStart else: rec = rec + pInterval return rec
Parser:
Python #程序语言
Expression:
autoIncrement() #表达式方法
Code Block: #下面这部分是具体实现,注意在放字段计算器时只需要下面这部分
rec=0
def autoIncrement(): #定义方法名
global rec
pStart = 1 #初始值, 可以调整
pInterval = 1 #自增间隔, 可以调整
if (rec == 0):
rec = pStart
else:
rec = rec + pInterval
return rec