Beschriften Sie Ausdrücke, um Nullwerte durch Text zu ersetzen, der nicht in der Feature-Class enthalten ist

9

Ich muss einige Hydranten (Punkte) kennzeichnen - einige davon gehören zur Feuerwehr und haben eine Nummer zugewiesen, andere nicht und daher keine Nummer. Ich möchte einen Ausdruck schreiben wie:

'Hydrant mit Nummer kennzeichnen, wenn Nummer vorhanden ist, wenn Hydrant ein Nullwertetikett mit' WO 'hat.'

Ich kann es einfach nicht herausfinden.

Der einfachste Weg für mich wäre, die Nullwerte in WO zu ändern, aber die Daten gehören nicht mir, und ich möchte keine Änderungen daran vornehmen. Ich nehme an, ich könnte eine Kopie erstellen und die Werte in die Kopie einfügen, aber im Idealfall möchte ich einen Ausdruck.

Vielen Dank!

jorp
quelle
Vielen Dank. Denken Sie, ich vermisse immer noch etwas. Dies ist, was ich tue: 1. Markieren Sie Beschriftungsmerkmale in der Ebene. 2. Wählen Sie 'Klassen von Merkmalen definieren und beschriften Sie jede Klasse anders. 3. Fügen Sie Beschriftungsklassennummer hinzu. 4. Fügen Sie Beschriftungsklasse WO hinzu. 5 . tick 'label in dieser Klasse verfügt über ' für jede <br/> 6. Unter 'Nummer' klicken Verwendung SQL - Abfrage ( "SYMBOLCODE" = 3) und ( "FIREAUTHOR" <> "") 7. Label - Feld FIREAUTHOR gesetzt 8. Für WO ist SQL ("SYMBOLCODE" = 3) AND ("FIREAUTHOR" = ""). 9. Ausdruck ist "WO". 10. Fehler abrufen 'Keine Funktionen gefunden.
jorp konnte nicht überprüft werden

Antworten:

9

Sie können ein einfaches Skript wie dieses verwenden, um die Features mit Nullwerten zu kennzeichnen.

Function FindLabel ( [yourfield] )
  if isnull( [yourfield]) then
    FindLabel = "WO"
  else
    FindLabel = [yourfield]
  end if
End Function
Kenbuja
quelle
1
Schön, Sie auf gis.se zu sehen. Ihre Antworten in den ESRI-Foren haben vielen Menschen geholfen, auch mir.
Devdatta Tengshe
Danke - dieses Skript ist sicherlich ordentlich, aber die Nullwerte werden nicht als WO bezeichnet.
Jorp
1
Arbeiten Sie mit Werten, die als <Null> oder als Leerzeichen in der Attributtabelle angezeigt werden?
Kenbuja
3

Hier ist was Sie tun können.

  1. Richten Sie zwei Beschriftungsklassen auf der Registerkarte Beschriftung unter der Methode ein: Definieren Sie Klassen von Features und beschriften Sie jede Klasse anders.
  2. Erstellen Sie eine Hydrantenklasse mit Zahlen und eine ohne Zahlen (z. B. Zahl & WO).
  3. Definieren Sie für die Zahlenklasse die SQL-Abfrage als "MyLabelField" <> "".
  4. Zeigen Sie mit der Zahlenklasse auf das richtige Beschriftungsfeld.
  5. Definieren Sie für die WO-Klasse die SQL-Abfrage als "MyLabelField" = "".
  6. Für die WO-Klasse unter dem Optionstyp Ausdruck "WO"
  7. Beschriftung einschalten.
Artwork21
quelle
2

Weiter zu @kenbuja sript, was die richtige Antwort ist; Wenn Sie eine Kombination aus Zeichenfolgen oder Leerzeichen mit der Länge null und 0 ohne Zeichen haben, können Sie Folgendes tun:

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
quelle