Label Ekspresi untuk mengganti nilai nol dengan teks yang tidak ada di kelas fitur

9

Saya perlu memberi label beberapa hidran (poin) - beberapa di antaranya dimiliki oleh pemadam kebakaran dan memiliki nomor yang ditugaskan untuk mereka, beberapa tidak dan dengan demikian tidak memiliki nomor. Saya ingin menulis ekspresi di sepanjang baris:

'Label Hydrant dengan nomor jika nomor ada, jika hydrant memiliki label nilai nol dengan' WO '.'

Aku hanya tidak bisa mengetahuinya.

Cara paling sederhana bagi saya untuk melakukan ini adalah dengan mengubah nilai nol ke WO tetapi datanya bukan milik saya, dan saya tidak ingin melakukan perubahan padanya. Saya kira saya bisa membuat salinan dan meletakkan nilai-nilai dalam salinan, tetapi idealnya saya ingin ekspresi.

Terima kasih!

Jorp
sumber
Terima kasih, Pikir saya masih kehilangan sesuatu ini yang saya lakukan: 1. Centang fitur Label di layer 2. Pilih 'Tentukan kelas fitur dan label masing-masing kelas secara berbeda 3. Tambahkan label Nomor Kelas 4. Tambah Label Kelas WO 5 . centang 'label fitur di kelas ini' untuk setiap <br/> 6. di bawah 'Jumlah' klik SQL Query penggunaan ( "SYMBOLCODE" = 3) dan ( "FIREAUTHOR" <> "") 7. bidang label diatur ke FIREAUTHOR 8. Untuk WO SQL adalah ("SYMBOLCODE" = 3) AND ("FIREAUTHOR" = "") 9. Ekspresi adalah "WO" 10. Dapatkan kesalahan 'tidak ada fitur yang ditemukan.
jorp

Jawaban:

9

Anda dapat menggunakan skrip sederhana seperti ini untuk memberi label fitur dengan nilai Null.

Function FindLabel ( [yourfield] )
  if isnull( [yourfield]) then
    FindLabel = "WO"
  else
    FindLabel = [yourfield]
  end if
End Function
kenbuja
sumber
1
Senang bertemu Anda di gis.se. Jawaban Anda di forum ESRI telah membantu banyak orang, termasuk saya.
Devdatta Tengshe
Terima kasih - skrip ini jelas rapi, tetapi nilai nolnya tidak dilabeli sebagai WO.
jorp
1
Apakah Anda bekerja dengan nilai yang ditampilkan sebagai <Null> atau sebagai kosong di tabel atribut?
kenbuja
3

Inilah yang dapat Anda lakukan.

  1. Siapkan dua kelas pelabelan di bawah tab labeling di bawah Metode: Tentukan klas fitur dan label setiap kelas secara berbeda.
  2. Buat kelas hidran yang memiliki angka dan yang tidak (mis. Angka, & WO).
  3. Untuk kelas angka, tentukan SQL Query sebagai, "MyLabelField" <> ""
  4. Arahkan kelas nomor ke bidang label yang benar.
  5. Untuk kelas WO mendefinisikan SQL Query sebagai, "MyLabelField" = ""
  6. Untuk kelas WO di bawah tipe opsi Ekspresi, "WO"
  7. Hidupkan pelabelan.
artwork21
sumber
2

Selanjutnya ke @kenbuja sript yang merupakan jawaban yang benar; Jika Anda memiliki kombinasi string atau spasi nol dan 0 tanpa karakter, Anda dapat melakukan sesuatu seperti ini:

Function FindLabel ( [LABELFIELD] )
  if  isnull([LABELFIELD]) then
    FindLabel = "WO"
  elseif trim([LABELFIELD]) = "" then
    FindLabel = "WO"
  else
    FindLabel = ucase([LABELFIELD])
  end if
End Function
Jakub Sisak GeoGraphics
sumber