피처 클래스에없는 텍스트로 널값을 대체하기위한 레이블 표현식


9

나는 일부 소화전 (점)에 라벨을 붙일 필요가 있습니다. 이들 중 일부는 소방대에 속하고 그들에게 할당 된 번호가 있습니다. 다음과 같은 줄에 표현을 작성하고 싶습니다.

'소화전에'WO '가 포함 된 null 값 레이블이 있으면 숫자가 있으면 숫자가있는 레이블 소화전입니다.'

난 그냥 알아낼 수 없습니다.

내가 이것을 수행하는 가장 간단한 방법은 null 값을 WO로 변경하는 것이지만 데이터는 내 것이 아니며 변경하고 싶지 않습니다. 나는 사본을 만들고 사본에 값을 넣을 수 있다고 생각하지만 이상적으로는 표현을 원합니다.

감사!


고마워요, 아직도 내가 뭘 뭘 그리워하고 있다고 생각합니다 : 1. 레이어에서 라벨 특징을 선택합니다 . 2. '피처 분류를 선택하고 각 분류에 다르게 레이블을 지정합니다. 3. 라벨 클래스 번호 추가합니다 . 4. 라벨 클래스를 추가합니다 WO 5 . 각 <BR/> 6. '번호'에 대한 '라벨이 클래스의 기능을'틱 SQL 쿼리 사용 ( "SYMBOLCODE"= 3)과 ( "FIREAUTHOR"<> "")를 클릭 7. 레이블 필드가 FIREAUTHOR로 설정을 8. WO SQL의 경우 ( "SYMBOLCODE"= 3) AND ( "FIREAUTHOR"= "") 9. 식은 "WO"입니다 . 10. '기능이 없습니다. 오류가 발생했습니다.
jorp

답변:


9

이와 같은 간단한 스크립트를 사용하여 Null 값으로 기능에 레이블을 지정할 수 있습니다.

Function FindLabel ( [yourfield] )
  if isnull( [yourfield]) then
    FindLabel = "WO"
  else
    FindLabel = [yourfield]
  end if
End Function

1
gis.se에서 만나서 반가워요. ESRI 포럼에 대한 귀하의 답변은 저를 포함한 많은 사람들에게 도움이되었습니다.
Devdatta Tengshe

감사합니다-이 스크립트는 깔끔하지만 null 값은 WO로 표시되지 않습니다.
jorp

1
속성 테이블에서 <Null> 또는 공백으로 표시되는 값을 사용하고 있습니까?
kenbuja

3

여기 당신이 할 수있는 일이 있습니다.

  1. 방법 : 기능의 클래스 정의 및 각 클래스에 서로 다른 레이블을 지정하십시오.
  2. 숫자가 있고 숫자가없는 소화전 클래스를 만듭니다 (예 : Number, & WO).
  3. 숫자 클래스의 경우 SQL 조회를 "MyLabelField"<> ""로 정의하십시오.
  4. 숫자 클래스를 올바른 레이블 필드로 지정하십시오.
  5. WO 클래스의 경우 SQL 조회를 "MyLabelField"= ""로 정의하십시오.
  6. 표현식 옵션 유형 아래의 WO 클래스의 경우 "WO"
  7. 라벨을 켭니다.

2

@kenbuja sript에 더하여 정답입니다. 길이가 0 인 문자열과 공백이없는 문자 또는 공백이없는 경우 다음과 같이 할 수 있습니다.

Function FindLabel ( [LABELFIELD] )
  if  isnull([LABELFIELD]) then
    FindLabel = "WO"
  elseif trim([LABELFIELD]) = "" then
    FindLabel = "WO"
  else
    FindLabel = ucase([LABELFIELD])
  end if
End Function
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.