Boş değerleri özellik sınıfında olmayan metinle değiştirmek için İfadeleri Etiketleme


9

Bazı hidrantları (noktaları) etiketlemem gerekiyor - bunların bazıları itfaiyeye ait ve kendilerine atanmış bir numara var, bazıları yok ve bu nedenle bir numarası yok. Satırları boyunca bir ifade yazmak istiyorum:

'Hidrant' WO 'ile boş değer etiketine sahipse, sayı varsa etiketli Hidrant.

Sadece anlayamıyorum.

Bunu yapmanın en basit yolu, null değerleri WO olarak değiştirmek olacaktır, ancak veriler benim değildir ve üzerinde değişiklik yapmak istemiyorum. Sanırım bir kopya yapabilir ve değerleri kopyaya koyabilirim, ama ideal olarak bir ifade istiyorum.

Teşekkürler!


Teşekkürler, hala yaptığım şey eksik olduğunu düşünüyorum: 1. Katmanda Etiket özellikleri işaretleyin 2. 'Özellik sınıflarını tanımlayın ve her sınıfı farklı etiketleyin 3. Etiket Sınıf Numarası 4 ekleyin. Etiket Sınıf WO 5 Ekle Her biri için 'Bu sınıftaki' etiket özellikleri 'seçeneğini işaretleyin . <br/> 6.' Number 'altında SQL Query use ("SYMBOLCODE" = 3) AND ("FIREAUTHOR" <> "") seçeneğini tıklayın 7. Etiket alanı FIREAUTHOR olarak ayarlandı. 8. WO SQL için ("SYMBOLCODE" = 3) AND ("FIREAUTHOR" = "") ifadesidir. 9. İfade "WO" 10'dur. Hata al 'özellik bulunamadı.'
İfadesi

Yanıtlar:


9

Özellikleri Null değerlerle etiketlemek için böyle basit bir komut dosyası kullanabilirsiniz.

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

1
Seni gis.se sitesinde görmek harika. ESRI forumlarına verdiğiniz yanıtlar, ben dahil birçok insana yardımcı oldu.
Devdatta Tengshe

Teşekkürler - bu komut dosyası kesinlikle temiz, ancak boş değerler WO olarak etiketlenmiyor.
jorp

1
Özellik tablosunda <Boş> veya boşluk olarak gösterilen değerlerle mi çalışıyorsunuz?
kenbuja

3

İşte yapabilecekleriniz.

  1. Yöntem'in altındaki etiketleme sekmesi altında iki etiketleme sınıfı ayarlayın: Özellik sınıflarını tanımlayın ve her sınıfı farklı etiketleyin.
  2. Sayıları olan ve olmayan bir hidrant sınıfı oluşturun (örneğin, Number & WO).
  3. Sayı sınıfı için SQL Sorgusunu "MyLabelField" <> "" olarak tanımlayın.
  4. Sayı sınıfını doğru etiket alanına yönlendirin.
  5. WO sınıfı için SQL Sorgusu, "MyLabelField" = ""
  6. İfade seçenek türü altındaki WO sınıfı için "WO"
  7. Etiketlemeyi açın.

2

Ayrıca doğru cevap olan @kenbuja sript'ine; Null ve 0 uzunluklu dizelerin veya karakter içermeyen boşlukların bir kombinasyonuna sahipseniz, böyle bir şey yapabilirsiniz:

Function FindLabel ( [LABELFIELD] )
  if  isnull([LABELFIELD]) then
    FindLabel = "WO"
  elseif trim([LABELFIELD]) = "" then
    FindLabel = "WO"
  else
    FindLabel = ucase([LABELFIELD])
  end if
End Function
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.