Vbscript 删除ArcView 10标签中显示的空值
我试图创建一个三层标签,其中第三行是一年。然而,有些数据没有年份。我希望这些标签仅显示为两层,即空白。此时,ArcView 10正在所有这些标签中自动插入0。下面是我尝试对其进行排序,但它不起作用。请记住,我不习惯在vbScript中工作,所以请用非常简单的词回答Vbscript 删除ArcView 10标签中显示的空值,vbscript,arcgis,Vbscript,Arcgis,我试图创建一个三层标签,其中第三行是一年。然而,有些数据没有年份。我希望这些标签仅显示为两层,即空白。此时,ArcView 10正在所有这些标签中自动插入0。下面是我尝试对其进行排序,但它不起作用。请记住,我不习惯在vbScript中工作,所以请用非常简单的词回答 Function FindLabel ( [SubCmpt], [Species], [P Year] ) FindLabel = Function FindLabel ( [SubCmpt] & vbCrLf &
Function FindLabel ( [SubCmpt], [Species], [P Year] )
FindLabel = Function FindLabel ( [SubCmpt] & vbCrLf & [Species] & vbCrLf & [P Year] )
if ( [P Year] = '0') then
FindLabel = [SubCmpt] & vbCrLf & [Species]
else
FindLable = [SubCmpt] & vbCrLf & [Species] &vbCrLf & [P Year]
End Function
提前感谢您的所有建议。我没有使用ArcGIS的经验,但我希望
Null
(表示无效数据的特定值)和'0'
(字符串“0”)是不同的值。VBScript提供了一个特殊函数(IsNull()
)来测试Null
值,因此请尝试IsNull([P年])
而不是[P年]=“0”
您可能会得到更好的答案。首先,我不确定函数的第一行应该做什么:
FindLabel = Function FindLabel ( [SubCmpt] & vbCrLf & [Species] & vbCrLf & [P Year] )
你不需要它
第二,你每次都需要用同样的方式拼写“FindLabel”
第三,使用IsNull来检测null(正如@Ansgar所说的)
第四,在VBA中,需要使用end If
结束If-Else语句
总之,请尝试以下方法:
Function FindLabel ( [SubCmpt], [Species], [P Year] )
If IsNull([P Year]) Then
FindLabel = [SubCmpt] & vbCrLf & [Species]
Else
FindLabel = [SubCmpt] & vbCrLf & [Species] & vbCrLf & [P Year]
End If
End Function