Biểu thức nhãn để thay thế giá trị null bằng văn bản không có trong lớp tính năng


9

Tôi cần phải dán nhãn một số vòi (điểm) - một số trong số này thuộc về đội cứu hỏa và có một số được gán cho chúng, một số không và do đó không có số. Tôi muốn viết một biểu thức dọc theo dòng:

'Nhãn Hydrant với số nếu số tồn tại, nếu hydrant có nhãn giá trị null với' WO '.'

Tôi không thể tìm ra nó.

Cách đơn giản nhất để tôi làm điều này là thay đổi các giá trị null thành WO nhưng dữ liệu không phải là của tôi và tôi không muốn thay đổi nó. Tôi cho rằng tôi có thể tạo một bản sao và đặt các giá trị vào bản sao, nhưng lý tưởng nhất là tôi muốn có một biểu thức.

Cảm ơn!


Cảm ơn, hãy nghĩ rằng tôi vẫn còn thiếu một cái gì đó đây là những gì tôi đang làm: 1. Đánh dấu các tính năng Nhãn trong lớp 2. Chọn 'Xác định các lớp tính năng và gắn nhãn cho mỗi lớp khác nhau 3. Thêm nhãn Số lớp 4. Thêm Nhãn lớp WO 5 . tick 'tính năng nhãn trong lớp này' cho mỗi <br/> 6. Trong 'Số', nhấp vào Truy vấn SQL sử dụng ("SYMBOLCODE" = 3) VÀ ("FIREAUTHOR" <> "") 7. Trường nhãn được đặt thành FIREAUTHOR 8. Đối với WO SQL là ("SYMBOLCODE" = 3) VÀ ("FIREAUTHOR" = "") 9. Biểu thức là "WO" 10. Nhận lỗi 'không tìm thấy tính năng.
jorp

Câu trả lời:


9

Bạn có thể sử dụng một tập lệnh đơn giản như thế này để gắn nhãn các tính năng với các giá trị Null.

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

1
Thật tuyệt khi gặp bạn trên gis.se. Câu trả lời của bạn trên các diễn đàn ESRI đã giúp rất nhiều người, bao gồm cả tôi.
Devdatta Tengshe

Cảm ơn - tập lệnh này chắc chắn gọn gàng, nhưng các giá trị null không được gắn nhãn là WO.
Jorp

1
Bạn có đang làm việc với các giá trị hiển thị dưới dạng <Null> hoặc dưới dạng khoảng trống trong bảng thuộc tính không?
kenbuja

3

Dưới đây là những gì bạn có thể làm.

  1. Thiết lập hai lớp ghi nhãn trong tab ghi nhãn trong Phương thức: Xác định các nhóm tính năng và gắn nhãn cho mỗi lớp khác nhau.
  2. Tạo một lớp vòi có số và một lớp không (ví dụ: Số, & WO).
  3. Đối với lớp số, xác định Truy vấn SQL là "MyLabelField" <> ""
  4. Trỏ lớp số vào trường nhãn chính xác.
  5. Đối với lớp WO, xác định truy vấn SQL là "MyLabelField" = ""
  6. Đối với lớp WO trong loại tùy chọn Biểu thức, "WO"
  7. Bật nhãn.

2

Hơn nữa với @kenbuja sript đó là câu trả lời đúng; Nếu bạn có sự kết hợp của các chuỗi hoặc khoảng trống có độ dài 0 và không có ký tự, bạn có thể làm một cái gì đó như thế này:

Function FindLabel ( [LABELFIELD] )
  if  isnull([LABELFIELD]) then
    FindLabel = "WO"
  elseif trim([LABELFIELD]) = "" then
    FindLabel = "WO"
  else
    FindLabel = ucase([LABELFIELD])
  end if
End Function
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.